@hitachivantara/uikit-react-core 5.0.0-next.16 → 5.0.0-next.18

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 (179) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/AppSwitcher/Action/Action.cjs.map +1 -1
  3. package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs.map +1 -1
  4. package/dist/cjs/components/Banner/Banner.cjs +1 -1
  5. package/dist/cjs/components/Banner/Banner.cjs.map +1 -1
  6. package/dist/cjs/components/Banner/BannerContent/ActionContainer/ActionContainer.cjs.map +1 -1
  7. package/dist/cjs/components/Banner/BannerContent/BannerContent.cjs +1 -1
  8. package/dist/cjs/components/Banner/BannerContent/BannerContent.cjs.map +1 -1
  9. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs +1 -1
  10. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs +1 -1
  11. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
  12. package/dist/cjs/components/FileUploader/DropZone/DropZone.cjs +1 -1
  13. package/dist/cjs/components/FileUploader/DropZone/DropZone.cjs.map +1 -1
  14. package/dist/cjs/components/Forms/FormElement/FormElement.cjs.map +1 -1
  15. package/dist/cjs/components/Forms/Suggestions/Suggestions.cjs +2 -2
  16. package/dist/cjs/components/Forms/Suggestions/Suggestions.cjs.map +1 -1
  17. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  18. package/dist/cjs/components/List/List.cjs +4 -3
  19. package/dist/cjs/components/List/List.cjs.map +1 -1
  20. package/dist/cjs/components/List/utils.cjs +0 -10
  21. package/dist/cjs/components/List/utils.cjs.map +1 -1
  22. package/dist/cjs/components/Pagination/Pagination.cjs +4 -4
  23. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  24. package/dist/cjs/components/SelectionList/SelectionList.cjs.map +1 -1
  25. package/dist/cjs/components/Table/TableHeader/TableHeader.cjs +7 -10
  26. package/dist/cjs/components/Table/TableHeader/TableHeader.cjs.map +1 -1
  27. package/dist/cjs/components/Table/TableHeader/TableHeader.styles.cjs +4 -5
  28. package/dist/cjs/components/Table/TableHeader/TableHeader.styles.cjs.map +1 -1
  29. package/dist/cjs/components/Table/TableRow/TableRow.cjs +8 -1
  30. package/dist/cjs/components/Table/TableRow/TableRow.cjs.map +1 -1
  31. package/dist/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  32. package/dist/cjs/components/ToggleButton/ToggleButton.cjs +2 -2
  33. package/dist/cjs/components/ToggleButton/ToggleButton.cjs.map +1 -1
  34. package/dist/cjs/components/VerticalNavigation/Actions/Action.cjs +45 -0
  35. package/dist/cjs/components/VerticalNavigation/Actions/Action.cjs.map +1 -0
  36. package/dist/cjs/components/VerticalNavigation/Actions/Action.styles.cjs +51 -0
  37. package/dist/cjs/components/VerticalNavigation/Actions/Action.styles.cjs.map +1 -0
  38. package/dist/cjs/components/VerticalNavigation/Actions/Actions.cjs +30 -0
  39. package/dist/cjs/components/VerticalNavigation/Actions/Actions.cjs.map +1 -0
  40. package/dist/cjs/components/VerticalNavigation/Actions/Actions.styles.cjs +26 -0
  41. package/dist/cjs/components/VerticalNavigation/Actions/Actions.styles.cjs.map +1 -0
  42. package/dist/cjs/components/VerticalNavigation/Actions/actionClasses.cjs +8 -0
  43. package/dist/cjs/components/VerticalNavigation/Actions/actionClasses.cjs.map +1 -0
  44. package/dist/cjs/components/VerticalNavigation/Actions/actionsClasses.cjs +8 -0
  45. package/dist/cjs/components/VerticalNavigation/Actions/actionsClasses.cjs.map +1 -0
  46. package/dist/cjs/components/VerticalNavigation/Header/Header.cjs +45 -0
  47. package/dist/cjs/components/VerticalNavigation/Header/Header.cjs.map +1 -0
  48. package/dist/cjs/components/VerticalNavigation/Header/Header.styles.cjs +23 -0
  49. package/dist/cjs/components/VerticalNavigation/Header/Header.styles.cjs.map +1 -0
  50. package/dist/cjs/components/VerticalNavigation/Header/headerClasses.cjs +8 -0
  51. package/dist/cjs/components/VerticalNavigation/Header/headerClasses.cjs.map +1 -0
  52. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.cjs +134 -0
  53. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.cjs.map +1 -0
  54. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.styles.cjs +22 -0
  55. package/dist/cjs/components/VerticalNavigation/Navigation/Navigation.styles.cjs.map +1 -0
  56. package/dist/cjs/components/VerticalNavigation/Navigation/navigationClasses.cjs +8 -0
  57. package/dist/cjs/components/VerticalNavigation/Navigation/navigationClasses.cjs.map +1 -0
  58. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.cjs +643 -0
  59. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.cjs.map +1 -0
  60. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.styles.cjs +21 -0
  61. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.styles.cjs.map +1 -0
  62. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewContext.cjs +10 -0
  63. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewContext.cjs.map +1 -0
  64. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs +282 -0
  65. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs.map +1 -0
  66. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs +132 -0
  67. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs.map +1 -0
  68. package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs +134 -0
  69. package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs.map +1 -0
  70. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewClasses.cjs +8 -0
  71. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewClasses.cjs.map +1 -0
  72. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewItemClasses.cjs +8 -0
  73. package/dist/cjs/components/VerticalNavigation/TreeView/treeViewItemClasses.cjs.map +1 -0
  74. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.cjs +40 -0
  75. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.cjs.map +1 -0
  76. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.styles.cjs +43 -0
  77. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.styles.cjs.map +1 -0
  78. package/dist/cjs/components/VerticalNavigation/verticalNavigationClasses.cjs +8 -0
  79. package/dist/cjs/components/VerticalNavigation/verticalNavigationClasses.cjs.map +1 -0
  80. package/dist/cjs/hocs/withTooltip.cjs.map +1 -1
  81. package/dist/cjs/hooks/useClickOutside.cjs.map +1 -1
  82. package/dist/cjs/hooks/useEnhancedEffect.cjs +6 -0
  83. package/dist/cjs/hooks/useEnhancedEffect.cjs.map +1 -0
  84. package/dist/cjs/index.cjs +37 -0
  85. package/dist/cjs/index.cjs.map +1 -1
  86. package/dist/cjs/providers/ThemeProvider.cjs +4 -1
  87. package/dist/cjs/providers/ThemeProvider.cjs.map +1 -1
  88. package/dist/cjs/utils/wrapperTooltip.cjs +13 -0
  89. package/dist/cjs/utils/wrapperTooltip.cjs.map +1 -0
  90. package/dist/esm/components/AppSwitcher/Action/Action.js.map +1 -1
  91. package/dist/esm/components/AppSwitcher/AppSwitcher.js.map +1 -1
  92. package/dist/esm/components/Banner/Banner.js +1 -1
  93. package/dist/esm/components/Banner/Banner.js.map +1 -1
  94. package/dist/esm/components/Banner/BannerContent/ActionContainer/ActionContainer.js.map +1 -1
  95. package/dist/esm/components/Banner/BannerContent/BannerContent.js +1 -1
  96. package/dist/esm/components/Banner/BannerContent/BannerContent.js.map +1 -1
  97. package/dist/esm/components/BaseDropdown/BaseDropdown.js +1 -1
  98. package/dist/esm/components/DropDownMenu/DropDownMenu.js +1 -1
  99. package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
  100. package/dist/esm/components/FileUploader/DropZone/DropZone.js +1 -1
  101. package/dist/esm/components/FileUploader/DropZone/DropZone.js.map +1 -1
  102. package/dist/esm/components/Forms/FormElement/FormElement.js.map +1 -1
  103. package/dist/esm/components/Forms/Suggestions/Suggestions.js +2 -2
  104. package/dist/esm/components/Forms/Suggestions/Suggestions.js.map +1 -1
  105. package/dist/esm/components/Input/Input.js.map +1 -1
  106. package/dist/esm/components/List/List.js +2 -1
  107. package/dist/esm/components/List/List.js.map +1 -1
  108. package/dist/esm/components/List/utils.js +1 -11
  109. package/dist/esm/components/List/utils.js.map +1 -1
  110. package/dist/esm/components/Pagination/Pagination.js +4 -4
  111. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  112. package/dist/esm/components/SelectionList/SelectionList.js.map +1 -1
  113. package/dist/esm/components/Table/TableHeader/TableHeader.js +7 -10
  114. package/dist/esm/components/Table/TableHeader/TableHeader.js.map +1 -1
  115. package/dist/esm/components/Table/TableHeader/TableHeader.styles.js +4 -5
  116. package/dist/esm/components/Table/TableHeader/TableHeader.styles.js.map +1 -1
  117. package/dist/esm/components/Table/TableRow/TableRow.js +8 -1
  118. package/dist/esm/components/Table/TableRow/TableRow.js.map +1 -1
  119. package/dist/esm/components/TagsInput/TagsInput.js.map +1 -1
  120. package/dist/esm/components/ToggleButton/ToggleButton.js +2 -2
  121. package/dist/esm/components/ToggleButton/ToggleButton.js.map +1 -1
  122. package/dist/esm/components/VerticalNavigation/Actions/Action.js +43 -0
  123. package/dist/esm/components/VerticalNavigation/Actions/Action.js.map +1 -0
  124. package/dist/esm/components/VerticalNavigation/Actions/Action.styles.js +49 -0
  125. package/dist/esm/components/VerticalNavigation/Actions/Action.styles.js.map +1 -0
  126. package/dist/esm/components/VerticalNavigation/Actions/Actions.js +28 -0
  127. package/dist/esm/components/VerticalNavigation/Actions/Actions.js.map +1 -0
  128. package/dist/esm/components/VerticalNavigation/Actions/Actions.styles.js +24 -0
  129. package/dist/esm/components/VerticalNavigation/Actions/Actions.styles.js.map +1 -0
  130. package/dist/esm/components/VerticalNavigation/Actions/actionClasses.js +8 -0
  131. package/dist/esm/components/VerticalNavigation/Actions/actionClasses.js.map +1 -0
  132. package/dist/esm/components/VerticalNavigation/Actions/actionsClasses.js +8 -0
  133. package/dist/esm/components/VerticalNavigation/Actions/actionsClasses.js.map +1 -0
  134. package/dist/esm/components/VerticalNavigation/Header/Header.js +43 -0
  135. package/dist/esm/components/VerticalNavigation/Header/Header.js.map +1 -0
  136. package/dist/esm/components/VerticalNavigation/Header/Header.styles.js +21 -0
  137. package/dist/esm/components/VerticalNavigation/Header/Header.styles.js.map +1 -0
  138. package/dist/esm/components/VerticalNavigation/Header/headerClasses.js +8 -0
  139. package/dist/esm/components/VerticalNavigation/Header/headerClasses.js.map +1 -0
  140. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.js +132 -0
  141. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.js.map +1 -0
  142. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.styles.js +20 -0
  143. package/dist/esm/components/VerticalNavigation/Navigation/Navigation.styles.js.map +1 -0
  144. package/dist/esm/components/VerticalNavigation/Navigation/navigationClasses.js +8 -0
  145. package/dist/esm/components/VerticalNavigation/Navigation/navigationClasses.js.map +1 -0
  146. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.js +641 -0
  147. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.js.map +1 -0
  148. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.styles.js +19 -0
  149. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.styles.js.map +1 -0
  150. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewContext.js +10 -0
  151. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewContext.js.map +1 -0
  152. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js +280 -0
  153. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -0
  154. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js +130 -0
  155. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -0
  156. package/dist/esm/components/VerticalNavigation/TreeView/descendants.js +134 -0
  157. package/dist/esm/components/VerticalNavigation/TreeView/descendants.js.map +1 -0
  158. package/dist/esm/components/VerticalNavigation/TreeView/treeViewClasses.js +8 -0
  159. package/dist/esm/components/VerticalNavigation/TreeView/treeViewClasses.js.map +1 -0
  160. package/dist/esm/components/VerticalNavigation/TreeView/treeViewItemClasses.js +8 -0
  161. package/dist/esm/components/VerticalNavigation/TreeView/treeViewItemClasses.js.map +1 -0
  162. package/dist/esm/components/VerticalNavigation/VerticalNavigation.js +38 -0
  163. package/dist/esm/components/VerticalNavigation/VerticalNavigation.js.map +1 -0
  164. package/dist/esm/components/VerticalNavigation/VerticalNavigation.styles.js +41 -0
  165. package/dist/esm/components/VerticalNavigation/VerticalNavigation.styles.js.map +1 -0
  166. package/dist/esm/components/VerticalNavigation/verticalNavigationClasses.js +8 -0
  167. package/dist/esm/components/VerticalNavigation/verticalNavigationClasses.js.map +1 -0
  168. package/dist/esm/hocs/withTooltip.js.map +1 -1
  169. package/dist/esm/hooks/useClickOutside.js.map +1 -1
  170. package/dist/esm/hooks/useEnhancedEffect.js +6 -0
  171. package/dist/esm/hooks/useEnhancedEffect.js.map +1 -0
  172. package/dist/esm/index.js +55 -18
  173. package/dist/esm/index.js.map +1 -1
  174. package/dist/esm/providers/ThemeProvider.js +4 -1
  175. package/dist/esm/providers/ThemeProvider.js.map +1 -1
  176. package/dist/esm/utils/wrapperTooltip.js +13 -0
  177. package/dist/esm/utils/wrapperTooltip.js.map +1 -0
  178. package/dist/types/index.d.ts +560 -50
  179. package/package.json +3 -3
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @hitachivantara/uikit-react-core
2
2
 
3
- UI Kit core React components for the Next Design System.
3
+ UI Kit core React components for the NEXT Design System.
4
4
 
5
5
  ## Installation
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"Action.cjs","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 \"components\";\nimport { HvApplication } from \"..\";\nimport { HvBaseProps } from \"../../../types\";\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 type HvActionProps = HvBaseProps & {\n /** The application data to be used to render the Action object. */\n application: HvApplication;\n /** Callback triggered when the action is clicked. */\n onClickCallback?: Function;\n /** Must return a boolean stating if the action element is selected or not. */\n isSelectedCallback?: Function;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvAppSwitcherActionClasses;\n};\n\nconst getColor = (color, defaultColor) =>\n theme.colors[color] || color || defaultColor;\n\nexport const HvAction = ({\n id,\n className,\n classes,\n application,\n onClickCallback = () => {},\n isSelectedCallback = () => false,\n}: HvActionProps) => {\n const { name, description, disabled, iconElement, iconUrl, url, target } =\n application;\n\n const color = disabled\n ? theme.colors.atmo5\n : getColor(application?.color, theme.colors.acce1);\n\n const [validIconUrl, setValidIconUrl] = useState(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\">\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) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n onClickCallback?.(event, { ...application, isSelected });\n };\n\n const isLink = url != null;\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 <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 >\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 />\n </div>\n </HvTooltip>\n )}\n </StyledTypography>\n </StyledListItem>\n );\n};\n"],"names":["getColor","color","defaultColor","theme","colors","HvAction","id","className","classes","application","onClickCallback","isSelectedCallback","name","description","disabled","iconElement","iconUrl","url","target","atmo5","acce1","validIconUrl","setValidIconUrl","useState","renderApplicationIcon","StyledImg","clsx","appSwitcherActionClasses","src","onError","alt","brokenTitle","split","initials","substring","HvAvatar","size","backgroundColor","variant","children","isSelected","handleOnClick","event","preventDefault","isLink","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.cjs","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 \"components\";\nimport { HvAppSwitcherActionApplication } from \"../AppSwitcher\";\nimport { HvBaseProps } from \"../../../types\";\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 type HvActionProps = 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, defaultColor) =>\n theme.colors[color] || color || defaultColor;\n\nexport const HvAction = ({\n id,\n className,\n classes,\n application,\n onClickCallback = () => {},\n isSelectedCallback = () => false,\n}: HvActionProps) => {\n const { name, description, disabled, iconElement, iconUrl, url, target } =\n application;\n\n const color = disabled\n ? theme.colors.atmo5\n : getColor(application?.color, theme.colors.acce1);\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\">\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\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 <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 >\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 />\n </div>\n </HvTooltip>\n )}\n </StyledTypography>\n </StyledListItem>\n );\n};\n"],"names":["getColor","color","defaultColor","theme","colors","HvAction","id","className","classes","application","onClickCallback","isSelectedCallback","name","description","disabled","iconElement","iconUrl","url","target","atmo5","acce1","validIconUrl","setValidIconUrl","useState","renderApplicationIcon","StyledImg","clsx","appSwitcherActionClasses","src","onError","alt","brokenTitle","split","initials","substring","HvAvatar","size","backgroundColor","variant","children","isSelected","handleOnClick","event","preventDefault","isLink","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":";;;;;;;;;;;;;;AAgCA,MAAMA,WAAWA,CAACC,OAAOC,iBACvBC,YAAAA,MAAMC,OAAOH,KAAK,KAAKA,SAASC;AAE3B,MAAMG,WAAWA,CAAC;AAAA,EACvBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,kBAAkBA,MAAM;AAAA,EAAC;AAAA,EACzBC,qBAAqBA,MAAM;AACd,MAAM;AACb,QAAA;AAAA,IAAEC;AAAAA,IAAMC;AAAAA,IAAaC;AAAAA,IAAUC;AAAAA,IAAaC;AAAAA,IAASC;AAAAA,IAAKC;AAAAA,EAC9DT,IAAAA;AAEIR,QAAAA,QAAQa,WACVX,YAAAA,MAAMC,OAAOe,QACbnB,SAASS,2CAAaR,OAAOE,YAAAA,MAAMC,OAAOgB,KAAK;AAEnD,QAAM,CAACC,cAAcC,eAAe,IAAIC,eAAkB,IAAI;AAE9D,QAAMC,wBAAwBA,MAAM;AAClC,QAAIT,aAAa;AACRA,aAAAA;AAAAA,IACT;AAEA,QAAIC,WAAWK,cAAc;AAC3B,4CACGI,cAAAA,WAAS;AAAA,QACRlB,WAAWmB,cAAAA,QAAKC,cAAAA,QAAyBX,SAASR,mCAASQ,OAAO;AAAA,QAClEY,KAAKZ;AAAAA,QACLa,SAASA,MAAM;AACbP,0BAAgB,KAAK;AAAA,QACvB;AAAA,QACAQ,KAAKjB;AAAAA,MAAAA,CACL;AAAA,IAEN;AAEMkB,UAAAA,cAAcnB,KAAKoB,MAAM,GAAG;AAClC,UAAMC,WACJF,YAAY,CAAC,EAAEG,UAAU,GAAG,CAAC,KAC5BH,YAAY,CAAC,IAAIA,YAAY,CAAC,EAAEG,UAAU,GAAG,CAAC,IAAI;AAErD,0CACGC,OAAAA,UAAQ;AAAA,MAACC,MAAK;AAAA,MAAKC,iBAAiBpC;AAAAA,MAAOqC,SAAQ;AAAA,MAAQC,UACzDN;AAAAA,IAAAA,CACQ;AAAA,EAAA;AAITO,QAAAA,aAAa7B,mBAAmBF,WAAW;AAK3CgC,QAAAA,gBAAgBA,CAACC,UAA4B;AACjD,QAAI5B,UAAU;AACZ4B,YAAMC,eAAgB;AACtB;AAAA,IACF;AAEAjC,uDAAkBgC,OAAO;AAAA,MAAE,GAAGjC;AAAAA,MAAa+B;AAAAA,IAAAA;AAAAA,EAAY;AAGzD,QAAMI,SAAS3B,OAAO;AAEtB,wCACG4B,cAAAA,gBAAc;AAAA,IACbvC;AAAAA,IACAwC,aAAW;AAAA,IACXC,UAAU;AAAA,IACVC,UAAUR;AAAAA,IACV1B;AAAAA,IACAP,WAAWmB,cAAAA,QACTnB,WACAoB,cAAAA,QAAyBsB,MACzBzC,mCAASyC,MACTnC,YAAYY,sBAAKC,cAAAA,QAAyBb,UAAUN,mCAASM,QAAQ,GACrE0B,cAAcd,cAAAA,QAAKC,cAAAA,QAAyBqB,UAAUxC,mCAASwC,QAAQ,CAAC;AAAA,IACxET,0CAEDW,gCAAgB;AAAA,MACfC,WAAWP,SAAS,MAAM;AAAA,MAC1BQ,MAAMR,SAAS3B,MAAMoC;AAAAA,MACrBnC,QAAQ0B,SAAS1B,UAAU,SAASmC;AAAAA,MACpC9C,WAAWmB,cAAAA,QACTC,cAAAA,QAAyB2B,YACzB9C,mCAAS8C,UAAU;AAAA,MAErBC,SAASd;AAAAA,MACTe,OAAO;AAAA,QAAEC,aAAaxD;AAAAA,MAAM;AAAA,MAAEsC,UAAA,CAE9BmB,2BAAAA,IAACC,0BAAU;AAAA,QACTpD,WAAWmB,cAAAA,QAAKC,cAAAA,QAAyBiC,MAAMpD,mCAASoD,IAAI;AAAA,QAAErB,UAE7Df,sBAAqB;AAAA,MAAA,CACX,GAEbkC,2BAAAA,IAACG,0BAAgB;AAAA,QACfC,OAAOlD;AAAAA,QACPL,WAAWmB,cAAAA,QAAKC,cAAAA,QAAyBmC,OAAOtD,mCAASsD,KAAK;AAAA,QAC9DC,MAAK;AAAA,MAAA,CAAQ,GAGdlD,eACC6C,2BAAAA,IAACM,mBAAS;AAAA,QACRC,sBAAoB;AAAA,QACpBC,sBAAoB;AAAA,QACpBJ,sCAAQK,yBAAY;AAAA,UAAA5B,UAAE1B;AAAAA,QAAAA,CAA4B;AAAA,QAAA0B,yCAElD,OAAA;AAAA,UAAAA,yCACG6B,8BAAc;AAAA,YACb7D,WAAWmB,cAAAA,QACTC,cAAAA,QAAyB0C,UACzB7D,mCAAS6D,QAAQ;AAAA,YAEnBC,MAAK;AAAA,YACL,cAAYzD;AAAAA,UAAAA,CAAY;AAAA,QAAA,CACxB;AAAA,MAAA,CAGP,CAAA;AAAA,IAAA,CAAA;AAAA,EAAA,CAEY;AAErB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppSwitcher.cjs","sources":["../../../../src/components/AppSwitcher/AppSwitcher.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useMemo } from \"react\";\nimport { HvBaseProps } from \"../../types\";\nimport { HvAppSwitcherAction } from \"./Action\";\nimport {\n StyledRoot,\n StyledTitle,\n StyledActionsContainer,\n StyledFooter,\n} from \"./AppSwitcher.styles\";\nimport TitleWithTooltip from \"./TitleWithTooltip\";\nimport appSwitcherClasses, { HvAppSwitcherClasses } from \"./appSwitcherClasses\";\n\nexport type HvApplication = {\n /** Id of the application. */\n id?: string;\n /** Name of the application, this is the value that will be displayed on the component. */\n name: string;\n /** URL with the icon location to be used to represent the application. iconUrl will only be used if no iconElement is provided. */\n iconUrl?: string;\n /** Element to be added as the icon representing the application. The iconElement will be the primary option to be displayed. */\n iconElement?: React.ReactElement;\n /** Small description of the application. */\n description?: string;\n /** URL where the application is accessible. */\n url?: string;\n /** Defines if the application should be opened in the same tab or in a new one. */\n target?: \"_top\" | \"_blank\";\n /** If true, the item will be disabled. */\n disabled?: boolean;\n /** True when the application is selected, false otherwise. */\n isSelected?: boolean;\n /** The color of the application. */\n color?: string;\n};\n\nexport type HvAppSwitcherProps = HvBaseProps & {\n /** Number of columns to render. One, two, or whatever fits the component's width. */\n layout?: \"single\" | \"dual\" | \"fluid\";\n /** Title to be displayed on the header of the component. */\n title?: string;\n /** The list of applications to be used to render the actions on the component. */\n applications?: HvApplication[];\n /** Triggered when an action is clicked. */\n onActionClickedCallback?: Function;\n /** Must return a boolean stating if the action element is selected or not. */\n isActionSelectedCallback?: Function;\n /** Element to be added to the header container, if none is provided a label with the title will be added. */\n header?: React.ReactNode;\n /** Element to be added to the footer container. */\n footer?: React.ReactNode;\n /**\n * Flag stating if the panel is opened or closed.\n *\n * @deprecated This logic should be external, i.e. using the HvAppSwitcher inside a Drawer component.\n */\n isOpen?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvAppSwitcherClasses;\n};\n\nexport const HvAppSwitcher = ({\n id,\n className,\n classes,\n layout = \"single\",\n title,\n applications,\n onActionClickedCallback = () => {},\n isActionSelectedCallback = () => false,\n header,\n footer,\n isOpen,\n}: HvAppSwitcherProps) => {\n const actionClicked = (event, application) => {\n onActionClickedCallback?.(event, application);\n };\n\n const panelActions = useMemo(\n () =>\n applications &&\n applications?.map((application) => {\n if (application.name) {\n return (\n <HvAppSwitcherAction\n key={application.id || `${application.name}_${application.url}`}\n application={application}\n onClickCallback={actionClicked}\n isSelectedCallback={isActionSelectedCallback}\n classes={{\n root: clsx(classes?.item, appSwitcherClasses.item),\n selected: clsx(\n classes?.itemSelected,\n appSwitcherClasses.itemSelected\n ),\n disabled: clsx(\n classes?.itemDisabled,\n appSwitcherClasses.itemDisabled\n ),\n typography: clsx(\n classes?.itemTrigger,\n appSwitcherClasses.itemTrigger\n ),\n icon: clsx(classes?.itemIcon, appSwitcherClasses.itemIcon),\n title: clsx(classes?.itemTitle, appSwitcherClasses.itemTitle),\n iconInfo: clsx(\n classes?.itemInfoIcon,\n appSwitcherClasses.itemInfoIcon\n ),\n }}\n />\n );\n }\n\n return undefined;\n }),\n [applications]\n );\n\n return (\n <StyledRoot\n id={id}\n className={clsx(\n className,\n appSwitcherClasses.root,\n classes?.root,\n appSwitcherClasses[layout],\n classes?.[layout],\n isOpen && clsx(appSwitcherClasses.open, classes?.open),\n isOpen === false && clsx(appSwitcherClasses.closed, classes?.closed)\n )}\n $open={!!isOpen}\n $closed={isOpen === false}\n $layout={layout}\n >\n {(header && (\n <StyledTitle className={clsx(appSwitcherClasses.title, classes?.title)}>\n {header}\n </StyledTitle>\n )) ||\n (title && (\n <TitleWithTooltip\n className={clsx(appSwitcherClasses.title, classes?.title)}\n title={title}\n type=\"appSwitcher\"\n />\n ))}\n <StyledActionsContainer\n disableGutters\n className={clsx(\n appSwitcherClasses.actionsContainer,\n classes?.actionsContainer\n )}\n >\n {panelActions}\n </StyledActionsContainer>\n {footer && (\n <StyledFooter\n className={clsx(\n appSwitcherClasses.footerContainer,\n classes?.footerContainer\n )}\n >\n {footer}\n </StyledFooter>\n )}\n </StyledRoot>\n );\n};\n"],"names":["HvAppSwitcher","id","className","classes","layout","title","applications","onActionClickedCallback","isActionSelectedCallback","header","footer","isOpen","actionClicked","event","application","panelActions","useMemo","map","name","HvAppSwitcherAction","onClickCallback","isSelectedCallback","root","clsx","item","appSwitcherClasses","selected","itemSelected","disabled","itemDisabled","typography","itemTrigger","icon","itemIcon","itemTitle","iconInfo","itemInfoIcon","url","undefined","StyledRoot","open","closed","$open","$closed","$layout","children","_jsx","StyledTitle","TitleWithTooltip","type","StyledActionsContainer","disableGutters","actionsContainer","StyledFooter","footerContainer"],"mappings":"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"}
1
+ {"version":3,"file":"AppSwitcher.cjs","sources":["../../../../src/components/AppSwitcher/AppSwitcher.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useMemo } from \"react\";\nimport { HvBaseProps } from \"../../types\";\nimport { HvAppSwitcherAction } from \"./Action\";\nimport {\n StyledRoot,\n StyledTitle,\n StyledActionsContainer,\n StyledFooter,\n} from \"./AppSwitcher.styles\";\nimport TitleWithTooltip from \"./TitleWithTooltip\";\nimport appSwitcherClasses, { HvAppSwitcherClasses } from \"./appSwitcherClasses\";\n\nexport type HvAppSwitcherActionApplication = {\n /** Id of the application. */\n id?: string;\n /** Name of the application, this is the value that will be displayed on the component. */\n name: string;\n /** URL with the icon location to be used to represent the application. iconUrl will only be used if no iconElement is provided. */\n iconUrl?: string;\n /** Element to be added as the icon representing the application. The iconElement will be the primary option to be displayed. */\n iconElement?: React.ReactElement;\n /** Small description of the application. */\n description?: string;\n /** URL where the application is accessible. */\n url?: string;\n /** Defines if the application should be opened in the same tab or in a new one. */\n target?: \"_top\" | \"_blank\";\n /** If true, the item will be disabled. */\n disabled?: boolean;\n /** True when the application is selected, false otherwise. */\n isSelected?: boolean;\n /** The color of the application. */\n color?: string;\n};\n\nexport type HvAppSwitcherProps = HvBaseProps & {\n /** Number of columns to render. One, two, or whatever fits the component's width. */\n layout?: \"single\" | \"dual\" | \"fluid\";\n /** Title to be displayed on the header of the component. */\n title?: string;\n /** The list of applications to be used to render the actions on the component. */\n applications?: HvAppSwitcherActionApplication[];\n /** Triggered when an action is clicked. */\n onActionClickedCallback?: (\n event: React.MouseEvent,\n application: HvAppSwitcherActionApplication\n ) => void;\n /** Must return a boolean stating if the action element is selected or not. */\n isActionSelectedCallback?: (\n application: HvAppSwitcherActionApplication\n ) => boolean;\n /** Element to be added to the header container, if none is provided a label with the title will be added. */\n header?: React.ReactNode;\n /** Element to be added to the footer container. */\n footer?: React.ReactNode;\n /**\n * Flag stating if the panel is opened or closed.\n *\n * @deprecated This logic should be external, i.e. using the HvAppSwitcher inside a Drawer component.\n */\n isOpen?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvAppSwitcherClasses;\n};\n\nexport const HvAppSwitcher = ({\n id,\n className,\n classes,\n layout = \"single\",\n title,\n applications,\n onActionClickedCallback = () => {},\n isActionSelectedCallback = () => false,\n header,\n footer,\n isOpen,\n}: HvAppSwitcherProps) => {\n const actionClicked = (\n event: React.MouseEvent,\n application: HvAppSwitcherActionApplication\n ) => {\n onActionClickedCallback?.(event, application);\n };\n\n const panelActions = useMemo(\n () =>\n applications &&\n applications?.map((application) => {\n if (application.name) {\n return (\n <HvAppSwitcherAction\n key={application.id || `${application.name}_${application.url}`}\n application={application}\n onClickCallback={actionClicked}\n isSelectedCallback={isActionSelectedCallback}\n classes={{\n root: clsx(classes?.item, appSwitcherClasses.item),\n selected: clsx(\n classes?.itemSelected,\n appSwitcherClasses.itemSelected\n ),\n disabled: clsx(\n classes?.itemDisabled,\n appSwitcherClasses.itemDisabled\n ),\n typography: clsx(\n classes?.itemTrigger,\n appSwitcherClasses.itemTrigger\n ),\n icon: clsx(classes?.itemIcon, appSwitcherClasses.itemIcon),\n title: clsx(classes?.itemTitle, appSwitcherClasses.itemTitle),\n iconInfo: clsx(\n classes?.itemInfoIcon,\n appSwitcherClasses.itemInfoIcon\n ),\n }}\n />\n );\n }\n\n return undefined;\n }),\n [applications]\n );\n\n return (\n <StyledRoot\n id={id}\n className={clsx(\n className,\n appSwitcherClasses.root,\n classes?.root,\n appSwitcherClasses[layout],\n classes?.[layout],\n isOpen && clsx(appSwitcherClasses.open, classes?.open),\n isOpen === false && clsx(appSwitcherClasses.closed, classes?.closed)\n )}\n $open={!!isOpen}\n $closed={isOpen === false}\n $layout={layout}\n >\n {(header && (\n <StyledTitle className={clsx(appSwitcherClasses.title, classes?.title)}>\n {header}\n </StyledTitle>\n )) ||\n (title && (\n <TitleWithTooltip\n className={clsx(appSwitcherClasses.title, classes?.title)}\n title={title}\n type=\"appSwitcher\"\n />\n ))}\n <StyledActionsContainer\n disableGutters\n className={clsx(\n appSwitcherClasses.actionsContainer,\n classes?.actionsContainer\n )}\n >\n {panelActions}\n </StyledActionsContainer>\n {footer && (\n <StyledFooter\n className={clsx(\n appSwitcherClasses.footerContainer,\n classes?.footerContainer\n )}\n >\n {footer}\n </StyledFooter>\n )}\n </StyledRoot>\n );\n};\n"],"names":["HvAppSwitcher","id","className","classes","layout","title","applications","onActionClickedCallback","isActionSelectedCallback","header","footer","isOpen","actionClicked","event","application","panelActions","useMemo","map","name","HvAppSwitcherAction","onClickCallback","isSelectedCallback","root","clsx","item","appSwitcherClasses","selected","itemSelected","disabled","itemDisabled","typography","itemTrigger","icon","itemIcon","itemTitle","iconInfo","itemInfoIcon","url","undefined","StyledRoot","open","closed","$open","$closed","$layout","children","_jsx","StyledTitle","TitleWithTooltip","type","StyledActionsContainer","disableGutters","actionsContainer","StyledFooter","footerContainer"],"mappings":";;;;;;;;;;;AAkEO,MAAMA,gBAAgBA,CAAC;AAAA,EAC5BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,SAAS;AAAA,EACTC;AAAAA,EACAC;AAAAA,EACAC,0BAA0BA,MAAM;AAAA,EAAC;AAAA,EACjCC,2BAA2BA,MAAM;AAAA,EACjCC;AAAAA,EACAC;AAAAA,EACAC;AACkB,MAAM;AAClBC,QAAAA,gBAAgBA,CACpBC,OACAC,gBACG;AACHP,uEAA0BM,OAAOC;AAAAA,EAAW;AAG9C,QAAMC,eAAeC,MAAAA,QACnB,MACEV,iBACAA,6CAAcW,IAAKH,CAAgB,gBAAA;AACjC,QAAIA,YAAYI,MAAM;AACpB,4CACGC,OAAAA,UAAmB;AAAA,QAElBL;AAAAA,QACAM,iBAAiBR;AAAAA,QACjBS,oBAAoBb;AAAAA,QACpBL,SAAS;AAAA,UACPmB,MAAMC,cAAAA,QAAKpB,mCAASqB,MAAMC,mBAAAA,QAAmBD,IAAI;AAAA,UACjDE,UAAUH,cAAAA,QACRpB,mCAASwB,cACTF,mBAAAA,QAAmBE,YAAY;AAAA,UAEjCC,UAAUL,cAAAA,QACRpB,mCAAS0B,cACTJ,mBAAAA,QAAmBI,YAAY;AAAA,UAEjCC,YAAYP,cAAAA,QACVpB,mCAAS4B,aACTN,mBAAAA,QAAmBM,WAAW;AAAA,UAEhCC,MAAMT,cAAAA,QAAKpB,mCAAS8B,UAAUR,mBAAAA,QAAmBQ,QAAQ;AAAA,UACzD5B,OAAOkB,cAAAA,QAAKpB,mCAAS+B,WAAWT,mBAAAA,QAAmBS,SAAS;AAAA,UAC5DC,UAAUZ,cAAAA,QACRpB,mCAASiC,cACTX,mBAAAA,QAAmBW,YAAY;AAAA,QAEnC;AAAA,MAAA,GAxBKtB,YAAYb,MAAO,GAAEa,YAAYI,QAAQJ,YAAYuB,KAAK;AAAA,IA2BrE;AAEOC,WAAAA;AAAAA,EAAAA,KAEX,CAAChC,YAAY,CAAC;AAGhB,yCACGiC,mBAAAA,YAAU;AAAA,IACTtC;AAAAA,IACAC,WAAWqB,cACTrB,QAAAA,WACAuB,mBAAAA,QAAmBH,MACnBnB,mCAASmB,MACTG,mBAAmBrB,QAAAA,MAAM,GACzBD,mCAAUC,SACVO,UAAUY,cAAAA,QAAKE,mBAAmBe,QAAAA,MAAMrC,mCAASqC,IAAI,GACrD7B,WAAW,SAASY,cAAAA,QAAKE,mBAAAA,QAAmBgB,QAAQtC,mCAASsC,MAAM,CAAC;AAAA,IAEtEC,OAAO,CAAC,CAAC/B;AAAAA,IACTgC,SAAShC,WAAW;AAAA,IACpBiC,SAASxC;AAAAA,IAAOyC,UAEdpC,CAAAA,UACAqC,2BAAAA,IAACC,gCAAW;AAAA,MAAC7C,WAAWqB,cAAAA,QAAKE,mBAAAA,QAAmBpB,OAAOF,mCAASE,KAAK;AAAA,MAAEwC,UACpEpC;AAAAA,IAAAA,CAAM,KAGRJ,SACCyC,2BAAAA,IAACE,0BAAgB;AAAA,MACf9C,WAAWqB,cAAAA,QAAKE,mBAAAA,QAAmBpB,OAAOF,mCAASE,KAAK;AAAA,MACxDA;AAAAA,MACA4C,MAAK;AAAA,IAAA,CAEP,GACJH,2BAAAA,IAACI,2CAAsB;AAAA,MACrBC,gBAAc;AAAA,MACdjD,WAAWqB,cAAAA,QACTE,mBAAAA,QAAmB2B,kBACnBjD,mCAASiD,gBAAgB;AAAA,MACzBP,UAED9B;AAAAA,IAAAA,CAAY,GAEdL,UACCoC,2BAAAA,IAACO,iCAAY;AAAA,MACXnD,WAAWqB,cAAAA,QACTE,mBAAAA,QAAmB6B,iBACnBnD,mCAASmD,eAAe;AAAA,MACxBT,UAEDnC;AAAAA,IAAAA,CAEJ,CAAA;AAAA,EAAA,CACU;AAEjB;;"}
@@ -5,9 +5,9 @@ const React = require("react");
5
5
  const Slide = require("@mui/material/Slide");
6
6
  const capitalize = require("lodash/capitalize");
7
7
  const Banner_styles = require("./Banner.styles.cjs");
8
+ const bannerClasses = require("./bannerClasses.cjs");
8
9
  const BannerContent = require("./BannerContent/BannerContent.cjs");
9
10
  const jsxRuntime = require("@emotion/react/jsx-runtime");
10
- const bannerClasses = require("./bannerClasses.cjs");
11
11
  const setId = require("../../utils/setId.cjs");
12
12
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
13
13
  const clsx__default = /* @__PURE__ */ _interopDefault(clsx);
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.cjs","sources":["../../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useCallback } from \"react\";\nimport Slide from \"@mui/material/Slide\";\nimport {\n SnackbarProps as MuiSnackbarProps,\n SnackbarOrigin,\n} from \"@mui/material/Snackbar\";\nimport capitalize from \"lodash/capitalize\";\nimport { HvBaseProps } from \"../../types\";\nimport { StyledSnackbar } from \"./Banner.styles\";\nimport { bannerClasses, HvBannerClasses } from \".\";\nimport { setId } from \"utils\";\nimport {\n HvBannerContent,\n HvBannerContentProps,\n} from \"./BannerContent/BannerContent\";\nimport { HvActionGeneric } from \"components\";\n\nexport type HvBannerVariant = \"success\" | \"warning\" | \"error\" | \"default\";\n\nexport type HvBannerActionPosition = \"auto\" | \"inline\" | \"bottom-right\";\n\nexport type HvBannerProps = Omit<MuiSnackbarProps, \"anchorOrigin\" | \"classes\"> &\n HvBaseProps & {\n /** If true | Snackbar is open. */\n open: boolean;\n /** Callback fired when the component requests to be closed. Typically onClose is used to set state in the parent component, which is used to control the Snackbar open prop. The reason parameter can optionally be used to control the response to onClose, for example ignoring clickaway. */\n onClose?: Function;\n /** The message to display. */\n label?: React.ReactNode;\n /** The anchor of the Snackbar. */\n anchorOrigin?: \"top\" | \"bottom\";\n /** Variant of the snackbar. */\n variant?: HvBannerVariant;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Actions to display on the right side. */\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 position property of the header. */\n actionsPosition?: HvBannerActionPosition;\n /** How much the transition animation last in milliseconds, if 0 no animation is played. */\n transitionDuration?: number;\n /** Direction of slide transition. */\n transitionDirection?: \"up\" | \"down\" | \"left\" | \"right\";\n /** Offset from top/bottom of the page, in px. Defaults to 60px. */\n offset?: number;\n /** Props to pass down to the Banner Wrapper. An object `actionProps` can be included to be passed as others to actions. */\n bannerContentProps?: HvBannerContentProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvBannerClasses;\n };\n\n/**\n * A Banner displays an important and succinct message. It can also provide actions for the user to address, or dismiss.\n * It requires a user action, for it to be dismissed. Banners should appear at the top of the screen, below a top app bar.\n */\nexport const HvBanner = ({\n id,\n classes,\n className,\n open,\n onClose,\n anchorOrigin = \"top\",\n variant = \"default\",\n transitionDuration = 300,\n transitionDirection = \"down\",\n showIcon = false,\n customIcon,\n actions,\n actionsCallback,\n actionsPosition = \"auto\",\n label,\n offset = 60,\n bannerContentProps,\n ...others\n}: HvBannerProps) => {\n const anchorOriginOffset = {\n anchorOriginTop: {\n top: `${offset || 0}px`,\n },\n anchorOriginBottom: {\n bottom: `${offset || 0}px`,\n },\n };\n\n const anchorOriginBanner: SnackbarOrigin = {\n horizontal: \"center\",\n vertical: anchorOrigin,\n };\n\n const SlideTransition = useCallback(\n (properties) => <Slide {...properties} direction={transitionDirection} />,\n [transitionDirection]\n );\n\n return (\n <StyledSnackbar\n style={anchorOriginOffset[`anchorOrigin${capitalize(anchorOrigin)}`]}\n className={className}\n id={id}\n classes={{\n root: open\n ? clsx(bannerClasses.root, classes?.root)\n : clsx(bannerClasses.rootClosed, classes?.rootClosed),\n anchorOriginTopCenter: clsx(\n bannerClasses.anchorOriginTopCenter,\n classes?.anchorOriginTopCenter\n ),\n anchorOriginBottomCenter: clsx(\n bannerClasses.anchorOriginBottomCenter,\n classes?.anchorOriginBottomCenter\n ),\n }}\n anchorOrigin={anchorOriginBanner}\n TransitionComponent={SlideTransition}\n open={open}\n $isOpen={open}\n transitionDuration={transitionDuration}\n {...others}\n >\n <HvBannerContent\n id={setId(id, \"content\")}\n content={label}\n variant={variant}\n customIcon={customIcon}\n showIcon={showIcon}\n actions={actions}\n actionsCallback={actionsCallback}\n actionsPosition={actionsPosition}\n onClose={onClose}\n {...bannerContentProps}\n />\n </StyledSnackbar>\n );\n};\n"],"names":["HvBanner","id","classes","className","open","onClose","anchorOrigin","variant","transitionDuration","transitionDirection","showIcon","customIcon","actions","actionsCallback","actionsPosition","label","offset","bannerContentProps","others","anchorOriginOffset","anchorOriginTop","top","anchorOriginBottom","bottom","anchorOriginBanner","horizontal","vertical","SlideTransition","useCallback","properties","_jsx","Slide","direction","StyledSnackbar","style","capitalize","root","clsx","bannerClasses","rootClosed","anchorOriginTopCenter","anchorOriginBottomCenter","TransitionComponent","$isOpen","children","HvBannerContent","setId","content"],"mappings":";;;;;;;;;;;;;;;AAgEO,MAAMA,WAAWA,CAAC;AAAA,EACvBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,eAAe;AAAA,EACfC,UAAU;AAAA,EACVC,qBAAqB;AAAA,EACrBC,sBAAsB;AAAA,EACtBC,WAAW;AAAA,EACXC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,kBAAkB;AAAA,EAClBC;AAAAA,EACAC,SAAS;AAAA,EACTC;AAAAA,EACA,GAAGC;AACU,MAAM;AACnB,QAAMC,qBAAqB;AAAA,IACzBC,iBAAiB;AAAA,MACfC,KAAM,GAAEL,UAAU;AAAA,IACpB;AAAA,IACAM,oBAAoB;AAAA,MAClBC,QAAS,GAAEP,UAAU;AAAA,IACvB;AAAA,EAAA;AAGF,QAAMQ,qBAAqC;AAAA,IACzCC,YAAY;AAAA,IACZC,UAAUpB;AAAAA,EAAAA;AAGZ,QAAMqB,kBAAkBC,MAAAA,YACrBC,CAAeC,eAAAA,2BAAAA,IAACC,eAAAA,SAAK;AAAA,IAAA,GAAKF;AAAAA,IAAYG,WAAWvB;AAAAA,EAAAA,CAAoB,GACtE,CAACA,mBAAmB,CAAC;AAGvB,wCACGwB,cAAAA,gBAAc;AAAA,IACbC,OAAOf,mBAAoB,eAAcgB,oBAAAA,QAAW7B,YAAY,GAAG;AAAA,IACnEH;AAAAA,IACAF;AAAAA,IACAC,SAAS;AAAA,MACPkC,MAAMhC,OACFiC,cAAAA,QAAKC,cAAAA,QAAcF,MAAMlC,mCAASkC,IAAI,IACtCC,cAAKC,QAAAA,cAAAA,QAAcC,YAAYrC,mCAASqC,UAAU;AAAA,MACtDC,uBAAuBH,cAAAA,QACrBC,cAAAA,QAAcE,uBACdtC,mCAASsC,qBAAqB;AAAA,MAEhCC,0BAA0BJ,cAAAA,QACxBC,cAAAA,QAAcG,0BACdvC,mCAASuC,wBAAwB;AAAA,IAErC;AAAA,IACAnC,cAAckB;AAAAA,IACdkB,qBAAqBf;AAAAA,IACrBvB;AAAAA,IACAuC,SAASvC;AAAAA,IACTI;AAAAA,IAAuC,GACnCU;AAAAA,IAAM0B,yCAETC,+BAAe;AAAA,MACd5C,IAAI6C,MAAAA,MAAM7C,IAAI,SAAS;AAAA,MACvB8C,SAAShC;AAAAA,MACTR;AAAAA,MACAI;AAAAA,MACAD;AAAAA,MACAE;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAT;AAAAA,MAAiB,GACbY;AAAAA,IAAAA,CAAkB;AAAA,EAAA,CAET;AAErB;;"}
1
+ {"version":3,"file":"Banner.cjs","sources":["../../../../src/components/Banner/Banner.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useCallback } from \"react\";\nimport Slide from \"@mui/material/Slide\";\nimport {\n SnackbarProps as MuiSnackbarProps,\n SnackbarOrigin,\n} from \"@mui/material/Snackbar\";\nimport capitalize from \"lodash/capitalize\";\nimport { HvBaseProps } from \"../../types\";\nimport { StyledSnackbar } from \"./Banner.styles\";\nimport bannerClasses, { HvBannerClasses } from \"./bannerClasses\";\nimport { setId } from \"../../utils\";\nimport {\n HvBannerContent,\n HvBannerContentProps,\n} from \"./BannerContent/BannerContent\";\nimport { HvActionGeneric } from \"../ActionsGeneric\";\n\nexport type HvBannerVariant = \"success\" | \"warning\" | \"error\" | \"default\";\n\nexport type HvBannerActionPosition = \"auto\" | \"inline\" | \"bottom-right\";\n\nexport type HvBannerProps = Omit<\n MuiSnackbarProps,\n \"anchorOrigin\" | \"classes\" | \"onClose\"\n> &\n HvBaseProps & {\n /** If true | Snackbar is open. */\n open: boolean;\n /** Callback fired when the component requests to be closed. Typically onClose is used to set state in the parent component, which is used to control the Snackbar open prop. The reason parameter can optionally be used to control the response to onClose, for example ignoring clickaway. */\n onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n /** The message to display. */\n label?: React.ReactNode;\n /** The anchor of the Snackbar. */\n anchorOrigin?: \"top\" | \"bottom\";\n /** Variant of the snackbar. */\n variant?: HvBannerVariant;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Actions to display on the right side. */\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 position property of the header. */\n actionsPosition?: HvBannerActionPosition;\n /** How much the transition animation last in milliseconds, if 0 no animation is played. */\n transitionDuration?: number;\n /** Direction of slide transition. */\n transitionDirection?: \"up\" | \"down\" | \"left\" | \"right\";\n /** Offset from top/bottom of the page, in px. Defaults to 60px. */\n offset?: number;\n /** Props to pass down to the Banner Wrapper. An object `actionProps` can be included to be passed as others to actions. */\n bannerContentProps?: HvBannerContentProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvBannerClasses;\n };\n\n/**\n * A Banner displays an important and succinct message. It can also provide actions for the user to address, or dismiss.\n * It requires a user action, for it to be dismissed. Banners should appear at the top of the screen, below a top app bar.\n */\nexport const HvBanner = ({\n id,\n classes,\n className,\n open,\n onClose,\n anchorOrigin = \"top\",\n variant = \"default\",\n transitionDuration = 300,\n transitionDirection = \"down\",\n showIcon = false,\n customIcon,\n actions,\n actionsCallback,\n actionsPosition = \"auto\",\n label,\n offset = 60,\n bannerContentProps,\n ...others\n}: HvBannerProps) => {\n const anchorOriginOffset = {\n anchorOriginTop: {\n top: `${offset || 0}px`,\n },\n anchorOriginBottom: {\n bottom: `${offset || 0}px`,\n },\n };\n\n const anchorOriginBanner: SnackbarOrigin = {\n horizontal: \"center\",\n vertical: anchorOrigin,\n };\n\n const SlideTransition = useCallback(\n (properties) => <Slide {...properties} direction={transitionDirection} />,\n [transitionDirection]\n );\n\n return (\n <StyledSnackbar\n style={anchorOriginOffset[`anchorOrigin${capitalize(anchorOrigin)}`]}\n className={className}\n id={id}\n classes={{\n root: open\n ? clsx(bannerClasses.root, classes?.root)\n : clsx(bannerClasses.rootClosed, classes?.rootClosed),\n anchorOriginTopCenter: clsx(\n bannerClasses.anchorOriginTopCenter,\n classes?.anchorOriginTopCenter\n ),\n anchorOriginBottomCenter: clsx(\n bannerClasses.anchorOriginBottomCenter,\n classes?.anchorOriginBottomCenter\n ),\n }}\n anchorOrigin={anchorOriginBanner}\n TransitionComponent={SlideTransition}\n open={open}\n $isOpen={open}\n transitionDuration={transitionDuration}\n {...others}\n >\n <HvBannerContent\n id={setId(id, \"content\")}\n content={label}\n variant={variant}\n customIcon={customIcon}\n showIcon={showIcon}\n actions={actions}\n actionsCallback={actionsCallback}\n actionsPosition={actionsPosition}\n onClose={onClose}\n {...bannerContentProps}\n />\n </StyledSnackbar>\n );\n};\n"],"names":["HvBanner","id","classes","className","open","onClose","anchorOrigin","variant","transitionDuration","transitionDirection","showIcon","customIcon","actions","actionsCallback","actionsPosition","label","offset","bannerContentProps","others","anchorOriginOffset","anchorOriginTop","top","anchorOriginBottom","bottom","anchorOriginBanner","horizontal","vertical","SlideTransition","useCallback","properties","_jsx","Slide","direction","StyledSnackbar","style","capitalize","root","clsx","bannerClasses","rootClosed","anchorOriginTopCenter","anchorOriginBottomCenter","TransitionComponent","$isOpen","children","HvBannerContent","setId","content"],"mappings":";;;;;;;;;;;;;;;AAmEO,MAAMA,WAAWA,CAAC;AAAA,EACvBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,eAAe;AAAA,EACfC,UAAU;AAAA,EACVC,qBAAqB;AAAA,EACrBC,sBAAsB;AAAA,EACtBC,WAAW;AAAA,EACXC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,kBAAkB;AAAA,EAClBC;AAAAA,EACAC,SAAS;AAAA,EACTC;AAAAA,EACA,GAAGC;AACU,MAAM;AACnB,QAAMC,qBAAqB;AAAA,IACzBC,iBAAiB;AAAA,MACfC,KAAM,GAAEL,UAAU;AAAA,IACpB;AAAA,IACAM,oBAAoB;AAAA,MAClBC,QAAS,GAAEP,UAAU;AAAA,IACvB;AAAA,EAAA;AAGF,QAAMQ,qBAAqC;AAAA,IACzCC,YAAY;AAAA,IACZC,UAAUpB;AAAAA,EAAAA;AAGZ,QAAMqB,kBAAkBC,MAAAA,YACrBC,CAAeC,eAAAA,2BAAAA,IAACC,eAAAA,SAAK;AAAA,IAAA,GAAKF;AAAAA,IAAYG,WAAWvB;AAAAA,EAAAA,CAAoB,GACtE,CAACA,mBAAmB,CAAC;AAGvB,wCACGwB,cAAAA,gBAAc;AAAA,IACbC,OAAOf,mBAAoB,eAAcgB,oBAAAA,QAAW7B,YAAY,GAAG;AAAA,IACnEH;AAAAA,IACAF;AAAAA,IACAC,SAAS;AAAA,MACPkC,MAAMhC,OACFiC,cAAAA,QAAKC,cAAAA,QAAcF,MAAMlC,mCAASkC,IAAI,IACtCC,cAAKC,QAAAA,cAAAA,QAAcC,YAAYrC,mCAASqC,UAAU;AAAA,MACtDC,uBAAuBH,cAAAA,QACrBC,cAAAA,QAAcE,uBACdtC,mCAASsC,qBAAqB;AAAA,MAEhCC,0BAA0BJ,cAAAA,QACxBC,cAAAA,QAAcG,0BACdvC,mCAASuC,wBAAwB;AAAA,IAErC;AAAA,IACAnC,cAAckB;AAAAA,IACdkB,qBAAqBf;AAAAA,IACrBvB;AAAAA,IACAuC,SAASvC;AAAAA,IACTI;AAAAA,IAAuC,GACnCU;AAAAA,IAAM0B,yCAETC,+BAAe;AAAA,MACd5C,IAAI6C,MAAAA,MAAM7C,IAAI,SAAS;AAAA,MACvB8C,SAAShC;AAAAA,MACTR;AAAAA,MACAI;AAAAA,MACAD;AAAAA,MACAE;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAT;AAAAA,MAAiB,GACbY;AAAAA,IAAAA,CAAkB;AAAA,EAAA,CAET;AAErB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionContainer.cjs","sources":["../../../../../../src/components/Banner/BannerContent/ActionContainer/ActionContainer.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { HvBaseProps } from \"../../../../types\";\nimport actionContainerClasses, {\n HvActionContainerClasses,\n} from \"./actionContainerClasses\";\nimport {\n StyledActionContainer,\n StyledButton,\n StyledClose,\n StyledActionsInnerContainer,\n} from \"./ActionContainer.styles\";\nimport { HvActionGeneric, HvActionsGeneric } from \"components\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { useTheme } from \"hooks\";\n\nexport type HvActionContainerProps = HvBaseProps & {\n /** onClose function. */\n onClose?: Function;\n /** Actions to display. */\n action?: React.ReactNode | HvActionGeneric[];\n /** The callback function ran when an action is triggered, receiving `action` as param */\n actionCallback?: (\n event: React.SyntheticEvent,\n id: string,\n action: HvActionGeneric\n ) => void;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvActionContainerClasses;\n};\n\nexport const HvActionContainer = ({\n id,\n classes,\n onClose,\n action,\n actionCallback,\n ...others\n}: HvActionContainerProps) => {\n const { activeTheme, selectedMode } = useTheme();\n\n return (\n <StyledActionContainer\n className={clsx(\n actionContainerClasses.actionContainer,\n classes?.actionContainer\n )}\n >\n <StyledButton\n icon\n className={clsx(\n actionContainerClasses.closeAction,\n classes?.closeAction\n )}\n variant=\"secondaryGhost\"\n aria-label=\"Close\"\n onClick={onClose}\n tabIndex={0}\n $baseColor={\n activeTheme?.colors?.modes[selectedMode].base1 || theme.colors.base1\n }\n {...others}\n >\n <StyledClose\n iconSize=\"XS\"\n className={clsx(\n actionContainerClasses.iconContainer,\n classes?.iconContainer\n )}\n color=\"base2\"\n />\n </StyledButton>\n {action && (\n <StyledActionsInnerContainer\n className={clsx(\n actionContainerClasses.actionsInnerContainer,\n classes?.actionsInnerContainer\n )}\n >\n <HvActionsGeneric\n id={id}\n category=\"secondaryGhost\"\n actions={action}\n actionsCallback={actionCallback}\n />\n </StyledActionsInnerContainer>\n )}\n </StyledActionContainer>\n );\n};\n"],"names":["HvActionContainer","id","classes","onClose","action","actionCallback","others","activeTheme","selectedMode","useTheme","StyledActionContainer","className","clsx","actionContainerClasses","actionContainer","children","_jsx","StyledButton","icon","closeAction","variant","onClick","tabIndex","$baseColor","colors","modes","base1","theme","StyledClose","iconSize","iconContainer","color","StyledActionsInnerContainer","actionsInnerContainer","HvActionsGeneric","category","actions","actionsCallback"],"mappings":";;;;;;;;;;;AA8BO,MAAMA,oBAAoBA,CAAC;AAAA,EAChCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACmB,MAAM;;AACtB,QAAA;AAAA,IAAEC;AAAAA,IAAaC;AAAAA,MAAiBC,SAAU,SAAA;AAEhD,yCACGC,uBAAAA,uBAAqB;AAAA,IACpBC,WAAWC,cAAAA,QACTC,uBAAAA,QAAuBC,iBACvBZ,mCAASY,eAAe;AAAA,IACxBC,UAAA,CAEFC,2BAAAA,IAACC,qCAAY;AAAA,MACXC,MAAI;AAAA,MACJP,WAAWC,cAAAA,QACTC,uBAAAA,QAAuBM,aACvBjB,mCAASiB,WAAW;AAAA,MAEtBC,SAAQ;AAAA,MACR,cAAW;AAAA,MACXC,SAASlB;AAAAA,MACTmB,UAAU;AAAA,MACVC,cACEhB,gDAAaiB,WAAbjB,mBAAqBkB,MAAMjB,cAAckB,UAASC,kBAAMH,OAAOE;AAAAA,MAChE,GACGpB;AAAAA,MAAMS,yCAETa,oCAAW;AAAA,QACVC,UAAS;AAAA,QACTlB,WAAWC,cAAAA,QACTC,uBAAAA,QAAuBiB,eACvB5B,mCAAS4B,aAAa;AAAA,QAExBC,OAAM;AAAA,MAAA,CAAO;AAAA,IAAA,CACb,GAEH3B,UACCY,2BAAAA,IAACgB,oDAA2B;AAAA,MAC1BrB,WAAWC,cAAAA,QACTC,uBAAAA,QAAuBoB,uBACvB/B,mCAAS+B,qBAAqB;AAAA,MAC9BlB,yCAEDmB,iCAAgB;AAAA,QACfjC;AAAAA,QACAkC,UAAS;AAAA,QACTC,SAAShC;AAAAA,QACTiC,iBAAiBhC;AAAAA,MAAAA,CAAe;AAAA,IAAA,CAGrC,CAAA;AAAA,EAAA,CACqB;AAE5B;;"}
1
+ {"version":3,"file":"ActionContainer.cjs","sources":["../../../../../../src/components/Banner/BannerContent/ActionContainer/ActionContainer.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { HvBaseProps } from \"../../../../types\";\nimport actionContainerClasses, {\n HvActionContainerClasses,\n} from \"./actionContainerClasses\";\nimport {\n StyledActionContainer,\n StyledButton,\n StyledClose,\n StyledActionsInnerContainer,\n} from \"./ActionContainer.styles\";\nimport { HvActionGeneric, HvActionsGeneric } from \"../../../ActionsGeneric\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { useTheme } from \"../../../../hooks\";\n\nexport type HvActionContainerProps = HvBaseProps & {\n /** onClose function. */\n onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n /** Actions to display. */\n action?: React.ReactNode | HvActionGeneric[];\n /** The callback function ran when an action is triggered, receiving `action` as param */\n actionCallback?: (\n event: React.SyntheticEvent,\n id: string,\n action: HvActionGeneric\n ) => void;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvActionContainerClasses;\n};\n\nexport const HvActionContainer = ({\n id,\n classes,\n onClose,\n action,\n actionCallback,\n ...others\n}: HvActionContainerProps) => {\n const { activeTheme, selectedMode } = useTheme();\n\n return (\n <StyledActionContainer\n className={clsx(\n actionContainerClasses.actionContainer,\n classes?.actionContainer\n )}\n >\n <StyledButton\n icon\n className={clsx(\n actionContainerClasses.closeAction,\n classes?.closeAction\n )}\n variant=\"secondaryGhost\"\n aria-label=\"Close\"\n onClick={onClose}\n tabIndex={0}\n $baseColor={\n activeTheme?.colors?.modes[selectedMode].base1 || theme.colors.base1\n }\n {...others}\n >\n <StyledClose\n iconSize=\"XS\"\n className={clsx(\n actionContainerClasses.iconContainer,\n classes?.iconContainer\n )}\n color=\"base2\"\n />\n </StyledButton>\n {action && (\n <StyledActionsInnerContainer\n className={clsx(\n actionContainerClasses.actionsInnerContainer,\n classes?.actionsInnerContainer\n )}\n >\n <HvActionsGeneric\n id={id}\n category=\"secondaryGhost\"\n actions={action}\n actionsCallback={actionCallback}\n />\n </StyledActionsInnerContainer>\n )}\n </StyledActionContainer>\n );\n};\n"],"names":["HvActionContainer","id","classes","onClose","action","actionCallback","others","activeTheme","selectedMode","useTheme","StyledActionContainer","className","clsx","actionContainerClasses","actionContainer","children","_jsx","StyledButton","icon","closeAction","variant","onClick","tabIndex","$baseColor","colors","modes","base1","theme","StyledClose","iconSize","iconContainer","color","StyledActionsInnerContainer","actionsInnerContainer","HvActionsGeneric","category","actions","actionsCallback"],"mappings":";;;;;;;;;;;AA8BO,MAAMA,oBAAoBA,CAAC;AAAA,EAChCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACmB,MAAM;;AACtB,QAAA;AAAA,IAAEC;AAAAA,IAAaC;AAAAA,MAAiBC,SAAU,SAAA;AAEhD,yCACGC,uBAAAA,uBAAqB;AAAA,IACpBC,WAAWC,cAAAA,QACTC,uBAAAA,QAAuBC,iBACvBZ,mCAASY,eAAe;AAAA,IACxBC,UAAA,CAEFC,2BAAAA,IAACC,qCAAY;AAAA,MACXC,MAAI;AAAA,MACJP,WAAWC,cAAAA,QACTC,uBAAAA,QAAuBM,aACvBjB,mCAASiB,WAAW;AAAA,MAEtBC,SAAQ;AAAA,MACR,cAAW;AAAA,MACXC,SAASlB;AAAAA,MACTmB,UAAU;AAAA,MACVC,cACEhB,gDAAaiB,WAAbjB,mBAAqBkB,MAAMjB,cAAckB,UAASC,kBAAMH,OAAOE;AAAAA,MAChE,GACGpB;AAAAA,MAAMS,yCAETa,oCAAW;AAAA,QACVC,UAAS;AAAA,QACTlB,WAAWC,cAAAA,QACTC,uBAAAA,QAAuBiB,eACvB5B,mCAAS4B,aAAa;AAAA,QAExBC,OAAM;AAAA,MAAA,CAAO;AAAA,IAAA,CACb,GAEH3B,UACCY,2BAAAA,IAACgB,oDAA2B;AAAA,MAC1BrB,WAAWC,cAAAA,QACTC,uBAAAA,QAAuBoB,uBACvB/B,mCAAS+B,qBAAqB;AAAA,MAC9BlB,yCAEDmB,iCAAgB;AAAA,QACfjC;AAAAA,QACAkC,UAAS;AAAA,QACTC,SAAShC;AAAAA,QACTiC,iBAAiBhC;AAAAA,MAAAA,CAAe;AAAA,IAAA,CAGrC,CAAA;AAAA,EAAA,CACqB;AAE5B;;"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const clsx = require("clsx");
4
+ const bannerContentClasses = require("./bannerContentClasses.cjs");
4
5
  const BannerContent_styles = require("./BannerContent.styles.cjs");
5
6
  const React = require("react");
6
7
  const jsxRuntime = require("@emotion/react/jsx-runtime");
7
8
  const iconVariant = require("../../../utils/iconVariant.cjs");
8
- const bannerContentClasses = require("./bannerContentClasses.cjs");
9
9
  const MessageContainer = require("./MessageContainer/MessageContainer.cjs");
10
10
  const ActionContainer = require("./ActionContainer/ActionContainer.cjs");
11
11
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
@@ -1 +1 @@
1
- {"version":3,"file":"BannerContent.cjs","sources":["../../../../../src/components/Banner/BannerContent/BannerContent.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { SnackbarContentProps as MuiSnackbarContentProps } from \"@mui/material/SnackbarContent\";\nimport { HvBaseProps } from \"../../../types\";\nimport {\n bannerContentClasses,\n HvBannerContentClasses,\n HvMessageContainer,\n HvActionContainer,\n} from \".\";\nimport { StyledRoot, StyledSnackbarContent } from \"./BannerContent.styles\";\nimport {\n HvActionGeneric,\n HvBannerActionPosition,\n HvBannerVariant,\n} from \"components\";\nimport { forwardRef } from \"react\";\nimport { iconVariant } from \"utils\";\nimport { HvActionContainerProps } from \"./ActionContainer/ActionContainer\";\n\nexport type HvBannerContentProps = Omit<\n MuiSnackbarContentProps,\n \"variant\" | \"classes\"\n> &\n HvBaseProps & {\n /** The message to display. */\n content?: React.ReactNode;\n /** Variant of the snackbar. */\n variant?: HvBannerVariant;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** onClose function. */\n onClose?: Function;\n /** Actions to display on the right side. */\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 position property of the header. */\n actionsPosition?: HvBannerActionPosition;\n /** The props to pass down to the Action Container. */\n actionProps?: HvActionContainerProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvBannerContentClasses;\n };\n\nexport const HvBannerContent = forwardRef<HTMLDivElement, HvBannerContentProps>(\n (\n {\n id,\n classes,\n showIcon = false,\n customIcon,\n variant = \"default\",\n onClose,\n actions,\n actionsCallback,\n actionsPosition = \"auto\",\n content,\n actionProps,\n ...others\n },\n ref\n ) => {\n const icon =\n customIcon || (showIcon && iconVariant(variant, \"base2\", undefined));\n\n // default to inline\n // this might try to be more intelligent in the future,\n // taking into account the content length, available space,\n // number of actions, etc..\n const effectiveActionsPosition =\n actionsPosition === \"auto\" ? \"inline\" : actionsPosition;\n\n return (\n <StyledRoot\n className={clsx(\n bannerContentClasses.outContainer,\n classes?.outContainer\n )}\n >\n <StyledSnackbarContent\n ref={ref}\n id={id}\n classes={{\n root: clsx(bannerContentClasses.root, classes?.root),\n message: clsx(bannerContentClasses.message, classes?.message),\n action: clsx(bannerContentClasses.action, classes?.action),\n }}\n className={clsx(\n bannerContentClasses.baseVariant,\n classes?.baseVariant,\n bannerContentClasses[variant],\n classes?.[variant]\n )}\n message={\n <HvMessageContainer\n id={id}\n icon={icon}\n {...(effectiveActionsPosition === \"inline\" && {\n actionsOnMessage: actions,\n actionsOnMessageCallback: actionsCallback,\n })}\n message={content}\n />\n }\n action={\n <HvActionContainer\n id={id}\n onClose={onClose}\n {...(effectiveActionsPosition === \"bottom-right\" && {\n action: actions,\n actionCallback: actionsCallback,\n })}\n {...actionProps}\n />\n }\n $variant={variant as HvBannerVariant}\n {...others}\n />\n </StyledRoot>\n );\n }\n);\n"],"names":["HvBannerContent","forwardRef","id","classes","showIcon","customIcon","variant","onClose","actions","actionsCallback","actionsPosition","content","actionProps","others","ref","icon","iconVariant","undefined","effectiveActionsPosition","StyledRoot","className","clsx","bannerContentClasses","outContainer","children","StyledSnackbarContent","root","message","action","baseVariant","HvMessageContainer","actionsOnMessage","actionsOnMessageCallback","HvActionContainer","actionCallback","$variant"],"mappings":";;;;;;;;;;;;AAkDaA,MAAAA,kBAAkBC,iBAC7B,CACE;AAAA,EACEC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC;AAAAA,EACAC,UAAU;AAAA,EACVC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,kBAAkB;AAAA,EAClBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACL,GACAC,QACG;AACH,QAAMC,OACJV,cAAeD,YAAYY,YAAAA,QAAYV,SAAS,SAASW,MAAS;AAM9DC,QAAAA,2BACJR,oBAAoB,SAAS,WAAWA;AAE1C,wCACGS,qBAAAA,YAAU;AAAA,IACTC,WAAWC,cAAAA,QACTC,qBAAAA,QAAqBC,cACrBpB,mCAASoB,YAAY;AAAA,IACrBC,yCAEDC,4CAAqB;AAAA,MACpBX;AAAAA,MACAZ;AAAAA,MACAC,SAAS;AAAA,QACPuB,MAAML,cAAAA,QAAKC,qBAAAA,QAAqBI,MAAMvB,mCAASuB,IAAI;AAAA,QACnDC,SAASN,cAAAA,QAAKC,qBAAAA,QAAqBK,SAASxB,mCAASwB,OAAO;AAAA,QAC5DC,QAAQP,cAAAA,QAAKC,qBAAAA,QAAqBM,QAAQzB,mCAASyB,MAAM;AAAA,MAC3D;AAAA,MACAR,WAAWC,cACTC,QAAAA,6BAAqBO,aACrB1B,mCAAS0B,aACTP,qBAAAA,QAAqBhB,OAAO,GAC5BH,mCAAUG,QAAQ;AAAA,MAEpBqB,wCACGG,qCAAkB;AAAA,QACjB5B;AAAAA,QACAa;AAAAA,QAAW,GACNG,6BAA6B,YAAY;AAAA,UAC5Ca,kBAAkBvB;AAAAA,UAClBwB,0BAA0BvB;AAAAA,QAC5B;AAAA,QACAkB,SAAShB;AAAAA,MAAAA,CAEZ;AAAA,MACDiB,uCACGK,mCAAiB;AAAA,QAChB/B;AAAAA,QACAK;AAAAA,QAAiB,GACZW,6BAA6B,kBAAkB;AAAA,UAClDU,QAAQpB;AAAAA,UACR0B,gBAAgBzB;AAAAA,QAClB;AAAA,QAAC,GACGG;AAAAA,MAAAA,CAEP;AAAA,MACDuB,UAAU7B;AAAAA,MAA2B,GACjCO;AAAAA,IAAAA,CAAM;AAAA,EAAA,CAED;AAEjB,CAAC;;"}
1
+ {"version":3,"file":"BannerContent.cjs","sources":["../../../../../src/components/Banner/BannerContent/BannerContent.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { SnackbarContentProps as MuiSnackbarContentProps } from \"@mui/material/SnackbarContent\";\nimport { HvBaseProps } from \"../../../types\";\nimport bannerContentClasses, {\n HvBannerContentClasses,\n} from \"./bannerContentClasses\";\nimport { HvActionContainer } from \"./ActionContainer\";\nimport { HvMessageContainer } from \"./MessageContainer\";\nimport { StyledRoot, StyledSnackbarContent } from \"./BannerContent.styles\";\nimport {\n HvActionGeneric,\n HvBannerActionPosition,\n HvBannerVariant,\n} from \"components\";\nimport { forwardRef } from \"react\";\nimport { iconVariant } from \"../../../utils\";\nimport { HvActionContainerProps } from \"./ActionContainer/ActionContainer\";\n\nexport type HvBannerContentProps = Omit<\n MuiSnackbarContentProps,\n \"variant\" | \"classes\" | \"onClose\"\n> &\n HvBaseProps & {\n /** The message to display. */\n content?: React.ReactNode;\n /** Variant of the snackbar. */\n variant?: HvBannerVariant;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** onClose function. */\n onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n /** Actions to display on the right side. */\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 position property of the header. */\n actionsPosition?: HvBannerActionPosition;\n /** The props to pass down to the Action Container. */\n actionProps?: HvActionContainerProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvBannerContentClasses;\n };\n\nexport const HvBannerContent = forwardRef<HTMLDivElement, HvBannerContentProps>(\n (\n {\n id,\n classes,\n showIcon = false,\n customIcon,\n variant = \"default\",\n onClose,\n actions,\n actionsCallback,\n actionsPosition = \"auto\",\n content,\n actionProps,\n ...others\n },\n ref\n ) => {\n const icon =\n customIcon || (showIcon && iconVariant(variant, \"base2\", undefined));\n\n // default to inline\n // this might try to be more intelligent in the future,\n // taking into account the content length, available space,\n // number of actions, etc..\n const effectiveActionsPosition =\n actionsPosition === \"auto\" ? \"inline\" : actionsPosition;\n\n return (\n <StyledRoot\n className={clsx(\n bannerContentClasses.outContainer,\n classes?.outContainer\n )}\n >\n <StyledSnackbarContent\n ref={ref}\n id={id}\n classes={{\n root: clsx(bannerContentClasses.root, classes?.root),\n message: clsx(bannerContentClasses.message, classes?.message),\n action: clsx(bannerContentClasses.action, classes?.action),\n }}\n className={clsx(\n bannerContentClasses.baseVariant,\n classes?.baseVariant,\n bannerContentClasses[variant],\n classes?.[variant]\n )}\n message={\n <HvMessageContainer\n id={id}\n icon={icon}\n {...(effectiveActionsPosition === \"inline\" && {\n actionsOnMessage: actions,\n actionsOnMessageCallback: actionsCallback,\n })}\n message={content}\n />\n }\n action={\n <HvActionContainer\n id={id}\n onClose={onClose}\n {...(effectiveActionsPosition === \"bottom-right\" && {\n action: actions,\n actionCallback: actionsCallback,\n })}\n {...actionProps}\n />\n }\n $variant={variant as HvBannerVariant}\n {...others}\n />\n </StyledRoot>\n );\n }\n);\n"],"names":["HvBannerContent","forwardRef","id","classes","showIcon","customIcon","variant","onClose","actions","actionsCallback","actionsPosition","content","actionProps","others","ref","icon","iconVariant","undefined","effectiveActionsPosition","StyledRoot","className","clsx","bannerContentClasses","outContainer","children","StyledSnackbarContent","root","message","action","baseVariant","HvMessageContainer","actionsOnMessage","actionsOnMessageCallback","HvActionContainer","actionCallback","$variant"],"mappings":";;;;;;;;;;;;AAiDaA,MAAAA,kBAAkBC,iBAC7B,CACE;AAAA,EACEC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC;AAAAA,EACAC,UAAU;AAAA,EACVC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,kBAAkB;AAAA,EAClBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACL,GACAC,QACG;AACH,QAAMC,OACJV,cAAeD,YAAYY,YAAAA,QAAYV,SAAS,SAASW,MAAS;AAM9DC,QAAAA,2BACJR,oBAAoB,SAAS,WAAWA;AAE1C,wCACGS,qBAAAA,YAAU;AAAA,IACTC,WAAWC,cAAAA,QACTC,qBAAAA,QAAqBC,cACrBpB,mCAASoB,YAAY;AAAA,IACrBC,yCAEDC,4CAAqB;AAAA,MACpBX;AAAAA,MACAZ;AAAAA,MACAC,SAAS;AAAA,QACPuB,MAAML,cAAAA,QAAKC,qBAAAA,QAAqBI,MAAMvB,mCAASuB,IAAI;AAAA,QACnDC,SAASN,cAAAA,QAAKC,qBAAAA,QAAqBK,SAASxB,mCAASwB,OAAO;AAAA,QAC5DC,QAAQP,cAAAA,QAAKC,qBAAAA,QAAqBM,QAAQzB,mCAASyB,MAAM;AAAA,MAC3D;AAAA,MACAR,WAAWC,cACTC,QAAAA,6BAAqBO,aACrB1B,mCAAS0B,aACTP,qBAAAA,QAAqBhB,OAAO,GAC5BH,mCAAUG,QAAQ;AAAA,MAEpBqB,wCACGG,qCAAkB;AAAA,QACjB5B;AAAAA,QACAa;AAAAA,QAAW,GACNG,6BAA6B,YAAY;AAAA,UAC5Ca,kBAAkBvB;AAAAA,UAClBwB,0BAA0BvB;AAAAA,QAC5B;AAAA,QACAkB,SAAShB;AAAAA,MAAAA,CAEZ;AAAA,MACDiB,uCACGK,mCAAiB;AAAA,QAChB/B;AAAAA,QACAK;AAAAA,QAAiB,GACZW,6BAA6B,kBAAkB;AAAA,UAClDU,QAAQpB;AAAAA,UACR0B,gBAAgBzB;AAAAA,QAClB;AAAA,QAAC,GACGG;AAAAA,MAAAA,CAEP;AAAA,MACDuB,UAAU7B;AAAAA,MAA2B,GACjCO;AAAAA,IAAAA,CAAM;AAAA,EAAA,CAED;AAEjB,CAAC;;"}
@@ -10,10 +10,10 @@ const reactPopper = require("react-popper");
10
10
  const core = require("@popperjs/core");
11
11
  const baseDropdownClasses = require("./baseDropdownClasses.cjs");
12
12
  const jsxRuntime = require("@emotion/react/jsx-runtime");
13
- const useTheme = require("../../hooks/useTheme.cjs");
14
13
  const useForkRef = require("../../hooks/useForkRef.cjs");
15
14
  const useUniqueId = require("../../hooks/useUniqueId.cjs");
16
15
  const BaseDropdownContext = require("./BaseDropdownContext/BaseDropdownContext.cjs");
16
+ const useTheme = require("../../hooks/useTheme.cjs");
17
17
  const useControlled = require("../../hooks/useControlled.cjs");
18
18
  const keyCheck = require("../../utils/keyboardUtils/keyCheck.cjs");
19
19
  const setId = require("../../utils/setId.cjs");
@@ -7,9 +7,9 @@ const focusableElementFinder = require("../../utils/focusableElementFinder.cjs")
7
7
  const uikitReactIcons = require("@hitachivantara/uikit-react-icons");
8
8
  const React = require("react");
9
9
  const uikitStyles = require("@hitachivantara/uikit-styles");
10
+ const withId = require("../../hocs/withId.cjs");
10
11
  const react = require("@emotion/react");
11
12
  const jsxRuntime = require("@emotion/react/jsx-runtime");
12
- const withId = require("../../hocs/withId.cjs");
13
13
  const List = require("../List/List.cjs");
14
14
  const useControlled = require("../../hooks/useControlled.cjs");
15
15
  const setId = require("../../utils/setId.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"DropDownMenu.cjs","sources":["../../../../src/components/DropDownMenu/DropDownMenu.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useControlled } from \"hooks\";\nimport { HvBaseProps } from \"../../types\";\nimport {\n StyledBaseDropDown,\n StyledButton,\n StyledPanel,\n} from \"./DropDownMenu.styles\";\nimport dropDownMenuClasses, {\n HvDropDownMenuClasses,\n} from \"./dropDownMenuClasses\";\nimport { isKeypress, keyboardCodes, outlineStyles, setId } from \"utils\";\nimport getPrevNextFocus from \"utils/focusableElementFinder\";\nimport { MoreOptionsVertical } from \"@hitachivantara/uikit-react-icons\";\nimport { HvButtonVariant, HvList, HvListValue } from \"components\";\nimport { useMemo } from \"react\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { withId } from \"hocs\";\nimport { ClassNames } from \"@emotion/react\";\n\nexport type HvDropDownMenuProps = HvBaseProps<HTMLDivElement, { onClick }> & {\n /** Icon. */\n icon?: React.ReactElement;\n /**\n * A list containing the elements to be rendered.\n *\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - icon: The icon node to be rendered on the left.\n * - showNavIcon: If true renders the navigation icon on the right.\n */\n dataList: HvListValue[];\n /** Placement of the dropdown. */\n placement?: \"left\" | \"right\";\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n /** Function executed on toggle of the dropdown. Should receive the open status. */\n onToggle?: (event: Event, open: boolean) => void;\n /** Function executed in each onClick. Should received the clicked element. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue\n ) => void;\n /** Keep the Dropdown Menu opened after clicking one option */\n keepOpened?: boolean;\n /** Defines if the component is disabled. */\n disabled?: boolean;\n /** If true it should be displayed open. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** The variant to be used in the header. */\n category?: HvButtonVariant;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDropDownMenuClasses;\n};\n\n/**\n * A drop-down menu is a graphical control element, similar to a list box, that allows the user to choose a value from a list.\n */\nconst HvDropDownMenu = ({\n id,\n classes,\n className,\n icon,\n placement = \"right\",\n dataList,\n disablePortal = false,\n onToggle,\n onClick,\n keepOpened = true,\n disabled = false,\n expanded,\n defaultExpanded = false,\n category = \"secondaryGhost\",\n ...others\n}: HvDropDownMenuProps) => {\n const [open, setOpen] = useControlled(expanded, Boolean(defaultExpanded));\n const focusNodes = getPrevNextFocus(setId(id, \"icon-button\"));\n\n const listId = setId(id, \"list\");\n\n const handleClose = (event) => {\n // this will only run if uncontrolled\n setOpen(false);\n onToggle?.(event, false);\n };\n\n // If the ESCAPE key is pressed inside the list, the close handler must be called.\n const handleKeyDown = (event) => {\n if (isKeypress(event, keyboardCodes.Tab)) {\n const node = event.shiftKey ? focusNodes.prevFocus : focusNodes.nextFocus;\n if (node) setTimeout(() => node.focus(), 0);\n handleClose(event);\n }\n event.preventDefault();\n };\n\n const setFocusToContent = (containerRef) => {\n containerRef?.getElementsByTagName(\"li\")[0]?.focus();\n };\n\n const headerComponent = (\n <StyledButton\n icon\n variant={category}\n id={setId(id, \"icon-button\")}\n className={clsx(\n dropDownMenuClasses.icon,\n classes?.icon,\n open && clsx(dropDownMenuClasses.iconSelected, classes?.iconSelected)\n )}\n aria-expanded={open}\n disabled={disabled}\n aria-label=\"Dropdown menu\"\n $open={open}\n >\n {icon || <MoreOptionsVertical color={disabled ? \"atmo5\" : undefined} />}\n </StyledButton>\n );\n\n const condensed = useMemo(() => dataList.every((el) => !el.icon), [dataList]);\n const popperStyle = {\n style: {\n zIndex: theme.zIndices.tooltip,\n width: \"auto\",\n position: \"relative\",\n },\n };\n\n return (\n <ClassNames>\n {({ css }) => (\n <StyledBaseDropDown\n id={id}\n className={clsx(\n className,\n dropDownMenuClasses.container,\n classes?.container\n )}\n classes={{\n root: clsx(\n dropDownMenuClasses.root,\n classes?.root,\n css({\n display: \"inline-block\",\n width: \"auto\",\n \"&.focus-visible $icon\": {\n ...outlineStyles,\n },\n })\n ),\n container: clsx(\n dropDownMenuClasses.baseContainer,\n classes?.baseContainer\n ),\n }}\n expanded={open && !disabled}\n component={headerComponent}\n aria-haspopup=\"menu\"\n placement={placement}\n variableWidth\n disablePortal={disablePortal}\n onToggle={(e, s) => {\n // this will only run if uncontrolled\n setOpen(s);\n onToggle?.(e, s);\n }}\n disabled={disabled}\n onContainerCreation={setFocusToContent}\n popperProps={popperStyle}\n {...others}\n >\n <StyledPanel>\n <HvList\n id={listId}\n values={dataList}\n selectable={false}\n condensed={condensed}\n onClick={(event, item) => {\n if (!keepOpened) handleClose(event);\n onClick?.(event, item);\n }}\n onKeyDown={handleKeyDown}\n classes={{\n root: clsx(dropDownMenuClasses.menuList, classes?.menuList),\n }}\n />\n </StyledPanel>\n </StyledBaseDropDown>\n )}\n </ClassNames>\n );\n};\n\nexport default withId(HvDropDownMenu);\n"],"names":["HvDropDownMenu","id","classes","className","icon","placement","dataList","disablePortal","onToggle","onClick","keepOpened","disabled","expanded","defaultExpanded","category","others","open","setOpen","useControlled","Boolean","focusNodes","getPrevNextFocus","setId","listId","handleClose","event","handleKeyDown","isKeypress","keyboardCodes","Tab","node","shiftKey","prevFocus","nextFocus","setTimeout","focus","preventDefault","setFocusToContent","containerRef","getElementsByTagName","headerComponent","StyledButton","variant","clsx","dropDownMenuClasses","iconSelected","$open","children","_jsx","MoreOptionsVertical","color","undefined","condensed","useMemo","every","el","popperStyle","style","zIndex","theme","zIndices","tooltip","width","position","ClassNames","css","StyledBaseDropDown","container","root","display","outlineStyles","baseContainer","component","variableWidth","e","s","onContainerCreation","popperProps","StyledPanel","HvList","values","selectable","item","onKeyDown","menuList","withId"],"mappings":"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"}
1
+ {"version":3,"file":"DropDownMenu.cjs","sources":["../../../../src/components/DropDownMenu/DropDownMenu.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { useControlled } from \"hooks\";\nimport { HvBaseProps } from \"../../types\";\nimport {\n StyledBaseDropDown,\n StyledButton,\n StyledPanel,\n} from \"./DropDownMenu.styles\";\nimport dropDownMenuClasses, {\n HvDropDownMenuClasses,\n} from \"./dropDownMenuClasses\";\nimport { isKeypress, keyboardCodes, outlineStyles, setId } from \"utils\";\nimport getPrevNextFocus from \"utils/focusableElementFinder\";\nimport { MoreOptionsVertical } from \"@hitachivantara/uikit-react-icons\";\nimport { HvButtonVariant, HvList, HvListValue } from \"components\";\nimport { useMemo } from \"react\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport withId from \"../../hocs/withId\";\nimport { ClassNames } from \"@emotion/react\";\n\nexport type HvDropDownMenuProps = HvBaseProps<HTMLDivElement, { onClick }> & {\n /** Icon. */\n icon?: React.ReactElement;\n /**\n * A list containing the elements to be rendered.\n *\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - icon: The icon node to be rendered on the left.\n * - showNavIcon: If true renders the navigation icon on the right.\n */\n dataList: HvListValue[];\n /** Placement of the dropdown. */\n placement?: \"left\" | \"right\";\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n /** Function executed on toggle of the dropdown. Should receive the open status. */\n onToggle?: (event: Event, open: boolean) => void;\n /** Function executed in each onClick. Should received the clicked element. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue\n ) => void;\n /** Keep the Dropdown Menu opened after clicking one option */\n keepOpened?: boolean;\n /** Defines if the component is disabled. */\n disabled?: boolean;\n /** If true it should be displayed open. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** The variant to be used in the header. */\n category?: HvButtonVariant;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDropDownMenuClasses;\n};\n\n/**\n * A drop-down menu is a graphical control element, similar to a list box, that allows the user to choose a value from a list.\n */\nconst HvDropDownMenu = ({\n id,\n classes,\n className,\n icon,\n placement = \"right\",\n dataList,\n disablePortal = false,\n onToggle,\n onClick,\n keepOpened = true,\n disabled = false,\n expanded,\n defaultExpanded = false,\n category = \"secondaryGhost\",\n ...others\n}: HvDropDownMenuProps) => {\n const [open, setOpen] = useControlled(expanded, Boolean(defaultExpanded));\n const focusNodes = getPrevNextFocus(setId(id, \"icon-button\"));\n\n const listId = setId(id, \"list\");\n\n const handleClose = (event) => {\n // this will only run if uncontrolled\n setOpen(false);\n onToggle?.(event, false);\n };\n\n // If the ESCAPE key is pressed inside the list, the close handler must be called.\n const handleKeyDown = (event) => {\n if (isKeypress(event, keyboardCodes.Tab)) {\n const node = event.shiftKey ? focusNodes.prevFocus : focusNodes.nextFocus;\n if (node) setTimeout(() => node.focus(), 0);\n handleClose(event);\n }\n event.preventDefault();\n };\n\n const setFocusToContent = (containerRef) => {\n containerRef?.getElementsByTagName(\"li\")[0]?.focus();\n };\n\n const headerComponent = (\n <StyledButton\n icon\n variant={category}\n id={setId(id, \"icon-button\")}\n className={clsx(\n dropDownMenuClasses.icon,\n classes?.icon,\n open && clsx(dropDownMenuClasses.iconSelected, classes?.iconSelected)\n )}\n aria-expanded={open}\n disabled={disabled}\n aria-label=\"Dropdown menu\"\n $open={open}\n >\n {icon || <MoreOptionsVertical color={disabled ? \"atmo5\" : undefined} />}\n </StyledButton>\n );\n\n const condensed = useMemo(() => dataList.every((el) => !el.icon), [dataList]);\n const popperStyle = {\n style: {\n zIndex: theme.zIndices.tooltip,\n width: \"auto\",\n position: \"relative\",\n },\n };\n\n return (\n <ClassNames>\n {({ css }) => (\n <StyledBaseDropDown\n id={id}\n className={clsx(\n className,\n dropDownMenuClasses.container,\n classes?.container\n )}\n classes={{\n root: clsx(\n dropDownMenuClasses.root,\n classes?.root,\n css({\n display: \"inline-block\",\n width: \"auto\",\n \"&.focus-visible $icon\": {\n ...outlineStyles,\n },\n })\n ),\n container: clsx(\n dropDownMenuClasses.baseContainer,\n classes?.baseContainer\n ),\n }}\n expanded={open && !disabled}\n component={headerComponent}\n aria-haspopup=\"menu\"\n placement={placement}\n variableWidth\n disablePortal={disablePortal}\n onToggle={(e, s) => {\n // this will only run if uncontrolled\n setOpen(s);\n onToggle?.(e, s);\n }}\n disabled={disabled}\n onContainerCreation={setFocusToContent}\n popperProps={popperStyle}\n {...others}\n >\n <StyledPanel>\n <HvList\n id={listId}\n values={dataList}\n selectable={false}\n condensed={condensed}\n onClick={(event, item) => {\n if (!keepOpened) handleClose(event);\n onClick?.(event, item);\n }}\n onKeyDown={handleKeyDown}\n classes={{\n root: clsx(dropDownMenuClasses.menuList, classes?.menuList),\n }}\n />\n </StyledPanel>\n </StyledBaseDropDown>\n )}\n </ClassNames>\n );\n};\n\nexport default withId(HvDropDownMenu);\n"],"names":["HvDropDownMenu","id","classes","className","icon","placement","dataList","disablePortal","onToggle","onClick","keepOpened","disabled","expanded","defaultExpanded","category","others","open","setOpen","useControlled","Boolean","focusNodes","getPrevNextFocus","setId","listId","handleClose","event","handleKeyDown","isKeypress","keyboardCodes","Tab","node","shiftKey","prevFocus","nextFocus","setTimeout","focus","preventDefault","setFocusToContent","containerRef","getElementsByTagName","headerComponent","StyledButton","variant","clsx","dropDownMenuClasses","iconSelected","$open","children","_jsx","MoreOptionsVertical","color","undefined","condensed","useMemo","every","el","popperStyle","style","zIndex","theme","zIndices","tooltip","width","position","ClassNames","css","StyledBaseDropDown","container","root","display","outlineStyles","baseContainer","component","variableWidth","e","s","onContainerCreation","popperProps","StyledPanel","HvList","values","selectable","item","onKeyDown","menuList","withId"],"mappings":"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"}
@@ -7,8 +7,8 @@ const accept = require("attr-accept");
7
7
  const DropZone_styles = require("./DropZone.styles.cjs");
8
8
  const clsx = require("clsx");
9
9
  const utils = require("../utils.cjs");
10
- const jsxRuntime = require("@emotion/react/jsx-runtime");
11
10
  const withId = require("../../../hocs/withId.cjs");
11
+ const jsxRuntime = require("@emotion/react/jsx-runtime");
12
12
  const setId = require("../../../utils/setId.cjs");
13
13
  const keyCheck = require("../../../utils/keyboardUtils/keyCheck.cjs");
14
14
  const keyboardCodes = require("../../../utils/keyboardUtils/keyboardCodes.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"DropZone.cjs","sources":["../../../../../src/components/FileUploader/DropZone/DropZone.tsx"],"sourcesContent":["import { HvFileData, HvFilesAddedEvent } from \"../File\";\nimport dropZoneClasses, { HvDropZoneClasses } from \"./dropZoneClasses\";\nimport React, { useRef, useState } from \"react\";\nimport { uniqueId } from \"lodash\";\nimport accept from \"attr-accept\";\nimport {\n StyledDragText,\n StyledDropArea,\n StyledDropAreaIcon,\n StyledDropAreaLabel,\n StyledDropAreaLabels,\n StyledDropZoneContainer,\n StyledDropZoneLabelsGroup,\n StyledInfoMessage,\n StyledInput,\n StyledLabel,\n StyledSelectedFilesText,\n} from \"./DropZone.styles\";\nimport clsx from \"clsx\";\nimport { isKeypress, keyboardCodes, setId } from \"utils\";\nimport { convertUnits } from \"../utils\";\nimport { withId } from \"hocs\";\n\nexport type HvDropZoneLabels = {\n /**\n * Extensions of the accepted file types\n */\n acceptedFiles?: string;\n /**\n * Dropzone area label.\n */\n dropzone?: string;\n /**\n * Size file warning label.\n */\n sizeWarning?: string;\n /**\n * Size file warning label.\n */\n drag?: string;\n /**\n * Size file warning label.\n */\n selectFiles?: string;\n /**\n * Theming sheet used to style components\n * */\n dropFiles?: string;\n /**\n * Message to display when file size is greater than allowed\n * */\n fileSizeError?: string;\n /**\n * Message to display when file type is greater than allowed\n * */\n fileTypeError?: string;\n};\n\nexport type HvDropZoneProps = {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Labels to present in FileUploader.\n */\n labels?: HvDropZoneLabels;\n /**\n * Whether the Dropzone should accept multiple files at once.\n */\n multiple?: boolean;\n /**\n * If the input is disabled or not\n */\n disabled?: boolean;\n /**\n * Files extensions accepted for upload.\n */\n acceptedFiles: string[];\n /**\n * Max upload size\n * */\n maxFileSize: number;\n /**\n * Function responsible for processing files added to the drop zone.\n */\n onFilesAdded?: HvFilesAddedEvent;\n /**\n * Whether the DropZone should hide labels or not.\n */\n hideLabels?: boolean;\n /**\n * Attributes applied to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvDropZoneClasses;\n};\n\nexport const HvDropZone = withId(\n ({\n id,\n classes,\n labels,\n acceptedFiles,\n maxFileSize,\n inputProps,\n hideLabels,\n multiple = true,\n disabled = false,\n onFilesAdded,\n }: HvDropZoneProps) => {\n const [dragState, setDrag] = useState<boolean>(false);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const leaveDropArea = () => {\n setDrag(false);\n };\n\n const enterDropArea = () => {\n setDrag(true);\n };\n\n const onChangeHandler = (filesList: FileList) => {\n const filesToProcess = Object.keys(filesList).map((e) => filesList[e]);\n\n const newFiles: HvFileData[] = [];\n\n filesToProcess.forEach((file: File) => {\n const newFile: HvFileData = file;\n\n const isSizeAllowed = file.size <= maxFileSize;\n const isFileAccepted =\n !acceptedFiles.length ||\n acceptedFiles.indexOf(file.type.split(\"/\")[1]) > -1 ||\n acceptedFiles.some((acceptExtension) =>\n accept({ name: file.name, type: file.type }, acceptExtension)\n );\n\n if (!isFileAccepted) {\n newFile.errorMessage = labels?.fileTypeError;\n newFile.status = \"fail\";\n } else if (!isSizeAllowed) {\n newFile.errorMessage = labels?.fileSizeError;\n newFile.status = \"fail\";\n }\n\n newFile.id = uniqueId(\"uploaded-file-data-\");\n newFiles.push(newFile);\n });\n\n onFilesAdded?.(newFiles);\n };\n\n return (\n <>\n {!hideLabels && (\n <StyledDropZoneLabelsGroup\n id={id}\n className={clsx(\n classes?.dropZoneLabelsGroup,\n dropZoneClasses.dropZoneLabelsGroup\n )}\n aria-label=\"File Dropzone\"\n >\n <StyledLabel\n id={setId(id, \"input-file-label\")}\n htmlFor={setId(id, \"input-file\")}\n label={labels?.dropzone}\n className={clsx(\n classes?.dropZoneLabel,\n dropZoneClasses.dropZoneLabel\n )}\n $disabled={disabled}\n />\n <StyledInfoMessage\n $disabled={disabled}\n id={setId(id, \"description\")}\n >\n {Number.isInteger(maxFileSize) &&\n `${labels?.sizeWarning} ${convertUnits(maxFileSize)}`}\n {labels?.acceptedFiles && labels.acceptedFiles}\n {!labels?.acceptedFiles &&\n acceptedFiles.length > 0 &&\n `\\u00A0(${acceptedFiles.join(\", \")})`}\n </StyledInfoMessage>\n </StyledDropZoneLabelsGroup>\n )}\n <StyledDropZoneContainer\n id={setId(id, \"button\")}\n className={clsx(\n classes?.dropZoneContainer,\n dropZoneClasses.dropZoneContainer,\n dragState && clsx(classes?.dragAction, dropZoneClasses.dragAction),\n disabled &&\n clsx(\n classes?.dropZoneContainerDisabled,\n dropZoneClasses.dropZoneContainerDisabled\n )\n )}\n $drag={dragState}\n $disabled={disabled}\n role=\"button\"\n tabIndex={0}\n onDragEnter={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDragLeave={leaveDropArea}\n onDropCapture={leaveDropArea}\n onDragOver={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDrop={(event) => {\n if (!disabled) {\n const { files } = event.dataTransfer;\n if (multiple === true || files.length === 1) {\n event.stopPropagation();\n event.preventDefault();\n onChangeHandler(files);\n }\n }\n }}\n onKeyDown={(e) => {\n if (isKeypress(e, keyboardCodes.Enter) || isKeypress(e, 32)) {\n inputRef.current?.click();\n }\n }}\n >\n <StyledInput\n id={setId(id, \"input-file\")}\n tabIndex={-1}\n className={clsx(classes?.inputArea, dropZoneClasses.inputArea)}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n title={!disabled ? `${labels?.drag}\\xa0${labels?.selectFiles}` : \"\"}\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n }}\n onChange={() => {\n if (!disabled && inputRef.current?.files) {\n onChangeHandler(inputRef.current.files);\n }\n }}\n ref={inputRef}\n accept={acceptedFiles.join(\",\")}\n {...inputProps}\n />\n <StyledDropArea\n className={clsx(classes?.dropArea, dropZoneClasses.dropArea)}\n >\n {dragState ? (\n <StyledDropAreaLabel\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(classes?.dragText, dropZoneClasses.dragText)}\n >\n {labels?.dropFiles}\n </StyledDragText>\n </StyledDropAreaLabel>\n ) : (\n <>\n <StyledDropAreaIcon\n iconSize=\"M\"\n className={clsx(\n classes?.dropZoneAreaIcon,\n dropZoneClasses.dropZoneAreaIcon\n )}\n color={disabled ? \"atmo5\" : \"acce1\"}\n />\n <StyledDropAreaLabels\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(\n classes?.dragText,\n dropZoneClasses.dragText\n )}\n >\n {labels?.drag}\n <StyledSelectedFilesText\n className={clsx(\n classes?.selectFilesText,\n dropZoneClasses.selectFilesText\n )}\n >{`\\xa0${labels?.selectFiles}`}</StyledSelectedFilesText>\n </StyledDragText>\n </StyledDropAreaLabels>\n </>\n )}\n </StyledDropArea>\n </StyledDropZoneContainer>\n </>\n );\n }\n);\n"],"names":["HvDropZone","withId","id","classes","labels","acceptedFiles","maxFileSize","inputProps","hideLabels","multiple","disabled","onFilesAdded","dragState","setDrag","useState","inputRef","useRef","leaveDropArea","enterDropArea","onChangeHandler","filesList","filesToProcess","Object","keys","map","e","newFiles","forEach","file","newFile","isSizeAllowed","size","isFileAccepted","length","indexOf","type","split","some","acceptExtension","accept","name","errorMessage","fileTypeError","status","fileSizeError","uniqueId","push","_Fragment","children","StyledDropZoneLabelsGroup","className","clsx","dropZoneLabelsGroup","dropZoneClasses","_jsx","StyledLabel","setId","htmlFor","label","dropzone","dropZoneLabel","$disabled","_jsxs","StyledInfoMessage","Number","isInteger","sizeWarning","convertUnits","join","StyledDropZoneContainer","dropZoneContainer","dragAction","dropZoneContainerDisabled","$drag","role","tabIndex","onDragEnter","event","stopPropagation","preventDefault","onDragLeave","onDropCapture","onDragOver","onDrop","files","dataTransfer","onKeyDown","isKeypress","keyboardCodes","Enter","current","click","StyledInput","inputArea","title","drag","selectFiles","onClick","value","onChange","ref","StyledDropArea","dropArea","StyledDropAreaLabel","dropZoneAreaLabels","StyledDragText","dragText","dropFiles","StyledDropAreaIcon","iconSize","dropZoneAreaIcon","color","StyledDropAreaLabels","StyledSelectedFilesText","selectFilesText"],"mappings":"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"}
1
+ {"version":3,"file":"DropZone.cjs","sources":["../../../../../src/components/FileUploader/DropZone/DropZone.tsx"],"sourcesContent":["import { HvFileData, HvFilesAddedEvent } from \"../File\";\nimport dropZoneClasses, { HvDropZoneClasses } from \"./dropZoneClasses\";\nimport React, { useRef, useState } from \"react\";\nimport { uniqueId } from \"lodash\";\nimport accept from \"attr-accept\";\nimport {\n StyledDragText,\n StyledDropArea,\n StyledDropAreaIcon,\n StyledDropAreaLabel,\n StyledDropAreaLabels,\n StyledDropZoneContainer,\n StyledDropZoneLabelsGroup,\n StyledInfoMessage,\n StyledInput,\n StyledLabel,\n StyledSelectedFilesText,\n} from \"./DropZone.styles\";\nimport clsx from \"clsx\";\nimport { isKeypress, keyboardCodes, setId } from \"utils\";\nimport { convertUnits } from \"../utils\";\nimport withId from \"../../../hocs/withId\";\n\nexport type HvDropZoneLabels = {\n /**\n * Extensions of the accepted file types\n */\n acceptedFiles?: string;\n /**\n * Dropzone area label.\n */\n dropzone?: string;\n /**\n * Size file warning label.\n */\n sizeWarning?: string;\n /**\n * Size file warning label.\n */\n drag?: string;\n /**\n * Size file warning label.\n */\n selectFiles?: string;\n /**\n * Theming sheet used to style components\n * */\n dropFiles?: string;\n /**\n * Message to display when file size is greater than allowed\n * */\n fileSizeError?: string;\n /**\n * Message to display when file type is greater than allowed\n * */\n fileTypeError?: string;\n};\n\nexport type HvDropZoneProps = {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Labels to present in FileUploader.\n */\n labels?: HvDropZoneLabels;\n /**\n * Whether the Dropzone should accept multiple files at once.\n */\n multiple?: boolean;\n /**\n * If the input is disabled or not\n */\n disabled?: boolean;\n /**\n * Files extensions accepted for upload.\n */\n acceptedFiles: string[];\n /**\n * Max upload size\n * */\n maxFileSize: number;\n /**\n * Function responsible for processing files added to the drop zone.\n */\n onFilesAdded?: HvFilesAddedEvent;\n /**\n * Whether the DropZone should hide labels or not.\n */\n hideLabels?: boolean;\n /**\n * Attributes applied to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvDropZoneClasses;\n};\n\nexport const HvDropZone = withId(\n ({\n id,\n classes,\n labels,\n acceptedFiles,\n maxFileSize,\n inputProps,\n hideLabels,\n multiple = true,\n disabled = false,\n onFilesAdded,\n }: HvDropZoneProps) => {\n const [dragState, setDrag] = useState<boolean>(false);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const leaveDropArea = () => {\n setDrag(false);\n };\n\n const enterDropArea = () => {\n setDrag(true);\n };\n\n const onChangeHandler = (filesList: FileList) => {\n const filesToProcess = Object.keys(filesList).map((e) => filesList[e]);\n\n const newFiles: HvFileData[] = [];\n\n filesToProcess.forEach((file: File) => {\n const newFile: HvFileData = file;\n\n const isSizeAllowed = file.size <= maxFileSize;\n const isFileAccepted =\n !acceptedFiles.length ||\n acceptedFiles.indexOf(file.type.split(\"/\")[1]) > -1 ||\n acceptedFiles.some((acceptExtension) =>\n accept({ name: file.name, type: file.type }, acceptExtension)\n );\n\n if (!isFileAccepted) {\n newFile.errorMessage = labels?.fileTypeError;\n newFile.status = \"fail\";\n } else if (!isSizeAllowed) {\n newFile.errorMessage = labels?.fileSizeError;\n newFile.status = \"fail\";\n }\n\n newFile.id = uniqueId(\"uploaded-file-data-\");\n newFiles.push(newFile);\n });\n\n onFilesAdded?.(newFiles);\n };\n\n return (\n <>\n {!hideLabels && (\n <StyledDropZoneLabelsGroup\n id={id}\n className={clsx(\n classes?.dropZoneLabelsGroup,\n dropZoneClasses.dropZoneLabelsGroup\n )}\n aria-label=\"File Dropzone\"\n >\n <StyledLabel\n id={setId(id, \"input-file-label\")}\n htmlFor={setId(id, \"input-file\")}\n label={labels?.dropzone}\n className={clsx(\n classes?.dropZoneLabel,\n dropZoneClasses.dropZoneLabel\n )}\n $disabled={disabled}\n />\n <StyledInfoMessage\n $disabled={disabled}\n id={setId(id, \"description\")}\n >\n {Number.isInteger(maxFileSize) &&\n `${labels?.sizeWarning} ${convertUnits(maxFileSize)}`}\n {labels?.acceptedFiles && labels.acceptedFiles}\n {!labels?.acceptedFiles &&\n acceptedFiles.length > 0 &&\n `\\u00A0(${acceptedFiles.join(\", \")})`}\n </StyledInfoMessage>\n </StyledDropZoneLabelsGroup>\n )}\n <StyledDropZoneContainer\n id={setId(id, \"button\")}\n className={clsx(\n classes?.dropZoneContainer,\n dropZoneClasses.dropZoneContainer,\n dragState && clsx(classes?.dragAction, dropZoneClasses.dragAction),\n disabled &&\n clsx(\n classes?.dropZoneContainerDisabled,\n dropZoneClasses.dropZoneContainerDisabled\n )\n )}\n $drag={dragState}\n $disabled={disabled}\n role=\"button\"\n tabIndex={0}\n onDragEnter={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDragLeave={leaveDropArea}\n onDropCapture={leaveDropArea}\n onDragOver={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDrop={(event) => {\n if (!disabled) {\n const { files } = event.dataTransfer;\n if (multiple === true || files.length === 1) {\n event.stopPropagation();\n event.preventDefault();\n onChangeHandler(files);\n }\n }\n }}\n onKeyDown={(e) => {\n if (isKeypress(e, keyboardCodes.Enter) || isKeypress(e, 32)) {\n inputRef.current?.click();\n }\n }}\n >\n <StyledInput\n id={setId(id, \"input-file\")}\n tabIndex={-1}\n className={clsx(classes?.inputArea, dropZoneClasses.inputArea)}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n title={!disabled ? `${labels?.drag}\\xa0${labels?.selectFiles}` : \"\"}\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n }}\n onChange={() => {\n if (!disabled && inputRef.current?.files) {\n onChangeHandler(inputRef.current.files);\n }\n }}\n ref={inputRef}\n accept={acceptedFiles.join(\",\")}\n {...inputProps}\n />\n <StyledDropArea\n className={clsx(classes?.dropArea, dropZoneClasses.dropArea)}\n >\n {dragState ? (\n <StyledDropAreaLabel\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(classes?.dragText, dropZoneClasses.dragText)}\n >\n {labels?.dropFiles}\n </StyledDragText>\n </StyledDropAreaLabel>\n ) : (\n <>\n <StyledDropAreaIcon\n iconSize=\"M\"\n className={clsx(\n classes?.dropZoneAreaIcon,\n dropZoneClasses.dropZoneAreaIcon\n )}\n color={disabled ? \"atmo5\" : \"acce1\"}\n />\n <StyledDropAreaLabels\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(\n classes?.dragText,\n dropZoneClasses.dragText\n )}\n >\n {labels?.drag}\n <StyledSelectedFilesText\n className={clsx(\n classes?.selectFilesText,\n dropZoneClasses.selectFilesText\n )}\n >{`\\xa0${labels?.selectFiles}`}</StyledSelectedFilesText>\n </StyledDragText>\n </StyledDropAreaLabels>\n </>\n )}\n </StyledDropArea>\n </StyledDropZoneContainer>\n </>\n );\n }\n);\n"],"names":["HvDropZone","withId","id","classes","labels","acceptedFiles","maxFileSize","inputProps","hideLabels","multiple","disabled","onFilesAdded","dragState","setDrag","useState","inputRef","useRef","leaveDropArea","enterDropArea","onChangeHandler","filesList","filesToProcess","Object","keys","map","e","newFiles","forEach","file","newFile","isSizeAllowed","size","isFileAccepted","length","indexOf","type","split","some","acceptExtension","accept","name","errorMessage","fileTypeError","status","fileSizeError","uniqueId","push","_Fragment","children","StyledDropZoneLabelsGroup","className","clsx","dropZoneLabelsGroup","dropZoneClasses","_jsx","StyledLabel","setId","htmlFor","label","dropzone","dropZoneLabel","$disabled","_jsxs","StyledInfoMessage","Number","isInteger","sizeWarning","convertUnits","join","StyledDropZoneContainer","dropZoneContainer","dragAction","dropZoneContainerDisabled","$drag","role","tabIndex","onDragEnter","event","stopPropagation","preventDefault","onDragLeave","onDropCapture","onDragOver","onDrop","files","dataTransfer","onKeyDown","isKeypress","keyboardCodes","Enter","current","click","StyledInput","inputArea","title","drag","selectFiles","onClick","value","onChange","ref","StyledDropArea","dropArea","StyledDropAreaLabel","dropZoneAreaLabels","StyledDragText","dragText","dropFiles","StyledDropAreaIcon","iconSize","dropZoneAreaIcon","color","StyledDropAreaLabels","StyledSelectedFilesText","selectFilesText"],"mappings":";;;;;;;;;;;;;;;;;AAqGaA,MAAAA,aAAaC,eACxB,CAAC;AAAA,EACCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC,WAAW;AAAA,EACXC;AACe,MAAM;AACrB,QAAM,CAACC,WAAWC,OAAO,IAAIC,eAAkB,KAAK;AAE9CC,QAAAA,WAAWC,aAAgC,IAAI;AAErD,QAAMC,gBAAgBA,MAAM;AAC1BJ,YAAQ,KAAK;AAAA,EAAA;AAGf,QAAMK,gBAAgBA,MAAM;AAC1BL,YAAQ,IAAI;AAAA,EAAA;AAGRM,QAAAA,kBAAkBA,CAACC,cAAwB;AACzCC,UAAAA,iBAAiBC,OAAOC,KAAKH,SAAS,EAAEI,IAAKC,CAAAA,MAAML,UAAUK,CAAC,CAAC;AAErE,UAAMC,WAAyB,CAAA;AAEhBC,mBAAAA,QAAQ,CAACC,SAAe;AACrC,YAAMC,UAAsBD;AAEtBE,YAAAA,gBAAgBF,KAAKG,QAAQzB;AACnC,YAAM0B,iBACJ,CAAC3B,cAAc4B,UACf5B,cAAc6B,QAAQN,KAAKO,KAAKC,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,MACjD/B,cAAcgC,KAAMC,qBAClBC,wBAAO;AAAA,QAAEC,MAAMZ,KAAKY;AAAAA,QAAML,MAAMP,KAAKO;AAAAA,MAAAA,GAAQG,eAAe,CAAC;AAGjE,UAAI,CAACN,gBAAgB;AACnBH,gBAAQY,eAAerC,iCAAQsC;AAC/Bb,gBAAQc,SAAS;AAAA,MAAA,WACR,CAACb,eAAe;AACzBD,gBAAQY,eAAerC,iCAAQwC;AAC/Bf,gBAAQc,SAAS;AAAA,MACnB;AAEQzC,cAAAA,KAAK2C,gBAAS,qBAAqB;AAC3CnB,eAASoB,KAAKjB,OAAO;AAAA,IAAA,CACtB;AAEDlB,iDAAee;AAAAA,EAAQ;AAGzB,yCACEqB,WAAAA,UAAA;AAAA,IAAAC,WACG,CAACxC,8CACCyC,gBAAAA,2BAAyB;AAAA,MACxB/C;AAAAA,MACAgD,WAAWC,cAAAA,QACThD,mCAASiD,qBACTC,gBAAAA,QAAgBD,mBAAmB;AAAA,MAErC,cAAW;AAAA,MAAeJ,UAAA,CAE1BM,2BAAAA,IAACC,6BAAW;AAAA,QACVrD,IAAIsD,MAAAA,MAAMtD,IAAI,kBAAkB;AAAA,QAChCuD,SAASD,MAAAA,MAAMtD,IAAI,YAAY;AAAA,QAC/BwD,OAAOtD,iCAAQuD;AAAAA,QACfT,WAAWC,cAAAA,QACThD,mCAASyD,eACTP,gBAAAA,QAAgBO,aAAa;AAAA,QAE/BC,WAAWnD;AAAAA,MAAAA,CACX,GACFoD,2BAAAA,KAACC,mCAAiB;AAAA,QAChBF,WAAWnD;AAAAA,QACXR,IAAIsD,MAAAA,MAAMtD,IAAI,aAAa;AAAA,QAAE8C,UAAA,CAE5BgB,OAAOC,UAAU3D,WAAW,KAC1B,GAAEF,iCAAQ8D,eAAeC,MAAa7D,aAAAA,WAAW,MACnDF,iCAAQC,kBAAiBD,OAAOC,eAChC,EAACD,iCAAQC,kBACRA,cAAc4B,SAAS,KACtB,KAAS5B,cAAc+D,KAAK,IAAI,IAAI;AAAA,MAAA,CACrB,CAAA;AAAA,IAAA,CAEvB,GACDN,2BAAAA,KAACO,yCAAuB;AAAA,MACtBnE,IAAIsD,MAAAA,MAAMtD,IAAI,QAAQ;AAAA,MACtBgD,WAAWC,cAAAA,QACThD,mCAASmE,mBACTjB,gBAAgBiB,QAAAA,mBAChB1D,aAAauC,cAAAA,QAAKhD,mCAASoE,YAAYlB,wBAAgBkB,UAAU,GACjE7D,YACEyC,cAAAA,QACEhD,mCAASqE,2BACTnB,wBAAgBmB,yBAAyB,CAC1C;AAAA,MAELC,OAAO7D;AAAAA,MACPiD,WAAWnD;AAAAA,MACXgE,MAAK;AAAA,MACLC,UAAU;AAAA,MACVC,aAAcC,CAAU,UAAA;AACtB,YAAI,CAACnE,UAAU;AACE;AACfmE,gBAAMC,gBAAiB;AACvBD,gBAAME,eAAgB;AAAA,QACxB;AAAA,MACF;AAAA,MACAC,aAAa/D;AAAAA,MACbgE,eAAehE;AAAAA,MACfiE,YAAaL,CAAU,UAAA;AACrB,YAAI,CAACnE,UAAU;AACE;AACfmE,gBAAMC,gBAAiB;AACvBD,gBAAME,eAAgB;AAAA,QACxB;AAAA,MACF;AAAA,MACAI,QAASN,CAAU,UAAA;AACjB,YAAI,CAACnE,UAAU;AACP,gBAAA;AAAA,YAAE0E;AAAAA,UAAAA,IAAUP,MAAMQ;AACxB,cAAI5E,aAAa,QAAQ2E,MAAMnD,WAAW,GAAG;AAC3C4C,kBAAMC,gBAAiB;AACvBD,kBAAME,eAAgB;AACtB5D,4BAAgBiE,KAAK;AAAA,UACvB;AAAA,QACF;AAAA,MACF;AAAA,MACAE,WAAY7D,CAAM,MAAA;;AACZ8D,YAAAA,SAAAA,WAAW9D,GAAG+D,4BAAcC,KAAK,KAAKF,oBAAW9D,GAAG,EAAE,GAAG;AAC3DV,yBAAS2E,YAAT3E,mBAAkB4E;AAAAA,QACpB;AAAA,MACF;AAAA,MAAE3C,UAAA,CAEFM,2BAAAA,IAACsC,6BAAW;AAAA,QACV1F,IAAIsD,MAAAA,MAAMtD,IAAI,YAAY;AAAA,QAC1ByE,UAAU;AAAA,QACVzB,WAAWC,cAAAA,QAAKhD,mCAAS0F,WAAWxC,gBAAAA,QAAgBwC,SAAS;AAAA,QAC7D1D,MAAK;AAAA,QACL1B;AAAAA,QACAC;AAAAA,QACAoF,OAAO,CAACpF,WAAY,GAAEN,iCAAQ2F,QAAW3F,iCAAQ4F,gBAAgB;AAAA,QACjEC,SAASA,MAAM;AACb,cAAIlF,SAAS2E,SAAS;AACpB3E,qBAAS2E,QAAQQ,QAAQ;AAAA,UAC3B;AAAA,QACF;AAAA,QACAC,UAAUA,MAAM;;AACd,cAAI,CAACzF,cAAYK,cAAS2E,YAAT3E,mBAAkBqE,QAAO;AACxBrE,4BAAAA,SAAS2E,QAAQN,KAAK;AAAA,UACxC;AAAA,QACF;AAAA,QACAgB,KAAKrF;AAAAA,QACLwB,QAAQlC,cAAc+D,KAAK,GAAG;AAAA,QAAE,GAC5B7D;AAAAA,MAAAA,CACJ,GACF+C,2BAAAA,IAAC+C,gCAAc;AAAA,QACbnD,WAAWC,cAAAA,QAAKhD,mCAASmG,UAAUjD,gBAAAA,QAAgBiD,QAAQ;AAAA,QAAEtD,UAE5DpC,YACC0C,2BAAAA,IAACiD,qCAAmB;AAAA,UAClBrD,WAAWC,cAAAA,QACThD,mCAASqG,oBACTnD,gBAAAA,QAAgBmD,kBAAkB;AAAA,UAClCxD,yCAEDyD,gCAAc;AAAA,YACbvD,WAAWC,cAAAA,QAAKhD,mCAASuG,UAAUrD,gBAAAA,QAAgBqD,QAAQ;AAAA,YAAE1D,UAE5D5C,iCAAQuG;AAAAA,UAAAA,CAAS;AAAA,QAAA,CAEA,IAEtB7C,2BAAAA,KAAAf,qBAAA;AAAA,UAAAC,UAAA,CACEM,2BAAAA,IAACsD,oCAAkB;AAAA,YACjBC,UAAS;AAAA,YACT3D,WAAWC,cAAAA,QACThD,mCAAS2G,kBACTzD,gBAAAA,QAAgByD,gBAAgB;AAAA,YAElCC,OAAOrG,WAAW,UAAU;AAAA,UAAA,CAC5B,GACF4C,2BAAAA,IAAC0D,sCAAoB;AAAA,YACnB9D,WAAWC,cAAAA,QACThD,mCAASqG,oBACTnD,gBAAAA,QAAgBmD,kBAAkB;AAAA,YAClCxD,0CAEDyD,gCAAc;AAAA,cACbvD,WAAWC,cAAAA,QACThD,mCAASuG,UACTrD,gBAAAA,QAAgBqD,QAAQ;AAAA,cACxB1D,WAED5C,iCAAQ2F,qCACRkB,gBAAAA,yBAAuB;AAAA,gBACtB/D,WAAWC,cAAAA,QACThD,mCAAS+G,iBACT7D,gBAAAA,QAAgB6D,eAAe;AAAA,gBAC/BlE,UACD,IAAM5C,iCAAQ4F;AAAAA,cAAAA,CAAwC,CAAA;AAAA,YAAA,CAAA;AAAA,UAAA,CAEtC,CAAA;AAAA,QAAA,CAAA;AAAA,MAAA,CAGZ,CAAA;AAAA,IAAA,CACO,CAAA;AAAA,EAAA,CACzB;AAEP,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormElement.cjs","sources":["../../../../../src/components/Forms/FormElement/FormElement.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport { HvBaseProps } from \"../../../types/index\";\nimport { useUniqueId } from \"hooks\";\nimport { findDescriptors } from \"./utils/FormUtils\";\nimport { HvFormElementContextProvider } from \"./context/FormElementContext\";\nimport { HvFormElementValueContextProvider } from \"./context/FormElementValueContext\";\nimport { HvFormElementDescriptorsContextProvider } from \"./context/FormElementDescriptorsContext\";\nimport formElementClasses, { HvFormElementClasses } from \"./formElementClasses\";\n\nexport type HvFormStatus = \"standBy\" | \"valid\" | \"invalid\" | \"empty\";\n\nexport type HvFormElementProps = HvBaseProps & {\n /**\n * Name of the form element.\n *\n * Part of a name/value pair, should be the name property of the underling native input.\n */\n name?: string;\n /**\n * Current value of the form element.\n *\n * Part of a name/value pair, should be the value property of the underling native input.\n */\n value?: any;\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /** Provide additional descriptive text for the form element. */\n description?: React.ReactNode;\n /** Whether the form element is disabled. */\n disabled?: boolean;\n /** Indicates that the form element is not editable. */\n readOnly?: boolean;\n /** Indicates that user input is required on the form element. */\n required?: boolean;\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvFormStatus;\n /** The error message to show when `status` is \"invalid\". */\n statusMessage?: string;\n /** The callback fired when the value changes. */\n onChange?: Function;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvFormElementClasses;\n};\n\nexport const HvFormElement = ({\n classes,\n className,\n children,\n id,\n name,\n value,\n disabled = false,\n required = false,\n readOnly = false,\n status = \"standBy\",\n ...others\n}: HvFormElementProps) => {\n const elementId = useUniqueId(id, \"hvformelement\");\n\n const contextValue = useMemo(\n () => ({\n elementId,\n elementName: name,\n elementStatus: status,\n elementDisabled: disabled,\n elementRequired: required,\n elementReadOnly: readOnly,\n }),\n [disabled, elementId, name, readOnly, required, status]\n );\n\n const descriptors = useMemo(() => findDescriptors(children), [children]);\n\n return (\n <div\n id={id}\n className={clsx(className, formElementClasses.root, classes?.root)}\n {...others}\n >\n <HvFormElementContextProvider value={contextValue}>\n <HvFormElementValueContextProvider value={value}>\n <HvFormElementDescriptorsContextProvider value={descriptors}>\n {children}\n </HvFormElementDescriptorsContextProvider>\n </HvFormElementValueContextProvider>\n </HvFormElementContextProvider>\n </div>\n );\n};\n\nHvFormElement.formElementType = \"formelement\";\n"],"names":["HvFormElement","classes","className","children","id","name","value","disabled","required","readOnly","status","others","elementId","useUniqueId","contextValue","useMemo","elementName","elementStatus","elementDisabled","elementRequired","elementReadOnly","descriptors","findDescriptors","clsx","formElementClasses","root","HvFormElementContextProvider","HvFormElementValueContextProvider","HvFormElementDescriptorsContextProvider","formElementType"],"mappings":";;;;;;;;;;;;;AAyDO,MAAMA,gBAAgBA,CAAC;AAAA,EAC5BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC,WAAW;AAAA,EACXC,WAAW;AAAA,EACXC,SAAS;AAAA,EACT,GAAGC;AACe,MAAM;AAClBC,QAAAA,YAAYC,YAAAA,QAAYT,IAAI,eAAe;AAE3CU,QAAAA,eAAeC,MAAAA,QACnB,OAAO;AAAA,IACLH;AAAAA,IACAI,aAAaX;AAAAA,IACbY,eAAeP;AAAAA,IACfQ,iBAAiBX;AAAAA,IACjBY,iBAAiBX;AAAAA,IACjBY,iBAAiBX;AAAAA,EAAAA,IAEnB,CAACF,UAAUK,WAAWP,MAAMI,UAAUD,UAAUE,MAAM,CAAC;AAGnDW,QAAAA,cAAcN,MAAAA,QAAQ,MAAMO,UAAAA,gBAAgBnB,QAAQ,GAAG,CAACA,QAAQ,CAAC;AAEvE,wCACE,OAAA;AAAA,IACEC;AAAAA,IACAF,WAAWqB,cAAKrB,QAAAA,WAAWsB,mBAAmBC,QAAAA,MAAMxB,mCAASwB,IAAI;AAAA,IAAE,GAC/Dd;AAAAA,IAAMR,yCAETuB,iDAA4B;AAAA,MAACpB,OAAOQ;AAAAA,MAAaX,yCAC/CwB,2DAAiC;AAAA,QAACrB;AAAAA,QAAaH,yCAC7CyB,uEAAuC;AAAA,UAACtB,OAAOe;AAAAA,UAAYlB;AAAAA,QAAAA,CACjD;AAAA,MAAA,CAC+B;AAAA,IAAA,CACR;AAAA,EAAA,CAElC;AAEV;AAEAH,cAAc6B,kBAAkB;;"}
1
+ {"version":3,"file":"FormElement.cjs","sources":["../../../../../src/components/Forms/FormElement/FormElement.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport clsx from \"clsx\";\nimport { HvBaseProps } from \"../../../types\";\nimport { useUniqueId } from \"../../../hooks\";\nimport { findDescriptors } from \"./utils/FormUtils\";\nimport { HvFormElementContextProvider } from \"./context/FormElementContext\";\nimport { HvFormElementValueContextProvider } from \"./context/FormElementValueContext\";\nimport { HvFormElementDescriptorsContextProvider } from \"./context/FormElementDescriptorsContext\";\nimport formElementClasses, { HvFormElementClasses } from \"./formElementClasses\";\n\nexport type HvFormStatus = \"standBy\" | \"valid\" | \"invalid\" | \"empty\";\n\nexport type HvFormElementProps = HvBaseProps<HTMLDivElement, { onChange }> & {\n /**\n * Name of the form element.\n *\n * Part of a name/value pair, should be the name property of the underling native input.\n */\n name?: string;\n /**\n * Current value of the form element.\n *\n * Part of a name/value pair, should be the value property of the underling native input.\n */\n value?: any;\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /** Provide additional descriptive text for the form element. */\n description?: React.ReactNode;\n /** Whether the form element is disabled. */\n disabled?: boolean;\n /** Indicates that the form element is not editable. */\n readOnly?: boolean;\n /** Indicates that user input is required on the form element. */\n required?: boolean;\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvFormStatus;\n /** The error message to show when `status` is \"invalid\". */\n statusMessage?: string;\n /** The callback fired when the value changes. */\n onChange?: (event: React.FormEvent<HTMLDivElement>) => void;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvFormElementClasses;\n};\n\nexport const HvFormElement = ({\n classes,\n className,\n children,\n id,\n name,\n value,\n disabled = false,\n required = false,\n readOnly = false,\n status = \"standBy\",\n ...others\n}: HvFormElementProps) => {\n const elementId = useUniqueId(id, \"hvformelement\");\n\n const contextValue = useMemo(\n () => ({\n elementId,\n elementName: name,\n elementStatus: status,\n elementDisabled: disabled,\n elementRequired: required,\n elementReadOnly: readOnly,\n }),\n [disabled, elementId, name, readOnly, required, status]\n );\n\n const descriptors = useMemo(() => findDescriptors(children), [children]);\n\n return (\n <div\n id={id}\n className={clsx(className, formElementClasses.root, classes?.root)}\n {...others}\n >\n <HvFormElementContextProvider value={contextValue}>\n <HvFormElementValueContextProvider value={value}>\n <HvFormElementDescriptorsContextProvider value={descriptors}>\n {children}\n </HvFormElementDescriptorsContextProvider>\n </HvFormElementValueContextProvider>\n </HvFormElementContextProvider>\n </div>\n );\n};\n\nHvFormElement.formElementType = \"formelement\";\n"],"names":["HvFormElement","classes","className","children","id","name","value","disabled","required","readOnly","status","others","elementId","useUniqueId","contextValue","useMemo","elementName","elementStatus","elementDisabled","elementRequired","elementReadOnly","descriptors","findDescriptors","clsx","formElementClasses","root","HvFormElementContextProvider","HvFormElementValueContextProvider","HvFormElementDescriptorsContextProvider","formElementType"],"mappings":";;;;;;;;;;;;;AAyDO,MAAMA,gBAAgBA,CAAC;AAAA,EAC5BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC,WAAW;AAAA,EACXC,WAAW;AAAA,EACXC,SAAS;AAAA,EACT,GAAGC;AACe,MAAM;AAClBC,QAAAA,YAAYC,YAAAA,QAAYT,IAAI,eAAe;AAE3CU,QAAAA,eAAeC,MAAAA,QACnB,OAAO;AAAA,IACLH;AAAAA,IACAI,aAAaX;AAAAA,IACbY,eAAeP;AAAAA,IACfQ,iBAAiBX;AAAAA,IACjBY,iBAAiBX;AAAAA,IACjBY,iBAAiBX;AAAAA,EAAAA,IAEnB,CAACF,UAAUK,WAAWP,MAAMI,UAAUD,UAAUE,MAAM,CAAC;AAGnDW,QAAAA,cAAcN,MAAAA,QAAQ,MAAMO,UAAAA,gBAAgBnB,QAAQ,GAAG,CAACA,QAAQ,CAAC;AAEvE,wCACE,OAAA;AAAA,IACEC;AAAAA,IACAF,WAAWqB,cAAKrB,QAAAA,WAAWsB,mBAAmBC,QAAAA,MAAMxB,mCAASwB,IAAI;AAAA,IAAE,GAC/Dd;AAAAA,IAAMR,yCAETuB,iDAA4B;AAAA,MAACpB,OAAOQ;AAAAA,MAAaX,yCAC/CwB,2DAAiC;AAAA,QAACrB;AAAAA,QAAaH,yCAC7CyB,uEAAuC;AAAA,UAACtB,OAAOe;AAAAA,UAAYlB;AAAAA,QAAAA,CACjD;AAAA,MAAA,CAC+B;AAAA,IAAA,CACR;AAAA,EAAA,CAElC;AAEV;AAEAH,cAAc6B,kBAAkB;;"}
@@ -28,9 +28,9 @@ const HvSuggestions = ({
28
28
  const localId = id ?? setId.setId(elementId, "suggestions");
29
29
  const ref = React.useRef(null);
30
30
  const [isOpen, setIsOpen] = React.useState(expanded);
31
- useClickOutside.useClickOutside(ref, (e) => {
31
+ useClickOutside.useClickOutside(ref, (event) => {
32
32
  setIsOpen(false);
33
- onClose == null ? void 0 : onClose(e);
33
+ onClose == null ? void 0 : onClose(event);
34
34
  });
35
35
  React.useEffect(() => {
36
36
  setIsOpen(expanded);
@@ -1 +1 @@
1
- {"version":3,"file":"Suggestions.cjs","sources":["../../../../../src/components/Forms/Suggestions/Suggestions.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { HvBaseProps } from \"../../../types\";\nimport {\n StyledRoot,\n StyledSelectionList,\n StyledPopper,\n} from \"./Suggestions.styles\";\nimport { setId } from \"../../../utils\";\nimport { HvFormElementContext } from \"../FormElement\";\nimport { HvListItem } from \"components\";\nimport { useClickOutside } from \"hooks\";\nimport suggestionsClasses, { HvSuggestionsClasses } from \"./suggestionsClasses\";\n\nexport type HvSuggestion = {\n id?: string;\n label: React.ReactNode;\n value?: string;\n disabled?: boolean;\n};\n\nexport type HvSuggestionsProps = HvBaseProps & {\n /** Whether suggestions is visible. */\n expanded?: boolean;\n /** The HTML element Suggestions attaches to. */\n anchorEl?: HTMLElement | null;\n /** Array of { id, label, ...others } values to display in the suggestion list */\n suggestionValues?: HvSuggestion[] | null;\n /** Function called when suggestion list is closed */\n // onClose: Function,\n /** Function called when a suggestion is selected */\n onSuggestionSelected?: Function;\n /** Function called when suggestion list is closed */\n onClose?: Function;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSuggestionsClasses;\n};\n\nexport const HvSuggestions = ({\n id,\n className,\n classes,\n expanded = false,\n anchorEl,\n suggestionValues = [],\n onClose,\n onSuggestionSelected,\n ...others\n}: HvSuggestionsProps) => {\n const { elementId } = useContext(HvFormElementContext);\n const localId = id ?? setId(elementId, \"suggestions\");\n\n const ref = useRef<HTMLDivElement>(null);\n const [isOpen, setIsOpen] = useState<boolean>(expanded);\n\n useClickOutside(ref, (e) => {\n setIsOpen(false);\n onClose?.(e);\n });\n\n useEffect(() => {\n setIsOpen(expanded);\n }, [expanded]);\n\n return (\n <StyledRoot\n id={localId}\n ref={ref}\n className={clsx(className, suggestionsClasses.root, classes?.root)}\n {...others}\n >\n <StyledPopper\n open={isOpen}\n disablePortal\n anchorEl={anchorEl}\n className={clsx(suggestionsClasses.popper, classes?.popper)}\n >\n <StyledSelectionList\n className={clsx(suggestionsClasses.list, classes?.list)}\n id={setId(localId, \"list\")}\n onChange={onSuggestionSelected}\n >\n {suggestionValues?.map((item, i) => {\n const itemKey = item.id || setId(\"item\", i);\n\n return (\n <HvListItem\n key={itemKey}\n value={item}\n disabled={item.disabled || undefined}\n >\n {item.label}\n </HvListItem>\n );\n })}\n </StyledSelectionList>\n </StyledPopper>\n </StyledRoot>\n );\n};\n"],"names":["HvSuggestions","id","className","classes","expanded","anchorEl","suggestionValues","onClose","onSuggestionSelected","others","elementId","useContext","HvFormElementContext","localId","setId","ref","useRef","isOpen","setIsOpen","useState","useClickOutside","e","useEffect","StyledRoot","clsx","suggestionsClasses","root","children","StyledPopper","open","disablePortal","popper","StyledSelectionList","list","onChange","map","item","i","itemKey","HvListItem","value","disabled","undefined","label"],"mappings":";;;;;;;;;;;;;AAsCO,MAAMA,gBAAgBA,CAAC;AAAA,EAC5BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC;AAAAA,EACAC,mBAAmB,CAAE;AAAA,EACrBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACe,MAAM;AAClB,QAAA;AAAA,IAAEC;AAAAA,EAAAA,IAAcC,MAAAA,WAAWC,mBAAAA,oBAAoB;AACrD,QAAMC,UAAUZ,MAAMa,MAAMJ,MAAAA,WAAW,aAAa;AAE9CK,QAAAA,MAAMC,aAAuB,IAAI;AACvC,QAAM,CAACC,QAAQC,SAAS,IAAIC,eAAkBf,QAAQ;AAEtDgB,kCAAgBL,KAAMM,CAAM,MAAA;AAC1BH,cAAU,KAAK;AACfX,uCAAUc;AAAAA,EAAC,CACZ;AAEDC,QAAAA,UAAU,MAAM;AACdJ,cAAUd,QAAQ;AAAA,EAAA,GACjB,CAACA,QAAQ,CAAC;AAEb,wCACGmB,mBAAAA,YAAU;AAAA,IACTtB,IAAIY;AAAAA,IACJE;AAAAA,IACAb,WAAWsB,cAAKtB,QAAAA,WAAWuB,mBAAmBC,QAAAA,MAAMvB,mCAASuB,IAAI;AAAA,IAAE,GAC/DjB;AAAAA,IAAMkB,yCAETC,iCAAY;AAAA,MACXC,MAAMZ;AAAAA,MACNa,eAAa;AAAA,MACbzB;AAAAA,MACAH,WAAWsB,cAAAA,QAAKC,mBAAAA,QAAmBM,QAAQ5B,mCAAS4B,MAAM;AAAA,MAAEJ,yCAE3DK,wCAAmB;AAAA,QAClB9B,WAAWsB,cAAAA,QAAKC,mBAAAA,QAAmBQ,MAAM9B,mCAAS8B,IAAI;AAAA,QACtDhC,IAAIa,MAAAA,MAAMD,SAAS,MAAM;AAAA,QACzBqB,UAAU1B;AAAAA,QAAqBmB,UAE9BrB,qDAAkB6B,IAAI,CAACC,MAAMC,MAAM;AAClC,gBAAMC,UAAUF,KAAKnC,MAAMa,MAAAA,MAAM,QAAQuB,CAAC;AAE1C,gDACGE,SAAAA,YAAU;AAAA,YAETC,OAAOJ;AAAAA,YACPK,UAAUL,KAAKK,YAAYC;AAAAA,YAAUf,UAEpCS,KAAKO;AAAAA,aAJDL,OAAO;AAAA,QAAA;AAAA,MAOjB,CAAC;AAAA,IAAA,CACkB;AAAA,EAAA,CAEb;AAEjB;;"}
1
+ {"version":3,"file":"Suggestions.cjs","sources":["../../../../../src/components/Forms/Suggestions/Suggestions.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { HvBaseProps } from \"../../../types\";\nimport {\n StyledRoot,\n StyledSelectionList,\n StyledPopper,\n} from \"./Suggestions.styles\";\nimport { setId } from \"../../../utils\";\nimport { HvFormElementContext } from \"../FormElement\";\nimport { HvListItem } from \"../../ListContainer/ListItem\";\nimport { HvClickOutsideEvent, useClickOutside } from \"../../../hooks\";\nimport suggestionsClasses, { HvSuggestionsClasses } from \"./suggestionsClasses\";\n\nexport type HvSuggestion = {\n id?: string;\n label: React.ReactNode;\n value?: string;\n disabled?: boolean;\n};\n\nexport type HvSuggestionsProps = HvBaseProps & {\n /** Whether suggestions is visible. */\n expanded?: boolean;\n /** The HTML element Suggestions attaches to. */\n anchorEl?: HTMLElement | null;\n /** Array of { id, label, ...others } values to display in the suggestion list */\n suggestionValues?: HvSuggestion[] | null;\n /** Function called when a suggestion is selected */\n onSuggestionSelected?: (event: React.MouseEvent, value: HvSuggestion) => void;\n /** Function called when suggestion list is closed */\n onClose?: (event: HvClickOutsideEvent) => void;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSuggestionsClasses;\n};\n\nexport const HvSuggestions = ({\n id,\n className,\n classes,\n expanded = false,\n anchorEl,\n suggestionValues = [],\n onClose,\n onSuggestionSelected,\n ...others\n}: HvSuggestionsProps) => {\n const { elementId } = useContext(HvFormElementContext);\n const localId = id ?? setId(elementId, \"suggestions\");\n\n const ref = useRef<HTMLDivElement>(null);\n const [isOpen, setIsOpen] = useState<boolean>(expanded);\n\n useClickOutside(ref, (event: HvClickOutsideEvent) => {\n setIsOpen(false);\n onClose?.(event);\n });\n\n useEffect(() => {\n setIsOpen(expanded);\n }, [expanded]);\n\n return (\n <StyledRoot\n id={localId}\n ref={ref}\n className={clsx(className, suggestionsClasses.root, classes?.root)}\n {...others}\n >\n <StyledPopper\n open={isOpen}\n disablePortal\n anchorEl={anchorEl}\n className={clsx(suggestionsClasses.popper, classes?.popper)}\n >\n <StyledSelectionList\n className={clsx(suggestionsClasses.list, classes?.list)}\n id={setId(localId, \"list\")}\n onChange={onSuggestionSelected}\n >\n {suggestionValues?.map((item, i) => {\n const itemKey = item.id || setId(\"item\", i);\n\n return (\n <HvListItem\n key={itemKey}\n value={item}\n disabled={item.disabled || undefined}\n >\n {item.label}\n </HvListItem>\n );\n })}\n </StyledSelectionList>\n </StyledPopper>\n </StyledRoot>\n );\n};\n"],"names":["HvSuggestions","id","className","classes","expanded","anchorEl","suggestionValues","onClose","onSuggestionSelected","others","elementId","useContext","HvFormElementContext","localId","setId","ref","useRef","isOpen","setIsOpen","useState","event","useEffect","StyledRoot","clsx","suggestionsClasses","root","children","StyledPopper","open","disablePortal","popper","StyledSelectionList","list","onChange","map","item","i","itemKey","HvListItem","value","disabled","undefined","label"],"mappings":";;;;;;;;;;;;;AAoCO,MAAMA,gBAAgBA,CAAC;AAAA,EAC5BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC;AAAAA,EACAC,mBAAmB,CAAE;AAAA,EACrBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACe,MAAM;AAClB,QAAA;AAAA,IAAEC;AAAAA,EAAAA,IAAcC,MAAAA,WAAWC,mBAAAA,oBAAoB;AACrD,QAAMC,UAAUZ,MAAMa,MAAMJ,MAAAA,WAAW,aAAa;AAE9CK,QAAAA,MAAMC,aAAuB,IAAI;AACvC,QAAM,CAACC,QAAQC,SAAS,IAAIC,eAAkBf,QAAQ;AAEtCW,kCAAAA,KAAK,CAACK,UAA+B;AACnDF,cAAU,KAAK;AACfX,uCAAUa;AAAAA,EAAK,CAChB;AAEDC,QAAAA,UAAU,MAAM;AACdH,cAAUd,QAAQ;AAAA,EAAA,GACjB,CAACA,QAAQ,CAAC;AAEb,wCACGkB,mBAAAA,YAAU;AAAA,IACTrB,IAAIY;AAAAA,IACJE;AAAAA,IACAb,WAAWqB,cAAKrB,QAAAA,WAAWsB,mBAAmBC,QAAAA,MAAMtB,mCAASsB,IAAI;AAAA,IAAE,GAC/DhB;AAAAA,IAAMiB,yCAETC,iCAAY;AAAA,MACXC,MAAMX;AAAAA,MACNY,eAAa;AAAA,MACbxB;AAAAA,MACAH,WAAWqB,cAAAA,QAAKC,mBAAAA,QAAmBM,QAAQ3B,mCAAS2B,MAAM;AAAA,MAAEJ,yCAE3DK,wCAAmB;AAAA,QAClB7B,WAAWqB,cAAAA,QAAKC,mBAAAA,QAAmBQ,MAAM7B,mCAAS6B,IAAI;AAAA,QACtD/B,IAAIa,MAAAA,MAAMD,SAAS,MAAM;AAAA,QACzBoB,UAAUzB;AAAAA,QAAqBkB,UAE9BpB,qDAAkB4B,IAAI,CAACC,MAAMC,MAAM;AAClC,gBAAMC,UAAUF,KAAKlC,MAAMa,MAAAA,MAAM,QAAQsB,CAAC;AAE1C,gDACGE,SAAAA,YAAU;AAAA,YAETC,OAAOJ;AAAAA,YACPK,UAAUL,KAAKK,YAAYC;AAAAA,YAAUf,UAEpCS,KAAKO;AAAAA,aAJDL,OAAO;AAAA,QAAA;AAAA,MAOjB,CAAC;AAAA,IAAA,CACkB;AAAA,EAAA,CAEb;AAEjB;;"}