"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.AppSwitcherAppSkeleton = exports.AppSwitcherApp = void 0;
var _Skeleton2 = _interopRequireDefault(require("@mui/material/Skeleton"));
var _styled = _interopRequireDefault(require("@emotion/styled"));
var _react = require("react");
var _MuiPropsContext = require("../../MuiPropsContext.cjs");
var _OdysseyDesignTokensContext = require("../../OdysseyDesignTokensContext.cjs");
var _Tooltip = require("../../Tooltip.cjs");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/*!
 * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.
 * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
 *
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and limitations under the License.
 */

const AppSwitcherAppWrapperComponent = (0, _styled.default)("li", {
  shouldForwardProp: prop => prop !== "odysseyDesignTokens"
})(({
  odysseyDesignTokens
}) => ({
  margin: "auto",
  marginBlockEnd: odysseyDesignTokens.Spacing3,
  textAlign: "center"
}));
const AppSwitcherAppLinkComponent = (0, _styled.default)("a", {
  shouldForwardProp: prop => !["isSelected", "odysseyDesignTokens"].includes(prop)
})(({
  odysseyDesignTokens,
  isSelected
}) => ({
  display: "inline-block",
  margin: "auto",
  padding: odysseyDesignTokens.Spacing1,
  backgroundColor: isSelected ? odysseyDesignTokens.PalettePrimaryLighter : "transparent",
  borderRadius: odysseyDesignTokens.BorderRadiusTight,
  transition: `background-color ${odysseyDesignTokens.TransitionDurationMain}`,
  "&:hover, &:focus": {
    backgroundColor: odysseyDesignTokens.HueNeutral50
  }
}));
const AppSwitcherAppSkeletonWrapperComponent = (0, _styled.default)("div", {
  shouldForwardProp: prop => prop !== "odysseyDesignTokens"
})(({
  odysseyDesignTokens
}) => ({
  display: "inline-block",
  margin: "auto",
  padding: odysseyDesignTokens.Spacing1
}));
const AppSwitcherAppImgComponent = (0, _styled.default)("img", {
  shouldForwardProp: prop => prop !== "odysseyDesignTokens"
})(({
  odysseyDesignTokens
}) => ({
  display: "block",
  width: odysseyDesignTokens.Spacing6,
  height: odysseyDesignTokens.Spacing6
}));
const AppSwitcherApp = ({
  appIconDefaultUrl,
  appIconSelectedUrl,
  appName,
  label,
  linkUrl,
  selectedAppName
}) => {
  const odysseyDesignTokens = (0, _OdysseyDesignTokensContext.useOdysseyDesignTokens)();
  const isSelected = appName === selectedAppName;
  const renderAppIconLink = (0, _react.useCallback)(muiProps => (0, _jsxRuntime.jsx)(AppSwitcherAppLinkComponent, {
    ...muiProps,
    "aria-current": isSelected ? "page" : undefined,
    href: linkUrl,
    isSelected: isSelected,
    odysseyDesignTokens: odysseyDesignTokens,
    children: (0, _jsxRuntime.jsx)(AppSwitcherAppImgComponent, {
      odysseyDesignTokens: odysseyDesignTokens,
      role: "presentation",
      src: isSelected ? appIconSelectedUrl : appIconDefaultUrl
    })
  }), [odysseyDesignTokens, isSelected, linkUrl, appIconDefaultUrl, appIconSelectedUrl]);
  return (0, _jsxRuntime.jsx)(AppSwitcherAppWrapperComponent, {
    odysseyDesignTokens: odysseyDesignTokens,
    children: (0, _jsxRuntime.jsx)(_Tooltip.Tooltip, {
      ariaType: "label",
      placement: "right",
      text: label,
      translate: "no",
      children: (0, _jsxRuntime.jsx)(_MuiPropsContext.MuiPropsContext.Consumer, {
        children: renderAppIconLink
      })
    })
  });
};
exports.AppSwitcherApp = AppSwitcherApp;
const AppSwitcherAppSkeleton = () => {
  const odysseyDesignTokens = (0, _OdysseyDesignTokensContext.useOdysseyDesignTokens)();
  return (0, _jsxRuntime.jsx)(AppSwitcherAppWrapperComponent, {
    odysseyDesignTokens: odysseyDesignTokens,
    children: (0, _jsxRuntime.jsx)(AppSwitcherAppSkeletonWrapperComponent, {
      odysseyDesignTokens: odysseyDesignTokens,
      children: (0, _jsxRuntime.jsx)(_Skeleton2.default, {
        height: odysseyDesignTokens.Spacing6,
        variant: "rounded",
        width: odysseyDesignTokens.Spacing6
      })
    })
  });
};
exports.AppSwitcherAppSkeleton = AppSwitcherAppSkeleton;
//# sourceMappingURL=AppSwitcherApp.cjs.map