{"version":3,"file":"DataCard.cjs","names":["_styled","_interopRequireDefault","require","_react","_Card","_i18n","_index","_OdysseyDesignTokensContext","_useUniqueId","_jsxRuntime","e","__esModule","default","CheckboxContainer","styled","shouldForwardProp","prop","odysseyDesignTokens","marginBlockStart","Spacing1","AccessoryPlaceholder","_IconButton2","visibility","DataCard","children","description","detailPanel","hasSelection","image","isSelected","isSelectionDisabled","onSelectionChange","overline","title","variant","menuButtonChildren","useOdysseyDesignTokens","t","useTranslation","titleId","useUniqueId","isExpanded","setIsExpanded","useState","SelectionCheckbox","useMemo","jsx","_Checkbox2","checked","disabled","inputProps","onChange","ExpansionToggle","_Tooltip2","ChevronUpIcon","ChevronDownIcon","onClick","Accessory","jsxs","Fragment","Card","__role","accessory","MemoizedDataCard","exports","memo","displayName"],"sources":["../../../../src/labs/DataView/DataCard.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport {\n  Checkbox as MuiCheckbox,\n  IconButton as MuiIconButton,\n  Tooltip as MuiTooltip,\n} from \"@mui/material\";\nimport { memo, useMemo, useState } from \"react\";\n\nimport { Card, CardProps } from \"../../Card.js\";\nimport { useTranslation } from \"../../i18n.generated/i18n.js\";\nimport { ChevronDownIcon, ChevronUpIcon } from \"../../icons.generated/index.js\";\nimport {\n  DesignTokens,\n  useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { useUniqueId } from \"../../useUniqueId.js\";\n\nexport type DataCardProps = {\n  children?: CardProps[\"children\"];\n  description?: CardProps[\"description\"];\n  detailPanel?: CardProps[\"detailPanel\"];\n  /**\n   * If `true`, the card renders a selection checkbox.\n   */\n  hasSelection?: boolean;\n  image?: CardProps[\"image\"];\n  /**\n   * If `true`, the card is in a selected state.\n   */\n  isSelected?: boolean;\n  /**\n   * If `true`, the selection checkbox is disabled and the card cannot be selected or deselected.\n   */\n  isSelectionDisabled?: boolean;\n  menuButtonChildren?: CardProps[\"menuButtonChildren\"];\n  onSelectionChange?: () => void;\n  overline?: CardProps[\"overline\"];\n  title?: CardProps[\"title\"];\n  variant?: CardProps[\"variant\"];\n};\n\nconst CheckboxContainer = styled(\"div\", {\n  shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{\n  odysseyDesignTokens: DesignTokens;\n}>(({ odysseyDesignTokens }) => ({\n  marginBlockStart: `-${odysseyDesignTokens.Spacing1}`,\n}));\n\nconst AccessoryPlaceholder = styled(MuiIconButton)(() => ({\n  visibility: \"hidden\" as const,\n}));\n\nconst DataCard = ({\n  children,\n  description,\n  detailPanel,\n  hasSelection,\n  image,\n  isSelected,\n  isSelectionDisabled,\n  onSelectionChange,\n  overline,\n  title,\n  variant,\n  menuButtonChildren,\n}: DataCardProps) => {\n  const odysseyDesignTokens = useOdysseyDesignTokens();\n  const { t } = useTranslation();\n  const titleId = useUniqueId();\n\n  const [isExpanded, setIsExpanded] = useState<boolean>(false);\n\n  const SelectionCheckbox = useMemo(\n    () => (\n      <CheckboxContainer odysseyDesignTokens={odysseyDesignTokens}>\n        <MuiCheckbox\n          checked={isSelected}\n          disabled={isSelectionDisabled}\n          inputProps={{\n            \"aria-labelledby\": titleId,\n          }}\n          onChange={onSelectionChange}\n        />\n      </CheckboxContainer>\n    ),\n    [\n      isSelected,\n      isSelectionDisabled,\n      odysseyDesignTokens,\n      onSelectionChange,\n      titleId,\n    ],\n  );\n\n  const ExpansionToggle = useMemo(() => {\n    return detailPanel ? (\n      <MuiTooltip\n        title={\n          isExpanded\n            ? t(\"table.rowexpansion.collapse\")\n            : t(\"table.rowexpansion.expand\")\n        }\n      >\n        <MuiIconButton\n          aria-label={\n            isExpanded\n              ? t(\"table.rowexpansion.collapse\")\n              : t(\"table.rowexpansion.expand\")\n          }\n          children={isExpanded ? <ChevronUpIcon /> : <ChevronDownIcon />}\n          onClick={() => setIsExpanded(!isExpanded)}\n        />\n      </MuiTooltip>\n    ) : (\n      <AccessoryPlaceholder disabled>\n        <ChevronDownIcon />\n      </AccessoryPlaceholder>\n    );\n  }, [isExpanded, detailPanel, t]);\n\n  const Accessory = useMemo(() => {\n    return (\n      <>\n        {hasSelection && SelectionCheckbox}\n        {ExpansionToggle}\n      </>\n    );\n  }, [ExpansionToggle, SelectionCheckbox, hasSelection]);\n\n  return (\n    <Card\n      __role=\"listitem\"\n      accessory={Accessory}\n      children={children}\n      description={description}\n      detailPanel={isExpanded && detailPanel}\n      image={image}\n      menuButtonChildren={menuButtonChildren}\n      overline={overline}\n      title={title}\n      titleId={titleId}\n      variant={variant}\n    />\n  );\n};\n\nconst MemoizedDataCard = memo(DataCard);\nMemoizedDataCard.displayName = \"DataCard\";\n\nexport { MemoizedDataCard as DataCard };\n"],"mappings":"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","ignoreList":[]}