@hitachivantara/uikit-react-core 5.18.1 → 5.18.3

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 (159) hide show
  1. package/dist/cjs/components/AppSwitcher/Action/Action.cjs.map +1 -1
  2. package/dist/cjs/components/AppSwitcher/TitleWithTooltip.cjs +5 -5
  3. package/dist/cjs/components/AppSwitcher/TitleWithTooltip.cjs.map +1 -1
  4. package/dist/cjs/components/Banner/Banner.cjs.map +1 -1
  5. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs.map +1 -1
  6. package/dist/cjs/components/BaseInput/validations.cjs.map +1 -1
  7. package/dist/cjs/components/Box/Box.cjs.map +1 -1
  8. package/dist/cjs/components/BreadCrumb/BreadCrumb.cjs.map +1 -1
  9. package/dist/cjs/components/BreadCrumb/utils.cjs.map +1 -1
  10. package/dist/cjs/components/BulkActions/BulkActions.cjs +1 -5
  11. package/dist/cjs/components/BulkActions/BulkActions.cjs.map +1 -1
  12. package/dist/cjs/components/Button/Button.cjs +1 -1
  13. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  14. package/dist/cjs/components/Button/Button.styles.cjs +6 -5
  15. package/dist/cjs/components/Button/Button.styles.cjs.map +1 -1
  16. package/dist/cjs/components/CheckBox/CheckBox.cjs +4 -4
  17. package/dist/cjs/components/CheckBox/CheckBox.cjs.map +1 -1
  18. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs.map +1 -1
  19. package/dist/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
  20. package/dist/cjs/components/Controls/Controls.cjs.map +1 -1
  21. package/dist/cjs/components/Controls/LeftControl/LeftControl.cjs +1 -1
  22. package/dist/cjs/components/Controls/LeftControl/LeftControl.cjs.map +1 -1
  23. package/dist/cjs/components/Controls/RightControl/RightControl.cjs.map +1 -1
  24. package/dist/cjs/components/DatePicker/DatePicker.cjs +1 -1
  25. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  26. package/dist/cjs/components/DatePicker/utils.cjs.map +1 -1
  27. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  28. package/dist/cjs/components/DotPagination/DotPagination.cjs +19 -13
  29. package/dist/cjs/components/DotPagination/DotPagination.cjs.map +1 -1
  30. package/dist/cjs/components/DotPagination/DotPagination.styles.cjs +20 -67
  31. package/dist/cjs/components/DotPagination/DotPagination.styles.cjs.map +1 -1
  32. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
  33. package/dist/cjs/components/DropDownMenu/DropDownMenu.styles.cjs +1 -0
  34. package/dist/cjs/components/DropDownMenu/DropDownMenu.styles.cjs.map +1 -1
  35. package/dist/cjs/components/Dropdown/Dropdown.cjs +3 -3
  36. package/dist/cjs/components/Dropdown/Dropdown.cjs.map +1 -1
  37. package/dist/cjs/components/Dropdown/List/List.cjs.map +1 -1
  38. package/dist/cjs/components/Dropdown/utils.cjs +2 -2
  39. package/dist/cjs/components/Dropdown/utils.cjs.map +1 -1
  40. package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.cjs.map +1 -1
  41. package/dist/cjs/components/Forms/Adornment/Adornment.cjs +1 -2
  42. package/dist/cjs/components/Forms/Adornment/Adornment.cjs.map +1 -1
  43. package/dist/cjs/components/Forms/FormElement/validationStates.cjs.map +1 -1
  44. package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs.map +1 -1
  45. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs.map +1 -1
  46. package/dist/cjs/components/Header/Navigation/Navigation.cjs.map +1 -1
  47. package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
  48. package/dist/cjs/components/List/useSelectableList.cjs +1 -4
  49. package/dist/cjs/components/List/useSelectableList.cjs.map +1 -1
  50. package/dist/cjs/components/Loading/Loading.cjs.map +1 -1
  51. package/dist/cjs/components/OverflowTooltip/OverflowTooltip.cjs +1 -1
  52. package/dist/cjs/components/OverflowTooltip/OverflowTooltip.cjs.map +1 -1
  53. package/dist/cjs/components/Pagination/ButtonIconTooltip.cjs.map +1 -1
  54. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  55. package/dist/cjs/components/Pagination/Select.cjs +2 -4
  56. package/dist/cjs/components/Pagination/Select.cjs.map +1 -1
  57. package/dist/cjs/components/Pagination/utils.cjs.map +1 -1
  58. package/dist/cjs/components/SelectionList/SelectionList.cjs.map +1 -1
  59. package/dist/cjs/components/SimpleGrid/SimpleGrid.styles.cjs +1 -1
  60. package/dist/cjs/components/SimpleGrid/SimpleGrid.styles.cjs.map +1 -1
  61. package/dist/cjs/components/TimeAgo/TimeAgo.cjs +14 -7
  62. package/dist/cjs/components/TimeAgo/TimeAgo.cjs.map +1 -1
  63. package/dist/cjs/components/TimeAgo/TimeAgo.styles.cjs +12 -0
  64. package/dist/cjs/components/TimeAgo/TimeAgo.styles.cjs.map +1 -0
  65. package/dist/cjs/components/Typography/Typography.cjs +20 -133
  66. package/dist/cjs/components/Typography/Typography.cjs.map +1 -1
  67. package/dist/cjs/components/Typography/Typography.styles.cjs +107 -0
  68. package/dist/cjs/components/Typography/Typography.styles.cjs.map +1 -0
  69. package/dist/cjs/components/Typography/utils.cjs.map +1 -1
  70. package/dist/cjs/hooks/useWidth.cjs +1 -1
  71. package/dist/cjs/hooks/useWidth.cjs.map +1 -1
  72. package/dist/cjs/index.cjs +7 -6
  73. package/dist/cjs/index.cjs.map +1 -1
  74. package/dist/esm/components/AppSwitcher/Action/Action.js.map +1 -1
  75. package/dist/esm/components/AppSwitcher/TitleWithTooltip.js +6 -6
  76. package/dist/esm/components/AppSwitcher/TitleWithTooltip.js.map +1 -1
  77. package/dist/esm/components/Banner/Banner.js.map +1 -1
  78. package/dist/esm/components/BaseDropdown/BaseDropdown.js.map +1 -1
  79. package/dist/esm/components/BaseInput/validations.js.map +1 -1
  80. package/dist/esm/components/Box/Box.js.map +1 -1
  81. package/dist/esm/components/BreadCrumb/BreadCrumb.js.map +1 -1
  82. package/dist/esm/components/BreadCrumb/utils.js.map +1 -1
  83. package/dist/esm/components/BulkActions/BulkActions.js +1 -5
  84. package/dist/esm/components/BulkActions/BulkActions.js.map +1 -1
  85. package/dist/esm/components/Button/Button.js +1 -1
  86. package/dist/esm/components/Button/Button.js.map +1 -1
  87. package/dist/esm/components/Button/Button.styles.js +6 -5
  88. package/dist/esm/components/Button/Button.styles.js.map +1 -1
  89. package/dist/esm/components/CheckBox/CheckBox.js +4 -4
  90. package/dist/esm/components/CheckBox/CheckBox.js.map +1 -1
  91. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  92. package/dist/esm/components/ColorPicker/ColorPicker.js.map +1 -1
  93. package/dist/esm/components/Controls/Controls.js.map +1 -1
  94. package/dist/esm/components/Controls/LeftControl/LeftControl.js +1 -1
  95. package/dist/esm/components/Controls/LeftControl/LeftControl.js.map +1 -1
  96. package/dist/esm/components/Controls/RightControl/RightControl.js.map +1 -1
  97. package/dist/esm/components/DatePicker/DatePicker.js +1 -1
  98. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  99. package/dist/esm/components/DatePicker/utils.js.map +1 -1
  100. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  101. package/dist/esm/components/DotPagination/DotPagination.js +22 -15
  102. package/dist/esm/components/DotPagination/DotPagination.js.map +1 -1
  103. package/dist/esm/components/DotPagination/DotPagination.styles.js +20 -65
  104. package/dist/esm/components/DotPagination/DotPagination.styles.js.map +1 -1
  105. package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
  106. package/dist/esm/components/DropDownMenu/DropDownMenu.styles.js +1 -0
  107. package/dist/esm/components/DropDownMenu/DropDownMenu.styles.js.map +1 -1
  108. package/dist/esm/components/Dropdown/Dropdown.js +3 -3
  109. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  110. package/dist/esm/components/Dropdown/List/List.js.map +1 -1
  111. package/dist/esm/components/Dropdown/utils.js +2 -2
  112. package/dist/esm/components/Dropdown/utils.js.map +1 -1
  113. package/dist/esm/components/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  114. package/dist/esm/components/Forms/Adornment/Adornment.js +1 -2
  115. package/dist/esm/components/Forms/Adornment/Adornment.js.map +1 -1
  116. package/dist/esm/components/Forms/FormElement/validationStates.js.map +1 -1
  117. package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  118. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  119. package/dist/esm/components/Header/Navigation/Navigation.js.map +1 -1
  120. package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
  121. package/dist/esm/components/List/useSelectableList.js +2 -5
  122. package/dist/esm/components/List/useSelectableList.js.map +1 -1
  123. package/dist/esm/components/Loading/Loading.js.map +1 -1
  124. package/dist/esm/components/OverflowTooltip/OverflowTooltip.js +1 -1
  125. package/dist/esm/components/OverflowTooltip/OverflowTooltip.js.map +1 -1
  126. package/dist/esm/components/Pagination/ButtonIconTooltip.js.map +1 -1
  127. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  128. package/dist/esm/components/Pagination/Select.js +2 -4
  129. package/dist/esm/components/Pagination/Select.js.map +1 -1
  130. package/dist/esm/components/Pagination/utils.js.map +1 -1
  131. package/dist/esm/components/SelectionList/SelectionList.js.map +1 -1
  132. package/dist/esm/components/SimpleGrid/SimpleGrid.styles.js +1 -1
  133. package/dist/esm/components/SimpleGrid/SimpleGrid.styles.js.map +1 -1
  134. package/dist/esm/components/TimeAgo/TimeAgo.js +16 -8
  135. package/dist/esm/components/TimeAgo/TimeAgo.js.map +1 -1
  136. package/dist/esm/components/TimeAgo/TimeAgo.styles.js +12 -0
  137. package/dist/esm/components/TimeAgo/TimeAgo.styles.js.map +1 -0
  138. package/dist/esm/components/Typography/Typography.js +23 -133
  139. package/dist/esm/components/Typography/Typography.js.map +1 -1
  140. package/dist/esm/components/Typography/Typography.styles.js +107 -0
  141. package/dist/esm/components/Typography/Typography.styles.js.map +1 -0
  142. package/dist/esm/components/Typography/utils.js.map +1 -1
  143. package/dist/esm/hooks/useWidth.js +1 -1
  144. package/dist/esm/hooks/useWidth.js.map +1 -1
  145. package/dist/esm/index.js +266 -265
  146. package/dist/types/index.d.ts +221 -177
  147. package/package.json +2 -2
  148. package/dist/cjs/components/DotPagination/dotPaginationClasses.cjs +0 -8
  149. package/dist/cjs/components/DotPagination/dotPaginationClasses.cjs.map +0 -1
  150. package/dist/cjs/components/TimeAgo/timeAgoClasses.cjs +0 -8
  151. package/dist/cjs/components/TimeAgo/timeAgoClasses.cjs.map +0 -1
  152. package/dist/cjs/components/Typography/typographyClasses.cjs +0 -8
  153. package/dist/cjs/components/Typography/typographyClasses.cjs.map +0 -1
  154. package/dist/esm/components/DotPagination/dotPaginationClasses.js +0 -8
  155. package/dist/esm/components/DotPagination/dotPaginationClasses.js.map +0 -1
  156. package/dist/esm/components/TimeAgo/timeAgoClasses.js +0 -8
  157. package/dist/esm/components/TimeAgo/timeAgoClasses.js.map +0 -1
  158. package/dist/esm/components/Typography/typographyClasses.js +0 -8
  159. package/dist/esm/components/Typography/typographyClasses.js.map +0 -1
@@ -5,7 +5,6 @@ import adornmentClasses from "./adornmentClasses.js";
5
5
  import { jsx } from "@emotion/react/jsx-runtime";
6
6
  import { HvFormElementDescriptorsContext } from "../FormElement/context/FormElementDescriptorsContext.js";
7
7
  import { HvFormElementContext } from "../FormElement/context/FormElementContext.js";
8
- const preventDefault = (event) => event.preventDefault();
9
8
  const noop = () => {
10
9
  };
11
10
  const HvAdornment = forwardRef(({
@@ -35,7 +34,7 @@ const HvAdornment = forwardRef(({
35
34
  "aria-controls": (_a = input == null ? void 0 : input[0]) == null ? void 0 : _a.id,
36
35
  className: clsx(className, adornmentClasses.root, classes == null ? void 0 : classes.root, adornmentClasses.adornment, classes == null ? void 0 : classes.adornment, adornmentClasses.adornmentButton, classes == null ? void 0 : classes.adornmentButton, !displayIcon && clsx(adornmentClasses.hideIcon, classes == null ? void 0 : classes.hideIcon)),
37
36
  onClick,
38
- onMouseDown: preventDefault,
37
+ onMouseDown: (event) => event.preventDefault(),
39
38
  onKeyDown: noop,
40
39
  $hideIcon: !displayIcon,
41
40
  ...others,
@@ -1 +1 @@
1
- {"version":3,"file":"Adornment.js","sources":["../../../../../src/components/Forms/Adornment/Adornment.tsx"],"sourcesContent":["import { useContext, forwardRef, MouseEventHandler, ForwardedRef } from \"react\";\nimport { clsx } from \"clsx\";\nimport { HvBaseProps } from \"@core/types\";\nimport { StyledRoot, StyledIcon, StyledButton } from \"./Adornment.styles\";\nimport {\n HvFormElementContext,\n HvFormElementDescriptorsContext,\n HvFormStatus,\n} from \"../FormElement\";\nimport adornmentClasses, { HvAdornmentClasses } from \"./adornmentClasses\";\n\nconst preventDefault = (event) => event.preventDefault();\nconst noop = () => {};\n\nexport interface HvAdornmentProps\n extends HvBaseProps<\n HTMLDivElement | HTMLButtonElement,\n \"onMouseDown\" | \"onKeyDown\"\n > {\n /** The icon to be added into the input. */\n icon: React.ReactNode;\n /** When the adornment should be displayed. */\n showWhen?: HvFormStatus;\n /** Function to be executed when this element is clicked. */\n onClick?: MouseEventHandler<HTMLButtonElement> | undefined;\n /** If this property is defined the adornment visibility will be exclusively controlled by this value. */\n isVisible?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvAdornmentClasses;\n}\n\n/**\n * Allows to add a decorative icon or an action to a form element, usually on the right side of an input.\n * E.g., the reveal password button.\n *\n * In addition to the showWhen feature, which uses the form element's context validation state to determine\n * its visibility, this component also ensures that it does not steal focus from the input and that it is\n * not accessible using the keyboard.\n *\n * As such, its functionality, if any, for accessibility purposes must be provided through an alternative mean,\n * or by using a regular icon button or toggle button instead.\n */\nexport const HvAdornment = forwardRef<\n HTMLDivElement | HTMLButtonElement,\n HvAdornmentProps\n>(\n (\n {\n id,\n classes,\n className,\n icon,\n showWhen = undefined,\n onClick,\n isVisible = undefined,\n ...others\n },\n ref\n ) => {\n const { elementStatus = \"\" } = useContext(HvFormElementContext);\n\n const { input } = useContext(HvFormElementDescriptorsContext);\n\n const displayIcon =\n isVisible ?? (showWhen === undefined || elementStatus === showWhen);\n\n const isClickable = !!onClick;\n\n return isClickable ? (\n <StyledButton\n id={id}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n type=\"button\"\n tabIndex={-1}\n aria-controls={input?.[0]?.id}\n className={clsx(\n className,\n adornmentClasses.root,\n classes?.root,\n adornmentClasses.adornment,\n classes?.adornment,\n adornmentClasses.adornmentButton,\n classes?.adornmentButton,\n !displayIcon && clsx(adornmentClasses.hideIcon, classes?.hideIcon)\n )}\n onClick={onClick}\n onMouseDown={preventDefault}\n onKeyDown={noop}\n $hideIcon={!displayIcon}\n {...others}\n >\n <StyledIcon className={clsx(adornmentClasses.icon, classes?.icon)}>\n {icon}\n </StyledIcon>\n </StyledButton>\n ) : (\n <StyledRoot\n id={id}\n ref={ref as ForwardedRef<HTMLDivElement>}\n className={clsx(\n className,\n adornmentClasses.root,\n classes?.root,\n adornmentClasses.adornment,\n classes?.adornment,\n adornmentClasses.adornmentIcon,\n classes?.adornmentIcon,\n !displayIcon && clsx(adornmentClasses.hideIcon, classes?.hideIcon)\n )}\n $hideIcon={!displayIcon}\n role=\"presentation\"\n {...others}\n >\n <StyledIcon className={clsx(adornmentClasses.icon, classes?.icon)}>\n {icon}\n </StyledIcon>\n </StyledRoot>\n );\n }\n);\n"],"names":["preventDefault","event","noop","HvAdornment","forwardRef","id","classes","className","icon","showWhen","undefined","onClick","isVisible","others","ref","elementStatus","useContext","HvFormElementContext","input","HvFormElementDescriptorsContext","displayIcon","isClickable","StyledButton","type","tabIndex","clsx","adornmentClasses","root","adornment","adornmentButton","hideIcon","onMouseDown","onKeyDown","$hideIcon","children","StyledIcon","_jsx","StyledRoot","adornmentIcon","role"],"mappings":";;;;;;;AAWA,MAAMA,iBAAkBC,CAAUA,UAAAA,MAAMD,eAAe;AACvD,MAAME,OAAOA,MAAM;AAAC;AA8BPC,MAAAA,cAAcC,WAIzB,CACE;AAAA,EACEC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,WAAWC;AAAAA,EACXC;AAAAA,EACAC,YAAYF;AAAAA,EACZ,GAAGG;AACL,GACAC,QACG;;AACG,QAAA;AAAA,IAAEC,gBAAgB;AAAA,EAAA,IAAOC,WAAWC,oBAAoB;AAExD,QAAA;AAAA,IAAEC;AAAAA,EAAAA,IAAUF,WAAWG,+BAA+B;AAE5D,QAAMC,cACJR,cAAcH,aAAaC,UAAaK,kBAAkBN;AAEtDY,QAAAA,cAAc,CAAC,CAACV;AAEfU,SAAAA,kCACJC,cAAY;AAAA,IACXjB;AAAAA,IACAS;AAAAA,IACAS,MAAK;AAAA,IACLC,UAAU;AAAA,IACV,kBAAeN,oCAAQ,OAARA,mBAAYb;AAAAA,IAC3BE,WAAWkB,KACTlB,WACAmB,iBAAiBC,MACjBrB,mCAASqB,MACTD,iBAAiBE,WACjBtB,mCAASsB,WACTF,iBAAiBG,iBACjBvB,mCAASuB,iBACT,CAACT,eAAeK,KAAKC,iBAAiBI,UAAUxB,mCAASwB,QAAQ,CACnE;AAAA,IACAnB;AAAAA,IACAoB,aAAa/B;AAAAA,IACbgC,WAAW9B;AAAAA,IACX+B,WAAW,CAACb;AAAAA,IAAY,GACpBP;AAAAA,IAAMqB,8BAETC,YAAU;AAAA,MAAC5B,WAAWkB,KAAKC,iBAAiBlB,MAAMF,mCAASE,IAAI;AAAA,MAAE0B,UAC/D1B;AAAAA,IAAAA,CACS;AAAA,EAAA,CACA,IAEd4B,oBAACC,YAAU;AAAA,IACThC;AAAAA,IACAS;AAAAA,IACAP,WAAWkB,KACTlB,WACAmB,iBAAiBC,MACjBrB,mCAASqB,MACTD,iBAAiBE,WACjBtB,mCAASsB,WACTF,iBAAiBY,eACjBhC,mCAASgC,eACT,CAAClB,eAAeK,KAAKC,iBAAiBI,UAAUxB,mCAASwB,QAAQ,CACnE;AAAA,IACAG,WAAW,CAACb;AAAAA,IACZmB,MAAK;AAAA,IAAc,GACf1B;AAAAA,IAAMqB,8BAETC,YAAU;AAAA,MAAC5B,WAAWkB,KAAKC,iBAAiBlB,MAAMF,mCAASE,IAAI;AAAA,MAAE0B,UAC/D1B;AAAAA,IAAAA,CACS;AAAA,EAAA,CACF;AAEhB,CACF;"}
1
+ {"version":3,"file":"Adornment.js","sources":["../../../../../src/components/Forms/Adornment/Adornment.tsx"],"sourcesContent":["import { useContext, forwardRef, MouseEventHandler, ForwardedRef } from \"react\";\nimport { clsx } from \"clsx\";\nimport { HvBaseProps } from \"@core/types\";\nimport { StyledRoot, StyledIcon, StyledButton } from \"./Adornment.styles\";\nimport {\n HvFormElementContext,\n HvFormElementDescriptorsContext,\n HvFormStatus,\n} from \"../FormElement\";\nimport adornmentClasses, { HvAdornmentClasses } from \"./adornmentClasses\";\n\nconst noop = () => {};\n\nexport interface HvAdornmentProps\n extends HvBaseProps<\n HTMLDivElement | HTMLButtonElement,\n \"onMouseDown\" | \"onKeyDown\"\n > {\n /** The icon to be added into the input. */\n icon: React.ReactNode;\n /** When the adornment should be displayed. */\n showWhen?: HvFormStatus;\n /** Function to be executed when this element is clicked. */\n onClick?: MouseEventHandler<HTMLButtonElement> | undefined;\n /** If this property is defined the adornment visibility will be exclusively controlled by this value. */\n isVisible?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvAdornmentClasses;\n}\n\n/**\n * Allows to add a decorative icon or an action to a form element, usually on the right side of an input.\n * E.g., the reveal password button.\n *\n * In addition to the showWhen feature, which uses the form element's context validation state to determine\n * its visibility, this component also ensures that it does not steal focus from the input and that it is\n * not accessible using the keyboard.\n *\n * As such, its functionality, if any, for accessibility purposes must be provided through an alternative mean,\n * or by using a regular icon button or toggle button instead.\n */\nexport const HvAdornment = forwardRef<\n HTMLDivElement | HTMLButtonElement,\n HvAdornmentProps\n>(\n (\n {\n id,\n classes,\n className,\n icon,\n showWhen = undefined,\n onClick,\n isVisible = undefined,\n ...others\n },\n ref\n ) => {\n const { elementStatus = \"\" } = useContext(HvFormElementContext);\n\n const { input } = useContext(HvFormElementDescriptorsContext);\n\n const displayIcon =\n isVisible ?? (showWhen === undefined || elementStatus === showWhen);\n\n const isClickable = !!onClick;\n\n return isClickable ? (\n <StyledButton\n id={id}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n type=\"button\"\n tabIndex={-1}\n aria-controls={input?.[0]?.id}\n className={clsx(\n className,\n adornmentClasses.root,\n classes?.root,\n adornmentClasses.adornment,\n classes?.adornment,\n adornmentClasses.adornmentButton,\n classes?.adornmentButton,\n !displayIcon && clsx(adornmentClasses.hideIcon, classes?.hideIcon)\n )}\n onClick={onClick}\n onMouseDown={(event) => event.preventDefault()}\n onKeyDown={noop}\n $hideIcon={!displayIcon}\n {...others}\n >\n <StyledIcon className={clsx(adornmentClasses.icon, classes?.icon)}>\n {icon}\n </StyledIcon>\n </StyledButton>\n ) : (\n <StyledRoot\n id={id}\n ref={ref as ForwardedRef<HTMLDivElement>}\n className={clsx(\n className,\n adornmentClasses.root,\n classes?.root,\n adornmentClasses.adornment,\n classes?.adornment,\n adornmentClasses.adornmentIcon,\n classes?.adornmentIcon,\n !displayIcon && clsx(adornmentClasses.hideIcon, classes?.hideIcon)\n )}\n $hideIcon={!displayIcon}\n role=\"presentation\"\n {...others}\n >\n <StyledIcon className={clsx(adornmentClasses.icon, classes?.icon)}>\n {icon}\n </StyledIcon>\n </StyledRoot>\n );\n }\n);\n"],"names":["noop","HvAdornment","forwardRef","id","classes","className","icon","showWhen","undefined","onClick","isVisible","others","ref","elementStatus","useContext","HvFormElementContext","input","HvFormElementDescriptorsContext","displayIcon","isClickable","StyledButton","type","tabIndex","clsx","adornmentClasses","root","adornment","adornmentButton","hideIcon","onMouseDown","event","preventDefault","onKeyDown","$hideIcon","children","StyledIcon","_jsx","StyledRoot","adornmentIcon","role"],"mappings":";;;;;;;AAWA,MAAMA,OAAOA,MAAM;AAAC;AA8BPC,MAAAA,cAAcC,WAIzB,CACE;AAAA,EACEC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,WAAWC;AAAAA,EACXC;AAAAA,EACAC,YAAYF;AAAAA,EACZ,GAAGG;AACL,GACAC,QACG;;AACG,QAAA;AAAA,IAAEC,gBAAgB;AAAA,EAAA,IAAOC,WAAWC,oBAAoB;AAExD,QAAA;AAAA,IAAEC;AAAAA,EAAAA,IAAUF,WAAWG,+BAA+B;AAE5D,QAAMC,cACJR,cAAcH,aAAaC,UAAaK,kBAAkBN;AAEtDY,QAAAA,cAAc,CAAC,CAACV;AAEfU,SAAAA,kCACJC,cAAY;AAAA,IACXjB;AAAAA,IACAS;AAAAA,IACAS,MAAK;AAAA,IACLC,UAAU;AAAA,IACV,kBAAeN,oCAAQ,OAARA,mBAAYb;AAAAA,IAC3BE,WAAWkB,KACTlB,WACAmB,iBAAiBC,MACjBrB,mCAASqB,MACTD,iBAAiBE,WACjBtB,mCAASsB,WACTF,iBAAiBG,iBACjBvB,mCAASuB,iBACT,CAACT,eAAeK,KAAKC,iBAAiBI,UAAUxB,mCAASwB,QAAQ,CACnE;AAAA,IACAnB;AAAAA,IACAoB,aAAcC,CAAUA,UAAAA,MAAMC,eAAe;AAAA,IAC7CC,WAAWhC;AAAAA,IACXiC,WAAW,CAACf;AAAAA,IAAY,GACpBP;AAAAA,IAAMuB,8BAETC,YAAU;AAAA,MAAC9B,WAAWkB,KAAKC,iBAAiBlB,MAAMF,mCAASE,IAAI;AAAA,MAAE4B,UAC/D5B;AAAAA,IAAAA,CACS;AAAA,EAAA,CACA,IAEd8B,oBAACC,YAAU;AAAA,IACTlC;AAAAA,IACAS;AAAAA,IACAP,WAAWkB,KACTlB,WACAmB,iBAAiBC,MACjBrB,mCAASqB,MACTD,iBAAiBE,WACjBtB,mCAASsB,WACTF,iBAAiBc,eACjBlC,mCAASkC,eACT,CAACpB,eAAeK,KAAKC,iBAAiBI,UAAUxB,mCAASwB,QAAQ,CACnE;AAAA,IACAK,WAAW,CAACf;AAAAA,IACZqB,MAAK;AAAA,IAAc,GACf5B;AAAAA,IAAMuB,8BAETC,YAAU;AAAA,MAAC9B,WAAWkB,KAAKC,iBAAiBlB,MAAMF,mCAASE,IAAI;AAAA,MAAE4B,UAC/D5B;AAAAA,IAAAA,CACS;AAAA,EAAA,CACF;AAEhB,CACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validationStates.js","sources":["../../../../../src/components/Forms/FormElement/validationStates.ts"],"sourcesContent":["const validationState = Object.freeze({\n standBy: \"standBy\",\n valid: \"valid\",\n invalid: \"invalid\",\n});\n\nexport const isValid = (compareState) => compareState === validationState.valid;\nexport const isInvalid = (compareState) =>\n compareState === validationState.invalid;\n\nexport default validationState;\n"],"names":["validationState","Object","freeze","standBy","valid","invalid","isValid","compareState","isInvalid"],"mappings":"AAAMA,MAAAA,kBAAkBC,OAAOC,OAAO;AAAA,EACpCC,SAAS;AAAA,EACTC,OAAO;AAAA,EACPC,SAAS;AACX,CAAC;AAEYC,MAAAA,UAAWC,CAAiBA,iBAAAA,iBAAiBP,gBAAgBI;AAC7DI,MAAAA,YAAaD,CACxBA,iBAAAA,iBAAiBP,gBAAgBK;"}
1
+ {"version":3,"file":"validationStates.js","sources":["../../../../../src/components/Forms/FormElement/validationStates.ts"],"sourcesContent":["import { HvFormStatus } from \".\";\n\nconst validationState = Object.freeze({\n standBy: \"standBy\",\n valid: \"valid\",\n invalid: \"invalid\",\n});\n\nexport const isValid = (compareState: HvFormStatus) =>\n compareState === validationState.valid;\nexport const isInvalid = (compareState: HvFormStatus) =>\n compareState === validationState.invalid;\n\nexport default validationState;\n"],"names":["validationState","Object","freeze","standBy","valid","invalid","isValid","compareState","isInvalid"],"mappings":"AAEMA,MAAAA,kBAAkBC,OAAOC,OAAO;AAAA,EACpCC,SAAS;AAAA,EACTC,OAAO;AAAA,EACPC,SAAS;AACX,CAAC;AAEM,MAAMC,UAAUA,CAACC,iBACtBA,iBAAiBP,gBAAgBI;AAC5B,MAAMI,YAAYA,CAACD,iBACxBA,iBAAiBP,gBAAgBK;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuBar.js","sources":["../../../../../../src/components/Header/Navigation/MenuBar/MenuBar.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useContext } from \"react\";\nimport { HvHeaderNavigationItemProp } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport { HvMenuItem } from \"../MenuItem\";\nimport { SelectionContext } from \"../utils/SelectionContext\";\nimport { MenuBarRoot, MenuBarUl } from \"./MenuBar.styles\";\nimport headerMenuBarClasses from \"./menuBarClasses\";\n\nexport interface HvMenuBarProps extends HvBaseProps<HTMLDivElement, \"onClick\"> {\n data: HvHeaderNavigationItemProp[];\n type: string;\n onClick?: (event: MouseEvent, selection: HvHeaderNavigationItemProp) => void;\n}\n\nexport const HvMenuBar = ({\n id,\n data = [],\n onClick,\n type = \"menubar\",\n className,\n}: HvMenuBarProps) => {\n const selectionPath = useContext(SelectionContext);\n\n const isMenu = type === \"menu\";\n\n const isActive =\n isMenu && data.filter((item) => item.id === selectionPath?.[1]).length > 0;\n\n return (\n <MenuBarRoot\n className={clsx(\n className,\n isMenu && headerMenuBarClasses.hidden,\n isActive && headerMenuBarClasses.active\n )}\n $type={type}\n $hidden={isMenu}\n $active={isActive}\n >\n <MenuBarUl id={id} onFocus={() => {}}>\n {data.map((item: HvHeaderNavigationItemProp) => (\n <HvMenuItem key={item.id} item={item} type={type} onClick={onClick} />\n ))}\n </MenuBarUl>\n </MenuBarRoot>\n );\n};\n"],"names":["HvMenuBar","id","data","onClick","type","className","selectionPath","useContext","SelectionContext","isMenu","isActive","filter","item","length","MenuBarRoot","clsx","headerMenuBarClasses","hidden","active","$type","$hidden","$active","children","MenuBarUl","onFocus","map","HvMenuItem"],"mappings":";;;;;;;AAeO,MAAMA,YAAYA,CAAC;AAAA,EACxBC;AAAAA,EACAC,OAAO,CAAE;AAAA,EACTC;AAAAA,EACAC,OAAO;AAAA,EACPC;AACc,MAAM;AACdC,QAAAA,gBAAgBC,WAAWC,gBAAgB;AAEjD,QAAMC,SAASL,SAAS;AAElBM,QAAAA,WACJD,UAAUP,KAAKS,OAAQC,CAAAA,SAASA,KAAKX,QAAOK,+CAAgB,GAAE,EAAEO,SAAS;AAE3E,6BACGC,aAAW;AAAA,IACVT,WAAWU,KACTV,WACAI,UAAUO,qBAAqBC,QAC/BP,YAAYM,qBAAqBE,MACnC;AAAA,IACAC,OAAOf;AAAAA,IACPgB,SAASX;AAAAA,IACTY,SAASX;AAAAA,IAASY,8BAEjBC,WAAS;AAAA,MAACtB;AAAAA,MAAQuB,SAASA,MAAM;AAAA,MAAC;AAAA,MAAEF,UAClCpB,KAAKuB,IAAI,CAACb,6BACRc,YAAU;AAAA,QAAed;AAAAA,QAAYR;AAAAA,QAAYD;AAAAA,MAAAA,GAAjCS,KAAKX,EAA+C,CACtE;AAAA,IAAA,CACQ;AAAA,EAAA,CACA;AAEjB;"}
1
+ {"version":3,"file":"MenuBar.js","sources":["../../../../../../src/components/Header/Navigation/MenuBar/MenuBar.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { MouseEvent, useContext } from \"react\";\nimport { HvHeaderNavigationItemProp } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport { HvMenuItem } from \"../MenuItem\";\nimport { SelectionContext } from \"../utils/SelectionContext\";\nimport { MenuBarRoot, MenuBarUl } from \"./MenuBar.styles\";\nimport headerMenuBarClasses from \"./menuBarClasses\";\n\nexport interface HvMenuBarProps extends HvBaseProps<HTMLDivElement, \"onClick\"> {\n data: HvHeaderNavigationItemProp[];\n type: string;\n onClick?: (event: MouseEvent, selection: HvHeaderNavigationItemProp) => void;\n}\n\nexport const HvMenuBar = ({\n id,\n data = [],\n onClick,\n type = \"menubar\",\n className,\n}: HvMenuBarProps) => {\n const selectionPath = useContext(SelectionContext);\n\n const isMenu = type === \"menu\";\n\n const isActive =\n isMenu && data.filter((item) => item.id === selectionPath?.[1]).length > 0;\n\n return (\n <MenuBarRoot\n className={clsx(\n className,\n isMenu && headerMenuBarClasses.hidden,\n isActive && headerMenuBarClasses.active\n )}\n $type={type}\n $hidden={isMenu}\n $active={isActive}\n >\n <MenuBarUl id={id} onFocus={() => {}}>\n {data.map((item: HvHeaderNavigationItemProp) => (\n <HvMenuItem key={item.id} item={item} type={type} onClick={onClick} />\n ))}\n </MenuBarUl>\n </MenuBarRoot>\n );\n};\n"],"names":["HvMenuBar","id","data","onClick","type","className","selectionPath","useContext","SelectionContext","isMenu","isActive","filter","item","length","MenuBarRoot","clsx","headerMenuBarClasses","hidden","active","$type","$hidden","$active","children","MenuBarUl","onFocus","map","HvMenuItem"],"mappings":";;;;;;;AAeO,MAAMA,YAAYA,CAAC;AAAA,EACxBC;AAAAA,EACAC,OAAO,CAAE;AAAA,EACTC;AAAAA,EACAC,OAAO;AAAA,EACPC;AACc,MAAM;AACdC,QAAAA,gBAAgBC,WAAWC,gBAAgB;AAEjD,QAAMC,SAASL,SAAS;AAElBM,QAAAA,WACJD,UAAUP,KAAKS,OAAQC,CAAAA,SAASA,KAAKX,QAAOK,+CAAgB,GAAE,EAAEO,SAAS;AAE3E,6BACGC,aAAW;AAAA,IACVT,WAAWU,KACTV,WACAI,UAAUO,qBAAqBC,QAC/BP,YAAYM,qBAAqBE,MACnC;AAAA,IACAC,OAAOf;AAAAA,IACPgB,SAASX;AAAAA,IACTY,SAASX;AAAAA,IAASY,8BAEjBC,WAAS;AAAA,MAACtB;AAAAA,MAAQuB,SAASA,MAAM;AAAA,MAAC;AAAA,MAAEF,UAClCpB,KAAKuB,IAAI,CAACb,6BACRc,YAAU;AAAA,QAAed;AAAAA,QAAYR;AAAAA,QAAYD;AAAAA,MAAAA,GAAjCS,KAAKX,EAA+C,CACtE;AAAA,IAAA,CACQ;AAAA,EAAA,CACA;AAEjB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.js","sources":["../../../../../../src/components/Header/Navigation/MenuItem/MenuItem.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { HvHeaderNavigationItemProp, HvTypography } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport { isKeypress, keyboardCodes } from \"@core/utils\";\nimport { HvMenuBar } from \"../MenuBar\";\nimport { FocusContext } from \"../utils/FocusContext\";\nimport { SelectionContext } from \"../utils/SelectionContext\";\nimport { MenuItemLabel, MenuItemLi, MenuItemLink } from \"./MenuItem.styles\";\n\nexport interface MenuItemProps extends HvBaseProps<HTMLDivElement, \"onClick\"> {\n item: HvHeaderNavigationItemProp;\n type?: string;\n onClick?: (event: MouseEvent, selection: HvHeaderNavigationItemProp) => void;\n}\n\n// Traverse the tree of items and return the first href it finds\nconst traverseItem = (node: HvHeaderNavigationItemProp) => {\n let href;\n let target;\n\n if (node?.href) {\n href = node?.href;\n target = node?.target;\n } else if (node?.data != null && node?.data?.length > 0) {\n let i = 0;\n while (href == null && i < node.data.length) {\n traverseItem(node?.data[i]);\n i += 1;\n }\n }\n\n return { href, target };\n};\n\nexport const HvMenuItem = ({ id, item, type, onClick }: MenuItemProps) => {\n const selectionPath = useContext(SelectionContext);\n const { dispatch } = useContext(FocusContext);\n\n const { data } = item;\n const hasSubLevel = data && data.length;\n const isMenu = type === \"menu\";\n const isSelected = selectionPath?.[isMenu ? 1 : 0] === item.id;\n const isCurrent = isSelected\n ? selectionPath?.length > (isMenu ? 2 : 1)\n ? true\n : \"page\"\n : undefined;\n\n const actionHandler = (event) => {\n if (\n event.type === \"click\" ||\n isKeypress(event, keyboardCodes.Enter) ||\n isKeypress(event, keyboardCodes.SpaceBar)\n ) {\n if (event.type === \"click\") {\n event.currentTarget.blur();\n }\n onClick?.(event, item);\n }\n };\n\n const handleFocus = (event: React.FocusEvent) => {\n dispatch?.({ type: \"setItemFocused\", itemFocused: event.currentTarget });\n };\n\n const itemProps = {\n onClick: actionHandler,\n onKeyDown: actionHandler,\n onFocus: handleFocus,\n };\n\n const label = (\n <HvTypography\n component=\"span\"\n variant={isSelected ? \"label\" : \"body\"}\n data-text={item.label}\n >\n {item.label}\n </HvTypography>\n );\n\n let itemHref = item?.href;\n let itemTarget = item?.target;\n\n // apps should configure the href even on parent items without content\n // so the fallback logic is theirs, but if not we'll do our best to find a link\n if (item?.href == null) {\n const { href, target } = traverseItem(item);\n itemHref = href;\n itemTarget = target;\n }\n\n return (\n <MenuItemLi\n id={id}\n key={item.label}\n $selected={!!isSelected}\n $isMenu={isMenu}\n >\n {itemHref ? (\n <MenuItemLink\n href={itemHref}\n target={itemTarget}\n {...itemProps}\n $isSelected={isSelected}\n $isMenu={isMenu}\n aria-current={isCurrent}\n >\n {label}\n </MenuItemLink>\n ) : (\n // keeping this code path for backwards compatibility, but\n // shouldn't really be used as it's not accessible\n <MenuItemLabel\n role=\"button\"\n {...itemProps}\n tabIndex={0}\n $isSelected={isSelected}\n $isMenu={isMenu}\n aria-current={isCurrent}\n >\n {label}\n </MenuItemLabel>\n )}\n {hasSubLevel && <HvMenuBar data={data} onClick={onClick} type=\"menu\" />}\n </MenuItemLi>\n );\n};\n"],"names":["traverseItem","node","href","target","data","length","i","HvMenuItem","id","item","type","onClick","selectionPath","useContext","SelectionContext","dispatch","FocusContext","hasSubLevel","isMenu","isSelected","isCurrent","undefined","actionHandler","event","isKeypress","keyboardCodes","Enter","SpaceBar","currentTarget","blur","handleFocus","itemFocused","itemProps","onKeyDown","onFocus","label","HvTypography","component","variant","children","itemHref","itemTarget","MenuItemLi","$selected","$isMenu","_jsx","MenuItemLink","$isSelected","MenuItemLabel","role","tabIndex","HvMenuBar"],"mappings":"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"}
1
+ {"version":3,"file":"MenuItem.js","sources":["../../../../../../src/components/Header/Navigation/MenuItem/MenuItem.tsx"],"sourcesContent":["import React, { MouseEvent, useContext } from \"react\";\nimport { HvHeaderNavigationItemProp, HvTypography } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport { isKeypress, keyboardCodes } from \"@core/utils\";\nimport { HvMenuBar } from \"../MenuBar\";\nimport { FocusContext } from \"../utils/FocusContext\";\nimport { SelectionContext } from \"../utils/SelectionContext\";\nimport { MenuItemLabel, MenuItemLi, MenuItemLink } from \"./MenuItem.styles\";\n\nexport interface MenuItemProps extends HvBaseProps<HTMLDivElement, \"onClick\"> {\n item: HvHeaderNavigationItemProp;\n type?: string;\n onClick?: (event: MouseEvent, selection: HvHeaderNavigationItemProp) => void;\n}\n\n// Traverse the tree of items and return the first href it finds\nconst traverseItem = (node: HvHeaderNavigationItemProp) => {\n let href;\n let target;\n\n if (node?.href) {\n href = node?.href;\n target = node?.target;\n } else if (node?.data != null && node?.data?.length > 0) {\n let i = 0;\n while (href == null && i < node.data.length) {\n traverseItem(node?.data[i]);\n i += 1;\n }\n }\n\n return { href, target };\n};\n\nexport const HvMenuItem = ({ id, item, type, onClick }: MenuItemProps) => {\n const selectionPath = useContext(SelectionContext);\n const { dispatch } = useContext(FocusContext);\n\n const { data } = item;\n const hasSubLevel = data && data.length;\n const isMenu = type === \"menu\";\n const isSelected = selectionPath?.[isMenu ? 1 : 0] === item.id;\n const isCurrent = isSelected\n ? selectionPath?.length > (isMenu ? 2 : 1)\n ? true\n : \"page\"\n : undefined;\n\n const actionHandler = (event: any) => {\n if (\n event.type === \"click\" ||\n isKeypress(event, keyboardCodes.Enter) ||\n isKeypress(event, keyboardCodes.SpaceBar)\n ) {\n if (event.type === \"click\") {\n event.currentTarget.blur();\n }\n onClick?.(event, item);\n }\n };\n\n const handleFocus = (event: React.FocusEvent) => {\n dispatch?.({ type: \"setItemFocused\", itemFocused: event.currentTarget });\n };\n\n const itemProps = {\n onClick: actionHandler,\n onKeyDown: actionHandler,\n onFocus: handleFocus,\n };\n\n const label = (\n <HvTypography\n component=\"span\"\n variant={isSelected ? \"label\" : \"body\"}\n data-text={item.label}\n >\n {item.label}\n </HvTypography>\n );\n\n let itemHref = item?.href;\n let itemTarget = item?.target;\n\n // apps should configure the href even on parent items without content\n // so the fallback logic is theirs, but if not we'll do our best to find a link\n if (item?.href == null) {\n const { href, target } = traverseItem(item);\n itemHref = href;\n itemTarget = target;\n }\n\n return (\n <MenuItemLi\n id={id}\n key={item.label}\n $selected={!!isSelected}\n $isMenu={isMenu}\n >\n {itemHref ? (\n <MenuItemLink\n href={itemHref}\n target={itemTarget}\n {...itemProps}\n $isSelected={isSelected}\n $isMenu={isMenu}\n aria-current={isCurrent}\n >\n {label}\n </MenuItemLink>\n ) : (\n // keeping this code path for backwards compatibility, but\n // shouldn't really be used as it's not accessible\n <MenuItemLabel\n role=\"button\"\n {...itemProps}\n tabIndex={0}\n $isSelected={isSelected}\n $isMenu={isMenu}\n aria-current={isCurrent}\n >\n {label}\n </MenuItemLabel>\n )}\n {hasSubLevel && <HvMenuBar data={data} onClick={onClick} type=\"menu\" />}\n </MenuItemLi>\n );\n};\n"],"names":["traverseItem","node","href","target","data","length","i","HvMenuItem","id","item","type","onClick","selectionPath","useContext","SelectionContext","dispatch","FocusContext","hasSubLevel","isMenu","isSelected","isCurrent","undefined","actionHandler","event","isKeypress","keyboardCodes","Enter","SpaceBar","currentTarget","blur","handleFocus","itemFocused","itemProps","onKeyDown","onFocus","label","HvTypography","component","variant","children","itemHref","itemTarget","MenuItemLi","$selected","$isMenu","_jsx","MenuItemLink","$isSelected","MenuItemLabel","role","tabIndex","HvMenuBar"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.js","sources":["../../../../../src/components/Header/Navigation/Navigation.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { MouseEvent } from \"react\";\nimport { useSelectionPath } from \"@core/hooks\";\nimport { HvBaseProps } from \"@core/types\";\nimport { HvMenuBar } from \"./MenuBar\";\nimport { StyledNav } from \"./Navigation.styles\";\nimport { FocusProvider } from \"./utils/FocusContext\";\nimport { SelectionContext } from \"./utils/SelectionContext\";\nimport headerNavigationClasses, {\n HvHeaderNavigationClasses,\n} from \"./navigationClasses\";\n\nexport interface HvHeaderNavigationItemProp {\n id: string;\n label: string;\n path?: string;\n href?: string;\n target?: string;\n data?: HvHeaderNavigationItemProp[];\n}\n\nexport interface HvHeaderNavigationProps\n extends HvBaseProps<HTMLDivElement, \"onClick\"> {\n data: HvHeaderNavigationItemProp[];\n selected?: string;\n onClick?: (event: MouseEvent, selection: HvHeaderNavigationItemProp) => void;\n classes?: HvHeaderNavigationClasses;\n}\n\nexport const HvHeaderNavigation = ({\n data,\n selected,\n onClick,\n className,\n classes,\n ...others\n}: HvHeaderNavigationProps) => {\n const selectionPath = useSelectionPath(data, selected);\n\n const handleClick = (event, selection) => {\n event.preventDefault();\n\n onClick?.(event, selection);\n };\n\n return (\n <SelectionContext.Provider value={selectionPath}>\n <FocusProvider>\n <StyledNav\n className={clsx(\n className,\n headerNavigationClasses.root,\n classes?.root\n )}\n {...others}\n >\n <HvMenuBar data={data} type=\"menubar\" onClick={handleClick} />\n </StyledNav>\n </FocusProvider>\n </SelectionContext.Provider>\n );\n};\n"],"names":["HvHeaderNavigation","data","selected","onClick","className","classes","others","selectionPath","useSelectionPath","handleClick","event","selection","preventDefault","_jsx","SelectionContext","Provider","value","children","FocusProvider","StyledNav","clsx","headerNavigationClasses","root","HvMenuBar","type"],"mappings":";;;;;;;;AA6BO,MAAMA,qBAAqBA,CAAC;AAAA,EACjCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACoB,MAAM;AACvBC,QAAAA,gBAAgBC,iBAAiBP,MAAMC,QAAQ;AAE/CO,QAAAA,cAAcA,CAACC,OAAOC,cAAc;AACxCD,UAAME,eAAe;AAErBT,uCAAUO,OAAOC;AAAAA,EAAS;AAI1BE,SAAAA,oBAACC,iBAAiBC,UAAQ;AAAA,IAACC,OAAOT;AAAAA,IAAcU,8BAC7CC,eAAa;AAAA,MAAAD,8BACXE,WAAS;AAAA,QACRf,WAAWgB,KACThB,WACAiB,wBAAwBC,MACxBjB,mCAASiB,IACX;AAAA,QAAE,GACEhB;AAAAA,QAAMW,8BAETM,WAAS;AAAA,UAACtB;AAAAA,UAAYuB,MAAK;AAAA,UAAUrB,SAASM;AAAAA,QAAAA,CAAc;AAAA,MAAA,CACpD;AAAA,IAAA,CACE;AAAA,EAAA,CACU;AAE/B;"}
1
+ {"version":3,"file":"Navigation.js","sources":["../../../../../src/components/Header/Navigation/Navigation.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { MouseEvent } from \"react\";\nimport { useSelectionPath } from \"@core/hooks\";\nimport { HvBaseProps } from \"@core/types\";\nimport { HvMenuBar, HvMenuBarProps } from \"./MenuBar\";\nimport { StyledNav } from \"./Navigation.styles\";\nimport { FocusProvider } from \"./utils/FocusContext\";\nimport { SelectionContext } from \"./utils/SelectionContext\";\nimport headerNavigationClasses, {\n HvHeaderNavigationClasses,\n} from \"./navigationClasses\";\n\nexport interface HvHeaderNavigationItemProp {\n id: string;\n label: string;\n path?: string;\n href?: string;\n target?: string;\n data?: HvHeaderNavigationItemProp[];\n}\n\nexport interface HvHeaderNavigationProps\n extends HvBaseProps<HTMLDivElement, \"onClick\"> {\n data: HvHeaderNavigationItemProp[];\n selected?: string;\n onClick?: (event: MouseEvent, selection: HvHeaderNavigationItemProp) => void;\n classes?: HvHeaderNavigationClasses;\n}\n\nexport const HvHeaderNavigation = ({\n data,\n selected,\n onClick,\n className,\n classes,\n ...others\n}: HvHeaderNavigationProps) => {\n const selectionPath = useSelectionPath(data, selected);\n\n const handleClick: HvMenuBarProps[\"onClick\"] = (event, selection) => {\n event.preventDefault();\n\n onClick?.(event, selection);\n };\n\n return (\n <SelectionContext.Provider value={selectionPath}>\n <FocusProvider>\n <StyledNav\n className={clsx(\n className,\n headerNavigationClasses.root,\n classes?.root\n )}\n {...others}\n >\n <HvMenuBar data={data} type=\"menubar\" onClick={handleClick} />\n </StyledNav>\n </FocusProvider>\n </SelectionContext.Provider>\n );\n};\n"],"names":["HvHeaderNavigation","data","selected","onClick","className","classes","others","selectionPath","useSelectionPath","handleClick","event","selection","preventDefault","_jsx","SelectionContext","Provider","value","children","FocusProvider","StyledNav","clsx","headerNavigationClasses","root","HvMenuBar","type"],"mappings":";;;;;;;;AA6BO,MAAMA,qBAAqBA,CAAC;AAAA,EACjCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACoB,MAAM;AACvBC,QAAAA,gBAAgBC,iBAAiBP,MAAMC,QAAQ;AAE/CO,QAAAA,cAAyCA,CAACC,OAAOC,cAAc;AACnED,UAAME,eAAe;AAErBT,uCAAUO,OAAOC;AAAAA,EAAS;AAI1BE,SAAAA,oBAACC,iBAAiBC,UAAQ;AAAA,IAACC,OAAOT;AAAAA,IAAcU,8BAC7CC,eAAa;AAAA,MAAAD,8BACXE,WAAS;AAAA,QACRf,WAAWgB,KACThB,WACAiB,wBAAwBC,MACxBjB,mCAASiB,IACX;AAAA,QAAE,GACEhB;AAAAA,QAAMW,8BAETM,WAAS;AAAA,UAACtB;AAAAA,UAAYuB,MAAK;AAAA,UAAUrB,SAASM;AAAAA,QAAAA,CAAc;AAAA,MAAA,CACpD;AAAA,IAAA,CACE;AAAA,EAAA,CACU;AAE/B;"}
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditor.js","sources":["../../../../src/components/InlineEditor/InlineEditor.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useControlled } from \"@core/hooks\";\nimport {\n ExtractNames,\n getVarValue,\n isKeypress,\n keyboardCodes,\n} from \"@core/utils\";\nimport {\n HvButtonProps,\n HvTypographyVariants,\n HvTypographyProps,\n HvInput,\n HvButton,\n HvTypography,\n} from \"@core/components\";\nimport { HvThemeTypographyProps, theme } from \"@hitachivantara/uikit-styles\";\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\nimport { staticClasses, useClasses } from \"./InlineEditor.styles\";\n\nexport { staticClasses as inlineEditorClasses };\n\nexport type HvInlineEditorClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvInlineEditorProps\n extends HvBaseProps<HTMLDivElement, \"onBlur\" | \"onChange\"> {\n /** The value of the form element. */\n value?: string;\n /** Whether the Edit icon should always be visible */\n showIcon?: boolean;\n /** Component to use as the input. The component \"inherit\" from `HvBaseInput` (such as `HvInput` or `HvTextArea`) */\n component?: React.ElementType;\n /** Variant of the HvTypography to display */\n variant?: HvTypographyVariants;\n /** Called when the input is blurred. */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>,\n value: string\n ) => void;\n /** Called when the input value changes. */\n onChange?: (event: React.SyntheticEvent, value: string) => void;\n /** Props passed to the HvButton component */\n buttonProps?: HvButtonProps;\n /** Props passed to the HvTypography text component */\n typographyProps?: HvTypographyProps;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvInlineEditorClasses;\n}\n\nconst getTypographyStyles = (typography): HvThemeTypographyProps => {\n const typographyStyles = {};\n Object.keys(typography).forEach((k) => {\n typographyStyles[k] = getVarValue(typography[k]);\n });\n return typographyStyles;\n};\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nexport const HvInlineEditor = ({\n className,\n classes: classesProp,\n value: valueProp,\n defaultValue,\n showIcon,\n component: InputComponent = HvInput,\n variant = \"body\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n ...others\n}: HvInlineEditorProps) => {\n const { classes, cx } = useClasses(classesProp);\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef<HTMLInputElement>();\n\n const typographyStyles = getTypographyStyles(theme.typography[variant] || {});\n const { lineHeight } = typographyStyles;\n\n useLayoutEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown = (event) => {\n if (isKeypress(event, keyboardCodes.Esc)) {\n setEditMode(false);\n setValue(cachedValue);\n }\n onKeyDown?.(event);\n };\n\n const handleChange = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={cx(className, classes.root)}>\n {editMode ? (\n <InputComponent\n inputRef={inputRef}\n classes={{\n root: classes.inputRoot,\n input: classes.input,\n inputBorderContainer: classes.inputBorderContainer,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n variant=\"secondaryGhost\"\n overrideIconColors={false}\n className={cx(classes.button, {\n [classes.largeText]: parseInt(lineHeight as string, 10) >= 28,\n })}\n onClick={handleClick}\n {...buttonProps}\n >\n <HvTypography\n variant={variant}\n noWrap\n className={cx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n <Edit\n color=\"secondary_60\"\n role=\"presentation\"\n className={cx(classes.icon, { [classes.iconVisible]: showIcon })}\n />\n </HvButton>\n )}\n </div>\n );\n};\n"],"names":["getTypographyStyles","typography","typographyStyles","Object","keys","forEach","k","getVarValue","HvInlineEditor","className","classes","classesProp","value","valueProp","defaultValue","showIcon","component","InputComponent","HvInput","variant","placeholder","onBlur","onChange","onKeyDown","buttonProps","typographyProps","others","cx","useClasses","setValue","useControlled","editMode","setEditMode","useState","cachedValue","setCachedValue","inputRef","useRef","theme","lineHeight","useLayoutEffect","input","current","focus","select","handleClick","handleBlur","event","newValue","handleKeyDown","isKeypress","keyboardCodes","Esc","handleChange","val","root","children","_jsx","inputRoot","inputBorderContainer","inputProps","style","height","undefined","_jsxs","HvButton","overrideIconColors","button","largeText","parseInt","onClick","HvTypography","noWrap","text","textEmpty","Edit","color","role","icon","iconVisible"],"mappings":"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"}
1
+ {"version":3,"file":"InlineEditor.js","sources":["../../../../src/components/InlineEditor/InlineEditor.tsx"],"sourcesContent":["import React, { useLayoutEffect, useRef, useState } from \"react\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useControlled } from \"@core/hooks\";\nimport {\n ExtractNames,\n getVarValue,\n isKeypress,\n keyboardCodes,\n} from \"@core/utils\";\nimport {\n HvButtonProps,\n HvTypographyVariants,\n HvTypographyProps,\n HvInput,\n HvButton,\n HvTypography,\n HvInputProps,\n} from \"@core/components\";\nimport { HvThemeTypographyProps, theme } from \"@hitachivantara/uikit-styles\";\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\nimport { staticClasses, useClasses } from \"./InlineEditor.styles\";\n\nexport { staticClasses as inlineEditorClasses };\n\nexport type HvInlineEditorClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvInlineEditorProps\n extends HvBaseProps<HTMLDivElement, \"onBlur\" | \"onChange\"> {\n /** The value of the form element. */\n value?: string;\n /** Whether the Edit icon should always be visible */\n showIcon?: boolean;\n /** Component to use as the input. The component \"inherit\" from `HvBaseInput` (such as `HvInput` or `HvTextArea`) */\n component?: React.ElementType;\n /** Variant of the HvTypography to display */\n variant?: HvTypographyVariants;\n /** Called when the input is blurred. */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>,\n value: string\n ) => void;\n /** Called when the input value changes. */\n onChange?: (event: React.SyntheticEvent, value: string) => void;\n /** Props passed to the HvButton component */\n buttonProps?: HvButtonProps;\n /** Props passed to the HvTypography text component */\n typographyProps?: HvTypographyProps;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvInlineEditorClasses;\n}\n\nconst getTypographyStyles = (typography): HvThemeTypographyProps => {\n const typographyStyles = {};\n Object.keys(typography).forEach((k) => {\n typographyStyles[k] = getVarValue(typography[k]);\n });\n return typographyStyles;\n};\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nexport const HvInlineEditor = ({\n className,\n classes: classesProp,\n value: valueProp,\n defaultValue,\n showIcon,\n component: InputComponent = HvInput,\n variant = \"body\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n ...others\n}: HvInlineEditorProps) => {\n const { classes, cx } = useClasses(classesProp);\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef<HTMLInputElement>();\n\n const typographyStyles = getTypographyStyles(theme.typography[variant] || {});\n const { lineHeight } = typographyStyles;\n\n useLayoutEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur: HvInputProps[\"onBlur\"] = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown: HvInputProps[\"onKeyDown\"] = (event) => {\n if (isKeypress(event, keyboardCodes.Esc)) {\n setEditMode(false);\n setValue(cachedValue);\n }\n onKeyDown?.(event as any);\n };\n\n const handleChange: HvInputProps[\"onChange\"] = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={cx(className, classes.root)}>\n {editMode ? (\n <InputComponent\n inputRef={inputRef}\n classes={{\n root: classes.inputRoot,\n input: classes.input,\n inputBorderContainer: classes.inputBorderContainer,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n variant=\"secondaryGhost\"\n overrideIconColors={false}\n className={cx(classes.button, {\n [classes.largeText]: parseInt(lineHeight as string, 10) >= 28,\n })}\n onClick={handleClick}\n {...buttonProps}\n >\n <HvTypography\n variant={variant}\n noWrap\n className={cx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n <Edit\n color=\"secondary_60\"\n role=\"presentation\"\n className={cx(classes.icon, { [classes.iconVisible]: showIcon })}\n />\n </HvButton>\n )}\n </div>\n );\n};\n"],"names":["getTypographyStyles","typography","typographyStyles","Object","keys","forEach","k","getVarValue","HvInlineEditor","className","classes","classesProp","value","valueProp","defaultValue","showIcon","component","InputComponent","HvInput","variant","placeholder","onBlur","onChange","onKeyDown","buttonProps","typographyProps","others","cx","useClasses","setValue","useControlled","editMode","setEditMode","useState","cachedValue","setCachedValue","inputRef","useRef","theme","lineHeight","useLayoutEffect","input","current","focus","select","handleClick","handleBlur","event","newValue","handleKeyDown","isKeypress","keyboardCodes","Esc","handleChange","val","root","children","_jsx","inputRoot","inputBorderContainer","inputProps","style","height","undefined","_jsxs","HvButton","overrideIconColors","button","largeText","parseInt","onClick","HvTypography","noWrap","text","textEmpty","Edit","color","role","icon","iconVisible"],"mappings":"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"}
@@ -1,10 +1,7 @@
1
- import { useState, useEffect } from "react";
1
+ import { useState, useMemo } from "react";
2
2
  function useSelectableList(defaultList = []) {
3
3
  const [list, setList] = useState(defaultList);
4
- const [selection, setSelection] = useState([]);
5
- useEffect(() => {
6
- setSelection(list.filter((elem) => elem.selected));
7
- }, [list]);
4
+ const selection = useMemo(() => list.filter((elem) => elem.selected), [list]);
8
5
  return [list, setList, selection];
9
6
  }
10
7
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectableList.js","sources":["../../../../src/components/List/useSelectableList.ts"],"sourcesContent":["import { useState, useEffect } from \"react\";\nimport { HvListValue } from \".\";\n\nexport default function useSelectableList(defaultList: HvListValue[] = []) {\n const [list, setList] = useState<HvListValue[]>(defaultList);\n const [selection, setSelection] = useState<HvListValue[]>([]);\n\n useEffect(() => {\n setSelection(\n (list as HvListValue[]).filter((elem: HvListValue) => elem.selected)\n );\n }, [list]);\n\n return [list, setList, selection] as const;\n}\n"],"names":["useSelectableList","defaultList","list","setList","useState","selection","setSelection","useEffect","filter","elem","selected"],"mappings":";AAGwBA,SAAAA,kBAAkBC,cAA6B,IAAI;AACzE,QAAM,CAACC,MAAMC,OAAO,IAAIC,SAAwBH,WAAW;AAC3D,QAAM,CAACI,WAAWC,YAAY,IAAIF,SAAwB,CAAE,CAAA;AAE5DG,YAAU,MAAM;AACdD,iBACGJ,KAAuBM,OAAO,CAACC,SAAsBA,KAAKC,QAAQ,CACrE;AAAA,EAAA,GACC,CAACR,IAAI,CAAC;AAEF,SAAA,CAACA,MAAMC,SAASE,SAAS;AAClC;"}
1
+ {"version":3,"file":"useSelectableList.js","sources":["../../../../src/components/List/useSelectableList.ts"],"sourcesContent":["import { useState, useMemo } from \"react\";\nimport { HvListValue } from \".\";\n\nexport default function useSelectableList(defaultList: HvListValue[] = []) {\n const [list, setList] = useState(defaultList);\n\n const selection = useMemo(() => list.filter((elem) => elem.selected), [list]);\n\n return [list, setList, selection] as const;\n}\n"],"names":["useSelectableList","defaultList","list","setList","useState","selection","useMemo","filter","elem","selected"],"mappings":";AAGwBA,SAAAA,kBAAkBC,cAA6B,IAAI;AACzE,QAAM,CAACC,MAAMC,OAAO,IAAIC,SAASH,WAAW;AAEtCI,QAAAA,YAAYC,QAAQ,MAAMJ,KAAKK,OAAQC,CAASA,SAAAA,KAAKC,QAAQ,GAAG,CAACP,IAAI,CAAC;AAErE,SAAA,CAACA,MAAMC,SAASE,SAAS;AAClC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Loading.js","sources":["../../../../src/components/Loading/Loading.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\nimport { clsx } from \"clsx\";\nimport range from \"lodash/range\";\nimport { HvBaseProps } from \"@core/types\";\nimport {\n StyledBar,\n StyledBarContainer,\n StyledLabel,\n StyledRoot,\n} from \"./Loading.styles\";\nimport loadingClasses, { HvLoadingClasses } from \"./loadingClasses\";\n\nexport interface HvLoadingProps extends HvBaseProps {\n /** Indicates if the component should be render in a small size. */\n small?: boolean;\n /** The label to be displayed. */\n label?: string | React.ReactNode;\n /** Whether the loading animation is hidden. */\n hidden?: boolean;\n /** Color applied to the bars. */\n color?: string;\n classes?: HvLoadingClasses;\n}\n\n/**\n * Loading provides feedback about a process that is taking place in the application.\n */\nexport const HvLoading = (props: HvLoadingProps) => {\n const { color, hidden, small, label, classes, className, ...others } = props;\n\n const getColor = (colorName) => {\n return color ? theme.colors[color] || color : theme.colors[colorName];\n };\n\n const size = small ? \"small\" : \"regular\";\n const colorVariant = color ? \"Color\" : \"\";\n const variant = `${size}${colorVariant}`;\n\n const inline = { backgroundColor: getColor(small ? \"secondary\" : \"brand\") };\n return (\n <StyledRoot\n hidden={!!hidden}\n className={clsx(\n className,\n loadingClasses.root,\n classes?.root,\n hidden && clsx(classes?.hidden, loadingClasses.hidden)\n )}\n {...others}\n >\n <StyledBarContainer\n className={clsx(loadingClasses.barContainer, classes?.barContainer)}\n >\n {range(0, 3).map((e) => (\n <StyledBar\n key={e}\n style={inline}\n className={clsx(\n loadingClasses.loadingBar,\n classes?.loadingBar,\n loadingClasses[variant],\n classes?.[variant]\n )}\n $variant={variant}\n />\n ))}\n </StyledBarContainer>\n {label && (\n <StyledLabel\n variant=\"caption1\"\n className={clsx(loadingClasses.label, classes?.label)}\n >\n {label}\n </StyledLabel>\n )}\n </StyledRoot>\n );\n};\n"],"names":["HvLoading","props","color","hidden","small","label","classes","className","others","getColor","colorName","theme","colors","size","colorVariant","variant","inline","backgroundColor","StyledRoot","clsx","loadingClasses","root","children","_jsx","StyledBarContainer","barContainer","range","map","e","StyledBar","style","loadingBar","$variant","StyledLabel"],"mappings":";;;;;;AA2BaA,MAAAA,YAAYA,CAACC,UAA0B;AAC5C,QAAA;AAAA,IAAEC;AAAAA,IAAOC;AAAAA,IAAQC;AAAAA,IAAOC;AAAAA,IAAOC;AAAAA,IAASC;AAAAA,IAAW,GAAGC;AAAAA,EAAWP,IAAAA;AAEvE,QAAMQ,WAAYC,CAAc,cAAA;AACvBR,WAAAA,QAAQS,MAAMC,OAAOV,KAAK,KAAKA,QAAQS,MAAMC,OAAOF,SAAS;AAAA,EAAA;AAGhEG,QAAAA,OAAOT,QAAQ,UAAU;AACzBU,QAAAA,eAAeZ,QAAQ,UAAU;AACjCa,QAAAA,UAAW,GAAEF,OAAOC;AAE1B,QAAME,SAAS;AAAA,IAAEC,iBAAiBR,SAASL,QAAQ,cAAc,OAAO;AAAA,EAAA;AACxE,8BACGc,YAAU;AAAA,IACTf,QAAQ,CAAC,CAACA;AAAAA,IACVI,WAAWY,KACTZ,WACAa,eAAeC,MACff,mCAASe,MACTlB,UAAUgB,KAAKb,mCAASH,QAAQiB,eAAejB,MAAM,CACvD;AAAA,IAAE,GACEK;AAAAA,IAAMc,UAAA,CAEVC,oBAACC,oBAAkB;AAAA,MACjBjB,WAAWY,KAAKC,eAAeK,cAAcnB,mCAASmB,YAAY;AAAA,MAAEH,UAEnEI,MAAM,GAAG,CAAC,EAAEC,IAAKC,CAAAA,0BACfC,WAAS;AAAA,QAERC,OAAOd;AAAAA,QACPT,WAAWY,KACTC,eAAeW,YACfzB,mCAASyB,YACTX,eAAeL,OAAO,GACtBT,mCAAUS,QACZ;AAAA,QACAiB,UAAUjB;AAAAA,MAAQ,GARba,CASN,CACF;AAAA,IAAA,CACiB,GACnBvB,SACCkB,oBAACU,aAAW;AAAA,MACVlB,SAAQ;AAAA,MACRR,WAAWY,KAAKC,eAAef,OAAOC,mCAASD,KAAK;AAAA,MAAEiB,UAErDjB;AAAAA,IAAAA,CACU,CACd;AAAA,EAAA,CACS;AAEhB;"}
1
+ {"version":3,"file":"Loading.js","sources":["../../../../src/components/Loading/Loading.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\nimport { clsx } from \"clsx\";\nimport range from \"lodash/range\";\nimport { HvBaseProps } from \"@core/types\";\nimport {\n StyledBar,\n StyledBarContainer,\n StyledLabel,\n StyledRoot,\n} from \"./Loading.styles\";\nimport loadingClasses, { HvLoadingClasses } from \"./loadingClasses\";\n\nexport interface HvLoadingProps extends HvBaseProps {\n /** Indicates if the component should be render in a small size. */\n small?: boolean;\n /** The label to be displayed. */\n label?: string | React.ReactNode;\n /** Whether the loading animation is hidden. */\n hidden?: boolean;\n /** Color applied to the bars. */\n color?: string;\n classes?: HvLoadingClasses;\n}\n\n/**\n * Loading provides feedback about a process that is taking place in the application.\n */\nexport const HvLoading = (props: HvLoadingProps) => {\n const { color, hidden, small, label, classes, className, ...others } = props;\n\n const getColor = (colorName: string) => {\n return color ? theme.colors[color] || color : theme.colors[colorName];\n };\n\n const size = small ? \"small\" : \"regular\";\n const colorVariant = color ? \"Color\" : \"\";\n const variant = `${size}${colorVariant}`;\n\n const inline = { backgroundColor: getColor(small ? \"secondary\" : \"brand\") };\n return (\n <StyledRoot\n hidden={!!hidden}\n className={clsx(\n className,\n loadingClasses.root,\n classes?.root,\n hidden && clsx(classes?.hidden, loadingClasses.hidden)\n )}\n {...others}\n >\n <StyledBarContainer\n className={clsx(loadingClasses.barContainer, classes?.barContainer)}\n >\n {range(0, 3).map((e) => (\n <StyledBar\n key={e}\n style={inline}\n className={clsx(\n loadingClasses.loadingBar,\n classes?.loadingBar,\n loadingClasses[variant],\n classes?.[variant]\n )}\n $variant={variant}\n />\n ))}\n </StyledBarContainer>\n {label && (\n <StyledLabel\n variant=\"caption1\"\n className={clsx(loadingClasses.label, classes?.label)}\n >\n {label}\n </StyledLabel>\n )}\n </StyledRoot>\n );\n};\n"],"names":["HvLoading","props","color","hidden","small","label","classes","className","others","getColor","colorName","theme","colors","size","colorVariant","variant","inline","backgroundColor","StyledRoot","clsx","loadingClasses","root","children","_jsx","StyledBarContainer","barContainer","range","map","e","StyledBar","style","loadingBar","$variant","StyledLabel"],"mappings":";;;;;;AA2BaA,MAAAA,YAAYA,CAACC,UAA0B;AAC5C,QAAA;AAAA,IAAEC;AAAAA,IAAOC;AAAAA,IAAQC;AAAAA,IAAOC;AAAAA,IAAOC;AAAAA,IAASC;AAAAA,IAAW,GAAGC;AAAAA,EAAWP,IAAAA;AAEjEQ,QAAAA,WAAWA,CAACC,cAAsB;AAC/BR,WAAAA,QAAQS,MAAMC,OAAOV,KAAK,KAAKA,QAAQS,MAAMC,OAAOF,SAAS;AAAA,EAAA;AAGhEG,QAAAA,OAAOT,QAAQ,UAAU;AACzBU,QAAAA,eAAeZ,QAAQ,UAAU;AACjCa,QAAAA,UAAW,GAAEF,OAAOC;AAE1B,QAAME,SAAS;AAAA,IAAEC,iBAAiBR,SAASL,QAAQ,cAAc,OAAO;AAAA,EAAA;AACxE,8BACGc,YAAU;AAAA,IACTf,QAAQ,CAAC,CAACA;AAAAA,IACVI,WAAWY,KACTZ,WACAa,eAAeC,MACff,mCAASe,MACTlB,UAAUgB,KAAKb,mCAASH,QAAQiB,eAAejB,MAAM,CACvD;AAAA,IAAE,GACEK;AAAAA,IAAMc,UAAA,CAEVC,oBAACC,oBAAkB;AAAA,MACjBjB,WAAWY,KAAKC,eAAeK,cAAcnB,mCAASmB,YAAY;AAAA,MAAEH,UAEnEI,MAAM,GAAG,CAAC,EAAEC,IAAKC,CAAAA,0BACfC,WAAS;AAAA,QAERC,OAAOd;AAAAA,QACPT,WAAWY,KACTC,eAAeW,YACfzB,mCAASyB,YACTX,eAAeL,OAAO,GACtBT,mCAAUS,QACZ;AAAA,QACAiB,UAAUjB;AAAAA,MAAQ,GARba,CASN,CACF;AAAA,IAAA,CACiB,GACnBvB,SACCkB,oBAACU,aAAW;AAAA,MACVlB,SAAQ;AAAA,MACRR,WAAWY,KAAKC,eAAef,OAAOC,mCAASD,KAAK;AAAA,MAAEiB,UAErDjB;AAAAA,IAAAA,CACU,CACd;AAAA,EAAA,CACS;AAEhB;"}
@@ -6,7 +6,7 @@ import overflowTooltipClasses from "./overflowTooltipClasses.js";
6
6
  import { jsx } from "@emotion/react/jsx-runtime";
7
7
  import { HvTooltip } from "../Tooltip/Tooltip.js";
8
8
  import { HvTypography } from "../Typography/Typography.js";
9
- const isParagraph = (children) => /\s/.test(children);
9
+ const isParagraph = (children = "") => /\s/.test(children);
10
10
  const HvOverflowTooltip = ({
11
11
  id,
12
12
  classes,
@@ -1 +1 @@
1
- {"version":3,"file":"OverflowTooltip.js","sources":["../../../../src/components/OverflowTooltip/OverflowTooltip.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useMemo } from \"react\";\nimport { useResizeDetector } from \"react-resize-detector\";\nimport { HvBaseProps } from \"@core/types/index\";\nimport { HvTooltip, HvTooltipProps, HvTypography } from \"@core/components\";\nimport { StyledDataContainer } from \"./OverflowTooltip.styles\";\nimport overflowTooltipClasses, {\n HvOverflowTooltipClasses,\n} from \"./overflowTooltipClasses\";\n\nexport interface HvOverflowTooltipProps extends HvBaseProps {\n /** The node that will be rendered inside the tooltip. */\n data: React.ReactNode;\n /** If true, the tooltip is shown. */\n open?: boolean;\n /** If `true` the overflow tooltip will always use the paragraph overflow style. */\n paragraphOverflow?: boolean;\n /** Tooltip placement. */\n placement?:\n | \"bottom-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"left-end\"\n | \"left-start\"\n | \"left\"\n | \"right-end\"\n | \"right-start\"\n | \"right\"\n | \"top-end\"\n | \"top-start\"\n | \"top\";\n /** Extra properties to add to the tooltip. */\n tooltipsProps?: Partial<HvTooltipProps>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvOverflowTooltipClasses;\n}\n\nconst isParagraph = (children) => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nexport const HvOverflowTooltip = ({\n id,\n classes,\n className,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n}: HvOverflowTooltipProps) => {\n const { width = 0, ref } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n const scrollWidth = ref.current?.scrollWidth || 0;\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = scrollWidth - width >= 1;\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data?.toString()),\n [data, paragraphOverflow]\n );\n\n const content = useMemo(\n () => (\n <StyledDataContainer\n ref={ref}\n className={clsx(\n className,\n !isParag &&\n clsx(overflowTooltipClasses.tooltipAnchor, classes?.tooltipAnchor),\n isParag &&\n clsx(\n overflowTooltipClasses.tooltipAnchorParagraph,\n classes?.tooltipAnchorParagraph\n )\n )}\n $isParag={isParag}\n >\n {data}\n </StyledDataContainer>\n ),\n [\n className,\n classes?.tooltipAnchor,\n classes?.tooltipAnchorParagraph,\n data,\n isParag,\n ref,\n ]\n );\n\n return open || isOverflowing ? (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography\n className={clsx(\n overflowTooltipClasses.tooltipData,\n classes?.tooltipData\n )}\n variant=\"body\"\n >\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n ) : (\n content\n );\n};\n"],"names":["isParagraph","children","test","HvOverflowTooltip","id","classes","className","data","open","paragraphOverflow","placement","tooltipsProps","width","ref","useResizeDetector","refreshMode","refreshOptions","trailing","handleHeight","scrollWidth","current","isOverflowing","isParag","useMemo","toString","content","_jsx","StyledDataContainer","clsx","overflowTooltipClasses","tooltipAnchor","tooltipAnchorParagraph","$isParag","HvTooltip","disableHoverListener","title","HvTypography","tooltipData","variant"],"mappings":";;;;;;;;AAqCA,MAAMA,cAAeC,CAAAA,aAAa,KAAKC,KAAKD,QAAQ;AAK7C,MAAME,oBAAoBA,CAAC;AAAA,EAChCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,YAAY;AAAA,EACZC;AACsB,MAAM;;AACtB,QAAA;AAAA,IAAEC,QAAQ;AAAA,IAAGC;AAAAA,MAAQC,kBAAkB;AAAA,IAC3CC,aAAa;AAAA,IACbC,gBAAgB;AAAA,MACdC,UAAU;AAAA,IACZ;AAAA,IACAC,cAAc;AAAA,EAAA,CACf;AACKC,QAAAA,gBAAcN,SAAIO,YAAJP,mBAAaM,gBAAe;AAE1CE,QAAAA,gBAAgBF,cAAcP,SAAS;AAE7C,QAAMU,UAAUC,QACd,MAAMd,qBAAqBT,YAAYO,6BAAMiB,UAAU,GACvD,CAACjB,MAAME,iBAAiB,CAC1B;AAEA,QAAMgB,UAAUF,QACd,MACEG,oBAACC,qBAAmB;AAAA,IAClBd;AAAAA,IACAP,WAAWsB,KACTtB,WACA,CAACgB,WACCM,KAAKC,uBAAuBC,eAAezB,mCAASyB,aAAa,GACnER,WACEM,KACEC,uBAAuBE,wBACvB1B,mCAAS0B,sBACX,CACJ;AAAA,IACAC,UAAUV;AAAAA,IAAQrB,UAEjBM;AAAAA,EACkB,CAAA,GAEvB,CACED,WACAD,mCAASyB,eACTzB,mCAAS0B,wBACTxB,MACAe,SACAT,GAAG,CAEP;AAEOL,SAAAA,QAAQa,gBACbK,oBAACO,WAAS;AAAA,IACR7B;AAAAA,IACA8B,sBAAsB,CAACb;AAAAA,IACvBb;AAAAA,IACAE;AAAAA,IACAyB,2BACGC,cAAY;AAAA,MACX9B,WAAWsB,KACTC,uBAAuBQ,aACvBhC,mCAASgC,WACX;AAAA,MACAC,SAAQ;AAAA,MAAMrC,UAEbM;AAAAA,IAAAA,CACW;AAAA,IACf,GACGI;AAAAA,IAAaV,UAEhBwB;AAAAA,EACQ,CAAA,IAEXA;AAEJ;"}
1
+ {"version":3,"file":"OverflowTooltip.js","sources":["../../../../src/components/OverflowTooltip/OverflowTooltip.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useMemo } from \"react\";\nimport { useResizeDetector } from \"react-resize-detector\";\nimport { HvBaseProps } from \"@core/types/index\";\nimport { HvTooltip, HvTooltipProps, HvTypography } from \"@core/components\";\nimport { StyledDataContainer } from \"./OverflowTooltip.styles\";\nimport overflowTooltipClasses, {\n HvOverflowTooltipClasses,\n} from \"./overflowTooltipClasses\";\n\nexport interface HvOverflowTooltipProps extends HvBaseProps {\n /** The node that will be rendered inside the tooltip. */\n data: React.ReactNode;\n /** If true, the tooltip is shown. */\n open?: boolean;\n /** If `true` the overflow tooltip will always use the paragraph overflow style. */\n paragraphOverflow?: boolean;\n /** Tooltip placement. */\n placement?:\n | \"bottom-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"left-end\"\n | \"left-start\"\n | \"left\"\n | \"right-end\"\n | \"right-start\"\n | \"right\"\n | \"top-end\"\n | \"top-start\"\n | \"top\";\n /** Extra properties to add to the tooltip. */\n tooltipsProps?: Partial<HvTooltipProps>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvOverflowTooltipClasses;\n}\n\nconst isParagraph = (children = \"\") => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nexport const HvOverflowTooltip = ({\n id,\n classes,\n className,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n}: HvOverflowTooltipProps) => {\n const { width = 0, ref } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n const scrollWidth = ref.current?.scrollWidth || 0;\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = scrollWidth - width >= 1;\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data?.toString()),\n [data, paragraphOverflow]\n );\n\n const content = useMemo(\n () => (\n <StyledDataContainer\n ref={ref}\n className={clsx(\n className,\n !isParag &&\n clsx(overflowTooltipClasses.tooltipAnchor, classes?.tooltipAnchor),\n isParag &&\n clsx(\n overflowTooltipClasses.tooltipAnchorParagraph,\n classes?.tooltipAnchorParagraph\n )\n )}\n $isParag={isParag}\n >\n {data}\n </StyledDataContainer>\n ),\n [\n className,\n classes?.tooltipAnchor,\n classes?.tooltipAnchorParagraph,\n data,\n isParag,\n ref,\n ]\n );\n\n return open || isOverflowing ? (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography\n className={clsx(\n overflowTooltipClasses.tooltipData,\n classes?.tooltipData\n )}\n variant=\"body\"\n >\n {data}\n </HvTypography>\n }\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n ) : (\n content\n );\n};\n"],"names":["isParagraph","children","test","HvOverflowTooltip","id","classes","className","data","open","paragraphOverflow","placement","tooltipsProps","width","ref","useResizeDetector","refreshMode","refreshOptions","trailing","handleHeight","scrollWidth","current","isOverflowing","isParag","useMemo","toString","content","_jsx","StyledDataContainer","clsx","overflowTooltipClasses","tooltipAnchor","tooltipAnchorParagraph","$isParag","HvTooltip","disableHoverListener","title","HvTypography","tooltipData","variant"],"mappings":";;;;;;;;AAqCA,MAAMA,cAAcA,CAACC,WAAW,OAAO,KAAKC,KAAKD,QAAQ;AAKlD,MAAME,oBAAoBA,CAAC;AAAA,EAChCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,YAAY;AAAA,EACZC;AACsB,MAAM;;AACtB,QAAA;AAAA,IAAEC,QAAQ;AAAA,IAAGC;AAAAA,MAAQC,kBAAkB;AAAA,IAC3CC,aAAa;AAAA,IACbC,gBAAgB;AAAA,MACdC,UAAU;AAAA,IACZ;AAAA,IACAC,cAAc;AAAA,EAAA,CACf;AACKC,QAAAA,gBAAcN,SAAIO,YAAJP,mBAAaM,gBAAe;AAE1CE,QAAAA,gBAAgBF,cAAcP,SAAS;AAE7C,QAAMU,UAAUC,QACd,MAAMd,qBAAqBT,YAAYO,6BAAMiB,UAAU,GACvD,CAACjB,MAAME,iBAAiB,CAC1B;AAEA,QAAMgB,UAAUF,QACd,MACEG,oBAACC,qBAAmB;AAAA,IAClBd;AAAAA,IACAP,WAAWsB,KACTtB,WACA,CAACgB,WACCM,KAAKC,uBAAuBC,eAAezB,mCAASyB,aAAa,GACnER,WACEM,KACEC,uBAAuBE,wBACvB1B,mCAAS0B,sBACX,CACJ;AAAA,IACAC,UAAUV;AAAAA,IAAQrB,UAEjBM;AAAAA,EACkB,CAAA,GAEvB,CACED,WACAD,mCAASyB,eACTzB,mCAAS0B,wBACTxB,MACAe,SACAT,GAAG,CAEP;AAEOL,SAAAA,QAAQa,gBACbK,oBAACO,WAAS;AAAA,IACR7B;AAAAA,IACA8B,sBAAsB,CAACb;AAAAA,IACvBb;AAAAA,IACAE;AAAAA,IACAyB,2BACGC,cAAY;AAAA,MACX9B,WAAWsB,KACTC,uBAAuBQ,aACvBhC,mCAASgC,WACX;AAAA,MACAC,SAAQ;AAAA,MAAMrC,UAEbM;AAAAA,IAAAA,CACW;AAAA,IACf,GACGI;AAAAA,IAAaV,UAEhBwB;AAAAA,EACQ,CAAA,IAEXA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonIconTooltip.js","sources":["../../../../src/components/Pagination/ButtonIconTooltip.tsx"],"sourcesContent":["import { HvButton, HvTooltip, HvTypography } from \"@core/components\";\n\nconst ButtonIconTooltip = ({ tooltip, children, ...buttonProps }) => {\n return (\n <HvTooltip title={<HvTypography>{tooltip}</HvTypography>}>\n <div>\n <HvButton icon variant=\"secondaryGhost\" {...buttonProps}>\n {children}\n </HvButton>\n </div>\n </HvTooltip>\n );\n};\nexport default ButtonIconTooltip;\n"],"names":["ButtonIconTooltip","tooltip","children","buttonProps","HvTooltip","title","HvTypography","HvButton","icon","variant"],"mappings":";;;;AAEA,MAAMA,oBAAoBA,CAAC;AAAA,EAAEC;AAAAA,EAASC;AAAAA,EAAU,GAAGC;AAAY,MAAM;AACnE,6BACGC,WAAS;AAAA,IAACC,2BAAQC,cAAY;AAAA,MAAAJ,UAAED;AAAAA,IAAAA,CAAsB;AAAA,IAAEC,8BACvD,OAAA;AAAA,MAAAA,8BACGK,UAAQ;AAAA,QAACC,MAAI;AAAA,QAACC,SAAQ;AAAA,QAAgB,GAAKN;AAAAA,QAAWD;AAAAA,MAAAA,CAE7C;AAAA,IAAA,CACP;AAAA,EAAA,CACI;AAEf;AACA,MAAA,sBAAeF;"}
1
+ {"version":3,"file":"ButtonIconTooltip.js","sources":["../../../../src/components/Pagination/ButtonIconTooltip.tsx"],"sourcesContent":["import {\n HvButton,\n HvButtonProps,\n HvTooltip,\n HvTypography,\n} from \"@core/components\";\nimport { ReactNode } from \"react\";\n\ninterface ButtonIconTooltipProps extends HvButtonProps {\n tooltip: ReactNode;\n children: ReactNode;\n}\n\nconst ButtonIconTooltip = ({\n tooltip,\n children,\n ...buttonProps\n}: ButtonIconTooltipProps) => {\n return (\n <HvTooltip title={<HvTypography>{tooltip}</HvTypography>}>\n <div>\n <HvButton icon variant=\"secondaryGhost\" {...buttonProps}>\n {children}\n </HvButton>\n </div>\n </HvTooltip>\n );\n};\nexport default ButtonIconTooltip;\n"],"names":["ButtonIconTooltip","tooltip","children","buttonProps","HvTooltip","title","HvTypography","HvButton","icon","variant"],"mappings":";;;;AAaA,MAAMA,oBAAoBA,CAAC;AAAA,EACzBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACmB,MAAM;AAC5B,6BACGC,WAAS;AAAA,IAACC,2BAAQC,cAAY;AAAA,MAAAJ,UAAED;AAAAA,IAAAA,CAAsB;AAAA,IAAEC,8BACvD,OAAA;AAAA,MAAAA,8BACGK,UAAQ;AAAA,QAACC,MAAI;AAAA,QAACC,SAAQ;AAAA,QAAgB,GAAKN;AAAAA,QAAWD;AAAAA,MAAAA,CAE7C;AAAA,IAAA,CACP;AAAA,EAAA,CACI;AAEf;AACA,MAAA,sBAAeF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { HTMLAttributes, useCallback, useEffect } from \"react\";\nimport { Hidden } from \"@mui/material\";\nimport { HvInput, HvInputProps, HvTypography } from \"@core/components\";\nimport {\n Start,\n End,\n Backwards,\n Forwards,\n} from \"@hitachivantara/uikit-react-icons\";\nimport { HvBaseProps } from \"@core/types\";\nimport { ExtractNames, isKeypress, keyboardCodes, setId } from \"@core/utils\";\nimport { useLabels } from \"@core/hooks\";\nimport HvSelect, { Option } from \"./Select\";\nimport { staticClasses, useClasses } from \"./Pagination.styles\";\nimport { usePageInput, getSafePage, setColor } from \"./utils\";\nimport ButtonIconTooltip from \"./ButtonIconTooltip\";\n\nexport { staticClasses as paginationClasses };\n\nexport type HvPaginationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPaginationLabels {\n /** The show label. */\n pageSizePrev?: string;\n /** Indicate the units of the page size selection. */\n pageSizeEntryName?: string;\n /** Used for the aria-label of the selection of number of unit.s */\n pageSizeSelectorDescription?: string;\n /** Separator of current page and total pages. */\n pagesSeparator?: string;\n /** Title of button `firstPage`. */\n paginationFirstPageTitle?: string;\n /** Title of button `previousPage`. */\n paginationPreviousPageTitle?: string;\n /** Title of button `nextPage`. */\n paginationNextPageTitle?: string;\n /** Title of button `lastPage`. */\n paginationLastPageTitle?: string;\n /** Aria-label passed to the page input. */\n paginationInputLabel?: string;\n /** Aria-label of the first page button */\n firstPage?: string;\n /** Aria-label of the previous page button */\n previousPage?: string;\n /** Aria-label of the next page button */\n nextPage?: string;\n /** Aria-label of the last page button */\n lastPage?: string;\n}\n\nexport interface HvPaginationProps extends HvBaseProps {\n /** The number of pages the component has. */\n pages?: number;\n /** The currently selected page (0-indexed). */\n page?: number;\n /** Controls whether the left page size mechanism should be visible. */\n showPageSizeOptions?: boolean;\n /** The array of possible page sizes for the dropdown. */\n pageSizeOptions?: number[];\n /** The currently selected page size. */\n pageSize?: number;\n /** Controls whether the central page changing mechanism should be visible. */\n showPageJump?: boolean;\n /** Controls whether the previous/first page buttons are enabled. */\n canPrevious?: boolean;\n /** Controls whether the next/last page buttons are enabled. */\n canNext?: boolean;\n /** Function called when the page changes. */\n onPageChange?: (page: number) => void;\n /** Function called when the page size changes. */\n onPageSizeChange?: (pageSize: number) => void;\n /** An object containing all the labels for the component. */\n labels?: HvPaginationLabels;\n /** Other props to show page component. */\n showPageProps?: HTMLAttributes<HTMLDivElement>;\n /** Other props to pagination component. */\n navigationProps?: HTMLAttributes<HTMLDivElement>;\n /** Extra properties passed to the input component representing the current pages. */\n currentPageInputProps?: HvInputProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: Partial<HvPaginationClasses>;\n}\n\nconst DEFAULT_LABELS = {\n pageSizePrev: \"Show\",\n pageSizeEntryName: \"rows\",\n pageSizeSelectorDescription: \"Select how many to display\",\n pagesSeparator: \"/\",\n paginationFirstPageTitle: \"First page\",\n paginationPreviousPageTitle: \"Previous page\",\n paginationNextPageTitle: \"Next page\",\n paginationLastPageTitle: \"Last page\",\n paginationInputLabel: \"Current page\",\n firstPage: \"First Page\",\n previousPage: \"Previous Page\",\n nextPage: \"Next Page\",\n lastPage: \"Last Page\",\n};\n\nconst { Enter } = keyboardCodes;\n\nconst defaultPageSizeOptions = [5, 10, 20, 25, 50, 100];\n\n/**\n * Pagination is the process of dividing a document into discrete pages. It relates to how users interact\n * with structured content on a website or application.\n */\nexport const HvPagination = ({\n classes: classesProp = {},\n className,\n id,\n pages = 1,\n page = 0,\n showPageSizeOptions = true,\n pageSizeOptions = defaultPageSizeOptions,\n pageSize = defaultPageSizeOptions[1],\n showPageJump = true,\n canPrevious = false,\n canNext = false,\n onPageChange,\n onPageSizeChange,\n labels: labelsProp,\n showPageProps,\n navigationProps,\n currentPageInputProps,\n ...others\n}: HvPaginationProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const [pageInput, handleInputChange] = usePageInput(page);\n const { classes, cx } = useClasses(classesProp);\n\n const changePage = useCallback(\n (newPage: number) => {\n const safePage: number = getSafePage(newPage, page, pages);\n\n onPageChange?.(safePage);\n handleInputChange(null, safePage + 1);\n },\n [page, pages, onPageChange, handleInputChange]\n );\n\n useEffect(() => {\n if (page >= pages && pages > 0) {\n changePage(page);\n }\n }, [changePage, page, pages]);\n\n useEffect(() => {\n if (pageInput !== page + 1) {\n handleInputChange(null, page + 1);\n }\n\n // we only want to \"fix\" the input's display value when `page` property changed\n // (either externally or when internally committed - onBlur or Enter),\n // not while editing the input.\n // breaking a rule of hooks isn't ideal and it's just a hack for fixing\n // a bug preventing properly controlling of the `page` property.\n // fixing it some other way would potentially introduce a breaking change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleInputChange, page]);\n\n const renderPageJump = () => (\n <div className={classes.pageJump}>\n <HvInput\n id={setId(id, \"currentPage\")}\n labels={labels}\n inputProps={{\n \"aria-label\": labels?.paginationInputLabel,\n // We really want the native number input\n type: \"number\",\n }}\n classes={{\n root: classes?.pageSizeInputContainer,\n input: classes?.pageSizeInput,\n inputRoot: classes?.pageSizeInputRoot,\n }}\n onChange={(event, value) => handleInputChange(event, Number(value))}\n value={String(pageInput)}\n onBlur={(evt, value) => changePage(Number(value) - 1)}\n onKeyDown={(evt, value) =>\n isKeypress(evt, Enter) && changePage(Number(value) - 1)\n }\n disabled={pageSize === 0}\n disableClear\n {...currentPageInputProps}\n />\n </div>\n );\n\n return (\n <div id={id} className={cx(classes.root, className)} {...others}>\n <div className={classes.pageSizeOptions} {...showPageProps}>\n {showPageSizeOptions && (\n <>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes?.pageSizeTextContainer}\n >\n {labels?.pageSizePrev}\n </HvTypography>\n </Hidden>\n <HvSelect\n id={setId(id, \"pageSize\")}\n disabled={pageSize === 0}\n className={classes.pageSizeOptionsSelect}\n aria-label={labels?.pageSizeSelectorDescription}\n onChange={(_, val: number) => onPageSizeChange?.(val)}\n value={pageSize}\n >\n {pageSizeOptions.map((option) => (\n <Option key={option} value={option}>\n {option}\n </Option>\n ))}\n </HvSelect>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes.pageSizeTextContainer}\n >\n {labels?.pageSizeEntryName}\n </HvTypography>\n </Hidden>\n </>\n )}\n </div>\n <div className={classes.pageNavigator} {...navigationProps}>\n <ButtonIconTooltip\n id={setId(id, \"firstPage-button\")}\n aria-label={labels?.firstPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(0)}\n tooltip={labels?.paginationFirstPageTitle}\n >\n <Start className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"previousPage-button\")}\n aria-label={labels?.previousPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(page - 1)}\n tooltip={labels?.paginationPreviousPageTitle}\n >\n <Backwards className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <div className={classes.pageInfo}>\n {showPageJump ? (\n renderPageJump()\n ) : (\n <HvTypography component=\"span\">{`${page + 1}`}</HvTypography>\n )}\n <HvTypography component=\"span\">{`${labels?.pagesSeparator} `}</HvTypography>\n <HvTypography component=\"span\" id={setId(id, \"totalPages\")}>\n {pages}\n </HvTypography>\n </div>\n <ButtonIconTooltip\n id={setId(id, \"nextPage-button\")}\n aria-label={labels?.nextPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(page + 1)}\n tooltip={labels?.paginationNextPageTitle}\n >\n <Forwards className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"lastPage-button\")}\n aria-label={labels?.lastPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(pages - 1)}\n tooltip={labels?.paginationLastPageTitle}\n >\n <End className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n </div>\n </div>\n );\n};\n"],"names":["DEFAULT_LABELS","pageSizePrev","pageSizeEntryName","pageSizeSelectorDescription","pagesSeparator","paginationFirstPageTitle","paginationPreviousPageTitle","paginationNextPageTitle","paginationLastPageTitle","paginationInputLabel","firstPage","previousPage","nextPage","lastPage","Enter","keyboardCodes","defaultPageSizeOptions","HvPagination","classes","classesProp","className","id","pages","page","showPageSizeOptions","pageSizeOptions","pageSize","showPageJump","canPrevious","canNext","onPageChange","onPageSizeChange","labels","labelsProp","showPageProps","navigationProps","currentPageInputProps","others","useLabels","pageInput","handleInputChange","usePageInput","cx","useClasses","changePage","useCallback","newPage","safePage","getSafePage","useEffect","renderPageJump","_jsx","pageJump","children","HvInput","setId","inputProps","type","root","pageSizeInputContainer","input","pageSizeInput","inputRoot","pageSizeInputRoot","onChange","event","value","Number","String","onBlur","evt","onKeyDown","isKeypress","disabled","disableClear","_jsxs","_Fragment","Hidden","xsDown","HvTypography","component","pageSizeTextContainer","HvSelect","pageSizeOptionsSelect","_","val","map","option","Option","pageNavigator","ButtonIconTooltip","iconContainer","onClick","tooltip","Start","icon","color","setColor","Backwards","pageInfo","Forwards","End"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { HTMLAttributes, useCallback, useEffect } from \"react\";\nimport { Hidden } from \"@mui/material\";\nimport { HvInput, HvInputProps, HvTypography } from \"@core/components\";\nimport {\n Start,\n End,\n Backwards,\n Forwards,\n} from \"@hitachivantara/uikit-react-icons\";\nimport { HvBaseProps } from \"@core/types\";\nimport { ExtractNames, isKeypress, keyboardCodes, setId } from \"@core/utils\";\nimport { useLabels } from \"@core/hooks\";\nimport HvSelect, { Option } from \"./Select\";\nimport { staticClasses, useClasses } from \"./Pagination.styles\";\nimport { usePageInput, getSafePage, setColor } from \"./utils\";\nimport ButtonIconTooltip from \"./ButtonIconTooltip\";\n\nexport { staticClasses as paginationClasses };\n\nexport type HvPaginationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPaginationLabels {\n /** The show label. */\n pageSizePrev?: string;\n /** Indicate the units of the page size selection. */\n pageSizeEntryName?: string;\n /** Used for the aria-label of the selection of number of unit.s */\n pageSizeSelectorDescription?: string;\n /** Separator of current page and total pages. */\n pagesSeparator?: string;\n /** Title of button `firstPage`. */\n paginationFirstPageTitle?: string;\n /** Title of button `previousPage`. */\n paginationPreviousPageTitle?: string;\n /** Title of button `nextPage`. */\n paginationNextPageTitle?: string;\n /** Title of button `lastPage`. */\n paginationLastPageTitle?: string;\n /** Aria-label passed to the page input. */\n paginationInputLabel?: string;\n /** Aria-label of the first page button */\n firstPage?: string;\n /** Aria-label of the previous page button */\n previousPage?: string;\n /** Aria-label of the next page button */\n nextPage?: string;\n /** Aria-label of the last page button */\n lastPage?: string;\n}\n\nexport interface HvPaginationProps extends HvBaseProps {\n /** The number of pages the component has. */\n pages?: number;\n /** The currently selected page (0-indexed). */\n page?: number;\n /** Controls whether the left page size mechanism should be visible. */\n showPageSizeOptions?: boolean;\n /** The array of possible page sizes for the dropdown. */\n pageSizeOptions?: number[];\n /** The currently selected page size. */\n pageSize?: number;\n /** Controls whether the central page changing mechanism should be visible. */\n showPageJump?: boolean;\n /** Controls whether the previous/first page buttons are enabled. */\n canPrevious?: boolean;\n /** Controls whether the next/last page buttons are enabled. */\n canNext?: boolean;\n /** Function called when the page changes. */\n onPageChange?: (page: number) => void;\n /** Function called when the page size changes. */\n onPageSizeChange?: (pageSize: number) => void;\n /** An object containing all the labels for the component. */\n labels?: HvPaginationLabels;\n /** Other props to show page component. */\n showPageProps?: HTMLAttributes<HTMLDivElement>;\n /** Other props to pagination component. */\n navigationProps?: HTMLAttributes<HTMLDivElement>;\n /** Extra properties passed to the input component representing the current pages. */\n currentPageInputProps?: HvInputProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: Partial<HvPaginationClasses>;\n}\n\nconst DEFAULT_LABELS = {\n pageSizePrev: \"Show\",\n pageSizeEntryName: \"rows\",\n pageSizeSelectorDescription: \"Select how many to display\",\n pagesSeparator: \"/\",\n paginationFirstPageTitle: \"First page\",\n paginationPreviousPageTitle: \"Previous page\",\n paginationNextPageTitle: \"Next page\",\n paginationLastPageTitle: \"Last page\",\n paginationInputLabel: \"Current page\",\n firstPage: \"First Page\",\n previousPage: \"Previous Page\",\n nextPage: \"Next Page\",\n lastPage: \"Last Page\",\n};\n\nconst { Enter } = keyboardCodes;\n\nconst defaultPageSizeOptions = [5, 10, 20, 25, 50, 100];\n\n/**\n * Pagination is the process of dividing a document into discrete pages. It relates to how users interact\n * with structured content on a website or application.\n */\nexport const HvPagination = ({\n classes: classesProp = {},\n className,\n id,\n pages = 1,\n page = 0,\n showPageSizeOptions = true,\n pageSizeOptions = defaultPageSizeOptions,\n pageSize = defaultPageSizeOptions[1],\n showPageJump = true,\n canPrevious = false,\n canNext = false,\n onPageChange,\n onPageSizeChange,\n labels: labelsProp,\n showPageProps,\n navigationProps,\n currentPageInputProps,\n ...others\n}: HvPaginationProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const [pageInput, handleInputChange] = usePageInput(page);\n const { classes, cx } = useClasses(classesProp);\n\n const changePage = useCallback(\n (newPage: number) => {\n const safePage: number = getSafePage(newPage, page, pages);\n\n onPageChange?.(safePage);\n handleInputChange(null, safePage + 1);\n },\n [page, pages, onPageChange, handleInputChange]\n );\n\n useEffect(() => {\n if (page >= pages && pages > 0) {\n changePage(page);\n }\n }, [changePage, page, pages]);\n\n useEffect(() => {\n if (pageInput !== page + 1) {\n handleInputChange(null, page + 1);\n }\n\n // we only want to \"fix\" the input's display value when `page` property changed\n // (either externally or when internally committed - onBlur or Enter),\n // not while editing the input.\n // breaking a rule of hooks isn't ideal and it's just a hack for fixing\n // a bug preventing properly controlling of the `page` property.\n // fixing it some other way would potentially introduce a breaking change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleInputChange, page]);\n\n const renderPageJump = () => (\n <div className={classes.pageJump}>\n <HvInput\n id={setId(id, \"currentPage\")}\n labels={labels}\n inputProps={{\n \"aria-label\": labels?.paginationInputLabel,\n // We really want the native number input\n type: \"number\",\n }}\n classes={{\n root: classes?.pageSizeInputContainer,\n input: classes?.pageSizeInput,\n inputRoot: classes?.pageSizeInputRoot,\n }}\n onChange={(event, value) => handleInputChange(event, Number(value))}\n value={String(pageInput)}\n onBlur={(evt, value) => changePage(Number(value) - 1)}\n onKeyDown={(evt, value) =>\n isKeypress(evt, Enter) && changePage(Number(value) - 1)\n }\n disabled={pageSize === 0}\n disableClear\n {...currentPageInputProps}\n />\n </div>\n );\n\n return (\n <div id={id} className={cx(classes.root, className)} {...others}>\n <div className={classes.pageSizeOptions} {...showPageProps}>\n {showPageSizeOptions && (\n <>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes?.pageSizeTextContainer}\n >\n {labels?.pageSizePrev}\n </HvTypography>\n </Hidden>\n <HvSelect\n id={setId(id, \"pageSize\")}\n disabled={pageSize === 0}\n className={classes.pageSizeOptionsSelect}\n aria-label={labels?.pageSizeSelectorDescription}\n onChange={(_: any, val: number) => onPageSizeChange?.(val)}\n value={pageSize}\n >\n {pageSizeOptions.map((option) => (\n <Option key={option} value={option}>\n {option}\n </Option>\n ))}\n </HvSelect>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes.pageSizeTextContainer}\n >\n {labels?.pageSizeEntryName}\n </HvTypography>\n </Hidden>\n </>\n )}\n </div>\n <div className={classes.pageNavigator} {...navigationProps}>\n <ButtonIconTooltip\n id={setId(id, \"firstPage-button\")}\n aria-label={labels?.firstPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(0)}\n tooltip={labels?.paginationFirstPageTitle}\n >\n <Start className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"previousPage-button\")}\n aria-label={labels?.previousPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(page - 1)}\n tooltip={labels?.paginationPreviousPageTitle}\n >\n <Backwards className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <div className={classes.pageInfo}>\n {showPageJump ? (\n renderPageJump()\n ) : (\n <HvTypography component=\"span\">{`${page + 1}`}</HvTypography>\n )}\n <HvTypography component=\"span\">{`${labels?.pagesSeparator} `}</HvTypography>\n <HvTypography component=\"span\" id={setId(id, \"totalPages\")}>\n {pages}\n </HvTypography>\n </div>\n <ButtonIconTooltip\n id={setId(id, \"nextPage-button\")}\n aria-label={labels?.nextPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(page + 1)}\n tooltip={labels?.paginationNextPageTitle}\n >\n <Forwards className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"lastPage-button\")}\n aria-label={labels?.lastPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(pages - 1)}\n tooltip={labels?.paginationLastPageTitle}\n >\n <End className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n </div>\n </div>\n );\n};\n"],"names":["DEFAULT_LABELS","pageSizePrev","pageSizeEntryName","pageSizeSelectorDescription","pagesSeparator","paginationFirstPageTitle","paginationPreviousPageTitle","paginationNextPageTitle","paginationLastPageTitle","paginationInputLabel","firstPage","previousPage","nextPage","lastPage","Enter","keyboardCodes","defaultPageSizeOptions","HvPagination","classes","classesProp","className","id","pages","page","showPageSizeOptions","pageSizeOptions","pageSize","showPageJump","canPrevious","canNext","onPageChange","onPageSizeChange","labels","labelsProp","showPageProps","navigationProps","currentPageInputProps","others","useLabels","pageInput","handleInputChange","usePageInput","cx","useClasses","changePage","useCallback","newPage","safePage","getSafePage","useEffect","renderPageJump","_jsx","pageJump","children","HvInput","setId","inputProps","type","root","pageSizeInputContainer","input","pageSizeInput","inputRoot","pageSizeInputRoot","onChange","event","value","Number","String","onBlur","evt","onKeyDown","isKeypress","disabled","disableClear","_jsxs","_Fragment","Hidden","xsDown","HvTypography","component","pageSizeTextContainer","HvSelect","pageSizeOptionsSelect","_","val","map","option","Option","pageNavigator","ButtonIconTooltip","iconContainer","onClick","tooltip","Start","icon","color","setColor","Backwards","pageInfo","Forwards","End"],"mappings":"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"}
@@ -6,11 +6,9 @@ import { HvBaseDropdown } from "../BaseDropdown/BaseDropdown.js";
6
6
  import { HvPanel } from "../Panel/Panel.js";
7
7
  import { HvSelectionList } from "../SelectionList/SelectionList.js";
8
8
  const Option = ({
9
- children,
10
- ...others
9
+ ...props
11
10
  }) => /* @__PURE__ */ jsx(HvListItem, {
12
- ...others,
13
- children
11
+ ...props
14
12
  });
15
13
  const HvSelect = ({
16
14
  className,
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../../src/components/Pagination/Select.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { HvBaseDropdown, HvSelectionList, HvListItem, HvPanel } from \"..\";\nimport { useClasses } from \"./Select.styles\";\n\nexport const Option = ({ children, ...others }) => (\n <HvListItem {...others}>{children}</HvListItem>\n);\n\nconst HvSelect = ({\n className,\n classes: classesProp = {},\n onChange,\n disabled,\n value,\n children,\n ...others\n}) => {\n const { classes } = useClasses(classesProp);\n const [open, setOpen] = useState(false);\n\n const handleSelect = (evt, val) => {\n onChange?.(evt, val);\n setOpen(false);\n };\n\n const handleToggle = (_evt, s) => {\n setOpen(s);\n };\n\n const setFocusToContent = (containerRef) => {\n const listItems =\n containerRef != null ? [...containerRef.getElementsByTagName(\"li\")] : [];\n listItems.every((listItem) => {\n if (listItem.tabIndex >= 0) {\n listItem.focus();\n return false;\n }\n return true;\n });\n };\n\n return (\n <HvBaseDropdown\n className={className}\n classes={{\n selection: classes.selection,\n header: classes.header,\n headerOpen: classes.headerOpen,\n }}\n expanded={open}\n onToggle={handleToggle}\n onContainerCreation={setFocusToContent}\n placeholder={value}\n disabled={disabled}\n variableWidth\n {...others}\n >\n <HvPanel>\n <HvSelectionList value={value} onChange={handleSelect}>\n {children}\n </HvSelectionList>\n </HvPanel>\n </HvBaseDropdown>\n );\n};\n\nexport default HvSelect;\n"],"names":["Option","children","others","HvListItem","HvSelect","className","classes","classesProp","onChange","disabled","value","useClasses","open","setOpen","useState","handleSelect","evt","val","handleToggle","_evt","s","setFocusToContent","containerRef","listItems","getElementsByTagName","every","listItem","tabIndex","focus","HvBaseDropdown","selection","header","headerOpen","expanded","onToggle","onContainerCreation","placeholder","variableWidth","HvPanel","HvSelectionList"],"mappings":";;;;;;;AAIO,MAAMA,SAASA,CAAC;AAAA,EAAEC;AAAAA,EAAU,GAAGC;AAAO,0BAC1CC,YAAU;AAAA,EAAA,GAAKD;AAAAA,EAAMD;AAAW,CAAa;AAGhD,MAAMG,WAAWA,CAAC;AAAA,EAChBC;AAAAA,EACAC,SAASC,cAAc,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAT;AAAAA,EACA,GAAGC;AACL,MAAM;AACE,QAAA;AAAA,IAAEI;AAAAA,EAAAA,IAAYK,WAAWJ,WAAW;AAC1C,QAAM,CAACK,MAAMC,OAAO,IAAIC,SAAS,KAAK;AAEhCC,QAAAA,eAAeA,CAACC,KAAKC,QAAQ;AACjCT,yCAAWQ,KAAKC;AAChBJ,YAAQ,KAAK;AAAA,EAAA;AAGTK,QAAAA,eAAeA,CAACC,MAAMC,MAAM;AAChCP,YAAQO,CAAC;AAAA,EAAA;AAGX,QAAMC,oBAAqBC,CAAiB,iBAAA;AACpCC,UAAAA,YACJD,gBAAgB,OAAO,CAAC,GAAGA,aAAaE,qBAAqB,IAAI,CAAC,IAAI;AACxED,cAAUE,MAAOC,CAAa,aAAA;AACxBA,UAAAA,SAASC,YAAY,GAAG;AAC1BD,iBAASE,MAAM;AACR,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IAAA,CACR;AAAA,EAAA;AAGH,6BACGC,gBAAc;AAAA,IACbxB;AAAAA,IACAC,SAAS;AAAA,MACPwB,WAAWxB,QAAQwB;AAAAA,MACnBC,QAAQzB,QAAQyB;AAAAA,MAChBC,YAAY1B,QAAQ0B;AAAAA,IACtB;AAAA,IACAC,UAAUrB;AAAAA,IACVsB,UAAUhB;AAAAA,IACViB,qBAAqBd;AAAAA,IACrBe,aAAa1B;AAAAA,IACbD;AAAAA,IACA4B,eAAa;AAAA,IAAA,GACTnC;AAAAA,IAAMD,8BAETqC,SAAO;AAAA,MAAArC,8BACLsC,iBAAe;AAAA,QAAC7B;AAAAA,QAAcF,UAAUO;AAAAA,QAAad;AAAAA,MAAAA,CAErC;AAAA,IAAA,CACV;AAAA,EAAA,CACK;AAEpB;AAEA,MAAA,aAAeG;"}
1
+ {"version":3,"file":"Select.js","sources":["../../../../src/components/Pagination/Select.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport {\n HvBaseDropdown,\n HvSelectionList,\n HvListItem,\n HvPanel,\n HvSelectionListProps,\n HvBaseDropdownProps,\n HvListItemProps,\n} from \"..\";\nimport { useClasses } from \"./Select.styles\";\n\nexport const Option = ({ ...props }: Partial<HvListItemProps>) => (\n <HvListItem {...props} />\n);\n\nconst HvSelect = ({\n className,\n classes: classesProp = {},\n onChange,\n disabled,\n value,\n children,\n ...others\n}: any) => {\n const { classes } = useClasses(classesProp);\n const [open, setOpen] = useState(false);\n\n const handleSelect: HvSelectionListProps[\"onChange\"] = (evt, val) => {\n onChange?.(evt, val);\n setOpen(false);\n };\n\n const handleToggle: HvBaseDropdownProps[\"onToggle\"] = (_evt, s) => {\n setOpen(s);\n };\n\n const setFocusToContent: HvBaseDropdownProps[\"onContainerCreation\"] = (\n containerRef\n ) => {\n const listItems =\n containerRef != null ? [...containerRef.getElementsByTagName(\"li\")] : [];\n listItems.every((listItem) => {\n if (listItem.tabIndex >= 0) {\n listItem.focus();\n return false;\n }\n return true;\n });\n };\n\n return (\n <HvBaseDropdown\n className={className}\n classes={{\n selection: classes.selection,\n header: classes.header,\n headerOpen: classes.headerOpen,\n }}\n expanded={open}\n onToggle={handleToggle}\n onContainerCreation={setFocusToContent}\n placeholder={value}\n disabled={disabled}\n variableWidth\n {...others}\n >\n <HvPanel>\n <HvSelectionList value={value} onChange={handleSelect}>\n {children}\n </HvSelectionList>\n </HvPanel>\n </HvBaseDropdown>\n );\n};\n\nexport default HvSelect;\n"],"names":["Option","props","HvListItem","HvSelect","className","classes","classesProp","onChange","disabled","value","children","others","useClasses","open","setOpen","useState","handleSelect","evt","val","handleToggle","_evt","s","setFocusToContent","containerRef","listItems","getElementsByTagName","every","listItem","tabIndex","focus","HvBaseDropdown","selection","header","headerOpen","expanded","onToggle","onContainerCreation","placeholder","variableWidth","HvPanel","HvSelectionList"],"mappings":";;;;;;;AAYO,MAAMA,SAASA,CAAC;AAAA,EAAE,GAAGC;AAAgC,0BACzDC,YAAU;AAAA,EAAA,GAAKD;AAAK,CAAG;AAG1B,MAAME,WAAWA,CAAC;AAAA,EAChBC;AAAAA,EACAC,SAASC,cAAc,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACA,MAAM;AACH,QAAA;AAAA,IAAEN;AAAAA,EAAAA,IAAYO,WAAWN,WAAW;AAC1C,QAAM,CAACO,MAAMC,OAAO,IAAIC,SAAS,KAAK;AAEhCC,QAAAA,eAAiDA,CAACC,KAAKC,QAAQ;AACnEX,yCAAWU,KAAKC;AAChBJ,YAAQ,KAAK;AAAA,EAAA;AAGTK,QAAAA,eAAgDA,CAACC,MAAMC,MAAM;AACjEP,YAAQO,CAAC;AAAA,EAAA;AAGX,QAAMC,oBACJC,CACG,iBAAA;AACGC,UAAAA,YACJD,gBAAgB,OAAO,CAAC,GAAGA,aAAaE,qBAAqB,IAAI,CAAC,IAAI;AACxED,cAAUE,MAAOC,CAAa,aAAA;AACxBA,UAAAA,SAASC,YAAY,GAAG;AAC1BD,iBAASE,MAAM;AACR,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IAAA,CACR;AAAA,EAAA;AAGH,6BACGC,gBAAc;AAAA,IACb1B;AAAAA,IACAC,SAAS;AAAA,MACP0B,WAAW1B,QAAQ0B;AAAAA,MACnBC,QAAQ3B,QAAQ2B;AAAAA,MAChBC,YAAY5B,QAAQ4B;AAAAA,IACtB;AAAA,IACAC,UAAUrB;AAAAA,IACVsB,UAAUhB;AAAAA,IACViB,qBAAqBd;AAAAA,IACrBe,aAAa5B;AAAAA,IACbD;AAAAA,IACA8B,eAAa;AAAA,IAAA,GACT3B;AAAAA,IAAMD,8BAET6B,SAAO;AAAA,MAAA7B,8BACL8B,iBAAe;AAAA,QAAC/B;AAAAA,QAAcF,UAAUS;AAAAA,QAAaN;AAAAA,MAAAA,CAErC;AAAA,IAAA,CACV;AAAA,EAAA,CACK;AAEpB;AAEA,MAAA,aAAeP;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/components/Pagination/utils.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport const setColor = (condition: boolean): string | undefined =>\n condition ? \"secondary_60\" : undefined;\n\nexport const getSafePage = (\n inPage: number,\n page: number,\n pages: number\n): number =>\n Number.isNaN(inPage) ? page : Math.min(Math.max(inPage, 0), pages - 1);\n\nexport const usePageInput = (initialPage: number) => {\n const [page, setPage] = useState<number>(initialPage + 1);\n\n const handleChange = useCallback(\n (evt, newPage: number) => setPage(newPage),\n []\n );\n\n return [page, handleChange] as const;\n};\n"],"names":["setColor","condition","undefined","getSafePage","inPage","page","pages","Number","isNaN","Math","min","max","usePageInput","initialPage","setPage","useState","handleChange","useCallback","evt","newPage"],"mappings":";AAEO,MAAMA,WAAWA,CAACC,cACvBA,YAAY,iBAAiBC;AAExB,MAAMC,cAAcA,CACzBC,QACAC,MACAC,UAEAC,OAAOC,MAAMJ,MAAM,IAAIC,OAAOI,KAAKC,IAAID,KAAKE,IAAIP,QAAQ,CAAC,GAAGE,QAAQ,CAAC;AAE1DM,MAAAA,eAAeA,CAACC,gBAAwB;AACnD,QAAM,CAACR,MAAMS,OAAO,IAAIC,SAAiBF,cAAc,CAAC;AAElDG,QAAAA,eAAeC,YACnB,CAACC,KAAKC,YAAoBL,QAAQK,OAAO,GACzC,CAAA,CACF;AAEO,SAAA,CAACd,MAAMW,YAAY;AAC5B;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/components/Pagination/utils.ts"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport const setColor = (condition: boolean): string | undefined =>\n condition ? \"secondary_60\" : undefined;\n\nexport const getSafePage = (\n inPage: number,\n page: number,\n pages: number\n): number =>\n Number.isNaN(inPage) ? page : Math.min(Math.max(inPage, 0), pages - 1);\n\nexport const usePageInput = (initialPage: number) => {\n const [page, setPage] = useState<number>(initialPage + 1);\n\n const handleChange = useCallback(\n (evt: any, newPage: number) => setPage(newPage),\n []\n );\n\n return [page, handleChange] as const;\n};\n"],"names":["setColor","condition","undefined","getSafePage","inPage","page","pages","Number","isNaN","Math","min","max","usePageInput","initialPage","setPage","useState","handleChange","useCallback","evt","newPage"],"mappings":";AAEO,MAAMA,WAAWA,CAACC,cACvBA,YAAY,iBAAiBC;AAExB,MAAMC,cAAcA,CACzBC,QACAC,MACAC,UAEAC,OAAOC,MAAMJ,MAAM,IAAIC,OAAOI,KAAKC,IAAID,KAAKE,IAAIP,QAAQ,CAAC,GAAGE,QAAQ,CAAC;AAE1DM,MAAAA,eAAeA,CAACC,gBAAwB;AACnD,QAAM,CAACR,MAAMS,OAAO,IAAIC,SAAiBF,cAAc,CAAC;AAElDG,QAAAA,eAAeC,YACnB,CAACC,KAAUC,YAAoBL,QAAQK,OAAO,GAC9C,CAAA,CACF;AAEO,SAAA,CAACd,MAAMW,YAAY;AAC5B;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionList.js","sources":["../../../../src/components/SelectionList/SelectionList.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef, useEffect } from \"react\";\nimport { clsx } from \"clsx\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useControlled, useUniqueId } from \"@core/hooks\";\nimport {\n isKeypress,\n keyboardCodes,\n setId,\n multiSelectionEventHandler,\n} from \"@core/utils\";\nimport {\n StyledListContainer,\n StyledFormElement,\n StyledLabel,\n StyledInfoMessage,\n StyledError,\n} from \"./SelectionList.styles\";\nimport { HvFormStatus } from \"../Forms/FormElement\";\nimport selectionListClasses, {\n HvSelectionListClasses,\n} from \"./selectionListClasses\";\n\nexport interface HvSelectionListProps\n extends HvBaseProps<HTMLUListElement, \"onChange\"> {\n /** The form element name. */\n name?: string;\n /**\n * The value of the form element. It must be represented in the child list items.\n *\n * Can either be a single value (when multiple = false) or an\n * array of values (when multiple = true).\n *\n * When defined the selection list state becomes controlled.\n */\n value?: any | any[];\n /** When uncontrolled, defines the initial value. */\n defaultValue?: any | 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 /** Indicates that the form element is disabled. If `true` the state is propagated to the children list items. */\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 /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage?: string;\n /** Indicates that the user may select more than one item from the current selectable list items. */\n multiple?: boolean;\n /** If `true`, selection can be toggled when single selection. */\n singleSelectionToggle?: boolean;\n /** Indicates whether the list orientation is horizontal or vertical. Defaults to vertical. */\n orientation?: \"vertical\" | \"horizontal\";\n /** The callback fired when the value changes. */\n onChange?: (event: React.MouseEvent, value: any) => void;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSelectionListClasses;\n}\n\nconst getValueFromSelectedChildren = (children, multiple) => {\n const selectedValues = React.Children.toArray(children)\n .map((child: any) => {\n const childIsControlled = child?.props?.selected !== undefined;\n const childIsSelected =\n child && childIsControlled\n ? child.props?.selected\n : child.props?.defaultSelected;\n\n return childIsSelected ? child?.props.value : undefined;\n })\n .filter((v) => v !== undefined);\n\n return multiple ? selectedValues : selectedValues?.[0];\n};\n\n/**\n * Allows the user to select one or more items from a list of choices.\n *\n * Although it supports multi-selection, DS recommends the use of a selection list\n * when it’s clear that the user can only select just one option from the range provided.\n */\nexport const HvSelectionList = ({\n id,\n classes,\n className,\n children,\n name,\n value: valueProp,\n defaultValue,\n required = false,\n readOnly = false,\n disabled = false,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n orientation = \"vertical\",\n multiple = false,\n singleSelectionToggle = false,\n ...others\n}: HvSelectionListProps) => {\n const elementId = useUniqueId(id, \"hvselectionlist\");\n\n const [value, setValue] = useControlled(\n valueProp,\n defaultValue !== undefined\n ? defaultValue\n : // when uncontrolled and no default value is given,\n // extract the initial selected values from the children own state\n () => getValueFromSelectedChildren(children, multiple)\n );\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const [allValues, selectedState] = useMemo(() => {\n const childValues: any[] = [];\n const childSelectedState: boolean[] = [];\n\n React.Children.toArray(children).forEach((child: any, i: number) => {\n const childValue = child?.props?.value;\n const childIsSelected = multiple\n ? value.indexOf(childValue) !== -1\n : value === childValue;\n\n childValues[i] = childValue;\n childSelectedState[i] = childIsSelected;\n });\n\n return [childValues, childSelectedState];\n }, [children, multiple, value]);\n\n const selectionAnchor = useRef(undefined);\n\n const listContainer = useRef<any>(null);\n\n const { ArrowUp, ArrowDown } = keyboardCodes;\n\n useEffect(() => {\n const handleMeta = (event) => {\n const tempArray: any[] = [];\n if (\n (isKeypress(event, ArrowUp) &&\n event.shiftKey &&\n listContainer.current.contains(event.target)) ||\n (isKeypress(event, ArrowDown) &&\n event.shiftKey &&\n listContainer.current.contains(event.target))\n ) {\n selectedState.forEach((isSelected, i) => {\n if (i === event.target.value - 1) {\n if (!isSelected) {\n tempArray.push(allValues[i]);\n }\n } else if (isSelected) {\n tempArray.push(allValues[i]);\n }\n });\n setValue(tempArray);\n }\n };\n window.addEventListener(\"keyup\", handleMeta);\n\n return () => {\n window.removeEventListener(\"keyup\", handleMeta);\n };\n }, [allValues, selectedState, setValue, ArrowUp, ArrowDown]);\n\n const onChildChangeInterceptor = useCallback(\n (\n index: number,\n childOnClick: (e: React.MouseEvent) => void,\n evt: React.MouseEvent\n ) => {\n childOnClick?.(evt);\n\n if (!readOnly && !disabled) {\n let newValue: any;\n if (multiple) {\n newValue = multiSelectionEventHandler(\n evt,\n index,\n selectionAnchor,\n allValues,\n selectedState,\n undefined\n );\n } else {\n newValue =\n singleSelectionToggle && selectedState[index]\n ? null\n : allValues[index];\n }\n\n onChange?.(evt, newValue);\n\n setValue(() => {\n // This will only run if uncontrolled\n\n if (required && newValue.length === 0) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newValue;\n });\n }\n },\n [\n allValues,\n disabled,\n multiple,\n onChange,\n readOnly,\n required,\n selectedState,\n setValidationState,\n setValue,\n singleSelectionToggle,\n selectionAnchor,\n ]\n );\n\n const modifiedChildren = useMemo(() => {\n return React.Children.map(children, (child: any, i: number) => {\n const childIsSelected = selectedState[i];\n\n return React.cloneElement(child, {\n role: \"option\",\n selected: childIsSelected,\n onClick: (evt) =>\n onChildChangeInterceptor(i, child?.props?.onClick, evt),\n disabled: disabled || child?.props?.disabled,\n });\n });\n }, [children, disabled, onChildChangeInterceptor, selectedState]);\n\n // The error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n\n const listId = (label && setId(elementId, \"listbox\")) || \"\";\n\n return (\n <StyledFormElement\n id={id}\n name={name}\n status={validationState}\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n className={clsx(className, selectionListClasses.root, classes?.root)}\n >\n {label && (\n <StyledLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={clsx(selectionListClasses.label, classes?.label)}\n />\n )}\n {description && (\n <StyledInfoMessage\n id={setId(elementId, \"description\")}\n className={clsx(\n selectionListClasses.description,\n classes?.description\n )}\n >\n {description}\n </StyledInfoMessage>\n )}\n\n <StyledListContainer\n id={listId}\n interactive\n condensed\n role=\"listbox\"\n aria-multiselectable={multiple || undefined}\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy]\n .join(\" \")\n .trim() || undefined\n }\n aria-invalid={validationState === \"invalid\" ? true : undefined}\n aria-errormessage={\n validationState === \"invalid\" ? errorMessageId : undefined\n }\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n className={clsx(\n classes?.listbox,\n selectionListClasses.listbox,\n orientation === \"vertical\" &&\n clsx(selectionListClasses.vertical, classes?.vertical),\n orientation === \"horizontal\" &&\n clsx(selectionListClasses.horizontal, classes?.horizontal),\n validationState === \"invalid\" &&\n clsx(selectionListClasses.invalid, classes?.invalid)\n )}\n ref={listContainer}\n $orientation={orientation}\n $validationState={validationState}\n {...others}\n >\n {modifiedChildren}\n </StyledListContainer>\n\n {canShowError && (\n <StyledError\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(selectionListClasses.error, classes?.error)}\n >\n {validationMessage}\n </StyledError>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["getValueFromSelectedChildren","children","multiple","selectedValues","React","Children","toArray","map","child","childIsControlled","props","selected","undefined","childIsSelected","defaultSelected","value","filter","v","HvSelectionList","id","classes","className","name","valueProp","defaultValue","required","readOnly","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","status","statusMessage","ariaErrorMessage","orientation","singleSelectionToggle","others","elementId","useUniqueId","setValue","useControlled","validationState","setValidationState","validationMessage","allValues","selectedState","useMemo","childValues","childSelectedState","forEach","i","childValue","indexOf","selectionAnchor","useRef","listContainer","ArrowUp","ArrowDown","keyboardCodes","useEffect","handleMeta","event","tempArray","isKeypress","shiftKey","current","contains","target","isSelected","push","addEventListener","removeEventListener","onChildChangeInterceptor","useCallback","index","childOnClick","evt","newValue","multiSelectionEventHandler","length","modifiedChildren","cloneElement","role","onClick","canShowError","errorMessageId","setId","listId","StyledFormElement","clsx","selectionListClasses","root","_jsx","StyledLabel","StyledInfoMessage","StyledListContainer","interactive","condensed","join","trim","listbox","vertical","horizontal","invalid","ref","$orientation","$validationState","StyledError","disableBorder","error"],"mappings":"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"}
1
+ {"version":3,"file":"SelectionList.js","sources":["../../../../src/components/SelectionList/SelectionList.tsx"],"sourcesContent":["import React, {\n useCallback,\n useMemo,\n useRef,\n useEffect,\n ReactNode,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport { HvBaseProps } from \"@core/types\";\nimport { useControlled, useUniqueId } from \"@core/hooks\";\nimport {\n isKeypress,\n keyboardCodes,\n setId,\n multiSelectionEventHandler,\n} from \"@core/utils\";\nimport {\n StyledListContainer,\n StyledFormElement,\n StyledLabel,\n StyledInfoMessage,\n StyledError,\n} from \"./SelectionList.styles\";\nimport { HvFormStatus } from \"../Forms/FormElement\";\nimport selectionListClasses, {\n HvSelectionListClasses,\n} from \"./selectionListClasses\";\n\nexport interface HvSelectionListProps\n extends HvBaseProps<HTMLUListElement, \"onChange\"> {\n /** The form element name. */\n name?: string;\n /**\n * The value of the form element. It must be represented in the child list items.\n *\n * Can either be a single value (when multiple = false) or an\n * array of values (when multiple = true).\n *\n * When defined the selection list state becomes controlled.\n */\n value?: any | any[];\n /** When uncontrolled, defines the initial value. */\n defaultValue?: any | 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 /** Indicates that the form element is disabled. If `true` the state is propagated to the children list items. */\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 /**\n * The error message to show when the validation status is \"invalid\".\n *\n * Defaults to \"Required\" when the status is uncontrolled and no `aria-errormessage` is provided.\n */\n statusMessage?: string;\n /** Indicates that the user may select more than one item from the current selectable list items. */\n multiple?: boolean;\n /** If `true`, selection can be toggled when single selection. */\n singleSelectionToggle?: boolean;\n /** Indicates whether the list orientation is horizontal or vertical. Defaults to vertical. */\n orientation?: \"vertical\" | \"horizontal\";\n /** The callback fired when the value changes. */\n onChange?: (event: React.MouseEvent, value: any) => void;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSelectionListClasses;\n}\n\nconst getValueFromSelectedChildren = (\n children: ReactNode,\n multiple: boolean\n) => {\n const selectedValues = React.Children.toArray(children)\n .map((child: any) => {\n const childIsControlled = child?.props?.selected !== undefined;\n const childIsSelected =\n child && childIsControlled\n ? child.props?.selected\n : child.props?.defaultSelected;\n\n return childIsSelected ? child?.props.value : undefined;\n })\n .filter((v) => v !== undefined);\n\n return multiple ? selectedValues : selectedValues?.[0];\n};\n\n/**\n * Allows the user to select one or more items from a list of choices.\n *\n * Although it supports multi-selection, DS recommends the use of a selection list\n * when it’s clear that the user can only select just one option from the range provided.\n */\nexport const HvSelectionList = ({\n id,\n classes,\n className,\n children,\n name,\n value: valueProp,\n defaultValue,\n required = false,\n readOnly = false,\n disabled = false,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n status,\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n orientation = \"vertical\",\n multiple = false,\n singleSelectionToggle = false,\n ...others\n}: HvSelectionListProps) => {\n const elementId = useUniqueId(id, \"hvselectionlist\");\n\n const [value, setValue] = useControlled(\n valueProp,\n defaultValue !== undefined\n ? defaultValue\n : // when uncontrolled and no default value is given,\n // extract the initial selected values from the children own state\n () => getValueFromSelectedChildren(children, multiple)\n );\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const [allValues, selectedState] = useMemo(() => {\n const childValues: any[] = [];\n const childSelectedState: boolean[] = [];\n\n React.Children.toArray(children).forEach((child: any, i: number) => {\n const childValue = child?.props?.value;\n const childIsSelected = multiple\n ? value.indexOf(childValue) !== -1\n : value === childValue;\n\n childValues[i] = childValue;\n childSelectedState[i] = childIsSelected;\n });\n\n return [childValues, childSelectedState];\n }, [children, multiple, value]);\n\n const selectionAnchor = useRef(undefined);\n\n const listContainer = useRef<any>(null);\n\n const { ArrowUp, ArrowDown } = keyboardCodes;\n\n useEffect(() => {\n const handleMeta = (event: KeyboardEvent) => {\n const tempArray: any[] = [];\n if (\n (isKeypress(event, ArrowUp) &&\n event.shiftKey &&\n listContainer.current.contains(event.target)) ||\n (isKeypress(event, ArrowDown) &&\n event.shiftKey &&\n listContainer.current.contains(event.target))\n ) {\n selectedState.forEach((isSelected, i) => {\n if (i === (event.target as any).value - 1) {\n if (!isSelected) {\n tempArray.push(allValues[i]);\n }\n } else if (isSelected) {\n tempArray.push(allValues[i]);\n }\n });\n setValue(tempArray);\n }\n };\n window.addEventListener(\"keyup\", handleMeta);\n\n return () => {\n window.removeEventListener(\"keyup\", handleMeta);\n };\n }, [allValues, selectedState, setValue, ArrowUp, ArrowDown]);\n\n const onChildChangeInterceptor = useCallback(\n (\n index: number,\n childOnClick: (e: React.MouseEvent) => void,\n evt: React.MouseEvent\n ) => {\n childOnClick?.(evt);\n\n if (!readOnly && !disabled) {\n let newValue: any;\n if (multiple) {\n newValue = multiSelectionEventHandler(\n evt,\n index,\n selectionAnchor,\n allValues,\n selectedState,\n undefined\n );\n } else {\n newValue =\n singleSelectionToggle && selectedState[index]\n ? null\n : allValues[index];\n }\n\n onChange?.(evt, newValue);\n\n setValue(() => {\n // This will only run if uncontrolled\n\n if (required && newValue.length === 0) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newValue;\n });\n }\n },\n [\n allValues,\n disabled,\n multiple,\n onChange,\n readOnly,\n required,\n selectedState,\n setValidationState,\n setValue,\n singleSelectionToggle,\n selectionAnchor,\n ]\n );\n\n const modifiedChildren = useMemo(() => {\n return React.Children.map(children, (child: any, i: number) => {\n const childIsSelected = selectedState[i];\n\n return React.cloneElement(child, {\n role: \"option\",\n selected: childIsSelected,\n onClick: (evt) =>\n onChildChangeInterceptor(i, child?.props?.onClick, evt),\n disabled: disabled || child?.props?.disabled,\n });\n });\n }, [children, disabled, onChildChangeInterceptor, selectedState]);\n\n // The error message area will only be created if:\n // - an external element that provides an error message isn't identified via aria-errormessage AND\n // - both status and statusMessage properties are being controlled OR\n // - status is uncontrolled and required is true\n const canShowError =\n ariaErrorMessage == null &&\n ((status !== undefined && statusMessage !== undefined) ||\n (status === undefined && required));\n\n const errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n\n const listId = (label && setId(elementId, \"listbox\")) || \"\";\n\n return (\n <StyledFormElement\n id={id}\n name={name}\n status={validationState}\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n className={clsx(className, selectionListClasses.root, classes?.root)}\n >\n {label && (\n <StyledLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={clsx(selectionListClasses.label, classes?.label)}\n />\n )}\n {description && (\n <StyledInfoMessage\n id={setId(elementId, \"description\")}\n className={clsx(\n selectionListClasses.description,\n classes?.description\n )}\n >\n {description}\n </StyledInfoMessage>\n )}\n\n <StyledListContainer\n id={listId}\n interactive\n condensed\n role=\"listbox\"\n aria-multiselectable={multiple || undefined}\n aria-label={ariaLabel}\n aria-labelledby={\n [label && setId(elementId, \"label\"), ariaLabelledBy]\n .join(\" \")\n .trim() || undefined\n }\n aria-invalid={validationState === \"invalid\" ? true : undefined}\n aria-errormessage={\n validationState === \"invalid\" ? errorMessageId : undefined\n }\n aria-describedby={\n [description && setId(elementId, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n className={clsx(\n classes?.listbox,\n selectionListClasses.listbox,\n orientation === \"vertical\" &&\n clsx(selectionListClasses.vertical, classes?.vertical),\n orientation === \"horizontal\" &&\n clsx(selectionListClasses.horizontal, classes?.horizontal),\n validationState === \"invalid\" &&\n clsx(selectionListClasses.invalid, classes?.invalid)\n )}\n ref={listContainer}\n $orientation={orientation}\n $validationState={validationState}\n {...others}\n >\n {modifiedChildren}\n </StyledListContainer>\n\n {canShowError && (\n <StyledError\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(selectionListClasses.error, classes?.error)}\n >\n {validationMessage}\n </StyledError>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["getValueFromSelectedChildren","children","multiple","selectedValues","React","Children","toArray","map","child","childIsControlled","props","selected","undefined","childIsSelected","defaultSelected","value","filter","v","HvSelectionList","id","classes","className","name","valueProp","defaultValue","required","readOnly","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","status","statusMessage","ariaErrorMessage","orientation","singleSelectionToggle","others","elementId","useUniqueId","setValue","useControlled","validationState","setValidationState","validationMessage","allValues","selectedState","useMemo","childValues","childSelectedState","forEach","i","childValue","indexOf","selectionAnchor","useRef","listContainer","ArrowUp","ArrowDown","keyboardCodes","useEffect","handleMeta","event","tempArray","isKeypress","shiftKey","current","contains","target","isSelected","push","addEventListener","removeEventListener","onChildChangeInterceptor","useCallback","index","childOnClick","evt","newValue","multiSelectionEventHandler","length","modifiedChildren","cloneElement","role","onClick","canShowError","errorMessageId","setId","listId","StyledFormElement","clsx","selectionListClasses","root","_jsx","StyledLabel","StyledInfoMessage","StyledListContainer","interactive","condensed","join","trim","listbox","vertical","horizontal","invalid","ref","$orientation","$validationState","StyledError","disableBorder","error"],"mappings":";;;;;;;;;;;AAqFA,MAAMA,+BAA+BA,CACnCC,UACAC,aACG;AACGC,QAAAA,iBAAiBC,eAAMC,SAASC,QAAQL,QAAQ,EACnDM,IAAI,CAACC,UAAe;;AACbC,UAAAA,sBAAoBD,oCAAOE,UAAPF,mBAAcG,cAAaC;AACrD,UAAMC,kBACJL,SAASC,qBACLD,WAAME,UAANF,mBAAaG,YACbH,WAAME,UAANF,mBAAaM;AAEZD,WAAAA,kBAAkBL,+BAAOE,MAAMK,QAAQH;AAAAA,EAAAA,CAC/C,EACAI,OAAQC,CAAAA,MAAMA,MAAML,MAAS;AAEzBV,SAAAA,WAAWC,iBAAiBA,iDAAiB;AACtD;AAQO,MAAMe,kBAAkBA,CAAC;AAAA,EAC9BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACApB;AAAAA,EACAqB;AAAAA,EACAP,OAAOQ;AAAAA,EACPC;AAAAA,EACAC,WAAW;AAAA,EACXC,WAAW;AAAA,EACXC,WAAW;AAAA,EACXC;AAAAA,EACA,cAAcC;AAAAA,EACd,mBAAmBC;AAAAA,EACnBC;AAAAA,EACA,oBAAoBC;AAAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,qBAAqBC;AAAAA,EACrBC,cAAc;AAAA,EACdnC,WAAW;AAAA,EACXoC,wBAAwB;AAAA,EACxB,GAAGC;AACiB,MAAM;AACpBC,QAAAA,YAAYC,YAAYtB,IAAI,iBAAiB;AAEnD,QAAM,CAACJ,OAAO2B,QAAQ,IAAIC,cACxBpB,WACAC,iBAAiBZ,SACbY;AAAAA;AAAAA;AAAAA,IAGA,MAAMxB,6BAA6BC,UAAUC,QAAQ;AAAA,GAC3D;AAEA,QAAM,CAAC0C,iBAAiBC,kBAAkB,IAAIF,cAC5CT,QACA,SACF;AAEA,QAAM,CAACY,iBAAiB,IAAIH,cAAcR,eAAe,UAAU;AAEnE,QAAM,CAACY,WAAWC,aAAa,IAAIC,QAAQ,MAAM;AAC/C,UAAMC,cAAqB,CAAA;AAC3B,UAAMC,qBAAgC,CAAA;AAEtC/C,mBAAMC,SAASC,QAAQL,QAAQ,EAAEmD,QAAQ,CAAC5C,OAAY6C,MAAc;;AAC5DC,YAAAA,cAAa9C,oCAAOE,UAAPF,mBAAcO;AACjC,YAAMF,kBAAkBX,WACpBa,MAAMwC,QAAQD,UAAU,MAAM,KAC9BvC,UAAUuC;AAEdJ,kBAAYG,CAAC,IAAIC;AACjBH,yBAAmBE,CAAC,IAAIxC;AAAAA,IAAAA,CACzB;AAEM,WAAA,CAACqC,aAAaC,kBAAkB;AAAA,EACtC,GAAA,CAAClD,UAAUC,UAAUa,KAAK,CAAC;AAExByC,QAAAA,kBAAkBC,OAAO7C,MAAS;AAElC8C,QAAAA,gBAAgBD,OAAY,IAAI;AAEhC,QAAA;AAAA,IAAEE;AAAAA,IAASC;AAAAA,EAAcC,IAAAA;AAE/BC,YAAU,MAAM;AACRC,UAAAA,aAAaA,CAACC,UAAyB;AAC3C,YAAMC,YAAmB,CAAA;AAEtBC,UAAAA,WAAWF,OAAOL,OAAO,KACxBK,MAAMG,YACNT,cAAcU,QAAQC,SAASL,MAAMM,MAAM,KAC5CJ,WAAWF,OAAOJ,SAAS,KAC1BI,MAAMG,YACNT,cAAcU,QAAQC,SAASL,MAAMM,MAAM,GAC7C;AACclB,sBAAAA,QAAQ,CAACmB,YAAYlB,MAAM;AACvC,cAAIA,MAAOW,MAAMM,OAAevD,QAAQ,GAAG;AACzC,gBAAI,CAACwD,YAAY;AACLC,wBAAAA,KAAKzB,UAAUM,CAAC,CAAC;AAAA,YAC7B;AAAA,qBACSkB,YAAY;AACXC,sBAAAA,KAAKzB,UAAUM,CAAC,CAAC;AAAA,UAC7B;AAAA,QAAA,CACD;AACDX,iBAASuB,SAAS;AAAA,MACpB;AAAA,IAAA;AAEKQ,WAAAA,iBAAiB,SAASV,UAAU;AAE3C,WAAO,MAAM;AACJW,aAAAA,oBAAoB,SAASX,UAAU;AAAA,IAAA;AAAA,EAChD,GACC,CAAChB,WAAWC,eAAeN,UAAUiB,SAASC,SAAS,CAAC;AAE3D,QAAMe,2BAA2BC,YAC/B,CACEC,OACAC,cACAC,QACG;AACHD,iDAAeC;AAEX,QAAA,CAACrD,YAAY,CAACC,UAAU;AACtBqD,UAAAA;AACJ,UAAI9E,UAAU;AACZ8E,mBAAWC,2BACTF,KACAF,OACArB,iBACAT,WACAC,eACApC,MACF;AAAA,MAAA,OACK;AACLoE,mBACE1C,yBAAyBU,cAAc6B,KAAK,IACxC,OACA9B,UAAU8B,KAAK;AAAA,MACvB;AAEA5C,2CAAW8C,KAAKC;AAEhBtC,eAAS,MAAM;AAGTjB,YAAAA,YAAYuD,SAASE,WAAW,GAAG;AACrCrC,6BAAmB,SAAS;AAAA,QAAA,OACvB;AACLA,6BAAmB,OAAO;AAAA,QAC5B;AAEOmC,eAAAA;AAAAA,MAAAA,CACR;AAAA,IACH;AAAA,EAEF,GAAA,CACEjC,WACApB,UACAzB,UACA+B,UACAP,UACAD,UACAuB,eACAH,oBACAH,UACAJ,uBACAkB,eAAe,CAEnB;AAEM2B,QAAAA,mBAAmBlC,QAAQ,MAAM;AACrC,WAAO7C,eAAMC,SAASE,IAAIN,UAAU,CAACO,OAAY6C,MAAc;;AACvDxC,YAAAA,kBAAkBmC,cAAcK,CAAC;AAEhCjD,aAAAA,eAAMgF,aAAa5E,OAAO;AAAA,QAC/B6E,MAAM;AAAA,QACN1E,UAAUE;AAAAA,QACVyE,SAAUP,CACRJ,QAAAA;;AAAAA,0CAAyBtB,IAAG7C,MAAAA,+BAAOE,UAAPF,gBAAAA,IAAc8E,SAASP,GAAG;AAAA;AAAA,QACxDpD,UAAUA,cAAYnB,oCAAOE,UAAPF,mBAAcmB;AAAAA,MAAAA,CACrC;AAAA,IAAA,CACF;AAAA,KACA,CAAC1B,UAAU0B,UAAUgD,0BAA0B3B,aAAa,CAAC;AAM1DuC,QAAAA,eACJnD,oBAAoB,SAClBF,WAAWtB,UAAauB,kBAAkBvB,UACzCsB,WAAWtB,UAAaa;AAE7B,QAAM+D,iBAAiBD,eACnBE,MAAMjD,WAAW,OAAO,IACxBJ;AAEJ,QAAMsD,SAAU9D,SAAS6D,MAAMjD,WAAW,SAAS,KAAM;AAEzD,8BACGmD,mBAAiB;AAAA,IAChBxE;AAAAA,IACAG;AAAAA,IACAY,QAAQU;AAAAA,IACRjB;AAAAA,IACAF;AAAAA,IACAC;AAAAA,IACAL,WAAWuE,KAAKvE,WAAWwE,qBAAqBC,MAAM1E,mCAAS0E,IAAI;AAAA,IAAE7F,UAEpE2B,CAAAA,SACCmE,oBAACC,aAAW;AAAA,MACV7E,IAAIsE,MAAMjD,WAAW,OAAO;AAAA,MAC5BZ;AAAAA,MACAP,WAAWuE,KAAKC,qBAAqBjE,OAAOR,mCAASQ,KAAK;AAAA,IAAA,CAC3D,GAEFG,eACCgE,oBAACE,mBAAiB;AAAA,MAChB9E,IAAIsE,MAAMjD,WAAW,aAAa;AAAA,MAClCnB,WAAWuE,KACTC,qBAAqB9D,aACrBX,mCAASW,WACX;AAAA,MAAE9B,UAED8B;AAAAA,IAAAA,CACgB,GAGrBgE,oBAACG,qBAAmB;AAAA,MAClB/E,IAAIuE;AAAAA,MACJS,aAAW;AAAA,MACXC,WAAS;AAAA,MACTf,MAAK;AAAA,MACL,wBAAsBnF,YAAYU;AAAAA,MAClC,cAAYiB;AAAAA,MACZ,mBACE,CAACD,SAAS6D,MAAMjD,WAAW,OAAO,GAAGV,cAAc,EAChDuE,KAAK,GAAG,EACRC,UAAU1F;AAAAA,MAEf,gBAAcgC,oBAAoB,YAAY,OAAOhC;AAAAA,MACrD,qBACEgC,oBAAoB,YAAY4C,iBAAiB5E;AAAAA,MAEnD,oBACE,CAACmB,eAAe0D,MAAMjD,WAAW,aAAa,GAAGR,eAAe,EAC7DqE,KAAK,GAAG,EACRC,UAAU1F;AAAAA,MAEfS,WAAWuE,KACTxE,mCAASmF,SACTV,qBAAqBU,SACrBlE,gBAAgB,cACduD,KAAKC,qBAAqBW,UAAUpF,mCAASoF,QAAQ,GACvDnE,gBAAgB,gBACduD,KAAKC,qBAAqBY,YAAYrF,mCAASqF,UAAU,GAC3D7D,oBAAoB,aAClBgD,KAAKC,qBAAqBa,SAAStF,mCAASsF,OAAO,CACvD;AAAA,MACAC,KAAKjD;AAAAA,MACLkD,cAAcvE;AAAAA,MACdwE,kBAAkBjE;AAAAA,MAAgB,GAC9BL;AAAAA,MAAMtC,UAETkF;AAAAA,IAAAA,CACkB,GAEpBI,gBACCQ,oBAACe,aAAW;AAAA,MACV3F,IAAIsE,MAAMjD,WAAW,OAAO;AAAA,MAC5BuE,eAAa;AAAA,MACb1F,WAAWuE,KAAKC,qBAAqBmB,OAAO5F,mCAAS4F,KAAK;AAAA,MAAE/G,UAE3D6C;AAAAA,IAAAA,CACU,CACd;AAAA,EAAA,CACgB;AAEvB;"}
@@ -46,7 +46,7 @@ const StyledContainer = /* @__PURE__ */ _styled("div", process.env.NODE_ENV ===
46
46
  };
47
47
  return acc;
48
48
  }, {})
49
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvU2ltcGxlR3JpZC9TaW1wbGVHcmlkLnN0eWxlcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkIrQiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL1NpbXBsZUdyaWQvU2ltcGxlR3JpZC5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5pbXBvcnQgeyBTcGFjaW5nLCBCcmVha3BvaW50IH0gZnJvbSBcIi5cIjtcblxuZnVuY3Rpb24gc2l6ZShwcm9wcykge1xuICBpZiAodHlwZW9mIHByb3BzLnNpemUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gcHJvcHMuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiBwcm9wcy5zaXplc1twcm9wcy5zaXplXSB8fCBwcm9wcy5zaXplIHx8IHByb3BzLnNpemVzLm1kO1xufVxuXG5mdW5jdGlvbiBnZXRTb3J0ZWRCcmVha3BvaW50cyhicmVha3BvaW50cykge1xuICBpZiAoYnJlYWtwb2ludHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGJyZWFrcG9pbnRzO1xuICB9XG5cbiAgY29uc3QgcHJvcGVydHkgPSBcIm1heFdpZHRoXCIgaW4gYnJlYWtwb2ludHNbMF0gPyBcIm1heFdpZHRoXCIgOiBcIm1pbldpZHRoXCI7XG4gIGNvbnN0IHNvcnRlZCA9IFsuLi5icmVha3BvaW50c10uc29ydChcbiAgICAoYSwgYikgPT5cbiAgICAgIHNpemUoeyBzaXplOiBiW3Byb3BlcnR5XSwgc2l6ZXM6IHRoZW1lLmJyZWFrcG9pbnRzIH0pIC1cbiAgICAgIHNpemUoeyBzaXplOiBhW3Byb3BlcnR5XSwgc2l6ZXM6IHRoZW1lLmJyZWFrcG9pbnRzIH0pXG4gICk7XG5cbiAgcmV0dXJuIHByb3BlcnR5ID09PSBcIm1pbldpZHRoXCIgPyBzb3J0ZWQucmV2ZXJzZSgpIDogc29ydGVkO1xufVxuXG5leHBvcnQgY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFwiZGl2XCIpKFxuICAoe1xuICAgIGJyZWFrcG9pbnRzLFxuICAgIHNwYWNpbmcsXG4gICAgY29scyxcbiAgfToge1xuICAgIGJyZWFrcG9pbnRzPzogQnJlYWtwb2ludFtdO1xuICAgIHNwYWNpbmc6IFNwYWNpbmc7XG4gICAgY29scz86IG51bWJlcjtcbiAgfSkgPT4gKHtcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIGRpc3BsYXk6IFwiZ3JpZFwiLFxuICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IGByZXBlYXQoJHtjb2xzfSwgbWlubWF4KDAsIDFmcikpYCxcbiAgICBnYXA6IHRoZW1lLnNwYWNlW3NwYWNpbmddLFxuICAgIC4uLihicmVha3BvaW50cyAmJlxuICAgICAgZ2V0U29ydGVkQnJlYWtwb2ludHMoYnJlYWtwb2ludHMpLnJlZHVjZSgoYWNjLCBicmVha3BvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gXCJtYXhXaWR0aFwiIGluIGJyZWFrcG9pbnQgPyBcIm1heC13aWR0aFwiIDogXCJtaW4td2lkdGhcIjtcbiAgICAgICAgY29uc3QgYnJlYWtwb2ludFNpemUgPSBzaXplKHtcbiAgICAgICAgICBzaXplOlxuICAgICAgICAgICAgcHJvcGVydHkgPT09IFwibWF4LXdpZHRoXCJcbiAgICAgICAgICAgICAgPyBicmVha3BvaW50Lm1heFdpZHRoXG4gICAgICAgICAgICAgIDogYnJlYWtwb2ludC5taW5XaWR0aCxcbiAgICAgICAgICBzaXplczogdGhlbWUuYnJlYWtwb2ludHMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFjY1tcbiAgICAgICAgICBgQG1lZGlhICgke3Byb3BlcnR5fTogJHtcbiAgICAgICAgICAgIGJyZWFrcG9pbnRTaXplICsgKHByb3BlcnR5ID09PSBcIm1heC13aWR0aFwiID8gMCA6IDEpXG4gICAgICAgICAgfXB4KWBcbiAgICAgICAgXSA9IHtcbiAgICAgICAgICBncmlkVGVtcGxhdGVDb2x1bW5zOiBgcmVwZWF0KCR7YnJlYWtwb2ludC5jb2xzfSwgbWlubWF4KDAsIDFmcikpYCxcbiAgICAgICAgICBnYXA6IHRoZW1lLnNwYWNlW3NwYWNpbmddLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSkpLFxuICB9KVxuKTtcbiJdfQ== */");
49
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvU2ltcGxlR3JpZC9TaW1wbGVHcmlkLnN0eWxlcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkIrQiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL1NpbXBsZUdyaWQvU2ltcGxlR3JpZC5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5pbXBvcnQgeyBTcGFjaW5nLCBCcmVha3BvaW50IH0gZnJvbSBcIi5cIjtcblxuZnVuY3Rpb24gc2l6ZShwcm9wczogeyBzaXplOiBhbnk7IHNpemVzOiBhbnkgfSkge1xuICBpZiAodHlwZW9mIHByb3BzLnNpemUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gcHJvcHMuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiBwcm9wcy5zaXplc1twcm9wcy5zaXplXSB8fCBwcm9wcy5zaXplIHx8IHByb3BzLnNpemVzLm1kO1xufVxuXG5mdW5jdGlvbiBnZXRTb3J0ZWRCcmVha3BvaW50cyhicmVha3BvaW50czogQnJlYWtwb2ludFtdKSB7XG4gIGlmIChicmVha3BvaW50cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gYnJlYWtwb2ludHM7XG4gIH1cblxuICBjb25zdCBwcm9wZXJ0eSA9IFwibWF4V2lkdGhcIiBpbiBicmVha3BvaW50c1swXSA/IFwibWF4V2lkdGhcIiA6IFwibWluV2lkdGhcIjtcbiAgY29uc3Qgc29ydGVkID0gWy4uLmJyZWFrcG9pbnRzXS5zb3J0KFxuICAgIChhLCBiKSA9PlxuICAgICAgc2l6ZSh7IHNpemU6IGJbcHJvcGVydHldLCBzaXplczogdGhlbWUuYnJlYWtwb2ludHMgfSkgLVxuICAgICAgc2l6ZSh7IHNpemU6IGFbcHJvcGVydHldLCBzaXplczogdGhlbWUuYnJlYWtwb2ludHMgfSlcbiAgKTtcblxuICByZXR1cm4gcHJvcGVydHkgPT09IFwibWluV2lkdGhcIiA/IHNvcnRlZC5yZXZlcnNlKCkgOiBzb3J0ZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoXCJkaXZcIikoXG4gICh7XG4gICAgYnJlYWtwb2ludHMsXG4gICAgc3BhY2luZyxcbiAgICBjb2xzLFxuICB9OiB7XG4gICAgYnJlYWtwb2ludHM/OiBCcmVha3BvaW50W107XG4gICAgc3BhY2luZzogU3BhY2luZztcbiAgICBjb2xzPzogbnVtYmVyO1xuICB9KSA9PiAoe1xuICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgZGlzcGxheTogXCJncmlkXCIsXG4gICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogYHJlcGVhdCgke2NvbHN9LCBtaW5tYXgoMCwgMWZyKSlgLFxuICAgIGdhcDogdGhlbWUuc3BhY2Vbc3BhY2luZ10sXG4gICAgLi4uKGJyZWFrcG9pbnRzICYmXG4gICAgICBnZXRTb3J0ZWRCcmVha3BvaW50cyhicmVha3BvaW50cykucmVkdWNlKChhY2MsIGJyZWFrcG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSBcIm1heFdpZHRoXCIgaW4gYnJlYWtwb2ludCA/IFwibWF4LXdpZHRoXCIgOiBcIm1pbi13aWR0aFwiO1xuICAgICAgICBjb25zdCBicmVha3BvaW50U2l6ZSA9IHNpemUoe1xuICAgICAgICAgIHNpemU6XG4gICAgICAgICAgICBwcm9wZXJ0eSA9PT0gXCJtYXgtd2lkdGhcIlxuICAgICAgICAgICAgICA/IGJyZWFrcG9pbnQubWF4V2lkdGhcbiAgICAgICAgICAgICAgOiBicmVha3BvaW50Lm1pbldpZHRoLFxuICAgICAgICAgIHNpemVzOiB0aGVtZS5icmVha3BvaW50cyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYWNjW1xuICAgICAgICAgIGBAbWVkaWEgKCR7cHJvcGVydHl9OiAke1xuICAgICAgICAgICAgYnJlYWtwb2ludFNpemUgKyAocHJvcGVydHkgPT09IFwibWF4LXdpZHRoXCIgPyAwIDogMSlcbiAgICAgICAgICB9cHgpYFxuICAgICAgICBdID0ge1xuICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IGByZXBlYXQoJHticmVha3BvaW50LmNvbHN9LCBtaW5tYXgoMCwgMWZyKSlgLFxuICAgICAgICAgIGdhcDogdGhlbWUuc3BhY2Vbc3BhY2luZ10sXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KSksXG4gIH0pXG4pO1xuIl19 */");
50
50
  export {
51
51
  StyledContainer
52
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleGrid.styles.js","sources":["../../../../src/components/SimpleGrid/SimpleGrid.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { Spacing, Breakpoint } from \".\";\n\nfunction size(props) {\n if (typeof props.size === \"number\") {\n return props.size;\n }\n\n return props.sizes[props.size] || props.size || props.sizes.md;\n}\n\nfunction getSortedBreakpoints(breakpoints) {\n if (breakpoints.length === 0) {\n return breakpoints;\n }\n\n const property = \"maxWidth\" in breakpoints[0] ? \"maxWidth\" : \"minWidth\";\n const sorted = [...breakpoints].sort(\n (a, b) =>\n size({ size: b[property], sizes: theme.breakpoints }) -\n size({ size: a[property], sizes: theme.breakpoints })\n );\n\n return property === \"minWidth\" ? sorted.reverse() : sorted;\n}\n\nexport const StyledContainer = styled(\"div\")(\n ({\n breakpoints,\n spacing,\n cols,\n }: {\n breakpoints?: Breakpoint[];\n spacing: Spacing;\n cols?: number;\n }) => ({\n boxSizing: \"border-box\",\n display: \"grid\",\n gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,\n gap: theme.space[spacing],\n ...(breakpoints &&\n getSortedBreakpoints(breakpoints).reduce((acc, breakpoint) => {\n const property = \"maxWidth\" in breakpoint ? \"max-width\" : \"min-width\";\n const breakpointSize = size({\n size:\n property === \"max-width\"\n ? breakpoint.maxWidth\n : breakpoint.minWidth,\n sizes: theme.breakpoints,\n });\n\n acc[\n `@media (${property}: ${\n breakpointSize + (property === \"max-width\" ? 0 : 1)\n }px)`\n ] = {\n gridTemplateColumns: `repeat(${breakpoint.cols}, minmax(0, 1fr))`,\n gap: theme.space[spacing],\n };\n\n return acc;\n }, {})),\n })\n);\n"],"names":["size","props","sizes","md","getSortedBreakpoints","breakpoints","length","property","sorted","sort","a","b","theme","reverse","StyledContainer","process","env","NODE_ENV","target","label","spacing","cols","boxSizing","display","gridTemplateColumns","gap","space","reduce","acc","breakpoint","breakpointSize","maxWidth","minWidth"],"mappings":";;AAIA,SAASA,KAAKC,OAAO;AACf,MAAA,OAAOA,MAAMD,SAAS,UAAU;AAClC,WAAOC,MAAMD;AAAAA,EACf;AAEOC,SAAAA,MAAMC,MAAMD,MAAMD,IAAI,KAAKC,MAAMD,QAAQC,MAAMC,MAAMC;AAC9D;AAEA,SAASC,qBAAqBC,aAAa;AACrCA,MAAAA,YAAYC,WAAW,GAAG;AACrBD,WAAAA;AAAAA,EACT;AAEA,QAAME,WAAW,cAAcF,YAAY,CAAC,IAAI,aAAa;AACvDG,QAAAA,SAAS,CAAC,GAAGH,WAAW,EAAEI,KAC9B,CAACC,GAAGC,MACFX,KAAK;AAAA,IAAEA,MAAMW,EAAEJ,QAAQ;AAAA,IAAGL,OAAOU,MAAMP;AAAAA,EAAa,CAAA,IACpDL,KAAK;AAAA,IAAEA,MAAMU,EAAEH,QAAQ;AAAA,IAAGL,OAAOU,MAAMP;AAAAA,EAAa,CAAA,CACxD;AAEA,SAAOE,aAAa,aAAaC,OAAOK,QAAAA,IAAYL;AACtD;AAEO,MAAMM,kBAAyB,wBAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EACzC,CAAC;AAAA,EACCd;AAAAA,EACAe;AAAAA,EACAC;AAKF,OAAO;AAAA,EACLC,WAAW;AAAA,EACXC,SAAS;AAAA,EACTC,qBAAsB,UAASH;AAAAA,EAC/BI,KAAKb,MAAMc,MAAMN,OAAO;AAAA,EACxB,GAAIf,eACFD,qBAAqBC,WAAW,EAAEsB,OAAO,CAACC,KAAKC,eAAe;AACtDtB,UAAAA,WAAW,cAAcsB,aAAa,cAAc;AAC1D,UAAMC,iBAAiB9B,KAAK;AAAA,MAC1BA,MACEO,aAAa,cACTsB,WAAWE,WACXF,WAAWG;AAAAA,MACjB9B,OAAOU,MAAMP;AAAAA,IAAAA,CACd;AAEDuB,QACG,WAAUrB,aACTuB,kBAAkBvB,aAAa,cAAc,IAAI,OAC9C,IACH;AAAA,MACFiB,qBAAsB,UAASK,WAAWR;AAAAA,MAC1CI,KAAKb,MAAMc,MAAMN,OAAO;AAAA,IAAA;AAGnBQ,WAAAA;AAAAA,EACT,GAAG,EAAE;AACT,IAAEb,QAAAC,IAAAC,05FACJ;"}
1
+ {"version":3,"file":"SimpleGrid.styles.js","sources":["../../../../src/components/SimpleGrid/SimpleGrid.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { Spacing, Breakpoint } from \".\";\n\nfunction size(props: { size: any; sizes: any }) {\n if (typeof props.size === \"number\") {\n return props.size;\n }\n\n return props.sizes[props.size] || props.size || props.sizes.md;\n}\n\nfunction getSortedBreakpoints(breakpoints: Breakpoint[]) {\n if (breakpoints.length === 0) {\n return breakpoints;\n }\n\n const property = \"maxWidth\" in breakpoints[0] ? \"maxWidth\" : \"minWidth\";\n const sorted = [...breakpoints].sort(\n (a, b) =>\n size({ size: b[property], sizes: theme.breakpoints }) -\n size({ size: a[property], sizes: theme.breakpoints })\n );\n\n return property === \"minWidth\" ? sorted.reverse() : sorted;\n}\n\nexport const StyledContainer = styled(\"div\")(\n ({\n breakpoints,\n spacing,\n cols,\n }: {\n breakpoints?: Breakpoint[];\n spacing: Spacing;\n cols?: number;\n }) => ({\n boxSizing: \"border-box\",\n display: \"grid\",\n gridTemplateColumns: `repeat(${cols}, minmax(0, 1fr))`,\n gap: theme.space[spacing],\n ...(breakpoints &&\n getSortedBreakpoints(breakpoints).reduce((acc, breakpoint) => {\n const property = \"maxWidth\" in breakpoint ? \"max-width\" : \"min-width\";\n const breakpointSize = size({\n size:\n property === \"max-width\"\n ? breakpoint.maxWidth\n : breakpoint.minWidth,\n sizes: theme.breakpoints,\n });\n\n acc[\n `@media (${property}: ${\n breakpointSize + (property === \"max-width\" ? 0 : 1)\n }px)`\n ] = {\n gridTemplateColumns: `repeat(${breakpoint.cols}, minmax(0, 1fr))`,\n gap: theme.space[spacing],\n };\n\n return acc;\n }, {})),\n })\n);\n"],"names":["size","props","sizes","md","getSortedBreakpoints","breakpoints","length","property","sorted","sort","a","b","theme","reverse","StyledContainer","process","env","NODE_ENV","target","label","spacing","cols","boxSizing","display","gridTemplateColumns","gap","space","reduce","acc","breakpoint","breakpointSize","maxWidth","minWidth"],"mappings":";;AAIA,SAASA,KAAKC,OAAkC;AAC1C,MAAA,OAAOA,MAAMD,SAAS,UAAU;AAClC,WAAOC,MAAMD;AAAAA,EACf;AAEOC,SAAAA,MAAMC,MAAMD,MAAMD,IAAI,KAAKC,MAAMD,QAAQC,MAAMC,MAAMC;AAC9D;AAEA,SAASC,qBAAqBC,aAA2B;AACnDA,MAAAA,YAAYC,WAAW,GAAG;AACrBD,WAAAA;AAAAA,EACT;AAEA,QAAME,WAAW,cAAcF,YAAY,CAAC,IAAI,aAAa;AACvDG,QAAAA,SAAS,CAAC,GAAGH,WAAW,EAAEI,KAC9B,CAACC,GAAGC,MACFX,KAAK;AAAA,IAAEA,MAAMW,EAAEJ,QAAQ;AAAA,IAAGL,OAAOU,MAAMP;AAAAA,EAAa,CAAA,IACpDL,KAAK;AAAA,IAAEA,MAAMU,EAAEH,QAAQ;AAAA,IAAGL,OAAOU,MAAMP;AAAAA,EAAa,CAAA,CACxD;AAEA,SAAOE,aAAa,aAAaC,OAAOK,QAAAA,IAAYL;AACtD;AAEO,MAAMM,kBAAyB,wBAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EACzC,CAAC;AAAA,EACCd;AAAAA,EACAe;AAAAA,EACAC;AAKF,OAAO;AAAA,EACLC,WAAW;AAAA,EACXC,SAAS;AAAA,EACTC,qBAAsB,UAASH;AAAAA,EAC/BI,KAAKb,MAAMc,MAAMN,OAAO;AAAA,EACxB,GAAIf,eACFD,qBAAqBC,WAAW,EAAEsB,OAAO,CAACC,KAAKC,eAAe;AACtDtB,UAAAA,WAAW,cAAcsB,aAAa,cAAc;AAC1D,UAAMC,iBAAiB9B,KAAK;AAAA,MAC1BA,MACEO,aAAa,cACTsB,WAAWE,WACXF,WAAWG;AAAAA,MACjB9B,OAAOU,MAAMP;AAAAA,IAAAA,CACd;AAEDuB,QACG,WAAUrB,aACTuB,kBAAkBvB,aAAa,cAAc,IAAI,OAC9C,IACH;AAAA,MACFiB,qBAAsB,UAASK,WAAWR;AAAAA,MAC1CI,KAAKb,MAAMc,MAAMN,OAAO;AAAA,IAAA;AAGnBQ,WAAAA;AAAAA,EACT,GAAG,EAAE;AACT,IAAEb,QAAAC,IAAAC,88FACJ;"}