@hitachivantara/uikit-react-core 5.19.2 → 5.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/dist/cjs/components/Accordion/Accordion.cjs +19 -11
  2. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
  3. package/dist/cjs/components/Accordion/Accordion.styles.cjs +44 -68
  4. package/dist/cjs/components/Accordion/Accordion.styles.cjs.map +1 -1
  5. package/dist/cjs/components/ActionsGeneric/ActionsGeneric.cjs +22 -12
  6. package/dist/cjs/components/ActionsGeneric/ActionsGeneric.cjs.map +1 -1
  7. package/dist/cjs/components/ActionsGeneric/ActionsGeneric.styles.cjs +17 -53
  8. package/dist/cjs/components/ActionsGeneric/ActionsGeneric.styles.cjs.map +1 -1
  9. package/dist/cjs/components/AppSwitcher/Action/Action.cjs +23 -16
  10. package/dist/cjs/components/AppSwitcher/Action/Action.cjs.map +1 -1
  11. package/dist/cjs/components/AppSwitcher/Action/Action.styles.cjs +51 -91
  12. package/dist/cjs/components/AppSwitcher/Action/Action.styles.cjs.map +1 -1
  13. package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs +28 -24
  14. package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs.map +1 -1
  15. package/dist/cjs/components/AppSwitcher/AppSwitcher.styles.cjs +52 -116
  16. package/dist/cjs/components/AppSwitcher/AppSwitcher.styles.cjs.map +1 -1
  17. package/dist/cjs/components/AppSwitcher/TitleWithTooltip.cjs +3 -6
  18. package/dist/cjs/components/AppSwitcher/TitleWithTooltip.cjs.map +1 -1
  19. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs +6 -14
  20. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs.map +1 -1
  21. package/dist/cjs/components/BreadCrumb/Page/Page.styles.cjs +2 -2
  22. package/dist/cjs/components/BreadCrumb/Page/Page.styles.cjs.map +1 -1
  23. package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.cjs +2 -6
  24. package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.cjs.map +1 -1
  25. package/dist/cjs/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.cjs +2 -3
  26. package/dist/cjs/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.cjs.map +1 -1
  27. package/dist/cjs/components/Calendar/CalendarNavigation/Navigation/Navigation.cjs +2 -3
  28. package/dist/cjs/components/Calendar/CalendarNavigation/Navigation/Navigation.cjs.map +1 -1
  29. package/dist/cjs/components/Calendar/SingleCalendar/SingleCalendar.cjs +6 -14
  30. package/dist/cjs/components/Calendar/SingleCalendar/SingleCalendar.cjs.map +1 -1
  31. package/dist/cjs/components/Dialog/Actions/Actions.cjs.map +1 -1
  32. package/dist/cjs/components/Dialog/Content/Content.cjs.map +1 -1
  33. package/dist/cjs/components/Dialog/Dialog.cjs +47 -46
  34. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  35. package/dist/cjs/components/Dialog/Dialog.styles.cjs +15 -0
  36. package/dist/cjs/components/Dialog/Dialog.styles.cjs.map +1 -1
  37. package/dist/cjs/components/Dialog/Title/Title.cjs.map +1 -1
  38. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs +2 -3
  39. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
  40. package/dist/cjs/components/FileUploader/DropZone/DropZone.cjs +2 -3
  41. package/dist/cjs/components/FileUploader/DropZone/DropZone.cjs.map +1 -1
  42. package/dist/cjs/components/Focus/Focus.cjs +22 -44
  43. package/dist/cjs/components/Focus/Focus.cjs.map +1 -1
  44. package/dist/cjs/components/Focus/utils.cjs +0 -5
  45. package/dist/cjs/components/Focus/utils.cjs.map +1 -1
  46. package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs +5 -1
  47. package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs.map +1 -1
  48. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs +9 -6
  49. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs.map +1 -1
  50. package/dist/cjs/components/Header/Navigation/Navigation.cjs +4 -1
  51. package/dist/cjs/components/Header/Navigation/Navigation.cjs.map +1 -1
  52. package/dist/cjs/components/InlineEditor/InlineEditor.cjs +4 -5
  53. package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
  54. package/dist/cjs/components/Input/Input.cjs +5 -6
  55. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  56. package/dist/cjs/components/Pagination/Pagination.cjs +2 -6
  57. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  58. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs +2 -6
  59. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs.map +1 -1
  60. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs +2 -6
  61. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs.map +1 -1
  62. package/dist/cjs/components/SelectionList/SelectionList.cjs +3 -8
  63. package/dist/cjs/components/SelectionList/SelectionList.cjs.map +1 -1
  64. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.cjs +5 -2
  65. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.cjs.map +1 -1
  66. package/dist/cjs/components/TagsInput/TagsInput.cjs +3 -4
  67. package/dist/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  68. package/dist/cjs/components/TimePicker/TimePicker.styles.cjs +1 -1
  69. package/dist/cjs/components/TimePicker/TimePicker.styles.cjs.map +1 -1
  70. package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
  71. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  72. package/dist/cjs/components/VerticalNavigation/Actions/Action.cjs +2 -3
  73. package/dist/cjs/components/VerticalNavigation/Actions/Action.cjs.map +1 -1
  74. package/dist/cjs/hooks/useCss.cjs +4 -13
  75. package/dist/cjs/hooks/useCss.cjs.map +1 -1
  76. package/dist/cjs/hooks/useEmotionCache.cjs +4 -4
  77. package/dist/cjs/hooks/useEmotionCache.cjs.map +1 -1
  78. package/dist/cjs/hooks/useTheme.cjs +3 -1
  79. package/dist/cjs/hooks/useTheme.cjs.map +1 -1
  80. package/dist/cjs/index.cjs +25 -19
  81. package/dist/cjs/index.cjs.map +1 -1
  82. package/dist/cjs/providers/Provider.cjs +5 -4
  83. package/dist/cjs/providers/Provider.cjs.map +1 -1
  84. package/dist/cjs/providers/ThemeProvider.cjs +13 -15
  85. package/dist/cjs/providers/ThemeProvider.cjs.map +1 -1
  86. package/dist/cjs/utils/keyboardUtils.cjs +30 -0
  87. package/dist/cjs/utils/keyboardUtils.cjs.map +1 -0
  88. package/dist/esm/components/Accordion/Accordion.js +22 -13
  89. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  90. package/dist/esm/components/Accordion/Accordion.styles.js +44 -66
  91. package/dist/esm/components/Accordion/Accordion.styles.js.map +1 -1
  92. package/dist/esm/components/ActionsGeneric/ActionsGeneric.js +25 -14
  93. package/dist/esm/components/ActionsGeneric/ActionsGeneric.js.map +1 -1
  94. package/dist/esm/components/ActionsGeneric/ActionsGeneric.styles.js +17 -51
  95. package/dist/esm/components/ActionsGeneric/ActionsGeneric.styles.js.map +1 -1
  96. package/dist/esm/components/AppSwitcher/Action/Action.js +26 -18
  97. package/dist/esm/components/AppSwitcher/Action/Action.js.map +1 -1
  98. package/dist/esm/components/AppSwitcher/Action/Action.styles.js +51 -89
  99. package/dist/esm/components/AppSwitcher/Action/Action.styles.js.map +1 -1
  100. package/dist/esm/components/AppSwitcher/AppSwitcher.js +31 -26
  101. package/dist/esm/components/AppSwitcher/AppSwitcher.js.map +1 -1
  102. package/dist/esm/components/AppSwitcher/AppSwitcher.styles.js +52 -114
  103. package/dist/esm/components/AppSwitcher/AppSwitcher.styles.js.map +1 -1
  104. package/dist/esm/components/AppSwitcher/TitleWithTooltip.js +3 -6
  105. package/dist/esm/components/AppSwitcher/TitleWithTooltip.js.map +1 -1
  106. package/dist/esm/components/BaseDropdown/BaseDropdown.js +6 -14
  107. package/dist/esm/components/BaseDropdown/BaseDropdown.js.map +1 -1
  108. package/dist/esm/components/BreadCrumb/Page/Page.styles.js +1 -1
  109. package/dist/esm/components/BreadCrumb/Page/Page.styles.js.map +1 -1
  110. package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.js +2 -6
  111. package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  112. package/dist/esm/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js +2 -3
  113. package/dist/esm/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  114. package/dist/esm/components/Calendar/CalendarNavigation/Navigation/Navigation.js +2 -3
  115. package/dist/esm/components/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  116. package/dist/esm/components/Calendar/SingleCalendar/SingleCalendar.js +6 -14
  117. package/dist/esm/components/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  118. package/dist/esm/components/Dialog/Actions/Actions.js.map +1 -1
  119. package/dist/esm/components/Dialog/Content/Content.js.map +1 -1
  120. package/dist/esm/components/Dialog/Dialog.js +47 -46
  121. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  122. package/dist/esm/components/Dialog/Dialog.styles.js +15 -0
  123. package/dist/esm/components/Dialog/Dialog.styles.js.map +1 -1
  124. package/dist/esm/components/Dialog/Title/Title.js.map +1 -1
  125. package/dist/esm/components/DropDownMenu/DropDownMenu.js +2 -3
  126. package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
  127. package/dist/esm/components/FileUploader/DropZone/DropZone.js +2 -3
  128. package/dist/esm/components/FileUploader/DropZone/DropZone.js.map +1 -1
  129. package/dist/esm/components/Focus/Focus.js +23 -45
  130. package/dist/esm/components/Focus/Focus.js.map +1 -1
  131. package/dist/esm/components/Focus/utils.js +0 -5
  132. package/dist/esm/components/Focus/utils.js.map +1 -1
  133. package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js +5 -1
  134. package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  135. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js +9 -6
  136. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  137. package/dist/esm/components/Header/Navigation/Navigation.js +4 -1
  138. package/dist/esm/components/Header/Navigation/Navigation.js.map +1 -1
  139. package/dist/esm/components/InlineEditor/InlineEditor.js +3 -4
  140. package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
  141. package/dist/esm/components/Input/Input.js +5 -6
  142. package/dist/esm/components/Input/Input.js.map +1 -1
  143. package/dist/esm/components/Pagination/Pagination.js +2 -6
  144. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  145. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js +2 -6
  146. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  147. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js +2 -6
  148. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  149. package/dist/esm/components/SelectionList/SelectionList.js +3 -8
  150. package/dist/esm/components/SelectionList/SelectionList.js.map +1 -1
  151. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.js +5 -2
  152. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.js.map +1 -1
  153. package/dist/esm/components/TagsInput/TagsInput.js +3 -4
  154. package/dist/esm/components/TagsInput/TagsInput.js.map +1 -1
  155. package/dist/esm/components/TimePicker/TimePicker.styles.js +1 -1
  156. package/dist/esm/components/TimePicker/TimePicker.styles.js.map +1 -1
  157. package/dist/esm/components/Tooltip/Tooltip.js +1 -1
  158. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  159. package/dist/esm/components/VerticalNavigation/Actions/Action.js +2 -3
  160. package/dist/esm/components/VerticalNavigation/Actions/Action.js.map +1 -1
  161. package/dist/esm/hooks/useCss.js +4 -13
  162. package/dist/esm/hooks/useCss.js.map +1 -1
  163. package/dist/esm/hooks/useEmotionCache.js +4 -4
  164. package/dist/esm/hooks/useEmotionCache.js.map +1 -1
  165. package/dist/esm/hooks/useTheme.js +3 -1
  166. package/dist/esm/hooks/useTheme.js.map +1 -1
  167. package/dist/esm/index.js +241 -244
  168. package/dist/esm/index.js.map +1 -1
  169. package/dist/esm/providers/Provider.js +4 -3
  170. package/dist/esm/providers/Provider.js.map +1 -1
  171. package/dist/esm/providers/ThemeProvider.js +4 -13
  172. package/dist/esm/providers/ThemeProvider.js.map +1 -1
  173. package/dist/esm/utils/keyboardUtils.js +30 -0
  174. package/dist/esm/utils/keyboardUtils.js.map +1 -0
  175. package/dist/types/index.d.ts +274 -330
  176. package/package.json +4 -4
  177. package/dist/cjs/components/Accordion/accordionClasses.cjs +0 -8
  178. package/dist/cjs/components/Accordion/accordionClasses.cjs.map +0 -1
  179. package/dist/cjs/components/ActionsGeneric/actionsGenericClasses.cjs +0 -8
  180. package/dist/cjs/components/ActionsGeneric/actionsGenericClasses.cjs.map +0 -1
  181. package/dist/cjs/components/AppSwitcher/Action/actionClasses.cjs +0 -8
  182. package/dist/cjs/components/AppSwitcher/Action/actionClasses.cjs.map +0 -1
  183. package/dist/cjs/components/AppSwitcher/appSwitcherClasses.cjs +0 -8
  184. package/dist/cjs/components/AppSwitcher/appSwitcherClasses.cjs.map +0 -1
  185. package/dist/cjs/utils/keyboardUtils/keyCheck.cjs +0 -9
  186. package/dist/cjs/utils/keyboardUtils/keyCheck.cjs.map +0 -1
  187. package/dist/cjs/utils/keyboardUtils/keyboardCodes.cjs +0 -105
  188. package/dist/cjs/utils/keyboardUtils/keyboardCodes.cjs.map +0 -1
  189. package/dist/esm/components/Accordion/accordionClasses.js +0 -8
  190. package/dist/esm/components/Accordion/accordionClasses.js.map +0 -1
  191. package/dist/esm/components/ActionsGeneric/actionsGenericClasses.js +0 -8
  192. package/dist/esm/components/ActionsGeneric/actionsGenericClasses.js.map +0 -1
  193. package/dist/esm/components/AppSwitcher/Action/actionClasses.js +0 -8
  194. package/dist/esm/components/AppSwitcher/Action/actionClasses.js.map +0 -1
  195. package/dist/esm/components/AppSwitcher/appSwitcherClasses.js +0 -8
  196. package/dist/esm/components/AppSwitcher/appSwitcherClasses.js.map +0 -1
  197. package/dist/esm/utils/keyboardUtils/keyCheck.js +0 -9
  198. package/dist/esm/utils/keyboardUtils/keyCheck.js.map +0 -1
  199. package/dist/esm/utils/keyboardUtils/keyboardCodes.js +0 -105
  200. package/dist/esm/utils/keyboardUtils/keyboardCodes.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","sources":["../../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import React, {\n SyntheticEvent,\n useCallback,\n useMemo,\n HTMLAttributes,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport { useControlled } from \"@core/hooks\";\nimport { DropDownXS, DropUpXS } from \"@hitachivantara/uikit-react-icons\";\nimport { HvBaseProps } from \"@core/types\";\nimport { setId } from \"@core/utils\";\nimport { HvTypographyVariants } from \"@core/components\";\nimport { StyledContainer, StyledLabel, StyledRoot } from \"./Accordion.styles\";\nimport accordionClasses, { HvAccordionClasses } from \"./accordionClasses\";\n\nexport interface HvAccordionProps\n extends HvBaseProps<HTMLDivElement, \"onChange\"> {\n /**\n * Id to be applied to the root node of the accordion.\n */\n id?: string;\n /**\n * Class names to be applied to the accordion.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes?: HvAccordionClasses;\n /**\n * The accordion label button.\n */\n label?: string;\n /**\n * The function that will be executed whenever the accordion toggles it will receive the state of the accordion\n */\n onChange?: (event: React.SyntheticEvent, value: boolean) => void;\n /**\n * Whether the accordion is open or not, if this property is defined the accordion must be fully controlled.\n */\n expanded?: boolean;\n /**\n * When uncontrolled, defines the initial expanded state.\n */\n defaultExpanded?: boolean;\n /**\n * An object containing props to be passed onto container holding the accordion children.\n */\n containerProps?: HTMLAttributes<HTMLDivElement>;\n /**\n * Heading Level to apply to accordion button if ´undefined´ the button won't have a header wrapper.\n */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * Is the accordion disabled.\n */\n disabled?: boolean;\n /**\n * Typography variant for the label.\n */\n labelVariant?: HvTypographyVariants;\n /**\n * Content to be rendered\n */\n children: React.ReactNode;\n}\n\n/**\n * A accordion is a design element that expands in place to expose hidden information.\n */\nexport const HvAccordion = ({\n id,\n className,\n classes,\n disabled = false,\n label,\n onChange,\n children,\n expanded,\n headingLevel,\n defaultExpanded = false,\n containerProps,\n labelVariant = \"label\",\n ...others\n}: HvAccordionProps) => {\n const [isOpen, setIsOpen] = useControlled(expanded, Boolean(defaultExpanded));\n\n const handleAction = useCallback(\n (event: SyntheticEvent) => {\n if (!disabled) {\n onChange?.(event, isOpen);\n setIsOpen(!isOpen);\n return true;\n }\n return false;\n },\n [disabled, onChange, isOpen, setIsOpen]\n );\n\n const handleClick = useCallback(\n (event: SyntheticEvent) => {\n handleAction(event);\n event.preventDefault();\n event.stopPropagation();\n },\n [handleAction]\n );\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.currentTarget !== event.target\n ) {\n return;\n }\n switch (key) {\n case \"Enter\":\n case \" \":\n isEventHandled = handleAction(event);\n break;\n default:\n return;\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [handleAction]\n );\n\n const accordionHeaderId = setId(id, \"button\");\n const accordionContainer = setId(id, \"container\");\n const accordionHeader = useMemo(() => {\n const color = (disabled && [\"secondary_60\"]) || undefined;\n\n const accordionButton = (\n <StyledLabel\n id={accordionHeaderId}\n component=\"div\"\n role=\"button\"\n className={clsx(\n accordionClasses.label,\n classes?.label,\n disabled && clsx(accordionClasses.disabled, classes?.disabled)\n )}\n disabled={disabled}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n variant={labelVariant}\n aria-expanded={isOpen}\n aria-disabled={disabled}\n >\n {isOpen ? <DropUpXS color={color} /> : <DropDownXS color={color} />}\n {label}\n </StyledLabel>\n );\n const result =\n headingLevel === undefined ? (\n accordionButton\n ) : (\n <StyledLabel component={`h${headingLevel}`} variant={labelVariant}>\n {accordionButton}\n </StyledLabel>\n );\n return result;\n }, [\n classes,\n handleClick,\n handleKeyDown,\n label,\n accordionHeaderId,\n disabled,\n headingLevel,\n isOpen,\n labelVariant,\n ]);\n\n return (\n <StyledRoot\n id={id}\n className={clsx(className, accordionClasses.root, classes?.root)}\n {...others}\n >\n {accordionHeader}\n <StyledContainer\n id={accordionContainer}\n role=\"region\"\n aria-labelledby={accordionHeaderId}\n className={clsx(\n accordionClasses.container,\n classes?.container,\n !isOpen && clsx(accordionClasses.hidden, classes?.hidden)\n )}\n hidden={!isOpen}\n {...containerProps}\n >\n {children}\n </StyledContainer>\n </StyledRoot>\n );\n};\n"],"names":["HvAccordion","id","className","classes","disabled","label","onChange","children","expanded","headingLevel","defaultExpanded","containerProps","labelVariant","others","isOpen","setIsOpen","useControlled","Boolean","handleAction","useCallback","event","handleClick","preventDefault","stopPropagation","handleKeyDown","isEventHandled","key","altKey","ctrlKey","metaKey","currentTarget","target","accordionHeaderId","setId","accordionContainer","accordionHeader","useMemo","color","undefined","accordionButton","StyledLabel","component","role","clsx","accordionClasses","tabIndex","onKeyDown","onClick","variant","_jsx","DropUpXS","DropDownXS","result","StyledRoot","root","StyledContainer","container","hidden"],"mappings":"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"}
1
+ {"version":3,"file":"Accordion.js","sources":["../../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import React, {\n SyntheticEvent,\n useCallback,\n useMemo,\n HTMLAttributes,\n} from \"react\";\n\nimport { DropDownXS, DropUpXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { useControlled } from \"@core/hooks\";\nimport { HvBaseProps } from \"@core/types\";\nimport { ExtractNames, setId } from \"@core/utils\";\nimport { HvTypography, HvTypographyVariants } from \"@core/components\";\n\nimport { staticClasses, useClasses } from \"./Accordion.styles\";\n\nexport { staticClasses as accordionClasses };\n\nexport type HvAccordionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvAccordionProps\n extends HvBaseProps<HTMLDivElement, \"onChange\"> {\n /**\n * Id to be applied to the root node of the accordion.\n */\n id?: string;\n /**\n * Class names to be applied to the accordion.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes?: HvAccordionClasses;\n /**\n * The accordion label button.\n */\n label?: string;\n /**\n * The function that will be executed whenever the accordion toggles it will receive the state of the accordion\n */\n onChange?: (event: React.SyntheticEvent, value: boolean) => void;\n /**\n * Whether the accordion is open or not, if this property is defined the accordion must be fully controlled.\n */\n expanded?: boolean;\n /**\n * When uncontrolled, defines the initial expanded state.\n */\n defaultExpanded?: boolean;\n /**\n * An object containing props to be passed onto container holding the accordion children.\n */\n containerProps?: HTMLAttributes<HTMLDivElement>;\n /**\n * Heading Level to apply to accordion button if ´undefined´ the button won't have a header wrapper.\n */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * Is the accordion disabled.\n */\n disabled?: boolean;\n /**\n * Typography variant for the label.\n */\n labelVariant?: HvTypographyVariants;\n /**\n * Content to be rendered\n */\n children: React.ReactNode;\n}\n\n/**\n * A accordion is a design element that expands in place to expose hidden information.\n */\nexport const HvAccordion = ({\n id,\n className,\n classes: classesProp,\n disabled = false,\n label,\n onChange,\n children,\n expanded,\n headingLevel,\n defaultExpanded = false,\n containerProps,\n labelVariant = \"label\",\n ...others\n}: HvAccordionProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n const [isOpen, setIsOpen] = useControlled(expanded, Boolean(defaultExpanded));\n\n const handleAction = useCallback(\n (event: SyntheticEvent) => {\n if (!disabled) {\n onChange?.(event, isOpen);\n setIsOpen(!isOpen);\n return true;\n }\n return false;\n },\n [disabled, onChange, isOpen, setIsOpen]\n );\n\n const handleClick = useCallback(\n (event: SyntheticEvent) => {\n handleAction(event);\n event.preventDefault();\n event.stopPropagation();\n },\n [handleAction]\n );\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.currentTarget !== event.target\n ) {\n return;\n }\n switch (key) {\n case \"Enter\":\n case \" \":\n isEventHandled = handleAction(event);\n break;\n default:\n return;\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [handleAction]\n );\n\n const accordionHeaderId = setId(id, \"button\");\n const accordionContainer = setId(id, \"container\");\n const accordionHeader = useMemo(() => {\n const color = (disabled && [\"secondary_60\"]) || undefined;\n\n const accordionButton = (\n <HvTypography\n id={accordionHeaderId}\n component=\"div\"\n role=\"button\"\n className={cx(classes.label, { [classes.disabled]: disabled })}\n disabled={disabled}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n variant={labelVariant}\n aria-expanded={isOpen}\n aria-disabled={disabled}\n >\n {isOpen ? <DropUpXS color={color} /> : <DropDownXS color={color} />}\n {label}\n </HvTypography>\n );\n const result =\n headingLevel === undefined ? (\n accordionButton\n ) : (\n <HvTypography component={`h${headingLevel}`} variant={labelVariant}>\n {accordionButton}\n </HvTypography>\n );\n return result;\n }, [\n cx,\n classes,\n handleClick,\n handleKeyDown,\n label,\n accordionHeaderId,\n disabled,\n headingLevel,\n isOpen,\n labelVariant,\n ]);\n\n return (\n <div id={id} className={cx(classes.root, className)} {...others}>\n {accordionHeader}\n <div\n id={accordionContainer}\n role=\"region\"\n aria-labelledby={accordionHeaderId}\n className={cx(classes.container, { [classes.hidden]: !isOpen })}\n hidden={!isOpen}\n {...containerProps}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["HvAccordion","id","className","classes","classesProp","disabled","label","onChange","children","expanded","headingLevel","defaultExpanded","containerProps","labelVariant","others","cx","useClasses","isOpen","setIsOpen","useControlled","Boolean","handleAction","useCallback","event","handleClick","preventDefault","stopPropagation","handleKeyDown","isEventHandled","key","altKey","ctrlKey","metaKey","currentTarget","target","accordionHeaderId","setId","accordionContainer","accordionHeader","useMemo","color","undefined","accordionButton","HvTypography","component","role","tabIndex","onKeyDown","onClick","variant","_jsx","DropUpXS","DropDownXS","result","root","container","hidden"],"mappings":"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"}
@@ -1,79 +1,57 @@
1
- import _styled from "@emotion/styled/base";
2
1
  import { theme } from "@hitachivantara/uikit-styles";
3
- import { HvTypography } from "../Typography/Typography.js";
2
+ import { createClasses } from "../../utils/classes.js";
4
3
  import { outlineStyles } from "../../utils/focusUtils.js";
5
- function _EMOTION_STRINGIFIED_CSS_ERROR__() {
6
- return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
7
- }
8
- const StyledRoot = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
9
- target: "e86r8k02"
10
- } : {
11
- target: "e86r8k02",
12
- label: "StyledRoot"
13
- })(process.env.NODE_ENV === "production" ? {
14
- name: "181xssw",
15
- styles: "& + root{padding-top:8px;}"
16
- } : {
17
- name: "181xssw",
18
- styles: "& + root{padding-top:8px;}",
19
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvQWNjb3JkaW9uL0FjY29yZGlvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUswQiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb24uc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXN0eWxlc1wiO1xuaW1wb3J0IHsgSHZUeXBvZ3JhcGh5IH0gZnJvbSBcIkBjb3JlL2NvbXBvbmVudHNcIjtcbmltcG9ydCB7IG91dGxpbmVTdHlsZXMgfSBmcm9tIFwiQGNvcmUvdXRpbHNcIjtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFJvb3QgPSBzdHlsZWQoXCJkaXZcIikoe1xuICBcIiYgKyByb290XCI6IHtcbiAgICBwYWRkaW5nVG9wOiA4LFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoXCJkaXZcIikoXG4gICh7IGhpZGRlbiB9OiB7IGhpZGRlbjogYm9vbGVhbiB9KSA9PiAoe1xuICAgIHBhZGRpbmdUb3A6IDgsXG4gICAgaGVpZ2h0OiBcImF1dG9cIixcblxuICAgIC4uLihoaWRkZW4gJiYge1xuICAgICAgaGVpZ2h0OiAwLFxuICAgICAgZGlzcGxheTogXCJub25lXCIsXG4gICAgfSksXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkTGFiZWwgPSBzdHlsZWQoSHZUeXBvZ3JhcGh5KShcbiAgKHsgZGlzYWJsZWQgfTogeyBkaXNhYmxlZD86IGJvb2xlYW4gfSkgPT4gKHtcbiAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiZmxleC1zdGFydFwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgaGVpZ2h0OiBcIjMycHhcIixcblxuICAgIC4uLighZGlzYWJsZWQgJiYge1xuICAgICAgXCImOmhvdmVyXCI6IHtcbiAgICAgICAgYmFja2dyb3VuZDogdGhlbWUuY29sb3JzLmF0bW8zLFxuICAgICAgfSxcbiAgICAgIFwiJjpmb2N1c1wiOiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRoZW1lLmNvbG9ycy5hdG1vMyxcbiAgICAgIH0sXG4gICAgfSksXG5cbiAgICBcIiZbZGlzYWJsZWRdLCAmOmFjdGl2ZVwiOiB7XG4gICAgICBvdXRsaW5lOiBcIm5vbmVcIixcbiAgICB9LFxuXG4gICAgXCImOmZvY3VzXCI6IHtcbiAgICAgIG91dGxpbmU6IFwibm9uZVwiLFxuICAgIH0sXG5cbiAgICBcIiY6Zm9jdXMtdmlzaWJsZVwiOiB7XG4gICAgICAuLi5vdXRsaW5lU3R5bGVzLFxuICAgIH0sXG5cbiAgICAvLyBjdXJzb3JcbiAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgIC4uLihkaXNhYmxlZCAmJiB7XG4gICAgICBjdXJzb3I6IFwibm90LWFsbG93ZWRcIixcbiAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuc2Vjb25kYXJ5XzYwLFxuICAgIH0pLFxuICB9KVxuKTtcbiJdfQ== */",
20
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
21
- });
22
- const StyledContainer = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
23
- target: "e86r8k01"
24
- } : {
25
- target: "e86r8k01",
26
- label: "StyledContainer"
27
- })(({
28
- hidden
29
- }) => ({
30
- paddingTop: 8,
31
- height: "auto",
32
- ...hidden && {
4
+ const {
5
+ staticClasses,
6
+ useClasses
7
+ } = createClasses("HvAccordion", {
8
+ root: {
9
+ "& + root": {
10
+ paddingTop: 8
11
+ }
12
+ },
13
+ hidden: {
33
14
  height: 0,
34
15
  display: "none"
35
- }
36
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvQWNjb3JkaW9uL0FjY29yZGlvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVcrQiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL0FjY29yZGlvbi9BY2NvcmRpb24uc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXN0eWxlc1wiO1xuaW1wb3J0IHsgSHZUeXBvZ3JhcGh5IH0gZnJvbSBcIkBjb3JlL2NvbXBvbmVudHNcIjtcbmltcG9ydCB7IG91dGxpbmVTdHlsZXMgfSBmcm9tIFwiQGNvcmUvdXRpbHNcIjtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFJvb3QgPSBzdHlsZWQoXCJkaXZcIikoe1xuICBcIiYgKyByb290XCI6IHtcbiAgICBwYWRkaW5nVG9wOiA4LFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoXCJkaXZcIikoXG4gICh7IGhpZGRlbiB9OiB7IGhpZGRlbjogYm9vbGVhbiB9KSA9PiAoe1xuICAgIHBhZGRpbmdUb3A6IDgsXG4gICAgaGVpZ2h0OiBcImF1dG9cIixcblxuICAgIC4uLihoaWRkZW4gJiYge1xuICAgICAgaGVpZ2h0OiAwLFxuICAgICAgZGlzcGxheTogXCJub25lXCIsXG4gICAgfSksXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkTGFiZWwgPSBzdHlsZWQoSHZUeXBvZ3JhcGh5KShcbiAgKHsgZGlzYWJsZWQgfTogeyBkaXNhYmxlZD86IGJvb2xlYW4gfSkgPT4gKHtcbiAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAganVzdGlmeUNvbnRlbnQ6IFwiZmxleC1zdGFydFwiLFxuICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgaGVpZ2h0OiBcIjMycHhcIixcblxuICAgIC4uLighZGlzYWJsZWQgJiYge1xuICAgICAgXCImOmhvdmVyXCI6IHtcbiAgICAgICAgYmFja2dyb3VuZDogdGhlbWUuY29sb3JzLmF0bW8zLFxuICAgICAgfSxcbiAgICAgIFwiJjpmb2N1c1wiOiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRoZW1lLmNvbG9ycy5hdG1vMyxcbiAgICAgIH0sXG4gICAgfSksXG5cbiAgICBcIiZbZGlzYWJsZWRdLCAmOmFjdGl2ZVwiOiB7XG4gICAgICBvdXRsaW5lOiBcIm5vbmVcIixcbiAgICB9LFxuXG4gICAgXCImOmZvY3VzXCI6IHtcbiAgICAgIG91dGxpbmU6IFwibm9uZVwiLFxuICAgIH0sXG5cbiAgICBcIiY6Zm9jdXMtdmlzaWJsZVwiOiB7XG4gICAgICAuLi5vdXRsaW5lU3R5bGVzLFxuICAgIH0sXG5cbiAgICAvLyBjdXJzb3JcbiAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgIC4uLihkaXNhYmxlZCAmJiB7XG4gICAgICBjdXJzb3I6IFwibm90LWFsbG93ZWRcIixcbiAgICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuc2Vjb25kYXJ5XzYwLFxuICAgIH0pLFxuICB9KVxuKTtcbiJdfQ== */");
37
- const StyledLabel = /* @__PURE__ */ _styled(HvTypography, process.env.NODE_ENV === "production" ? {
38
- target: "e86r8k00"
39
- } : {
40
- target: "e86r8k00",
41
- label: "StyledLabel"
42
- })(({
43
- disabled
44
- }) => ({
45
- width: "100%",
46
- display: "flex",
47
- justifyContent: "flex-start",
48
- alignItems: "center",
49
- height: "32px",
50
- ...!disabled && {
51
- "&:hover": {
52
- background: theme.colors.atmo3
16
+ },
17
+ container: {
18
+ paddingTop: 8,
19
+ height: "auto"
20
+ },
21
+ label: {
22
+ width: "100%",
23
+ display: "flex",
24
+ justifyContent: "flex-start",
25
+ alignItems: "center",
26
+ height: "32px",
27
+ "&[disabled], &:active": {
28
+ outline: "none"
53
29
  },
54
30
  "&:focus": {
31
+ outline: "none",
55
32
  background: theme.colors.atmo3
56
- }
57
- },
58
- "&[disabled], &:active": {
59
- outline: "none"
60
- },
61
- "&:focus": {
62
- outline: "none"
63
- },
64
- "&:focus-visible": {
65
- ...outlineStyles
33
+ },
34
+ "&:hover": {
35
+ background: theme.colors.atmo3
36
+ },
37
+ "&:focus-visible": {
38
+ ...outlineStyles
39
+ },
40
+ cursor: "pointer"
66
41
  },
67
- // cursor
68
- cursor: "pointer",
69
- ...disabled && {
42
+ disabled: {
70
43
  cursor: "not-allowed",
71
- color: theme.colors.secondary_60
44
+ color: theme.colors.secondary_60,
45
+ "&:focus": {
46
+ background: "none"
47
+ },
48
+ "&:hover": {
49
+ background: "none"
50
+ }
72
51
  }
73
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvQWNjb3JkaW9uL0FjY29yZGlvbi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVCMkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9BY2NvcmRpb24vQWNjb3JkaW9uLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCB7IEh2VHlwb2dyYXBoeSB9IGZyb20gXCJAY29yZS9jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBvdXRsaW5lU3R5bGVzIH0gZnJvbSBcIkBjb3JlL3V0aWxzXCI7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRSb290ID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgXCImICsgcm9vdFwiOiB7XG4gICAgcGFkZGluZ1RvcDogOCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFwiZGl2XCIpKFxuICAoeyBoaWRkZW4gfTogeyBoaWRkZW46IGJvb2xlYW4gfSkgPT4gKHtcbiAgICBwYWRkaW5nVG9wOiA4LFxuICAgIGhlaWdodDogXCJhdXRvXCIsXG5cbiAgICAuLi4oaGlkZGVuICYmIHtcbiAgICAgIGhlaWdodDogMCxcbiAgICAgIGRpc3BsYXk6IFwibm9uZVwiLFxuICAgIH0pLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZExhYmVsID0gc3R5bGVkKEh2VHlwb2dyYXBoeSkoXG4gICh7IGRpc2FibGVkIH06IHsgZGlzYWJsZWQ/OiBib29sZWFuIH0pID0+ICh7XG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIGp1c3RpZnlDb250ZW50OiBcImZsZXgtc3RhcnRcIixcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgIGhlaWdodDogXCIzMnB4XCIsXG5cbiAgICAuLi4oIWRpc2FibGVkICYmIHtcbiAgICAgIFwiJjpob3ZlclwiOiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRoZW1lLmNvbG9ycy5hdG1vMyxcbiAgICAgIH0sXG4gICAgICBcIiY6Zm9jdXNcIjoge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0aGVtZS5jb2xvcnMuYXRtbzMsXG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgXCImW2Rpc2FibGVkXSwgJjphY3RpdmVcIjoge1xuICAgICAgb3V0bGluZTogXCJub25lXCIsXG4gICAgfSxcblxuICAgIFwiJjpmb2N1c1wiOiB7XG4gICAgICBvdXRsaW5lOiBcIm5vbmVcIixcbiAgICB9LFxuXG4gICAgXCImOmZvY3VzLXZpc2libGVcIjoge1xuICAgICAgLi4ub3V0bGluZVN0eWxlcyxcbiAgICB9LFxuXG4gICAgLy8gY3Vyc29yXG4gICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAuLi4oZGlzYWJsZWQgJiYge1xuICAgICAgY3Vyc29yOiBcIm5vdC1hbGxvd2VkXCIsXG4gICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnNlY29uZGFyeV82MCxcbiAgICB9KSxcbiAgfSlcbik7XG4iXX0= */");
52
+ });
74
53
  export {
75
- StyledContainer,
76
- StyledLabel,
77
- StyledRoot
54
+ staticClasses,
55
+ useClasses
78
56
  };
79
57
  //# sourceMappingURL=Accordion.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.styles.js","sources":["../../../../src/components/Accordion/Accordion.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { HvTypography } from \"@core/components\";\nimport { outlineStyles } from \"@core/utils\";\n\nexport const StyledRoot = styled(\"div\")({\n \"& + root\": {\n paddingTop: 8,\n },\n});\n\nexport const StyledContainer = styled(\"div\")(\n ({ hidden }: { hidden: boolean }) => ({\n paddingTop: 8,\n height: \"auto\",\n\n ...(hidden && {\n height: 0,\n display: \"none\",\n }),\n })\n);\n\nexport const StyledLabel = styled(HvTypography)(\n ({ disabled }: { disabled?: boolean }) => ({\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"32px\",\n\n ...(!disabled && {\n \"&:hover\": {\n background: theme.colors.atmo3,\n },\n \"&:focus\": {\n background: theme.colors.atmo3,\n },\n }),\n\n \"&[disabled], &:active\": {\n outline: \"none\",\n },\n\n \"&:focus\": {\n outline: \"none\",\n },\n\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n\n // cursor\n cursor: \"pointer\",\n ...(disabled && {\n cursor: \"not-allowed\",\n color: theme.colors.secondary_60,\n }),\n })\n);\n"],"names":["StyledRoot","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","StyledContainer","hidden","paddingTop","height","display","StyledLabel","HvTypography","disabled","width","justifyContent","alignItems","background","theme","colors","atmo3","outline","outlineStyles","cursor","color","secondary_60"],"mappings":";;;;;;;AAKO,MAAMA,aAAoB,wBAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAACJ,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAG,MAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAD,MAAA;AAAA,EAAAC,QAAA;AAAA,EAAAC,KAAA;AAAA,EAAAC,UAAAC;AAAA,CAItC;AAEM,MAAMC,kBAAyB,wBAAA,OAAKV,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EACzC,CAAC;AAAA,EAAEO;AAA4B,OAAO;AAAA,EACpCC,YAAY;AAAA,EACZC,QAAQ;AAAA,EAER,GAAIF,UAAU;AAAA,IACZE,QAAQ;AAAA,IACRC,SAAS;AAAA,EACX;AACF,IAAEd,QAAAC,IAAAC,0qEACJ;AAEO,MAAMa,cAAqBC,wBAAAA,cAAYhB,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAC5C,CAAC;AAAA,EAAEa;AAAiC,OAAO;AAAA,EACzCC,OAAO;AAAA,EACPJ,SAAS;AAAA,EACTK,gBAAgB;AAAA,EAChBC,YAAY;AAAA,EACZP,QAAQ;AAAA,EAER,GAAI,CAACI,YAAY;AAAA,IACf,WAAW;AAAA,MACTI,YAAYC,MAAMC,OAAOC;AAAAA,IAC3B;AAAA,IACA,WAAW;AAAA,MACTH,YAAYC,MAAMC,OAAOC;AAAAA,IAC3B;AAAA,EACF;AAAA,EAEA,yBAAyB;AAAA,IACvBC,SAAS;AAAA,EACX;AAAA,EAEA,WAAW;AAAA,IACTA,SAAS;AAAA,EACX;AAAA,EAEA,mBAAmB;AAAA,IACjB,GAAGC;AAAAA,EACL;AAAA;AAAA,EAGAC,QAAQ;AAAA,EACR,GAAIV,YAAY;AAAA,IACdU,QAAQ;AAAA,IACRC,OAAON,MAAMC,OAAOM;AAAAA,EACtB;AACF,IAAE7B,QAAAC,IAAAC,0qEACJ;"}
1
+ {"version":3,"file":"Accordion.styles.js","sources":["../../../../src/components/Accordion/Accordion.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\nimport { createClasses, outlineStyles } from \"@core/utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvAccordion\", {\n root: {\n \"& + root\": {\n paddingTop: 8,\n },\n },\n hidden: { height: 0, display: \"none\" },\n container: { paddingTop: 8, height: \"auto\" },\n label: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"32px\",\n\n \"&[disabled], &:active\": {\n outline: \"none\",\n },\n\n \"&:focus\": {\n outline: \"none\",\n background: theme.colors.atmo3,\n },\n\n \"&:hover\": {\n background: theme.colors.atmo3,\n },\n\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n\n cursor: \"pointer\",\n },\n disabled: {\n cursor: \"not-allowed\",\n color: theme.colors.secondary_60,\n\n \"&:focus\": {\n background: \"none\",\n },\n\n \"&:hover\": {\n background: \"none\",\n },\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","paddingTop","hidden","height","display","container","label","width","justifyContent","alignItems","outline","background","theme","colors","atmo3","outlineStyles","cursor","disabled","color","secondary_60"],"mappings":";;;AAGa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,eAAe;AAAA,EACxEC,MAAM;AAAA,IACJ,YAAY;AAAA,MACVC,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACAC,QAAQ;AAAA,IAAEC,QAAQ;AAAA,IAAGC,SAAS;AAAA,EAAO;AAAA,EACrCC,WAAW;AAAA,IAAEJ,YAAY;AAAA,IAAGE,QAAQ;AAAA,EAAO;AAAA,EAC3CG,OAAO;AAAA,IACLC,OAAO;AAAA,IACPH,SAAS;AAAA,IACTI,gBAAgB;AAAA,IAChBC,YAAY;AAAA,IACZN,QAAQ;AAAA,IAER,yBAAyB;AAAA,MACvBO,SAAS;AAAA,IACX;AAAA,IAEA,WAAW;AAAA,MACTA,SAAS;AAAA,MACTC,YAAYC,MAAMC,OAAOC;AAAAA,IAC3B;AAAA,IAEA,WAAW;AAAA,MACTH,YAAYC,MAAMC,OAAOC;AAAAA,IAC3B;AAAA,IAEA,mBAAmB;AAAA,MACjB,GAAGC;AAAAA,IACL;AAAA,IAEAC,QAAQ;AAAA,EACV;AAAA,EACAC,UAAU;AAAA,IACRD,QAAQ;AAAA,IACRE,OAAON,MAAMC,OAAOM;AAAAA,IAEpB,WAAW;AAAA,MACTR,YAAY;AAAA,IACd;AAAA,IAEA,WAAW;AAAA,MACTA,YAAY;AAAA,IACd;AAAA,EACF;AACF,CAAC;"}
@@ -1,16 +1,17 @@
1
- import { clsx } from "clsx";
2
1
  import { isValidElement } from "react";
3
2
  import { MoreOptionsVertical } from "@hitachivantara/uikit-react-icons";
4
3
  import { theme } from "@hitachivantara/uikit-styles";
5
- import { StyledRoot, StyledButton } from "./ActionsGeneric.styles.js";
6
- import actionsGenericClasses from "./actionsGenericClasses.js";
4
+ import fade from "../../utils/hexToRgbA.js";
5
+ import { useClasses } from "./ActionsGeneric.styles.js";
6
+ import { staticClasses } from "./ActionsGeneric.styles.js";
7
7
  import { jsx, jsxs, Fragment } from "@emotion/react/jsx-runtime";
8
8
  import { HvDropDownMenu } from "../DropDownMenu/DropDownMenu.js";
9
9
  import { useTheme } from "../../hooks/useTheme.js";
10
10
  import { setId } from "../../utils/setId.js";
11
+ import { HvButton } from "../Button/Button.js";
11
12
  const HvActionsGeneric = ({
12
13
  id,
13
- classes,
14
+ classes: classesProp,
14
15
  className,
15
16
  category = "secondaryGhost",
16
17
  disabled = false,
@@ -19,6 +20,11 @@ const HvActionsGeneric = ({
19
20
  maxVisibleActions = Infinity,
20
21
  ...others
21
22
  }) => {
23
+ const {
24
+ classes,
25
+ cx,
26
+ css
27
+ } = useClasses(classesProp);
22
28
  const {
23
29
  activeTheme,
24
30
  selectedMode
@@ -38,14 +44,17 @@ const HvActionsGeneric = ({
38
44
  const renderedIcon = isValidElement(icon) ? icon : icon == null ? void 0 : icon({
39
45
  isDisabled: disabled
40
46
  });
41
- return /* @__PURE__ */ jsx(StyledButton, {
47
+ return /* @__PURE__ */ jsx(HvButton, {
42
48
  id: actionId,
43
49
  variant: category,
44
- className: clsx(actionsGenericClasses.button, classes == null ? void 0 : classes.button),
50
+ className: cx(css({
51
+ "&:hover": {
52
+ backgroundColor: fade(((_a = activeTheme == null ? void 0 : activeTheme.colors) == null ? void 0 : _a.modes[selectedMode].base_light) || theme.colors.base_light, 0.3)
53
+ }
54
+ }), classes.button),
45
55
  disabled: actDisabled ?? disabled,
46
56
  onClick: (event) => actionsCallback == null ? void 0 : actionsCallback(event, id || "", action),
47
57
  startIcon: renderedIcon,
48
- $baseColor: ((_a = activeTheme == null ? void 0 : activeTheme.colors) == null ? void 0 : _a.modes[selectedMode].base_light) || theme.colors.base_light,
49
58
  ...other,
50
59
  children: label
51
60
  }, actionId || idx);
@@ -61,9 +70,9 @@ const HvActionsGeneric = ({
61
70
  disabled,
62
71
  category,
63
72
  classes: {
64
- root: clsx(actionsGenericClasses.dropDownMenu, classes == null ? void 0 : classes.dropDownMenu),
65
- icon: clsx(actionsGenericClasses.dropDownMenuButton, classes == null ? void 0 : classes.dropDownMenuButton),
66
- iconSelected: clsx(actionsGenericClasses.dropDownMenuButtonSelected, classes == null ? void 0 : classes.dropDownMenuButtonSelected)
73
+ root: classes.dropDownMenu,
74
+ icon: classes.dropDownMenuButton,
75
+ iconSelected: classes.dropDownMenuButtonSelected
67
76
  },
68
77
  icon: /* @__PURE__ */ jsx(MoreOptionsVertical, {
69
78
  color: iconColor
@@ -77,14 +86,16 @@ const HvActionsGeneric = ({
77
86
  });
78
87
  };
79
88
  const actionOverflow = actions.length > maxVisibleActions;
80
- return /* @__PURE__ */ jsx(StyledRoot, {
81
- className: clsx(className, actionsGenericClasses.root, classes == null ? void 0 : classes.root, actionOverflow && clsx(actionsGenericClasses.actionContainer, classes == null ? void 0 : classes.actionContainer)),
82
- $actionOverflow: actionOverflow,
89
+ return /* @__PURE__ */ jsx("div", {
90
+ className: cx(classes.root, {
91
+ [classes.actionContainer]: actionOverflow
92
+ }, className),
83
93
  ...others,
84
94
  children: actionOverflow ? renderActionsGrid() : actions.map((action, idx) => renderButton(action, idx))
85
95
  });
86
96
  };
87
97
  export {
88
- HvActionsGeneric
98
+ HvActionsGeneric,
99
+ staticClasses as actionsGenericClasses
89
100
  };
90
101
  //# sourceMappingURL=ActionsGeneric.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsGeneric.js","sources":["../../../../src/components/ActionsGeneric/ActionsGeneric.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { HvButtonVariant, HvDropDownMenu } from \"@core/components\";\nimport { setId } from \"@core/utils\";\nimport React, { isValidElement } from \"react\";\nimport { HvBaseProps } from \"@core/types\";\nimport { MoreOptionsVertical } from \"@hitachivantara/uikit-react-icons\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { useTheme } from \"@core/hooks\";\nimport { StyledButton, StyledRoot } from \"./ActionsGeneric.styles\";\nimport actionsGenericClasses, {\n HvActionsGenericClasses,\n} from \"./actionsGenericClasses\";\n\nexport interface HvActionGeneric {\n id: string;\n label: string;\n icon?:\n | React.ReactNode\n | ((params: { isDisabled?: boolean }) => React.ReactNode);\n disabled?: boolean;\n}\n\nexport interface HvActionsGenericProps extends HvBaseProps {\n /** Button category. */\n category?: HvButtonVariant;\n /** Whether actions should be all disabled */\n disabled?: boolean;\n /** The renderable content inside the actions slot of the footer, or an Array of actions `{id, label, icon, disabled}` */\n actions: React.ReactNode | HvActionGeneric[];\n /** The callback function ran when an action is triggered, receiving `action` as param */\n actionsCallback?: (\n event: React.SyntheticEvent,\n id: string,\n action: HvActionGeneric\n ) => void;\n /** The number of maximum visible actions before they're collapsed into a `DropDownMenu`. */\n maxVisibleActions?: number;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvActionsGenericClasses;\n}\n\nexport const HvActionsGeneric = ({\n id,\n classes,\n className,\n category = \"secondaryGhost\",\n disabled = false,\n actions = [],\n actionsCallback,\n maxVisibleActions = Infinity,\n ...others\n}: HvActionsGenericProps) => {\n const { activeTheme, selectedMode } = useTheme();\n\n if (!Array.isArray(actions)) return isValidElement(actions) ? actions : null;\n\n const renderButton = (action: HvActionGeneric, idx: number) => {\n const { disabled: actDisabled, id: actId, icon, label, ...other } = action;\n const actionId = setId(id, idx, \"action\", action.id);\n\n const renderedIcon = isValidElement(icon)\n ? icon\n : (icon as Function)?.({ isDisabled: disabled });\n\n return (\n <StyledButton\n id={actionId}\n key={actionId || idx}\n variant={category}\n className={clsx(actionsGenericClasses.button, classes?.button)}\n disabled={actDisabled ?? disabled}\n onClick={(event) => actionsCallback?.(event, id || \"\", action)}\n startIcon={renderedIcon}\n $baseColor={\n activeTheme?.colors?.modes[selectedMode].base_light ||\n theme.colors.base_light\n }\n {...other}\n >\n {label}\n </StyledButton>\n );\n };\n\n const renderActionsGrid = () => {\n const actsVisible = actions.slice(0, maxVisibleActions);\n const actsDropdown = actions.slice(maxVisibleActions);\n\n const semantic = category === \"semantic\";\n const iconColor =\n (disabled && \"secondary_60\") || (semantic && \"base_dark\") || undefined;\n\n return (\n <>\n {actsVisible.map((action, idx) => renderButton(action, idx))}\n <HvDropDownMenu\n id={setId(id, \"menu\")}\n disabled={disabled}\n category={category}\n classes={{\n root: clsx(\n actionsGenericClasses.dropDownMenu,\n classes?.dropDownMenu\n ),\n icon: clsx(\n actionsGenericClasses.dropDownMenuButton,\n classes?.dropDownMenuButton\n ),\n iconSelected: clsx(\n actionsGenericClasses.dropDownMenuButtonSelected,\n classes?.dropDownMenuButtonSelected\n ),\n }}\n icon={<MoreOptionsVertical color={iconColor} />}\n placement=\"left\"\n onClick={(event, action) =>\n actionsCallback?.(event, id || \"\", action as HvActionGeneric)\n }\n dataList={actsDropdown}\n keepOpened={false}\n disablePortal={false}\n />\n </>\n );\n };\n\n const actionOverflow = actions.length > maxVisibleActions;\n\n return (\n <StyledRoot\n className={clsx(\n className,\n actionsGenericClasses.root,\n classes?.root,\n actionOverflow &&\n clsx(actionsGenericClasses.actionContainer, classes?.actionContainer)\n )}\n $actionOverflow={actionOverflow}\n {...others}\n >\n {actionOverflow\n ? renderActionsGrid()\n : actions.map((action, idx) => renderButton(action, idx))}\n </StyledRoot>\n );\n};\n"],"names":["HvActionsGeneric","id","classes","className","category","disabled","actions","actionsCallback","maxVisibleActions","Infinity","others","activeTheme","selectedMode","useTheme","Array","isArray","isValidElement","renderButton","action","idx","actDisabled","actId","icon","label","other","actionId","setId","renderedIcon","isDisabled","StyledButton","variant","clsx","actionsGenericClasses","button","onClick","event","startIcon","$baseColor","colors","modes","base_light","theme","children","renderActionsGrid","actsVisible","slice","actsDropdown","semantic","iconColor","undefined","_Fragment","map","HvDropDownMenu","root","dropDownMenu","dropDownMenuButton","iconSelected","dropDownMenuButtonSelected","MoreOptionsVertical","color","placement","dataList","keepOpened","disablePortal","actionOverflow","length","StyledRoot","actionContainer","$actionOverflow"],"mappings":"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"}
1
+ {"version":3,"file":"ActionsGeneric.js","sources":["../../../../src/components/ActionsGeneric/ActionsGeneric.tsx"],"sourcesContent":["import React, { isValidElement } from \"react\";\n\nimport { MoreOptionsVertical } from \"@hitachivantara/uikit-react-icons\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport fade from \"@core/utils/hexToRgbA\";\nimport { HvButton, HvButtonVariant, HvDropDownMenu } from \"@core/components\";\nimport { ExtractNames, setId } from \"@core/utils\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useTheme } from \"@core/hooks\";\n\nimport { staticClasses, useClasses } from \"./ActionsGeneric.styles\";\n\nexport { staticClasses as actionsGenericClasses };\n\nexport type HvActionsGenericClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvActionGeneric {\n id: string;\n label: string;\n icon?:\n | React.ReactNode\n | ((params: { isDisabled?: boolean }) => React.ReactNode);\n disabled?: boolean;\n}\n\nexport interface HvActionsGenericProps extends HvBaseProps {\n /** Button category. */\n category?: HvButtonVariant;\n /** Whether actions should be all disabled */\n disabled?: boolean;\n /** The renderable content inside the actions slot of the footer, or an Array of actions `{id, label, icon, disabled}` */\n actions: React.ReactNode | HvActionGeneric[];\n /** The callback function ran when an action is triggered, receiving `action` as param */\n actionsCallback?: (\n event: React.SyntheticEvent,\n id: string,\n action: HvActionGeneric\n ) => void;\n /** The number of maximum visible actions before they're collapsed into a `DropDownMenu`. */\n maxVisibleActions?: number;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvActionsGenericClasses;\n}\n\nexport const HvActionsGeneric = ({\n id,\n classes: classesProp,\n className,\n category = \"secondaryGhost\",\n disabled = false,\n actions = [],\n actionsCallback,\n maxVisibleActions = Infinity,\n ...others\n}: HvActionsGenericProps) => {\n const { classes, cx, css } = useClasses(classesProp);\n\n const { activeTheme, selectedMode } = useTheme();\n\n if (!Array.isArray(actions)) return isValidElement(actions) ? actions : null;\n\n const renderButton = (action: HvActionGeneric, idx: number) => {\n const { disabled: actDisabled, id: actId, icon, label, ...other } = action;\n const actionId = setId(id, idx, \"action\", action.id);\n\n const renderedIcon = isValidElement(icon)\n ? icon\n : (icon as Function)?.({ isDisabled: disabled });\n\n return (\n <HvButton\n id={actionId}\n key={actionId || idx}\n variant={category}\n className={cx(\n css({\n \"&:hover\": {\n backgroundColor: fade(\n activeTheme?.colors?.modes[selectedMode].base_light ||\n theme.colors.base_light,\n 0.3\n ),\n },\n }),\n classes.button\n )}\n disabled={actDisabled ?? disabled}\n onClick={(event) => actionsCallback?.(event, id || \"\", action)}\n startIcon={renderedIcon}\n {...other}\n >\n {label}\n </HvButton>\n );\n };\n\n const renderActionsGrid = () => {\n const actsVisible = actions.slice(0, maxVisibleActions);\n const actsDropdown = actions.slice(maxVisibleActions);\n\n const semantic = category === \"semantic\";\n const iconColor =\n (disabled && \"secondary_60\") || (semantic && \"base_dark\") || undefined;\n\n return (\n <>\n {actsVisible.map((action, idx) => renderButton(action, idx))}\n <HvDropDownMenu\n id={setId(id, \"menu\")}\n disabled={disabled}\n category={category}\n classes={{\n root: classes.dropDownMenu,\n icon: classes.dropDownMenuButton,\n iconSelected: classes.dropDownMenuButtonSelected,\n }}\n icon={<MoreOptionsVertical color={iconColor} />}\n placement=\"left\"\n onClick={(event, action) =>\n actionsCallback?.(event, id || \"\", action as HvActionGeneric)\n }\n dataList={actsDropdown}\n keepOpened={false}\n disablePortal={false}\n />\n </>\n );\n };\n\n const actionOverflow = actions.length > maxVisibleActions;\n\n return (\n <div\n className={cx(\n classes.root,\n { [classes.actionContainer]: actionOverflow },\n className\n )}\n {...others}\n >\n {actionOverflow\n ? renderActionsGrid()\n : actions.map((action, idx) => renderButton(action, idx))}\n </div>\n );\n};\n"],"names":["HvActionsGeneric","id","classes","classesProp","className","category","disabled","actions","actionsCallback","maxVisibleActions","Infinity","others","cx","css","useClasses","activeTheme","selectedMode","useTheme","Array","isArray","isValidElement","renderButton","action","idx","actDisabled","actId","icon","label","other","actionId","setId","renderedIcon","isDisabled","HvButton","variant","backgroundColor","fade","colors","modes","base_light","theme","button","onClick","event","startIcon","children","renderActionsGrid","actsVisible","slice","actsDropdown","semantic","iconColor","undefined","_Fragment","map","HvDropDownMenu","root","dropDownMenu","dropDownMenuButton","iconSelected","dropDownMenuButtonSelected","MoreOptionsVertical","color","placement","dataList","keepOpened","disablePortal","actionOverflow","length","actionContainer"],"mappings":"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"}
@@ -1,60 +1,26 @@
1
- import _styled from "@emotion/styled/base";
2
- import { transientOptions } from "../../utils/transientOptions.js";
3
1
  import { theme } from "@hitachivantara/uikit-styles";
4
- import fade from "../../utils/hexToRgbA.js";
5
- import { forwardRef } from "react";
6
- import { jsx } from "@emotion/react/jsx-runtime";
7
- import { HvButton } from "../Button/Button.js";
8
- function _extends() {
9
- _extends = Object.assign ? Object.assign.bind() : function(target) {
10
- for (var i = 1; i < arguments.length; i++) {
11
- var source = arguments[i];
12
- for (var key in source) {
13
- if (Object.prototype.hasOwnProperty.call(source, key)) {
14
- target[key] = source[key];
15
- }
16
- }
2
+ import { createClasses } from "../../utils/classes.js";
3
+ const {
4
+ staticClasses,
5
+ useClasses
6
+ } = createClasses("HvActionsGeneric", {
7
+ root: {},
8
+ button: {
9
+ "&:not(:last-child)": {
10
+ marginRight: theme.space.xs
17
11
  }
18
- return target;
19
- };
20
- return _extends.apply(this, arguments);
21
- }
22
- const StyledRoot = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? _extends({}, {
23
- target: "e4fkrgz1"
24
- }, transientOptions) : _extends({}, {
25
- target: "e4fkrgz1",
26
- label: "StyledRoot"
27
- }, transientOptions))(({
28
- $actionOverflow
29
- }) => ({
30
- ...$actionOverflow && {
12
+ },
13
+ actionContainer: {
31
14
  display: "flex",
32
15
  alignItems: "center",
33
16
  float: "right"
34
- }
35
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvQWN0aW9uc0dlbmVyaWMvQWN0aW9uc0dlbmVyaWMuc3R5bGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRMEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9BY3Rpb25zR2VuZXJpYy9BY3Rpb25zR2VuZXJpYy5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBIdkJ1dHRvbiwgSHZCdXR0b25Qcm9wcyB9IGZyb20gXCJAY29yZS9jb21wb25lbnRzXCI7XG5pbXBvcnQgeyB0cmFuc2llbnRPcHRpb25zIH0gZnJvbSBcIkBjb3JlL3V0aWxzL3RyYW5zaWVudE9wdGlvbnNcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCBmYWRlIGZyb20gXCJAY29yZS91dGlscy9oZXhUb1JnYkFcIjtcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFBvbHltb3JwaGljUmVmIH0gZnJvbSBcIkBjb3JlL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRSb290ID0gc3R5bGVkKFxuICBcImRpdlwiLFxuICB0cmFuc2llbnRPcHRpb25zXG4pKCh7ICRhY3Rpb25PdmVyZmxvdyB9OiB7ICRhY3Rpb25PdmVyZmxvdzogYm9vbGVhbiB9KSA9PiAoe1xuICAuLi4oJGFjdGlvbk92ZXJmbG93ICYmIHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgIGZsb2F0OiBcInJpZ2h0XCIsXG4gIH0pLFxufSkpO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQnV0dG9uID0gc3R5bGVkKFxuICBmb3J3YXJkUmVmKChwcm9wczogSHZCdXR0b25Qcm9wcywgcmVmPzogUG9seW1vcnBoaWNSZWY8XCJidXR0b25cIj4pID0+IHtcbiAgICByZXR1cm4gPEh2QnV0dG9uIHsuLi5wcm9wc30gcmVmPXtyZWZ9IC8+O1xuICB9KVxuKSgoeyAkYmFzZUNvbG9yIH06IHsgJGJhc2VDb2xvcjogc3RyaW5nIH0pID0+ICh7XG4gIFwiJjpub3QoOmxhc3QtY2hpbGQpXCI6IHtcbiAgICBtYXJnaW5SaWdodDogdGhlbWUuc3BhY2UueHMsXG4gIH0sXG4gIFwiJjpob3ZlclwiOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBmYWRlKCRiYXNlQ29sb3IsIDAuMyksXG4gIH0sXG59KSk7XG4iXX0= */");
36
- const StyledButton = /* @__PURE__ */ _styled(forwardRef((props, ref) => {
37
- return /* @__PURE__ */ jsx(HvButton, {
38
- ...props,
39
- ref
40
- });
41
- }), process.env.NODE_ENV === "production" ? {
42
- target: "e4fkrgz0"
43
- } : {
44
- target: "e4fkrgz0",
45
- label: "StyledButton"
46
- })(({
47
- $baseColor
48
- }) => ({
49
- "&:not(:last-child)": {
50
- marginRight: theme.space.xs
51
17
  },
52
- "&:hover": {
53
- backgroundColor: fade($baseColor, 0.3)
54
- }
55
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvQWN0aW9uc0dlbmVyaWMvQWN0aW9uc0dlbmVyaWMuc3R5bGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQjRCIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvQWN0aW9uc0dlbmVyaWMvQWN0aW9uc0dlbmVyaWMuc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgSHZCdXR0b24sIEh2QnV0dG9uUHJvcHMgfSBmcm9tIFwiQGNvcmUvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgdHJhbnNpZW50T3B0aW9ucyB9IGZyb20gXCJAY29yZS91dGlscy90cmFuc2llbnRPcHRpb25zXCI7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5pbXBvcnQgZmFkZSBmcm9tIFwiQGNvcmUvdXRpbHMvaGV4VG9SZ2JBXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBQb2x5bW9ycGhpY1JlZiB9IGZyb20gXCJAY29yZS90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkUm9vdCA9IHN0eWxlZChcbiAgXCJkaXZcIixcbiAgdHJhbnNpZW50T3B0aW9uc1xuKSgoeyAkYWN0aW9uT3ZlcmZsb3cgfTogeyAkYWN0aW9uT3ZlcmZsb3c6IGJvb2xlYW4gfSkgPT4gKHtcbiAgLi4uKCRhY3Rpb25PdmVyZmxvdyAmJiB7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICBmbG9hdDogXCJyaWdodFwiLFxuICB9KSxcbn0pKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEJ1dHRvbiA9IHN0eWxlZChcbiAgZm9yd2FyZFJlZigocHJvcHM6IEh2QnV0dG9uUHJvcHMsIHJlZj86IFBvbHltb3JwaGljUmVmPFwiYnV0dG9uXCI+KSA9PiB7XG4gICAgcmV0dXJuIDxIdkJ1dHRvbiB7Li4ucHJvcHN9IHJlZj17cmVmfSAvPjtcbiAgfSlcbikoKHsgJGJhc2VDb2xvciB9OiB7ICRiYXNlQ29sb3I6IHN0cmluZyB9KSA9PiAoe1xuICBcIiY6bm90KDpsYXN0LWNoaWxkKVwiOiB7XG4gICAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNlLnhzLFxuICB9LFxuICBcIiY6aG92ZXJcIjoge1xuICAgIGJhY2tncm91bmRDb2xvcjogZmFkZSgkYmFzZUNvbG9yLCAwLjMpLFxuICB9LFxufSkpO1xuIl19 */");
18
+ dropDownMenu: {},
19
+ dropDownMenuButton: {},
20
+ dropDownMenuButtonSelected: {}
21
+ });
56
22
  export {
57
- StyledButton,
58
- StyledRoot
23
+ staticClasses,
24
+ useClasses
59
25
  };
60
26
  //# sourceMappingURL=ActionsGeneric.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsGeneric.styles.js","sources":["../../../../src/components/ActionsGeneric/ActionsGeneric.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { HvButton, HvButtonProps } from \"@core/components\";\nimport { transientOptions } from \"@core/utils/transientOptions\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport fade from \"@core/utils/hexToRgbA\";\nimport { forwardRef } from \"react\";\nimport { PolymorphicRef } from \"@core/types\";\n\nexport const StyledRoot = styled(\n \"div\",\n transientOptions\n)(({ $actionOverflow }: { $actionOverflow: boolean }) => ({\n ...($actionOverflow && {\n display: \"flex\",\n alignItems: \"center\",\n float: \"right\",\n }),\n}));\n\nexport const StyledButton = styled(\n forwardRef((props: HvButtonProps, ref?: PolymorphicRef<\"button\">) => {\n return <HvButton {...props} ref={ref} />;\n })\n)(({ $baseColor }: { $baseColor: string }) => ({\n \"&:not(:last-child)\": {\n marginRight: theme.space.xs,\n },\n \"&:hover\": {\n backgroundColor: fade($baseColor, 0.3),\n },\n}));\n"],"names":["StyledRoot","process","env","NODE_ENV","_extends","target","transientOptions","label","$actionOverflow","display","alignItems","float","StyledButton","_styled","forwardRef","props","ref","HvButton","$baseColor","marginRight","theme","space","xs","backgroundColor","fade"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAQaA,MAAAA,qCACX,OAAKC,QAAAC,IAAAC,4BAAAC,SAAA,IAAA;AAAA,EAAAC,QAAA;AAAA,GACLC,gBAAgB,IAAAF,SAAA,IAAA;AAAA,EAAAC,QAAA;AAAA,EAAAE,OAAA;AAAA,GAAhBD,gBAAgB,CAClB,EAAE,CAAC;AAAA,EAAEE;AAA8C,OAAO;AAAA,EACxD,GAAIA,mBAAmB;AAAA,IACrBC,SAAS;AAAA,IACTC,YAAY;AAAA,IACZC,OAAO;AAAA,EACT;AACF,IAAEV,QAAAC,IAAAC,aAAC,eAAA,KAAA,qwDAAA;AAEI,MAAMS,eAAeC,wBAC1BC,WAAW,CAACC,OAAsBC,QAAmC;AACnE,6BAAQC,UAAQ;AAAA,IAAA,GAAKF;AAAAA,IAAOC;AAAAA,EAAAA,CAAW;AACzC,CAAC,GAACf,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAE,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAE,OAAA;AAAA,CACJ,EAAE,CAAC;AAAA,EAAEW;AAAmC,OAAO;AAAA,EAC7C,sBAAsB;AAAA,IACpBC,aAAaC,MAAMC,MAAMC;AAAAA,EAC3B;AAAA,EACA,WAAW;AAAA,IACTC,iBAAiBC,KAAKN,YAAY,GAAG;AAAA,EACvC;AACF,IAAEjB,QAAAC,IAAAC,aAAC,eAAA,KAAA,qwDAAA;"}
1
+ {"version":3,"file":"ActionsGeneric.styles.js","sources":["../../../../src/components/ActionsGeneric/ActionsGeneric.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvActionsGeneric\", {\n root: {},\n button: {\n \"&:not(:last-child)\": {\n marginRight: theme.space.xs,\n },\n },\n actionContainer: { display: \"flex\", alignItems: \"center\", float: \"right\" },\n dropDownMenu: {},\n dropDownMenuButton: {},\n dropDownMenuButtonSelected: {},\n});\n"],"names":["staticClasses","useClasses","createClasses","root","button","marginRight","theme","space","xs","actionContainer","display","alignItems","float","dropDownMenu","dropDownMenuButton","dropDownMenuButtonSelected"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,oBAAoB;AAAA,EAC7EC,MAAM,CAAC;AAAA,EACPC,QAAQ;AAAA,IACN,sBAAsB;AAAA,MACpBC,aAAaC,MAAMC,MAAMC;AAAAA,IAC3B;AAAA,EACF;AAAA,EACAC,iBAAiB;AAAA,IAAEC,SAAS;AAAA,IAAQC,YAAY;AAAA,IAAUC,OAAO;AAAA,EAAQ;AAAA,EACzEC,cAAc,CAAC;AAAA,EACfC,oBAAoB,CAAC;AAAA,EACrBC,4BAA4B,CAAC;AAC/B,CAAC;"}
@@ -1,24 +1,29 @@
1
1
  import { useState } from "react";
2
- import { clsx } from "clsx";
3
2
  import { theme } from "@hitachivantara/uikit-styles";
3
+ import { Info } from "@hitachivantara/uikit-react-icons";
4
4
  import TitleWithTooltip from "../TitleWithTooltip.js";
5
- import { StyledListItem, StyledTypography, StyledIcon, StyledIconInfo, StyledImg } from "./Action.styles.js";
6
- import appSwitcherActionClasses from "./actionClasses.js";
5
+ import { useClasses } from "./Action.styles.js";
6
+ import { staticClasses } from "./Action.styles.js";
7
7
  import { jsx, jsxs } from "@emotion/react/jsx-runtime";
8
8
  import useUniqueId from "../../../hooks/useUniqueId.js";
9
9
  import { HvAvatar } from "../../Avatar/Avatar.js";
10
- import { HvTooltip } from "../../Tooltip/Tooltip.js";
10
+ import { HvListItem } from "../../ListContainer/ListItem/ListItem.js";
11
11
  import { HvTypography } from "../../Typography/Typography.js";
12
+ import { HvTooltip } from "../../Tooltip/Tooltip.js";
12
13
  const getColor = (color, defaultColor) => theme.colors[color] || color || defaultColor;
13
14
  const HvAppSwitcherAction = ({
14
15
  id,
15
16
  className,
16
- classes,
17
+ classes: classesProp,
17
18
  application,
18
19
  onClickCallback = () => {
19
20
  },
20
21
  isSelectedCallback = () => false
21
22
  }) => {
23
+ const {
24
+ classes,
25
+ cx
26
+ } = useClasses(classesProp);
22
27
  const {
23
28
  name,
24
29
  description,
@@ -35,8 +40,8 @@ const HvAppSwitcherAction = ({
35
40
  return iconElement;
36
41
  }
37
42
  if (iconUrl && validIconUrl) {
38
- return /* @__PURE__ */ jsx(StyledImg, {
39
- className: clsx(appSwitcherActionClasses.iconUrl, classes == null ? void 0 : classes.iconUrl),
43
+ return /* @__PURE__ */ jsx("img", {
44
+ className: classes.iconUrl,
40
45
  src: iconUrl,
41
46
  onError: () => {
42
47
  setValidIconUrl(false);
@@ -67,31 +72,33 @@ const HvAppSwitcherAction = ({
67
72
  };
68
73
  const isLink = url != null;
69
74
  const descriptionElementId = useUniqueId(id, "hvAction-description");
70
- return /* @__PURE__ */ jsx(StyledListItem, {
75
+ return /* @__PURE__ */ jsx(HvListItem, {
71
76
  id,
72
77
  interactive: true,
73
78
  tabIndex: 0,
74
79
  selected: isSelected,
75
80
  disabled,
76
- className: clsx(className, appSwitcherActionClasses.root, classes == null ? void 0 : classes.root, disabled && clsx(appSwitcherActionClasses.disabled, classes == null ? void 0 : classes.disabled), isSelected && clsx(appSwitcherActionClasses.selected, classes == null ? void 0 : classes.selected)),
77
- children: /* @__PURE__ */ jsxs(StyledTypography, {
81
+ className: cx(classes.root, {
82
+ [classes.disabled]: disabled,
83
+ [classes.selected]: isSelected
84
+ }, className),
85
+ children: /* @__PURE__ */ jsxs(HvTypography, {
78
86
  component: isLink ? "a" : "button",
79
87
  href: isLink ? url : void 0,
80
88
  target: isLink ? target || "_top" : void 0,
81
- className: clsx(appSwitcherActionClasses.typography, classes == null ? void 0 : classes.typography),
89
+ className: classes.typography,
82
90
  onClick: handleOnClick,
83
91
  style: {
84
92
  borderColor: color
85
93
  },
86
94
  "aria-describedby": descriptionElementId,
87
95
  "aria-label": name,
88
- children: [/* @__PURE__ */ jsx(StyledIcon, {
89
- className: clsx(appSwitcherActionClasses.icon, classes == null ? void 0 : classes.icon),
96
+ children: [/* @__PURE__ */ jsx("div", {
97
+ className: classes.icon,
90
98
  children: renderApplicationIcon()
91
99
  }), /* @__PURE__ */ jsx(TitleWithTooltip, {
92
100
  title: name,
93
- className: clsx(appSwitcherActionClasses.title, classes == null ? void 0 : classes.title),
94
- type: "action"
101
+ className: classes.title
95
102
  }), description && /* @__PURE__ */ jsx(HvTooltip, {
96
103
  disableFocusListener: true,
97
104
  disableTouchListener: true,
@@ -99,8 +106,8 @@ const HvAppSwitcherAction = ({
99
106
  children: description
100
107
  }),
101
108
  children: /* @__PURE__ */ jsx("div", {
102
- children: /* @__PURE__ */ jsx(StyledIconInfo, {
103
- className: clsx(appSwitcherActionClasses.iconInfo, classes == null ? void 0 : classes.iconInfo),
109
+ children: /* @__PURE__ */ jsx(Info, {
110
+ className: classes.iconInfo,
104
111
  role: "img",
105
112
  "aria-label": description,
106
113
  id: descriptionElementId
@@ -111,6 +118,7 @@ const HvAppSwitcherAction = ({
111
118
  });
112
119
  };
113
120
  export {
114
- HvAppSwitcherAction
121
+ HvAppSwitcherAction,
122
+ staticClasses as appSwitcherActionClasses
115
123
  };
116
124
  //# sourceMappingURL=Action.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","sources":["../../../../../src/components/AppSwitcher/Action/Action.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { clsx } from \"clsx\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { HvAvatar, HvTooltip, HvTypography } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useUniqueId } from \"@core/hooks\";\nimport { HvAppSwitcherActionApplication } from \"../AppSwitcher\";\nimport TitleWithTooltip from \"../TitleWithTooltip\";\nimport {\n StyledIcon,\n StyledIconInfo,\n StyledListItem,\n StyledTypography,\n StyledImg,\n} from \"./Action.styles\";\nimport appSwitcherActionClasses, {\n HvAppSwitcherActionClasses,\n} from \"./actionClasses\";\n\nexport interface HvAppSwitcherActionProps extends HvBaseProps {\n /** The application data to be used to render the Action object. */\n application: HvAppSwitcherActionApplication;\n /** Callback triggered when the action is clicked. */\n onClickCallback?: (\n event: React.MouseEvent,\n application: HvAppSwitcherActionApplication\n ) => void;\n /** Must return a boolean stating if the action element is selected or not. */\n isSelectedCallback?: (application: HvAppSwitcherActionApplication) => boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvAppSwitcherActionClasses;\n}\n\nconst getColor = (color: any, defaultColor: string) =>\n theme.colors[color] || color || defaultColor;\n\nexport const HvAppSwitcherAction = ({\n id,\n className,\n classes,\n application,\n onClickCallback = () => {},\n isSelectedCallback = () => false,\n}: HvAppSwitcherActionProps) => {\n const { name, description, disabled, iconElement, iconUrl, url, target } =\n application;\n\n const color = disabled\n ? theme.colors.secondary_60\n : getColor(application?.color, theme.colors.secondary);\n\n const [validIconUrl, setValidIconUrl] = useState<boolean>(true);\n\n const renderApplicationIcon = () => {\n if (iconElement) {\n return iconElement;\n }\n\n if (iconUrl && validIconUrl) {\n return (\n <StyledImg\n className={clsx(appSwitcherActionClasses.iconUrl, classes?.iconUrl)}\n src={iconUrl}\n onError={() => {\n setValidIconUrl(false);\n }}\n alt={description}\n />\n );\n }\n\n const brokenTitle = name.split(\" \");\n const initials =\n brokenTitle[0].substring(0, 1) +\n (brokenTitle[1] ? brokenTitle[1].substring(0, 1) : \"\");\n\n return (\n <HvAvatar size=\"sm\" backgroundColor={color} variant=\"square\" aria-hidden>\n {initials}\n </HvAvatar>\n );\n };\n\n const isSelected = isSelectedCallback(application);\n\n /**\n * Handles the onClick event and triggers the appropriate callback if it exists.\n */\n const handleOnClick = (event: React.MouseEvent) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n onClickCallback?.(event, { ...application, isSelected });\n };\n\n const isLink = url != null;\n const descriptionElementId = useUniqueId(id, \"hvAction-description\");\n\n return (\n <StyledListItem\n id={id}\n interactive\n tabIndex={0}\n selected={isSelected}\n disabled={disabled}\n className={clsx(\n className,\n appSwitcherActionClasses.root,\n classes?.root,\n disabled && clsx(appSwitcherActionClasses.disabled, classes?.disabled),\n isSelected && clsx(appSwitcherActionClasses.selected, classes?.selected)\n )}\n >\n {/* As HvTooltip don't have the id prop, is not possible to use the aria-labelledby to reference it.\n In substitution is used the aria-label with the \"title\" value */}\n <StyledTypography\n component={isLink ? \"a\" : \"button\"}\n href={isLink ? url : undefined}\n target={isLink ? target || \"_top\" : undefined}\n className={clsx(\n appSwitcherActionClasses.typography,\n classes?.typography\n )}\n onClick={handleOnClick}\n style={{ borderColor: color }}\n aria-describedby={descriptionElementId}\n aria-label={name}\n >\n <StyledIcon\n className={clsx(appSwitcherActionClasses.icon, classes?.icon)}\n >\n {renderApplicationIcon()}\n </StyledIcon>\n\n <TitleWithTooltip\n title={name}\n className={clsx(appSwitcherActionClasses.title, classes?.title)}\n type=\"action\"\n />\n\n {description && (\n <HvTooltip\n disableFocusListener\n disableTouchListener\n title={<HvTypography>{description}</HvTypography>}\n >\n <div>\n <StyledIconInfo\n className={clsx(\n appSwitcherActionClasses.iconInfo,\n classes?.iconInfo\n )}\n role=\"img\"\n aria-label={description}\n id={descriptionElementId}\n />\n </div>\n </HvTooltip>\n )}\n </StyledTypography>\n </StyledListItem>\n );\n};\n"],"names":["getColor","color","defaultColor","theme","colors","HvAppSwitcherAction","id","className","classes","application","onClickCallback","isSelectedCallback","name","description","disabled","iconElement","iconUrl","url","target","secondary_60","secondary","validIconUrl","setValidIconUrl","useState","renderApplicationIcon","StyledImg","clsx","appSwitcherActionClasses","src","onError","alt","brokenTitle","split","initials","substring","HvAvatar","size","backgroundColor","variant","children","isSelected","handleOnClick","event","preventDefault","isLink","descriptionElementId","useUniqueId","StyledListItem","interactive","tabIndex","selected","root","StyledTypography","component","href","undefined","typography","onClick","style","borderColor","_jsx","StyledIcon","icon","TitleWithTooltip","title","type","HvTooltip","disableFocusListener","disableTouchListener","HvTypography","StyledIconInfo","iconInfo","role"],"mappings":"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"}
1
+ {"version":3,"file":"Action.js","sources":["../../../../../src/components/AppSwitcher/Action/Action.tsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport {\n HvAvatar,\n HvListItem,\n HvTooltip,\n HvTypography,\n} from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useUniqueId } from \"@core/hooks\";\nimport { ExtractNames } from \"@core/utils\";\n\nimport { HvAppSwitcherActionApplication } from \"../AppSwitcher\";\nimport TitleWithTooltip from \"../TitleWithTooltip\";\nimport { useClasses, staticClasses } from \"./Action.styles\";\n\nexport { staticClasses as appSwitcherActionClasses };\n\nexport type HvAppSwitcherActionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvAppSwitcherActionProps extends HvBaseProps {\n /** The application data to be used to render the Action object. */\n application: HvAppSwitcherActionApplication;\n /** Callback triggered when the action is clicked. */\n onClickCallback?: (\n event: React.MouseEvent,\n application: HvAppSwitcherActionApplication\n ) => void;\n /** Must return a boolean stating if the action element is selected or not. */\n isSelectedCallback?: (application: HvAppSwitcherActionApplication) => boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvAppSwitcherActionClasses;\n}\n\nconst getColor = (color: any, defaultColor: string) =>\n theme.colors[color] || color || defaultColor;\n\nexport const HvAppSwitcherAction = ({\n id,\n className,\n classes: classesProp,\n application,\n onClickCallback = () => {},\n isSelectedCallback = () => false,\n}: HvAppSwitcherActionProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n const { name, description, disabled, iconElement, iconUrl, url, target } =\n application;\n\n const color = disabled\n ? theme.colors.secondary_60\n : getColor(application?.color, theme.colors.secondary);\n\n const [validIconUrl, setValidIconUrl] = useState<boolean>(true);\n\n const renderApplicationIcon = () => {\n if (iconElement) {\n return iconElement;\n }\n\n if (iconUrl && validIconUrl) {\n return (\n <img\n className={classes.iconUrl}\n src={iconUrl}\n onError={() => {\n setValidIconUrl(false);\n }}\n alt={description}\n />\n );\n }\n\n const brokenTitle = name.split(\" \");\n const initials =\n brokenTitle[0].substring(0, 1) +\n (brokenTitle[1] ? brokenTitle[1].substring(0, 1) : \"\");\n\n return (\n <HvAvatar size=\"sm\" backgroundColor={color} variant=\"square\" aria-hidden>\n {initials}\n </HvAvatar>\n );\n };\n\n const isSelected = isSelectedCallback(application);\n\n /**\n * Handles the onClick event and triggers the appropriate callback if it exists.\n */\n const handleOnClick = (event: React.MouseEvent) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n onClickCallback?.(event, { ...application, isSelected });\n };\n\n const isLink = url != null;\n const descriptionElementId = useUniqueId(id, \"hvAction-description\");\n\n return (\n <HvListItem\n id={id}\n interactive\n tabIndex={0}\n selected={isSelected}\n disabled={disabled}\n className={cx(\n classes.root,\n { [classes.disabled]: disabled, [classes.selected]: isSelected },\n className\n )}\n >\n {/* As HvTooltip don't have the id prop, is not possible to use the aria-labelledby to reference it.\n In substitution is used the aria-label with the \"title\" value */}\n <HvTypography\n component={isLink ? \"a\" : \"button\"}\n href={isLink ? url : undefined}\n target={isLink ? target || \"_top\" : undefined}\n className={classes.typography}\n onClick={handleOnClick}\n style={{ borderColor: color }}\n aria-describedby={descriptionElementId}\n aria-label={name}\n >\n <div className={classes.icon}>{renderApplicationIcon()}</div>\n\n <TitleWithTooltip title={name} className={classes.title} />\n\n {description && (\n <HvTooltip\n disableFocusListener\n disableTouchListener\n title={<HvTypography>{description}</HvTypography>}\n >\n <div>\n <Info\n className={classes.iconInfo}\n role=\"img\"\n aria-label={description}\n id={descriptionElementId}\n />\n </div>\n </HvTooltip>\n )}\n </HvTypography>\n </HvListItem>\n );\n};\n"],"names":["getColor","color","defaultColor","theme","colors","HvAppSwitcherAction","id","className","classes","classesProp","application","onClickCallback","isSelectedCallback","cx","useClasses","name","description","disabled","iconElement","iconUrl","url","target","secondary_60","secondary","validIconUrl","setValidIconUrl","useState","renderApplicationIcon","src","onError","alt","brokenTitle","split","initials","substring","HvAvatar","size","backgroundColor","variant","children","isSelected","handleOnClick","event","preventDefault","isLink","descriptionElementId","useUniqueId","HvListItem","interactive","tabIndex","selected","root","HvTypography","component","href","undefined","typography","onClick","style","borderColor","_jsx","icon","TitleWithTooltip","title","HvTooltip","disableFocusListener","disableTouchListener","Info","iconInfo","role"],"mappings":"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"}