@hitachivantara/uikit-react-core 5.18.2 → 5.18.4

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 (130) 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/CheckBox/CheckBox.cjs +4 -4
  13. package/dist/cjs/components/CheckBox/CheckBox.cjs.map +1 -1
  14. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs.map +1 -1
  15. package/dist/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
  16. package/dist/cjs/components/Controls/Controls.cjs.map +1 -1
  17. package/dist/cjs/components/Controls/LeftControl/LeftControl.cjs +1 -1
  18. package/dist/cjs/components/Controls/LeftControl/LeftControl.cjs.map +1 -1
  19. package/dist/cjs/components/Controls/RightControl/RightControl.cjs.map +1 -1
  20. package/dist/cjs/components/DatePicker/DatePicker.cjs +1 -1
  21. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  22. package/dist/cjs/components/DatePicker/utils.cjs.map +1 -1
  23. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  24. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
  25. package/dist/cjs/components/Dropdown/Dropdown.cjs +3 -3
  26. package/dist/cjs/components/Dropdown/Dropdown.cjs.map +1 -1
  27. package/dist/cjs/components/Dropdown/List/List.cjs.map +1 -1
  28. package/dist/cjs/components/Dropdown/utils.cjs +2 -2
  29. package/dist/cjs/components/Dropdown/utils.cjs.map +1 -1
  30. package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.cjs.map +1 -1
  31. package/dist/cjs/components/Forms/Adornment/Adornment.cjs +1 -2
  32. package/dist/cjs/components/Forms/Adornment/Adornment.cjs.map +1 -1
  33. package/dist/cjs/components/Forms/FormElement/validationStates.cjs.map +1 -1
  34. package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs.map +1 -1
  35. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs.map +1 -1
  36. package/dist/cjs/components/Header/Navigation/Navigation.cjs.map +1 -1
  37. package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
  38. package/dist/cjs/components/List/useSelectableList.cjs +1 -4
  39. package/dist/cjs/components/List/useSelectableList.cjs.map +1 -1
  40. package/dist/cjs/components/Loading/Loading.cjs.map +1 -1
  41. package/dist/cjs/components/OverflowTooltip/OverflowTooltip.cjs +1 -1
  42. package/dist/cjs/components/OverflowTooltip/OverflowTooltip.cjs.map +1 -1
  43. package/dist/cjs/components/Pagination/ButtonIconTooltip.cjs.map +1 -1
  44. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  45. package/dist/cjs/components/Pagination/Select.cjs +2 -4
  46. package/dist/cjs/components/Pagination/Select.cjs.map +1 -1
  47. package/dist/cjs/components/Pagination/utils.cjs.map +1 -1
  48. package/dist/cjs/components/SelectionList/SelectionList.cjs.map +1 -1
  49. package/dist/cjs/components/SimpleGrid/SimpleGrid.styles.cjs +1 -1
  50. package/dist/cjs/components/SimpleGrid/SimpleGrid.styles.cjs.map +1 -1
  51. package/dist/cjs/components/Snackbar/Snackbar.cjs.map +1 -1
  52. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.cjs +12 -8
  53. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.cjs.map +1 -1
  54. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.cjs +10 -1
  55. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.cjs.map +1 -1
  56. package/dist/cjs/components/TimeAgo/TimeAgo.cjs +14 -7
  57. package/dist/cjs/components/TimeAgo/TimeAgo.cjs.map +1 -1
  58. package/dist/cjs/components/TimeAgo/TimeAgo.styles.cjs +12 -0
  59. package/dist/cjs/components/TimeAgo/TimeAgo.styles.cjs.map +1 -0
  60. package/dist/cjs/hooks/useWidth.cjs +1 -1
  61. package/dist/cjs/hooks/useWidth.cjs.map +1 -1
  62. package/dist/cjs/index.cjs +2 -2
  63. package/dist/esm/components/AppSwitcher/Action/Action.js.map +1 -1
  64. package/dist/esm/components/AppSwitcher/TitleWithTooltip.js +6 -6
  65. package/dist/esm/components/AppSwitcher/TitleWithTooltip.js.map +1 -1
  66. package/dist/esm/components/Banner/Banner.js.map +1 -1
  67. package/dist/esm/components/BaseDropdown/BaseDropdown.js.map +1 -1
  68. package/dist/esm/components/BaseInput/validations.js.map +1 -1
  69. package/dist/esm/components/Box/Box.js.map +1 -1
  70. package/dist/esm/components/BreadCrumb/BreadCrumb.js.map +1 -1
  71. package/dist/esm/components/BreadCrumb/utils.js.map +1 -1
  72. package/dist/esm/components/BulkActions/BulkActions.js +1 -5
  73. package/dist/esm/components/BulkActions/BulkActions.js.map +1 -1
  74. package/dist/esm/components/CheckBox/CheckBox.js +4 -4
  75. package/dist/esm/components/CheckBox/CheckBox.js.map +1 -1
  76. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  77. package/dist/esm/components/ColorPicker/ColorPicker.js.map +1 -1
  78. package/dist/esm/components/Controls/Controls.js.map +1 -1
  79. package/dist/esm/components/Controls/LeftControl/LeftControl.js +1 -1
  80. package/dist/esm/components/Controls/LeftControl/LeftControl.js.map +1 -1
  81. package/dist/esm/components/Controls/RightControl/RightControl.js.map +1 -1
  82. package/dist/esm/components/DatePicker/DatePicker.js +1 -1
  83. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  84. package/dist/esm/components/DatePicker/utils.js.map +1 -1
  85. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  86. package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
  87. package/dist/esm/components/Dropdown/Dropdown.js +3 -3
  88. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  89. package/dist/esm/components/Dropdown/List/List.js.map +1 -1
  90. package/dist/esm/components/Dropdown/utils.js +2 -2
  91. package/dist/esm/components/Dropdown/utils.js.map +1 -1
  92. package/dist/esm/components/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  93. package/dist/esm/components/Forms/Adornment/Adornment.js +1 -2
  94. package/dist/esm/components/Forms/Adornment/Adornment.js.map +1 -1
  95. package/dist/esm/components/Forms/FormElement/validationStates.js.map +1 -1
  96. package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  97. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  98. package/dist/esm/components/Header/Navigation/Navigation.js.map +1 -1
  99. package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
  100. package/dist/esm/components/List/useSelectableList.js +2 -5
  101. package/dist/esm/components/List/useSelectableList.js.map +1 -1
  102. package/dist/esm/components/Loading/Loading.js.map +1 -1
  103. package/dist/esm/components/OverflowTooltip/OverflowTooltip.js +1 -1
  104. package/dist/esm/components/OverflowTooltip/OverflowTooltip.js.map +1 -1
  105. package/dist/esm/components/Pagination/ButtonIconTooltip.js.map +1 -1
  106. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  107. package/dist/esm/components/Pagination/Select.js +2 -4
  108. package/dist/esm/components/Pagination/Select.js.map +1 -1
  109. package/dist/esm/components/Pagination/utils.js.map +1 -1
  110. package/dist/esm/components/SelectionList/SelectionList.js.map +1 -1
  111. package/dist/esm/components/SimpleGrid/SimpleGrid.styles.js +1 -1
  112. package/dist/esm/components/SimpleGrid/SimpleGrid.styles.js.map +1 -1
  113. package/dist/esm/components/Snackbar/Snackbar.js.map +1 -1
  114. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js +12 -8
  115. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js.map +1 -1
  116. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.js +10 -1
  117. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.js.map +1 -1
  118. package/dist/esm/components/TimeAgo/TimeAgo.js +16 -8
  119. package/dist/esm/components/TimeAgo/TimeAgo.js.map +1 -1
  120. package/dist/esm/components/TimeAgo/TimeAgo.styles.js +12 -0
  121. package/dist/esm/components/TimeAgo/TimeAgo.styles.js.map +1 -0
  122. package/dist/esm/hooks/useWidth.js +1 -1
  123. package/dist/esm/hooks/useWidth.js.map +1 -1
  124. package/dist/esm/index.js +28 -28
  125. package/dist/types/index.d.ts +57 -38
  126. package/package.json +5 -5
  127. package/dist/cjs/components/TimeAgo/timeAgoClasses.cjs +0 -8
  128. package/dist/cjs/components/TimeAgo/timeAgoClasses.cjs.map +0 -1
  129. package/dist/esm/components/TimeAgo/timeAgoClasses.js +0 -8
  130. package/dist/esm/components/TimeAgo/timeAgoClasses.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditor.cjs","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":";;;;;;;;;;;;;;AAkDA,MAAMA,sBAAsBA,CAACC,eAAuC;AAClE,QAAMC,mBAAmB,CAAA;AACzBC,SAAOC,KAAKH,UAAU,EAAEI,QAASC,CAAM,MAAA;AACrCJ,qBAAiBI,CAAC,IAAIC,MAAAA,YAAYN,WAAWK,CAAC,CAAC;AAAA,EAAA,CAChD;AACMJ,SAAAA;AACT;AAMO,MAAMM,iBAAiBA,CAAC;AAAA,EAC7BC;AAAAA,EACAC,SAASC;AAAAA,EACTC,OAAOC;AAAAA,EACPC;AAAAA,EACAC;AAAAA,EACAC,WAAWC,iBAAiBC,MAAAA;AAAAA,EAC5BC,UAAU;AAAA,EACVC,cAAc;AAAA,EACdC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACgB,MAAM;AACnB,QAAA;AAAA,IAAEhB;AAAAA,IAASiB;AAAAA,EAAAA,IAAOC,oBAAAA,WAAWjB,WAAW;AAC9C,QAAM,CAACC,OAAOiB,QAAQ,IAAIC,cAAAA,cAAcjB,WAAWC,YAAY;AAC/D,QAAM,CAACiB,UAAUC,WAAW,IAAIC,eAAS,KAAK;AAC9C,QAAM,CAACC,aAAaC,cAAc,IAAIF,eAASrB,KAAK;AACpD,QAAMwB,WAAWC,MAAAA;AAEjB,QAAMnC,mBAAmBF,oBAAoBsC,YAAAA,MAAMrC,WAAWkB,OAAO,KAAK,CAAA,CAAE;AACtE,QAAA;AAAA,IAAEoB;AAAAA,EAAerC,IAAAA;AAEvBsC,QAAAA,gBAAgB,MAAM;AACpB,UAAMC,QAAQL,SAASM;AACvB,QAAIX,YAAYU,OAAO;AACrBA,YAAME,MAAM;AACZF,YAAMG,OAAO;AAAA,IACf;AAAA,EAAA,GACC,CAACb,QAAQ,CAAC;AAEb,QAAMc,cAAcA,MAAM;AACxBb,gBAAY,IAAI;AAChBG,mBAAevB,KAAK;AAAA,EAAA;AAGtB,QAAMkC,aAAcC,CAAU,UAAA;AAC5Bf,gBAAY,KAAK;AAEjB,UAAMgB,WAAWpC,SAASsB;AAC1BL,aAASmB,QAAQ;AACjB3B,qCAAS0B,OAAOC;AAAAA,EAAQ;AAG1B,QAAMC,gBAAiBF,CAAU,UAAA;AAC/B,QAAIG,oBAAWH,OAAOI,cAAcC,cAAAA,GAAG,GAAG;AACxCpB,kBAAY,KAAK;AACjBH,eAASK,WAAW;AAAA,IACtB;AACAX,2CAAYwB;AAAAA,EAAK;AAGbM,QAAAA,eAAeA,CAACN,OAAOO,QAAQ;AACnCzB,aAASyB,GAAG;AACZhC,yCAAWyB,OAAOO;AAAAA,EAAG;AAGvB,wCACE,OAAA;AAAA,IAAK7C,WAAWkB,GAAGlB,WAAWC,QAAQ6C,IAAI;AAAA,IAAEC,UACzCzB,WACC0B,2BAAAA,IAACxC,gBAAc;AAAA,MACbmB;AAAAA,MACA1B,SAAS;AAAA,QACP6C,MAAM7C,QAAQgD;AAAAA,QACdjB,OAAO/B,QAAQ+B;AAAAA,QACfkB,sBAAsBjD,QAAQiD;AAAAA,MAChC;AAAA,MACAC,YAAY;AAAA,QACVC,OAAO;AAAA,UACL,GAAG3D;AAAAA,UACH4D,QAAQ7C,mBAAmBC,gBAAUqB,aAAawB;AAAAA,QACpD;AAAA,MACF;AAAA,MACAnD;AAAAA,MACAS,QAAQyB;AAAAA,MACRxB,UAAU+B;AAAAA,MACV9B,WAAW0B;AAAAA,MAAc,GACrBvB;AAAAA,IAAAA,CACL,IAEDsC,2BAAAA,KAACC,iBAAQ;AAAA,MACP9C,SAAQ;AAAA,MACR+C,oBAAoB;AAAA,MACpBzD,WAAWkB,GAAGjB,QAAQyD,QAAQ;AAAA,QAC5B,CAACzD,QAAQ0D,SAAS,GAAGC,SAAS9B,YAAsB,EAAE,KAAK;AAAA,MAAA,CAC5D;AAAA,MACD+B,SAASzB;AAAAA,MAAY,GACjBrB;AAAAA,MAAWgC,UAAA,CAEfC,2BAAAA,IAACc,yBAAY;AAAA,QACXpD;AAAAA,QACAqD,QAAM;AAAA,QACN/D,WAAWkB,GAAGjB,QAAQ+D,MAAM;AAAA,UAAE,CAAC/D,QAAQgE,SAAS,GAAG,CAAC9D;AAAAA,QAAAA,CAAO;AAAA,QAAE,GACzDa;AAAAA,QAAe+B,UAElB5C,SAASQ;AAAAA,MAAAA,CACE,GACdqC,2BAAAA,IAACkB,sBAAI;AAAA,QACHC,OAAM;AAAA,QACNC,MAAK;AAAA,QACLpE,WAAWkB,GAAGjB,QAAQoE,MAAM;AAAA,UAAE,CAACpE,QAAQqE,WAAW,GAAGhE;AAAAA,QAAAA,CAAU;AAAA,MAAA,CAChE,CAAC;AAAA,IAAA,CACM;AAAA,EAAA,CAET;AAET;;;"}
1
+ {"version":3,"file":"InlineEditor.cjs","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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"}
@@ -3,10 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const React = require("react");
4
4
  function useSelectableList(defaultList = []) {
5
5
  const [list, setList] = React.useState(defaultList);
6
- const [selection, setSelection] = React.useState([]);
7
- React.useEffect(() => {
8
- setSelection(list.filter((elem) => elem.selected));
9
- }, [list]);
6
+ const selection = React.useMemo(() => list.filter((elem) => elem.selected), [list]);
10
7
  return [list, setList, selection];
11
8
  }
12
9
  exports.default = useSelectableList;
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectableList.cjs","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,eAAwBH,WAAW;AAC3D,QAAM,CAACI,WAAWC,YAAY,IAAIF,MAAAA,SAAwB,CAAE,CAAA;AAE5DG,QAAAA,UAAU,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.cjs","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,eAASH,WAAW;AAEtCI,QAAAA,YAAYC,MAAAA,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.cjs","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,kBAAMC,OAAOV,KAAK,KAAKA,QAAQS,YAAAA,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,yCACGc,eAAAA,YAAU;AAAA,IACTf,QAAQ,CAAC,CAACA;AAAAA,IACVI,WAAWY,KAAAA,KACTZ,WACAa,eAAAA,QAAeC,MACff,mCAASe,MACTlB,UAAUgB,KAAKb,KAAAA,mCAASH,QAAQiB,eAAAA,QAAejB,MAAM,CACvD;AAAA,IAAE,GACEK;AAAAA,IAAMc,UAAA,CAEVC,2BAAAA,IAACC,mCAAkB;AAAA,MACjBjB,WAAWY,KAAAA,KAAKC,eAAAA,QAAeK,cAAcnB,mCAASmB,YAAY;AAAA,MAAEH,UAEnEI,eAAAA,QAAM,GAAG,CAAC,EAAEC,IAAKC,CAAAA,qCACfC,0BAAS;AAAA,QAERC,OAAOd;AAAAA,QACPT,WAAWY,KACTC,KAAAA,uBAAeW,YACfzB,mCAASyB,YACTX,eAAAA,QAAeL,OAAO,GACtBT,mCAAUS,QACZ;AAAA,QACAiB,UAAUjB;AAAAA,MAAQ,GARba,CASN,CACF;AAAA,IAAA,CACiB,GACnBvB,SACCkB,2BAAAA,IAACU,4BAAW;AAAA,MACVlB,SAAQ;AAAA,MACRR,WAAWY,KAAAA,KAAKC,eAAAA,QAAef,OAAOC,mCAASD,KAAK;AAAA,MAAEiB,UAErDjB;AAAAA,IAAAA,CACU,CACd;AAAA,EAAA,CACS;AAEhB;;"}
1
+ {"version":3,"file":"Loading.cjs","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,kBAAMC,OAAOV,KAAK,KAAKA,QAAQS,YAAAA,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,yCACGc,eAAAA,YAAU;AAAA,IACTf,QAAQ,CAAC,CAACA;AAAAA,IACVI,WAAWY,KAAAA,KACTZ,WACAa,eAAAA,QAAeC,MACff,mCAASe,MACTlB,UAAUgB,KAAKb,KAAAA,mCAASH,QAAQiB,eAAAA,QAAejB,MAAM,CACvD;AAAA,IAAE,GACEK;AAAAA,IAAMc,UAAA,CAEVC,2BAAAA,IAACC,mCAAkB;AAAA,MACjBjB,WAAWY,KAAAA,KAAKC,eAAAA,QAAeK,cAAcnB,mCAASmB,YAAY;AAAA,MAAEH,UAEnEI,eAAAA,QAAM,GAAG,CAAC,EAAEC,IAAKC,CAAAA,qCACfC,0BAAS;AAAA,QAERC,OAAOd;AAAAA,QACPT,WAAWY,KACTC,KAAAA,uBAAeW,YACfzB,mCAASyB,YACTX,eAAAA,QAAeL,OAAO,GACtBT,mCAAUS,QACZ;AAAA,QACAiB,UAAUjB;AAAAA,MAAQ,GARba,CASN,CACF;AAAA,IAAA,CACiB,GACnBvB,SACCkB,2BAAAA,IAACU,4BAAW;AAAA,MACVlB,SAAQ;AAAA,MACRR,WAAWY,KAAAA,KAAKC,eAAAA,QAAef,OAAOC,mCAASD,KAAK;AAAA,MAAEiB,UAErDjB;AAAAA,IAAAA,CACU,CACd;AAAA,EAAA,CACS;AAEhB;;"}
@@ -8,7 +8,7 @@ const overflowTooltipClasses = require("./overflowTooltipClasses.cjs");
8
8
  const jsxRuntime = require("@emotion/react/jsx-runtime");
9
9
  const Tooltip = require("../Tooltip/Tooltip.cjs");
10
10
  const Typography = require("../Typography/Typography.cjs");
11
- const isParagraph = (children) => /\s/.test(children);
11
+ const isParagraph = (children = "") => /\s/.test(children);
12
12
  const HvOverflowTooltip = ({
13
13
  id,
14
14
  classes,
@@ -1 +1 @@
1
- {"version":3,"file":"OverflowTooltip.cjs","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,sCAAkB;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,MAAAA,QACd,MAAMd,qBAAqBT,YAAYO,6BAAMiB,UAAU,GACvD,CAACjB,MAAME,iBAAiB,CAC1B;AAEA,QAAMgB,UAAUF,MAAAA,QACd,MACEG,2BAAAA,IAACC,uBAAAA,qBAAmB;AAAA,IAClBd;AAAAA,IACAP,WAAWsB,KACTtB,KAAAA,WACA,CAACgB,WACCM,UAAKC,uBAAuBC,QAAAA,eAAezB,mCAASyB,aAAa,GACnER,WACEM,UACEC,uBAAAA,QAAuBE,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,2BAAAA,IAACO,mBAAS;AAAA,IACR7B;AAAAA,IACA8B,sBAAsB,CAACb;AAAAA,IACvBb;AAAAA,IACAE;AAAAA,IACAyB,sCACGC,yBAAY;AAAA,MACX9B,WAAWsB,KAAAA,KACTC,uBAAAA,QAAuBQ,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.cjs","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,sCAAkB;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,MAAAA,QACd,MAAMd,qBAAqBT,YAAYO,6BAAMiB,UAAU,GACvD,CAACjB,MAAME,iBAAiB,CAC1B;AAEA,QAAMgB,UAAUF,MAAAA,QACd,MACEG,2BAAAA,IAACC,uBAAAA,qBAAmB;AAAA,IAClBd;AAAAA,IACAP,WAAWsB,KACTtB,KAAAA,WACA,CAACgB,WACCM,UAAKC,uBAAuBC,QAAAA,eAAezB,mCAASyB,aAAa,GACnER,WACEM,UACEC,uBAAAA,QAAuBE,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,2BAAAA,IAACO,mBAAS;AAAA,IACR7B;AAAAA,IACA8B,sBAAsB,CAACb;AAAAA,IACvBb;AAAAA,IACAE;AAAAA,IACAyB,sCACGC,yBAAY;AAAA,MACX9B,WAAWsB,KAAAA,KACTC,uBAAAA,QAAuBQ,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.cjs","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,wCACGC,QAAAA,WAAS;AAAA,IAACC,sCAAQC,yBAAY;AAAA,MAAAJ,UAAED;AAAAA,IAAAA,CAAsB;AAAA,IAAEC,yCACvD,OAAA;AAAA,MAAAA,yCACGK,iBAAQ;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.cjs","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,wCACGC,QAAAA,WAAS;AAAA,IAACC,sCAAQC,yBAAY;AAAA,MAAAJ,UAAED;AAAAA,IAAAA,CAAsB;AAAA,IAAEC,yCACvD,OAAA;AAAA,MAAAA,yCACGK,iBAAQ;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.cjs","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.cjs","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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"}
@@ -8,11 +8,9 @@ const BaseDropdown = require("../BaseDropdown/BaseDropdown.cjs");
8
8
  const Panel = require("../Panel/Panel.cjs");
9
9
  const SelectionList = require("../SelectionList/SelectionList.cjs");
10
10
  const Option = ({
11
- children,
12
- ...others
11
+ ...props
13
12
  }) => /* @__PURE__ */ jsxRuntime.jsx(ListItem.HvListItem, {
14
- ...others,
15
- children
13
+ ...props
16
14
  });
17
15
  const HvSelect = ({
18
16
  className,
@@ -1 +1 @@
1
- {"version":3,"file":"Select.cjs","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,qCAC1CC,SAAAA,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,cAAAA,WAAWJ,WAAW;AAC1C,QAAM,CAACK,MAAMC,OAAO,IAAIC,eAAS,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,wCACGC,aAAAA,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,yCAETqC,eAAO;AAAA,MAAArC,yCACLsC,+BAAe;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.cjs","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,qCACzDC,SAAAA,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,cAAAA,WAAWN,WAAW;AAC1C,QAAM,CAACO,MAAMC,OAAO,IAAIC,eAAS,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,wCACGC,aAAAA,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,yCAET6B,eAAO;AAAA,MAAA7B,yCACL8B,+BAAe;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.cjs","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,MAAAA,SAAiBF,cAAc,CAAC;AAElDG,QAAAA,eAAeC,kBACnB,CAACC,KAAKC,YAAoBL,QAAQK,OAAO,GACzC,CAAA,CACF;AAEO,SAAA,CAACd,MAAMW,YAAY;AAC5B;;;;"}
1
+ {"version":3,"file":"utils.cjs","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,MAAAA,SAAiBF,cAAc,CAAC;AAElDG,QAAAA,eAAeC,kBACnB,CAACC,KAAUC,YAAoBL,QAAQK,OAAO,GAC9C,CAAA,CACF;AAEO,SAAA,CAACd,MAAMW,YAAY;AAC5B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionList.cjs","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":";;;;;;;;;;;;;;;AA+EA,MAAMA,+BAA+BA,CAACC,UAAUC,aAAa;AACrDC,QAAAA,iBAAiBC,uBAAMC,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,YAAAA,QAAYtB,IAAI,iBAAiB;AAEnD,QAAM,CAACJ,OAAO2B,QAAQ,IAAIC,cAAAA,cACxBpB,WACAC,iBAAiBZ,SACbY;AAAAA;AAAAA;AAAAA,IAGA,MAAMxB,6BAA6BC,UAAUC,QAAQ;AAAA,GAC3D;AAEA,QAAM,CAAC0C,iBAAiBC,kBAAkB,IAAIF,cAAAA,cAC5CT,QACA,SACF;AAEA,QAAM,CAACY,iBAAiB,IAAIH,cAAAA,cAAcR,eAAe,UAAU;AAEnE,QAAM,CAACY,WAAWC,aAAa,IAAIC,cAAQ,MAAM;AAC/C,UAAMC,cAAqB,CAAA;AAC3B,UAAMC,qBAAgC,CAAA;AAEtC/C,mBAAAA,QAAMC,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,MAAAA,OAAO7C,MAAS;AAElC8C,QAAAA,gBAAgBD,aAAY,IAAI;AAEhC,QAAA;AAAA,IAAEE;AAAAA,IAASC;AAAAA,EAAcC,IAAAA;AAE/BC,QAAAA,UAAU,MAAM;AACd,UAAMC,aAAcC,CAAU,UAAA;AAC5B,YAAMC,YAAmB,CAAA;AAEtBC,UAAAA,oBAAWF,OAAOL,OAAO,KACxBK,MAAMG,YACNT,cAAcU,QAAQC,SAASL,MAAMM,MAAM,KAC5CJ,SAAWF,WAAAA,OAAOJ,SAAS,KAC1BI,MAAMG,YACNT,cAAcU,QAAQC,SAASL,MAAMM,MAAM,GAC7C;AACclB,sBAAAA,QAAQ,CAACmB,YAAYlB,MAAM;AACvC,cAAIA,MAAMW,MAAMM,OAAOvD,QAAQ,GAAG;AAChC,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,MAAAA,YAC/B,CACEC,OACAC,cACAC,QACG;AACHD,iDAAeC;AAEX,QAAA,CAACrD,YAAY,CAACC,UAAU;AACtBqD,UAAAA;AACJ,UAAI9E,UAAU;AACZ8E,mBAAWC,2BAAAA,QACTF,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,MAAAA,QAAQ,MAAM;AACrC,WAAO7C,eAAAA,QAAMC,SAASE,IAAIN,UAAU,CAACO,OAAY6C,MAAc;;AACvDxC,YAAAA,kBAAkBmC,cAAcK,CAAC;AAEhCjD,aAAAA,eAAAA,QAAMgF,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,MAAAA,MAAMjD,WAAW,OAAO,IACxBJ;AAEJ,QAAMsD,SAAU9D,SAAS6D,MAAAA,MAAMjD,WAAW,SAAS,KAAM;AAEzD,yCACGmD,qBAAAA,mBAAiB;AAAA,IAChBxE;AAAAA,IACAG;AAAAA,IACAY,QAAQU;AAAAA,IACRjB;AAAAA,IACAF;AAAAA,IACAC;AAAAA,IACAL,WAAWuE,KAAKvE,KAAAA,WAAWwE,qBAAqBC,QAAAA,MAAM1E,mCAAS0E,IAAI;AAAA,IAAE7F,UAEpE2B,CAAAA,SACCmE,2BAAAA,IAACC,kCAAW;AAAA,MACV7E,IAAIsE,MAAAA,MAAMjD,WAAW,OAAO;AAAA,MAC5BZ;AAAAA,MACAP,WAAWuE,KAAAA,KAAKC,qBAAAA,QAAqBjE,OAAOR,mCAASQ,KAAK;AAAA,IAAA,CAC3D,GAEFG,eACCgE,2BAAAA,IAACE,wCAAiB;AAAA,MAChB9E,IAAIsE,MAAAA,MAAMjD,WAAW,aAAa;AAAA,MAClCnB,WAAWuE,KAAAA,KACTC,qBAAAA,QAAqB9D,aACrBX,mCAASW,WACX;AAAA,MAAE9B,UAED8B;AAAAA,IAAAA,CACgB,GAGrBgE,2BAAAA,IAACG,0CAAmB;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,YAAMjD,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,YAAMjD,WAAW,aAAa,GAAGR,eAAe,EAC7DqE,KAAK,GAAG,EACRC,UAAU1F;AAAAA,MAEfS,WAAWuE,KAAAA,KACTxE,mCAASmF,SACTV,qBAAAA,QAAqBU,SACrBlE,gBAAgB,cACduD,KAAKC,KAAAA,qBAAAA,QAAqBW,UAAUpF,mCAASoF,QAAQ,GACvDnE,gBAAgB,gBACduD,KAAKC,KAAAA,qBAAAA,QAAqBY,YAAYrF,mCAASqF,UAAU,GAC3D7D,oBAAoB,aAClBgD,KAAKC,KAAAA,qBAAAA,QAAqBa,SAAStF,mCAASsF,OAAO,CACvD;AAAA,MACAC,KAAKjD;AAAAA,MACLkD,cAAcvE;AAAAA,MACdwE,kBAAkBjE;AAAAA,MAAgB,GAC9BL;AAAAA,MAAMtC,UAETkF;AAAAA,IAAAA,CACkB,GAEpBI,gBACCQ,2BAAAA,IAACe,kCAAW;AAAA,MACV3F,IAAIsE,MAAAA,MAAMjD,WAAW,OAAO;AAAA,MAC5BuE,eAAa;AAAA,MACb1F,WAAWuE,KAAAA,KAAKC,qBAAAA,QAAqBmB,OAAO5F,mCAAS4F,KAAK;AAAA,MAAE/G,UAE3D6C;AAAAA,IAAAA,CACU,CACd;AAAA,EAAA,CACgB;AAEvB;;"}
1
+ {"version":3,"file":"SelectionList.cjs","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":"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"}
@@ -50,6 +50,6 @@ const StyledContainer = /* @__PURE__ */ _styled__default.default("div", process.
50
50
  };
51
51
  return acc;
52
52
  }, {})
53
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvU2ltcGxlR3JpZC9TaW1wbGVHcmlkLnN0eWxlcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkIrQiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL1NpbXBsZUdyaWQvU2ltcGxlR3JpZC5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5pbXBvcnQgeyBTcGFjaW5nLCBCcmVha3BvaW50IH0gZnJvbSBcIi5cIjtcblxuZnVuY3Rpb24gc2l6ZShwcm9wcykge1xuICBpZiAodHlwZW9mIHByb3BzLnNpemUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gcHJvcHMuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiBwcm9wcy5zaXplc1twcm9wcy5zaXplXSB8fCBwcm9wcy5zaXplIHx8IHByb3BzLnNpemVzLm1kO1xufVxuXG5mdW5jdGlvbiBnZXRTb3J0ZWRCcmVha3BvaW50cyhicmVha3BvaW50cykge1xuICBpZiAoYnJlYWtwb2ludHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGJyZWFrcG9pbnRzO1xuICB9XG5cbiAgY29uc3QgcHJvcGVydHkgPSBcIm1heFdpZHRoXCIgaW4gYnJlYWtwb2ludHNbMF0gPyBcIm1heFdpZHRoXCIgOiBcIm1pbldpZHRoXCI7XG4gIGNvbnN0IHNvcnRlZCA9IFsuLi5icmVha3BvaW50c10uc29ydChcbiAgICAoYSwgYikgPT5cbiAgICAgIHNpemUoeyBzaXplOiBiW3Byb3BlcnR5XSwgc2l6ZXM6IHRoZW1lLmJyZWFrcG9pbnRzIH0pIC1cbiAgICAgIHNpemUoeyBzaXplOiBhW3Byb3BlcnR5XSwgc2l6ZXM6IHRoZW1lLmJyZWFrcG9pbnRzIH0pXG4gICk7XG5cbiAgcmV0dXJuIHByb3BlcnR5ID09PSBcIm1pbldpZHRoXCIgPyBzb3J0ZWQucmV2ZXJzZSgpIDogc29ydGVkO1xufVxuXG5leHBvcnQgY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkKFwiZGl2XCIpKFxuICAoe1xuICAgIGJyZWFrcG9pbnRzLFxuICAgIHNwYWNpbmcsXG4gICAgY29scyxcbiAgfToge1xuICAgIGJyZWFrcG9pbnRzPzogQnJlYWtwb2ludFtdO1xuICAgIHNwYWNpbmc6IFNwYWNpbmc7XG4gICAgY29scz86IG51bWJlcjtcbiAgfSkgPT4gKHtcbiAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgIGRpc3BsYXk6IFwiZ3JpZFwiLFxuICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IGByZXBlYXQoJHtjb2xzfSwgbWlubWF4KDAsIDFmcikpYCxcbiAgICBnYXA6IHRoZW1lLnNwYWNlW3NwYWNpbmddLFxuICAgIC4uLihicmVha3BvaW50cyAmJlxuICAgICAgZ2V0U29ydGVkQnJlYWtwb2ludHMoYnJlYWtwb2ludHMpLnJlZHVjZSgoYWNjLCBicmVha3BvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gXCJtYXhXaWR0aFwiIGluIGJyZWFrcG9pbnQgPyBcIm1heC13aWR0aFwiIDogXCJtaW4td2lkdGhcIjtcbiAgICAgICAgY29uc3QgYnJlYWtwb2ludFNpemUgPSBzaXplKHtcbiAgICAgICAgICBzaXplOlxuICAgICAgICAgICAgcHJvcGVydHkgPT09IFwibWF4LXdpZHRoXCJcbiAgICAgICAgICAgICAgPyBicmVha3BvaW50Lm1heFdpZHRoXG4gICAgICAgICAgICAgIDogYnJlYWtwb2ludC5taW5XaWR0aCxcbiAgICAgICAgICBzaXplczogdGhlbWUuYnJlYWtwb2ludHMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFjY1tcbiAgICAgICAgICBgQG1lZGlhICgke3Byb3BlcnR5fTogJHtcbiAgICAgICAgICAgIGJyZWFrcG9pbnRTaXplICsgKHByb3BlcnR5ID09PSBcIm1heC13aWR0aFwiID8gMCA6IDEpXG4gICAgICAgICAgfXB4KWBcbiAgICAgICAgXSA9IHtcbiAgICAgICAgICBncmlkVGVtcGxhdGVDb2x1bW5zOiBgcmVwZWF0KCR7YnJlYWtwb2ludC5jb2xzfSwgbWlubWF4KDAsIDFmcikpYCxcbiAgICAgICAgICBnYXA6IHRoZW1lLnNwYWNlW3NwYWNpbmddLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSkpLFxuICB9KVxuKTtcbiJdfQ== */");
53
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvU2ltcGxlR3JpZC9TaW1wbGVHcmlkLnN0eWxlcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkIrQiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL1NpbXBsZUdyaWQvU2ltcGxlR3JpZC5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5pbXBvcnQgeyBTcGFjaW5nLCBCcmVha3BvaW50IH0gZnJvbSBcIi5cIjtcblxuZnVuY3Rpb24gc2l6ZShwcm9wczogeyBzaXplOiBhbnk7IHNpemVzOiBhbnkgfSkge1xuICBpZiAodHlwZW9mIHByb3BzLnNpemUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gcHJvcHMuc2l6ZTtcbiAgfVxuXG4gIHJldHVybiBwcm9wcy5zaXplc1twcm9wcy5zaXplXSB8fCBwcm9wcy5zaXplIHx8IHByb3BzLnNpemVzLm1kO1xufVxuXG5mdW5jdGlvbiBnZXRTb3J0ZWRCcmVha3BvaW50cyhicmVha3BvaW50czogQnJlYWtwb2ludFtdKSB7XG4gIGlmIChicmVha3BvaW50cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gYnJlYWtwb2ludHM7XG4gIH1cblxuICBjb25zdCBwcm9wZXJ0eSA9IFwibWF4V2lkdGhcIiBpbiBicmVha3BvaW50c1swXSA/IFwibWF4V2lkdGhcIiA6IFwibWluV2lkdGhcIjtcbiAgY29uc3Qgc29ydGVkID0gWy4uLmJyZWFrcG9pbnRzXS5zb3J0KFxuICAgIChhLCBiKSA9PlxuICAgICAgc2l6ZSh7IHNpemU6IGJbcHJvcGVydHldLCBzaXplczogdGhlbWUuYnJlYWtwb2ludHMgfSkgLVxuICAgICAgc2l6ZSh7IHNpemU6IGFbcHJvcGVydHldLCBzaXplczogdGhlbWUuYnJlYWtwb2ludHMgfSlcbiAgKTtcblxuICByZXR1cm4gcHJvcGVydHkgPT09IFwibWluV2lkdGhcIiA/IHNvcnRlZC5yZXZlcnNlKCkgOiBzb3J0ZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQoXCJkaXZcIikoXG4gICh7XG4gICAgYnJlYWtwb2ludHMsXG4gICAgc3BhY2luZyxcbiAgICBjb2xzLFxuICB9OiB7XG4gICAgYnJlYWtwb2ludHM/OiBCcmVha3BvaW50W107XG4gICAgc3BhY2luZzogU3BhY2luZztcbiAgICBjb2xzPzogbnVtYmVyO1xuICB9KSA9PiAoe1xuICAgIGJveFNpemluZzogXCJib3JkZXItYm94XCIsXG4gICAgZGlzcGxheTogXCJncmlkXCIsXG4gICAgZ3JpZFRlbXBsYXRlQ29sdW1uczogYHJlcGVhdCgke2NvbHN9LCBtaW5tYXgoMCwgMWZyKSlgLFxuICAgIGdhcDogdGhlbWUuc3BhY2Vbc3BhY2luZ10sXG4gICAgLi4uKGJyZWFrcG9pbnRzICYmXG4gICAgICBnZXRTb3J0ZWRCcmVha3BvaW50cyhicmVha3BvaW50cykucmVkdWNlKChhY2MsIGJyZWFrcG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSBcIm1heFdpZHRoXCIgaW4gYnJlYWtwb2ludCA/IFwibWF4LXdpZHRoXCIgOiBcIm1pbi13aWR0aFwiO1xuICAgICAgICBjb25zdCBicmVha3BvaW50U2l6ZSA9IHNpemUoe1xuICAgICAgICAgIHNpemU6XG4gICAgICAgICAgICBwcm9wZXJ0eSA9PT0gXCJtYXgtd2lkdGhcIlxuICAgICAgICAgICAgICA/IGJyZWFrcG9pbnQubWF4V2lkdGhcbiAgICAgICAgICAgICAgOiBicmVha3BvaW50Lm1pbldpZHRoLFxuICAgICAgICAgIHNpemVzOiB0aGVtZS5icmVha3BvaW50cyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYWNjW1xuICAgICAgICAgIGBAbWVkaWEgKCR7cHJvcGVydHl9OiAke1xuICAgICAgICAgICAgYnJlYWtwb2ludFNpemUgKyAocHJvcGVydHkgPT09IFwibWF4LXdpZHRoXCIgPyAwIDogMSlcbiAgICAgICAgICB9cHgpYFxuICAgICAgICBdID0ge1xuICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IGByZXBlYXQoJHticmVha3BvaW50LmNvbHN9LCBtaW5tYXgoMCwgMWZyKSlgLFxuICAgICAgICAgIGdhcDogdGhlbWUuc3BhY2Vbc3BhY2luZ10sXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KSksXG4gIH0pXG4pO1xuIl19 */");
54
54
  exports.StyledContainer = StyledContainer;
55
55
  //# sourceMappingURL=SimpleGrid.styles.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleGrid.styles.cjs","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","_styled","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,YAAMP,MAAAA;AAAAA,EAAa,CAAA,IACpDL,KAAK;AAAA,IAAEA,MAAMU,EAAEH,QAAQ;AAAA,IAAGL,OAAOU,YAAMP,MAAAA;AAAAA,EAAa,CAAA,CACxD;AAEA,SAAOE,aAAa,aAAaC,OAAOK,QAAAA,IAAYL;AACtD;AAEO,MAAMM,kBAAyBC,iCAAA,QAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EACzC,CAAC;AAAA,EACCf;AAAAA,EACAgB;AAAAA,EACAC;AAKF,OAAO;AAAA,EACLC,WAAW;AAAA,EACXC,SAAS;AAAA,EACTC,qBAAsB,UAASH;AAAAA,EAC/BI,KAAKd,YAAAA,MAAMe,MAAMN,OAAO;AAAA,EACxB,GAAIhB,eACFD,qBAAqBC,WAAW,EAAEuB,OAAO,CAACC,KAAKC,eAAe;AACtDvB,UAAAA,WAAW,cAAcuB,aAAa,cAAc;AAC1D,UAAMC,iBAAiB/B,KAAK;AAAA,MAC1BA,MACEO,aAAa,cACTuB,WAAWE,WACXF,WAAWG;AAAAA,MACjB/B,OAAOU,YAAMP,MAAAA;AAAAA,IAAAA,CACd;AAEDwB,QACG,WAAUtB,aACTwB,kBAAkBxB,aAAa,cAAc,IAAI,OAC9C,IACH;AAAA,MACFkB,qBAAsB,UAASK,WAAWR;AAAAA,MAC1CI,KAAKd,YAAAA,MAAMe,MAAMN,OAAO;AAAA,IAAA;AAGnBQ,WAAAA;AAAAA,EACT,GAAG,EAAE;AACT,IAAEb,QAAAC,IAAAC,05FACJ;;"}
1
+ {"version":3,"file":"SimpleGrid.styles.cjs","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","_styled","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,YAAMP,MAAAA;AAAAA,EAAa,CAAA,IACpDL,KAAK;AAAA,IAAEA,MAAMU,EAAEH,QAAQ;AAAA,IAAGL,OAAOU,YAAMP,MAAAA;AAAAA,EAAa,CAAA,CACxD;AAEA,SAAOE,aAAa,aAAaC,OAAOK,QAAAA,IAAYL;AACtD;AAEO,MAAMM,kBAAyBC,iCAAA,QAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EACzC,CAAC;AAAA,EACCf;AAAAA,EACAgB;AAAAA,EACAC;AAKF,OAAO;AAAA,EACLC,WAAW;AAAA,EACXC,SAAS;AAAA,EACTC,qBAAsB,UAASH;AAAAA,EAC/BI,KAAKd,YAAAA,MAAMe,MAAMN,OAAO;AAAA,EACxB,GAAIhB,eACFD,qBAAqBC,WAAW,EAAEuB,OAAO,CAACC,KAAKC,eAAe;AACtDvB,UAAAA,WAAW,cAAcuB,aAAa,cAAc;AAC1D,UAAMC,iBAAiB/B,KAAK;AAAA,MAC1BA,MACEO,aAAa,cACTuB,WAAWE,WACXF,WAAWG;AAAAA,MACjB/B,OAAOU,YAAMP,MAAAA;AAAAA,IAAAA,CACd;AAEDwB,QACG,WAAUtB,aACTwB,kBAAkBxB,aAAa,cAAc,IAAI,OAC9C,IACH;AAAA,MACFkB,qBAAsB,UAASK,WAAWR;AAAAA,MAC1CI,KAAKd,YAAAA,MAAMe,MAAMN,OAAO;AAAA,IAAA;AAGnBQ,WAAAA;AAAAA,EACT,GAAG,EAAE;AACT,IAAEb,QAAAC,IAAAC,88FACJ;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Snackbar.cjs","sources":["../../../../src/components/Snackbar/Snackbar.tsx"],"sourcesContent":["import Slide from \"@mui/material/Slide\";\nimport {\n SnackbarCloseReason,\n SnackbarOrigin,\n SnackbarProps as MuiSnackbarProps,\n} from \"@mui/material/Snackbar\";\nimport { Snackbar as MuiSnackbar } from \"@mui/material\";\nimport { HvBaseProps } from \"@core/types\";\nimport capitalize from \"lodash/capitalize\";\nimport { SyntheticEvent } from \"react\";\nimport { ExtractNames, setId } from \"@core/utils\";\nimport { HvActionGeneric } from \"@core/components\";\nimport {\n HvSnackbarContentProps,\n HvSnackbarContent,\n} from \"./SnackbarContentWrapper\";\nimport { staticClasses, useClasses } from \"./Snackbar.styles\";\n\nexport { staticClasses as snackbarClasses };\n\nexport type HvSnackbarClasses = ExtractNames<typeof useClasses>;\n\nexport type HvSnackbarVariant = \"default\" | \"success\" | \"warning\" | \"error\";\n\nexport interface HvSnackbarProps\n extends Omit<MuiSnackbarProps, \"action\" | \"classes\">,\n Omit<HvBaseProps, \"children\"> {\n /** If true, Snackbar is open. */\n open?: boolean;\n /** Callback fired when the component requests to be closed. Typically onClose is used to set state in the parent component, which is used to control the Snackbar open prop. The reason parameter can optionally be used to control the response to onClose, for example ignoring clickaway. */\n onClose?:\n | ((\n event: Event | SyntheticEvent<any, Event>,\n reason: SnackbarCloseReason\n ) => void)\n | undefined;\n /** The message to display. */\n label?: React.ReactNode;\n /** The anchor of the Snackbar. vertical: \"top\", \"bottom\" | horizontal: \"left\",\"center\",\"right. It defines where the snackbar will end his animation */\n anchorOrigin?: SnackbarOrigin;\n /** The number of milliseconds to wait before automatically calling the onClose function. onClose should then set the state of the open prop to hide the Snackbar */\n autoHideDuration?: number;\n /** Variant of the snackbar. */\n variant?: HvSnackbarVariant;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Action to display. */\n action?: React.ReactNode | HvActionGeneric;\n /** The callback function ran when an action is triggered, receiving `action` as param */\n actionCallback?: (\n event: React.SyntheticEvent,\n id: string,\n action: HvActionGeneric\n ) => void;\n /** Duration of transition in milliseconds. */\n transitionDuration?: number;\n /** Direction of slide transition. */\n transitionDirection?: \"up\" | \"down\" | \"left\" | \"right\";\n /** Custom offset from top/bottom of the page, in px. */\n offset?: number;\n /** Others applied to the content of the snackbar. */\n snackbarContentProps?: HvSnackbarContentProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: Partial<HvSnackbarClasses>;\n}\n\nconst transLeft = (props) => <Slide {...props} direction=\"left\" />;\nconst transRight = (props) => <Slide {...props} direction=\"right\" />;\nconst transUp = (props) => <Slide {...props} direction=\"up\" />;\nconst transDown = (props) => <Slide {...props} direction=\"down\" />;\n\nconst snackBarDirComponent = (direction) => {\n switch (direction) {\n case \"right\":\n return transRight;\n case \"up\":\n return transUp;\n case \"down\":\n return transDown;\n case \"left\":\n default:\n return transLeft;\n }\n};\n\n/**\n * A Snackbar provides brief messages about app processes.\n * It is dismissed automatically after a given interval.\n *\n * Snackbar can be built with two different components.\n * One is the HvSnackbar, which wraps all the positioning, transition, auto hide, etc.\n * The other is the HvSnackbarContent, which allows a finer control and customization of the content of the Snackbar.\n */\nexport const HvSnackbar = ({\n classes: classesProp = {},\n className,\n id,\n open = false,\n onClose,\n label = \"\",\n anchorOrigin = { vertical: \"top\", horizontal: \"right\" },\n autoHideDuration = 5000,\n variant = \"default\",\n showIcon = false,\n customIcon = null,\n action = null,\n actionCallback,\n transitionDuration = 300,\n transitionDirection = \"left\",\n offset = 60,\n snackbarContentProps,\n ...others\n}: HvSnackbarProps) => {\n const { classes } = useClasses(classesProp);\n\n const anchorOriginOffset = {\n anchorOriginTop: {\n top: `${offset}px`,\n },\n anchorOriginBottom: {\n bottom: `${offset}px`,\n },\n };\n\n return (\n <MuiSnackbar\n style={\n anchorOriginOffset[`anchorOrigin${capitalize(anchorOrigin.vertical)}`]\n }\n classes={classes}\n className={className}\n id={id}\n anchorOrigin={anchorOrigin}\n open={open}\n onClose={onClose}\n autoHideDuration={autoHideDuration}\n transitionDuration={transitionDuration}\n TransitionComponent={snackBarDirComponent(transitionDirection)}\n {...others}\n >\n <HvSnackbarContent\n id={setId(id, \"content\")}\n label={label}\n variant={variant}\n customIcon={customIcon}\n showIcon={showIcon}\n action={action}\n actionCallback={actionCallback}\n {...snackbarContentProps}\n />\n </MuiSnackbar>\n );\n};\n"],"names":["transLeft","props","_jsx","Slide","direction","transRight","transUp","transDown","snackBarDirComponent","HvSnackbar","classes","classesProp","className","id","open","onClose","label","anchorOrigin","vertical","horizontal","autoHideDuration","variant","showIcon","customIcon","action","actionCallback","transitionDuration","transitionDirection","offset","snackbarContentProps","others","useClasses","anchorOriginOffset","anchorOriginTop","top","anchorOriginBottom","bottom","MuiSnackbar","style","capitalize","TransitionComponent","children","HvSnackbarContent","setId"],"mappings":";;;;;;;;;;;;AAoEA,MAAMA,YAAaC,CAAUC,UAAAA,2BAAAA,IAACC,wBAAK;AAAA,EAAA,GAAKF;AAAAA,EAAOG,WAAU;AAAM,CAAE;AACjE,MAAMC,aAAcJ,CAAUC,UAAAA,2BAAAA,IAACC,wBAAK;AAAA,EAAA,GAAKF;AAAAA,EAAOG,WAAU;AAAO,CAAE;AACnE,MAAME,UAAWL,CAAUC,UAAAA,2BAAAA,IAACC,wBAAK;AAAA,EAAA,GAAKF;AAAAA,EAAOG,WAAU;AAAI,CAAE;AAC7D,MAAMG,YAAaN,CAAUC,UAAAA,2BAAAA,IAACC,wBAAK;AAAA,EAAA,GAAKF;AAAAA,EAAOG,WAAU;AAAM,CAAE;AAEjE,MAAMI,uBAAwBJ,CAAc,cAAA;AAC1C,UAAQA,WAAS;AAAA,IACf,KAAK;AACIC,aAAAA;AAAAA,IACT,KAAK;AACIC,aAAAA;AAAAA,IACT,KAAK;AACIC,aAAAA;AAAAA,IACT,KAAK;AAAA,IACL;AACSP,aAAAA;AAAAA,EACX;AACF;AAUO,MAAMS,aAAaA,CAAC;AAAA,EACzBC,SAASC,cAAc,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC,OAAO;AAAA,EACPC;AAAAA,EACAC,QAAQ;AAAA,EACRC,eAAe;AAAA,IAAEC,UAAU;AAAA,IAAOC,YAAY;AAAA,EAAQ;AAAA,EACtDC,mBAAmB;AAAA,EACnBC,UAAU;AAAA,EACVC,WAAW;AAAA,EACXC,aAAa;AAAA,EACbC,SAAS;AAAA,EACTC;AAAAA,EACAC,qBAAqB;AAAA,EACrBC,sBAAsB;AAAA,EACtBC,SAAS;AAAA,EACTC;AAAAA,EACA,GAAGC;AACY,MAAM;AACf,QAAA;AAAA,IAAEpB;AAAAA,EAAAA,IAAYqB,gBAAAA,WAAWpB,WAAW;AAE1C,QAAMqB,qBAAqB;AAAA,IACzBC,iBAAiB;AAAA,MACfC,KAAM,GAAEN;AAAAA,IACV;AAAA,IACAO,oBAAoB;AAAA,MAClBC,QAAS,GAAER;AAAAA,IACb;AAAA,EAAA;AAGF,wCACGS,SAAAA,UAAW;AAAA,IACVC,OACEN,mBAAoB,eAAcO,oBAAWtB,QAAAA,aAAaC,QAAQ,GAAG;AAAA,IAEvER;AAAAA,IACAE;AAAAA,IACAC;AAAAA,IACAI;AAAAA,IACAH;AAAAA,IACAC;AAAAA,IACAK;AAAAA,IACAM;AAAAA,IACAc,qBAAqBhC,qBAAqBmB,mBAAmB;AAAA,IAAE,GAC3DG;AAAAA,IAAMW,yCAETC,0CAAiB;AAAA,MAChB7B,IAAI8B,MAAAA,MAAM9B,IAAI,SAAS;AAAA,MACvBG;AAAAA,MACAK;AAAAA,MACAE;AAAAA,MACAD;AAAAA,MACAE;AAAAA,MACAC;AAAAA,MAA+B,GAC3BI;AAAAA,IAAAA,CACL;AAAA,EAAA,CACU;AAEjB;;;"}
1
+ {"version":3,"file":"Snackbar.cjs","sources":["../../../../src/components/Snackbar/Snackbar.tsx"],"sourcesContent":["import Slide from \"@mui/material/Slide\";\nimport {\n SnackbarCloseReason,\n SnackbarOrigin,\n SnackbarProps as MuiSnackbarProps,\n} from \"@mui/material/Snackbar\";\nimport { Snackbar as MuiSnackbar } from \"@mui/material\";\nimport { HvBaseProps } from \"@core/types\";\nimport capitalize from \"lodash/capitalize\";\nimport { SyntheticEvent } from \"react\";\nimport { ExtractNames, setId } from \"@core/utils\";\nimport { HvActionGeneric } from \"@core/components\";\nimport {\n HvSnackbarContentProps,\n HvSnackbarContent,\n} from \"./SnackbarContentWrapper\";\nimport { staticClasses, useClasses } from \"./Snackbar.styles\";\n\nexport { staticClasses as snackbarClasses };\n\nexport type HvSnackbarClasses = ExtractNames<typeof useClasses>;\n\nexport type HvSnackbarVariant = \"default\" | \"success\" | \"warning\" | \"error\";\n\nexport interface HvSnackbarProps\n extends Omit<MuiSnackbarProps, \"action\" | \"classes\">,\n Omit<HvBaseProps, \"children\"> {\n /** If true, Snackbar is open. */\n open?: boolean;\n /** Callback fired when the component requests to be closed. Typically onClose is used to set state in the parent component, which is used to control the Snackbar open prop. The reason parameter can optionally be used to control the response to onClose, for example ignoring clickaway. */\n onClose?:\n | ((\n event: Event | SyntheticEvent<any, Event>,\n reason: SnackbarCloseReason\n ) => void)\n | undefined;\n /** The message to display. */\n label?: React.ReactNode;\n /** The anchor of the Snackbar. vertical: \"top\", \"bottom\" | horizontal: \"left\",\"center\",\"right. It defines where the snackbar will end his animation */\n anchorOrigin?: SnackbarOrigin;\n /** The number of milliseconds to wait before automatically calling the onClose function. onClose should then set the state of the open prop to hide the Snackbar */\n autoHideDuration?: number;\n /** Variant of the snackbar. */\n variant?: HvSnackbarVariant;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Action to display. */\n action?: React.ReactNode | HvActionGeneric;\n /** The callback function ran when an action is triggered, receiving `action` as param */\n actionCallback?: (\n event: React.SyntheticEvent,\n id: string,\n action: HvActionGeneric\n ) => void;\n /** Duration of transition in milliseconds. */\n transitionDuration?: number;\n /** Direction of slide transition. */\n transitionDirection?: \"up\" | \"down\" | \"left\" | \"right\";\n /** Custom offset from top/bottom of the page, in px. */\n offset?: number;\n /** Others applied to the content of the snackbar. */\n snackbarContentProps?: HvSnackbarContentProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSnackbarClasses;\n}\n\nconst transLeft = (props) => <Slide {...props} direction=\"left\" />;\nconst transRight = (props) => <Slide {...props} direction=\"right\" />;\nconst transUp = (props) => <Slide {...props} direction=\"up\" />;\nconst transDown = (props) => <Slide {...props} direction=\"down\" />;\n\nconst snackBarDirComponent = (direction) => {\n switch (direction) {\n case \"right\":\n return transRight;\n case \"up\":\n return transUp;\n case \"down\":\n return transDown;\n case \"left\":\n default:\n return transLeft;\n }\n};\n\n/**\n * A Snackbar provides brief messages about app processes.\n * It is dismissed automatically after a given interval.\n *\n * Snackbar can be built with two different components.\n * One is the HvSnackbar, which wraps all the positioning, transition, auto hide, etc.\n * The other is the HvSnackbarContent, which allows a finer control and customization of the content of the Snackbar.\n */\nexport const HvSnackbar = ({\n classes: classesProp = {},\n className,\n id,\n open = false,\n onClose,\n label = \"\",\n anchorOrigin = { vertical: \"top\", horizontal: \"right\" },\n autoHideDuration = 5000,\n variant = \"default\",\n showIcon = false,\n customIcon = null,\n action = null,\n actionCallback,\n transitionDuration = 300,\n transitionDirection = \"left\",\n offset = 60,\n snackbarContentProps,\n ...others\n}: HvSnackbarProps) => {\n const { classes } = useClasses(classesProp);\n\n const anchorOriginOffset = {\n anchorOriginTop: {\n top: `${offset}px`,\n },\n anchorOriginBottom: {\n bottom: `${offset}px`,\n },\n };\n\n return (\n <MuiSnackbar\n style={\n anchorOriginOffset[`anchorOrigin${capitalize(anchorOrigin.vertical)}`]\n }\n classes={classes}\n className={className}\n id={id}\n anchorOrigin={anchorOrigin}\n open={open}\n onClose={onClose}\n autoHideDuration={autoHideDuration}\n transitionDuration={transitionDuration}\n TransitionComponent={snackBarDirComponent(transitionDirection)}\n {...others}\n >\n <HvSnackbarContent\n id={setId(id, \"content\")}\n label={label}\n variant={variant}\n customIcon={customIcon}\n showIcon={showIcon}\n action={action}\n actionCallback={actionCallback}\n {...snackbarContentProps}\n />\n </MuiSnackbar>\n );\n};\n"],"names":["transLeft","props","_jsx","Slide","direction","transRight","transUp","transDown","snackBarDirComponent","HvSnackbar","classes","classesProp","className","id","open","onClose","label","anchorOrigin","vertical","horizontal","autoHideDuration","variant","showIcon","customIcon","action","actionCallback","transitionDuration","transitionDirection","offset","snackbarContentProps","others","useClasses","anchorOriginOffset","anchorOriginTop","top","anchorOriginBottom","bottom","MuiSnackbar","style","capitalize","TransitionComponent","children","HvSnackbarContent","setId"],"mappings":";;;;;;;;;;;;AAoEA,MAAMA,YAAaC,CAAUC,UAAAA,2BAAAA,IAACC,wBAAK;AAAA,EAAA,GAAKF;AAAAA,EAAOG,WAAU;AAAM,CAAE;AACjE,MAAMC,aAAcJ,CAAUC,UAAAA,2BAAAA,IAACC,wBAAK;AAAA,EAAA,GAAKF;AAAAA,EAAOG,WAAU;AAAO,CAAE;AACnE,MAAME,UAAWL,CAAUC,UAAAA,2BAAAA,IAACC,wBAAK;AAAA,EAAA,GAAKF;AAAAA,EAAOG,WAAU;AAAI,CAAE;AAC7D,MAAMG,YAAaN,CAAUC,UAAAA,2BAAAA,IAACC,wBAAK;AAAA,EAAA,GAAKF;AAAAA,EAAOG,WAAU;AAAM,CAAE;AAEjE,MAAMI,uBAAwBJ,CAAc,cAAA;AAC1C,UAAQA,WAAS;AAAA,IACf,KAAK;AACIC,aAAAA;AAAAA,IACT,KAAK;AACIC,aAAAA;AAAAA,IACT,KAAK;AACIC,aAAAA;AAAAA,IACT,KAAK;AAAA,IACL;AACSP,aAAAA;AAAAA,EACX;AACF;AAUO,MAAMS,aAAaA,CAAC;AAAA,EACzBC,SAASC,cAAc,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC,OAAO;AAAA,EACPC;AAAAA,EACAC,QAAQ;AAAA,EACRC,eAAe;AAAA,IAAEC,UAAU;AAAA,IAAOC,YAAY;AAAA,EAAQ;AAAA,EACtDC,mBAAmB;AAAA,EACnBC,UAAU;AAAA,EACVC,WAAW;AAAA,EACXC,aAAa;AAAA,EACbC,SAAS;AAAA,EACTC;AAAAA,EACAC,qBAAqB;AAAA,EACrBC,sBAAsB;AAAA,EACtBC,SAAS;AAAA,EACTC;AAAAA,EACA,GAAGC;AACY,MAAM;AACf,QAAA;AAAA,IAAEpB;AAAAA,EAAAA,IAAYqB,gBAAAA,WAAWpB,WAAW;AAE1C,QAAMqB,qBAAqB;AAAA,IACzBC,iBAAiB;AAAA,MACfC,KAAM,GAAEN;AAAAA,IACV;AAAA,IACAO,oBAAoB;AAAA,MAClBC,QAAS,GAAER;AAAAA,IACb;AAAA,EAAA;AAGF,wCACGS,SAAAA,UAAW;AAAA,IACVC,OACEN,mBAAoB,eAAcO,oBAAWtB,QAAAA,aAAaC,QAAQ,GAAG;AAAA,IAEvER;AAAAA,IACAE;AAAAA,IACAC;AAAAA,IACAI;AAAAA,IACAH;AAAAA,IACAC;AAAAA,IACAK;AAAAA,IACAM;AAAAA,IACAc,qBAAqBhC,qBAAqBmB,mBAAmB;AAAA,IAAE,GAC3DG;AAAAA,IAAMW,yCAETC,0CAAiB;AAAA,MAChB7B,IAAI8B,MAAAA,MAAM9B,IAAI,SAAS;AAAA,MACvBG;AAAAA,MACAK;AAAAA,MACAE;AAAAA,MACAD;AAAAA,MACAE;AAAAA,MACAC;AAAAA,MAA+B,GAC3BI;AAAAA,IAAAA,CACL;AAAA,EAAA,CACU;AAEjB;;;"}
@@ -5,6 +5,7 @@ const SnackbarContent = require("@mui/material/SnackbarContent");
5
5
  const SnackbarContentWrapper_styles = require("./SnackbarContentWrapper.styles.cjs");
6
6
  const jsxRuntime = require("@emotion/react/jsx-runtime");
7
7
  const iconVariant = require("../../../utils/iconVariant.cjs");
8
+ const useTheme = require("../../../hooks/useTheme.cjs");
8
9
  const setId = require("../../../utils/setId.cjs");
9
10
  const ActionsGeneric = require("../../ActionsGeneric/ActionsGeneric.cjs");
10
11
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
@@ -14,7 +15,7 @@ const HvSnackbarContent = React.forwardRef(({
14
15
  id,
15
16
  classes: classesProp = {},
16
17
  label,
17
- variant,
18
+ variant = "default",
18
19
  showIcon,
19
20
  customIcon,
20
21
  action,
@@ -27,29 +28,32 @@ const HvSnackbarContent = React.forwardRef(({
27
28
  classes,
28
29
  cx
29
30
  } = SnackbarContentWrapper_styles.useClasses(classesProp);
31
+ const {
32
+ activeTheme
33
+ } = useTheme.useTheme();
30
34
  return /* @__PURE__ */ jsxRuntime.jsx(SnackbarContent__default.default, {
31
35
  ref,
32
36
  id,
33
37
  classes: {
34
- root: classes == null ? void 0 : classes.root,
35
- message: classes == null ? void 0 : classes.message
38
+ root: classes.root,
39
+ message: classes.message
36
40
  },
37
41
  className: cx(className, classes == null ? void 0 : classes[variant]),
38
42
  message: /* @__PURE__ */ jsxRuntime.jsxs("div", {
39
43
  id: setId.setId(id, "message"),
40
- className: classes == null ? void 0 : classes.messageSpan,
44
+ className: classes.messageSpan,
41
45
  children: [icon && /* @__PURE__ */ jsxRuntime.jsx("div", {
42
- className: classes == null ? void 0 : classes.iconVariant,
46
+ className: classes.iconVariant,
43
47
  children: icon
44
48
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
45
- className: classes == null ? void 0 : classes.messageText,
49
+ className: classes.messageText,
46
50
  children: label
47
51
  }), action && /* @__PURE__ */ jsxRuntime.jsx("div", {
48
52
  id: setId.setId(id, "action"),
49
- className: classes == null ? void 0 : classes.action,
53
+ className: classes.action,
50
54
  children: /* @__PURE__ */ jsxRuntime.jsx(ActionsGeneric.HvActionsGeneric, {
51
55
  id,
52
- category: "secondaryGhost",
56
+ category: activeTheme == null ? void 0 : activeTheme.snackbar.actionButtonVariant,
53
57
  actions: innerAction,
54
58
  actionsCallback: actionCallback
55
59
  })
@@ -1 +1 @@
1
- {"version":3,"file":"SnackbarContentWrapper.cjs","sources":["../../../../../src/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.tsx"],"sourcesContent":["import { forwardRef, isValidElement } from \"react\";\nimport SnackbarContent, {\n SnackbarContentProps as MuiSnackbarContentProps,\n} from \"@mui/material/SnackbarContent\";\nimport { ExtractNames, iconVariant, setId } from \"@core/utils\";\nimport { HvBaseProps } from \"@core/types\";\nimport { HvActionsGeneric, HvActionGeneric } from \"@core/components\";\nimport { HvSnackbarVariant } from \"../Snackbar\";\nimport { staticClasses, useClasses } from \"./SnackbarContentWrapper.styles\";\n\nexport { staticClasses as snackbarContentClasses };\n\nexport type HvSnackbarContentClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSnackbarContentProps\n extends Omit<MuiSnackbarContentProps, \"variant\" | \"action\" | \"classes\">,\n HvBaseProps {\n /** The message to display. */\n label?: React.ReactNode;\n /** Variant of the snackbar. */\n variant: HvSnackbarVariant;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** Action to display. */\n action?: React.ReactNode | HvActionGeneric;\n /** The callback function ran when an action is triggered, receiving `action` as param */\n actionCallback?: (\n event: React.SyntheticEvent,\n id: string,\n action: HvActionGeneric\n ) => void;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: Partial<HvSnackbarContentClasses>;\n}\n\nexport const HvSnackbarContent = forwardRef<\n HTMLDivElement,\n HvSnackbarContentProps\n>(\n (\n {\n className,\n id,\n classes: classesProp = {},\n label,\n variant,\n showIcon,\n customIcon,\n action,\n actionCallback,\n ...others\n },\n ref\n ) => {\n const icon = customIcon || (showIcon && iconVariant(variant, \"base_dark\"));\n const innerAction: any = isValidElement(action) ? action : [action];\n\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <SnackbarContent\n ref={ref}\n id={id}\n classes={{\n root: classes?.root,\n message: classes?.message,\n }}\n className={cx(className, classes?.[variant])}\n message={\n <div id={setId(id, \"message\")} className={classes?.messageSpan}>\n {icon && <div className={classes?.iconVariant}>{icon}</div>}\n <div className={classes?.messageText}>{label}</div>\n {action && (\n <div id={setId(id, \"action\")} className={classes?.action}>\n <HvActionsGeneric\n id={id}\n category=\"secondaryGhost\"\n actions={innerAction}\n actionsCallback={actionCallback}\n />\n </div>\n )}\n </div>\n }\n {...others}\n />\n );\n }\n);\n"],"names":["HvSnackbarContent","forwardRef","className","id","classes","classesProp","label","variant","showIcon","customIcon","action","actionCallback","others","ref","icon","iconVariant","innerAction","isValidElement","cx","useClasses","SnackbarContent","root","message","setId","messageSpan","children","_jsx","messageText","HvActionsGeneric","category","actions","actionsCallback"],"mappings":";;;;;;;;;;;AAqCaA,MAAAA,oBAAoBC,iBAI/B,CACE;AAAA,EACEC;AAAAA,EACAC;AAAAA,EACAC,SAASC,cAAc,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACL,GACAC,QACG;AACH,QAAMC,OAAOL,cAAeD,YAAYO,YAAAA,QAAYR,SAAS,WAAW;AACxE,QAAMS,cAAmBC,MAAAA,eAAeP,MAAM,IAAIA,SAAS,CAACA,MAAM;AAE5D,QAAA;AAAA,IAAEN;AAAAA,IAASc;AAAAA,EAAAA,IAAOC,8BAAAA,WAAWd,WAAW;AAE9C,wCACGe,yBAAAA,SAAe;AAAA,IACdP;AAAAA,IACAV;AAAAA,IACAC,SAAS;AAAA,MACPiB,MAAMjB,mCAASiB;AAAAA,MACfC,SAASlB,mCAASkB;AAAAA,IACpB;AAAA,IACApB,WAAWgB,GAAGhB,WAAWE,mCAAUG,QAAQ;AAAA,IAC3Ce,yCACE,OAAA;AAAA,MAAKnB,IAAIoB,MAAAA,MAAMpB,IAAI,SAAS;AAAA,MAAGD,WAAWE,mCAASoB;AAAAA,MAAYC,UAAA,CAC5DX,QAAQY,2BAAAA,IAAA,OAAA;AAAA,QAAKxB,WAAWE,mCAASW;AAAAA,QAAYU,UAAEX;AAAAA,MAAAA,CAAU,GAC1DY,2BAAAA,IAAA,OAAA;AAAA,QAAKxB,WAAWE,mCAASuB;AAAAA,QAAYF,UAAEnB;AAAAA,MAAAA,CAAW,GACjDI,UACCgB,2BAAAA,IAAA,OAAA;AAAA,QAAKvB,IAAIoB,MAAAA,MAAMpB,IAAI,QAAQ;AAAA,QAAGD,WAAWE,mCAASM;AAAAA,QAAOe,yCACtDG,iCAAgB;AAAA,UACfzB;AAAAA,UACA0B,UAAS;AAAA,UACTC,SAASd;AAAAA,UACTe,iBAAiBpB;AAAAA,QAAAA,CAClB;AAAA,MAAA,CACE,CACN;AAAA,IAAA,CACE;AAAA,IACN,GACGC;AAAAA,EAAAA,CACL;AAEL,CACF;;;"}
1
+ {"version":3,"file":"SnackbarContentWrapper.cjs","sources":["../../../../../src/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.tsx"],"sourcesContent":["import { forwardRef, isValidElement } from \"react\";\nimport SnackbarContent, {\n SnackbarContentProps as MuiSnackbarContentProps,\n} from \"@mui/material/SnackbarContent\";\nimport { ExtractNames, iconVariant, setId } from \"@core/utils\";\nimport { HvBaseProps } from \"@core/types\";\nimport {\n HvActionsGeneric,\n HvActionGeneric,\n HvButtonVariant,\n} from \"@core/components\";\nimport { useTheme } from \"@core/hooks\";\nimport { HvSnackbarVariant } from \"../Snackbar\";\nimport { staticClasses, useClasses } from \"./SnackbarContentWrapper.styles\";\n\nexport { staticClasses as snackbarContentClasses };\n\nexport type HvSnackbarContentClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSnackbarContentProps\n extends Omit<MuiSnackbarContentProps, \"variant\" | \"action\" | \"classes\">,\n HvBaseProps {\n /** The message to display. */\n label?: React.ReactNode;\n /** Variant of the snackbar. */\n variant?: HvSnackbarVariant;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** Action to display. */\n action?: React.ReactNode | HvActionGeneric;\n /** The callback function ran when an action is triggered, receiving `action` as param */\n actionCallback?: (\n event: React.SyntheticEvent,\n id: string,\n action: HvActionGeneric\n ) => void;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: Partial<HvSnackbarContentClasses>;\n}\n\nexport const HvSnackbarContent = forwardRef<\n HTMLDivElement,\n HvSnackbarContentProps\n>(\n (\n {\n className,\n id,\n classes: classesProp = {},\n label,\n variant = \"default\",\n showIcon,\n customIcon,\n action,\n actionCallback,\n ...others\n },\n ref\n ) => {\n const icon = customIcon || (showIcon && iconVariant(variant, \"base_dark\"));\n const innerAction: any = isValidElement(action) ? action : [action];\n\n const { classes, cx } = useClasses(classesProp);\n const { activeTheme } = useTheme();\n\n return (\n <SnackbarContent\n ref={ref}\n id={id}\n classes={{\n root: classes.root,\n message: classes.message,\n }}\n className={cx(className, classes?.[variant])}\n message={\n <div id={setId(id, \"message\")} className={classes.messageSpan}>\n {icon && <div className={classes.iconVariant}>{icon}</div>}\n <div className={classes.messageText}>{label}</div>\n {action && (\n <div id={setId(id, \"action\")} className={classes.action}>\n <HvActionsGeneric\n id={id}\n category={\n activeTheme?.snackbar.actionButtonVariant as HvButtonVariant\n }\n actions={innerAction}\n actionsCallback={actionCallback}\n />\n </div>\n )}\n </div>\n }\n {...others}\n />\n );\n }\n);\n"],"names":["HvSnackbarContent","forwardRef","className","id","classes","classesProp","label","variant","showIcon","customIcon","action","actionCallback","others","ref","icon","iconVariant","innerAction","isValidElement","cx","useClasses","activeTheme","useTheme","SnackbarContent","root","message","setId","messageSpan","children","_jsx","messageText","HvActionsGeneric","category","snackbar","actionButtonVariant","actions","actionsCallback"],"mappings":";;;;;;;;;;;;AA0CaA,MAAAA,oBAAoBC,iBAI/B,CACE;AAAA,EACEC;AAAAA,EACAC;AAAAA,EACAC,SAASC,cAAc,CAAC;AAAA,EACxBC;AAAAA,EACAC,UAAU;AAAA,EACVC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACL,GACAC,QACG;AACH,QAAMC,OAAOL,cAAeD,YAAYO,YAAAA,QAAYR,SAAS,WAAW;AACxE,QAAMS,cAAmBC,MAAAA,eAAeP,MAAM,IAAIA,SAAS,CAACA,MAAM;AAE5D,QAAA;AAAA,IAAEN;AAAAA,IAASc;AAAAA,EAAAA,IAAOC,8BAAAA,WAAWd,WAAW;AACxC,QAAA;AAAA,IAAEe;AAAAA,MAAgBC,SAAS,SAAA;AAEjC,wCACGC,yBAAAA,SAAe;AAAA,IACdT;AAAAA,IACAV;AAAAA,IACAC,SAAS;AAAA,MACPmB,MAAMnB,QAAQmB;AAAAA,MACdC,SAASpB,QAAQoB;AAAAA,IACnB;AAAA,IACAtB,WAAWgB,GAAGhB,WAAWE,mCAAUG,QAAQ;AAAA,IAC3CiB,yCACE,OAAA;AAAA,MAAKrB,IAAIsB,MAAAA,MAAMtB,IAAI,SAAS;AAAA,MAAGD,WAAWE,QAAQsB;AAAAA,MAAYC,UAAA,CAC3Db,QAAQc,2BAAAA,IAAA,OAAA;AAAA,QAAK1B,WAAWE,QAAQW;AAAAA,QAAYY,UAAEb;AAAAA,MAAAA,CAAU,GACzDc,2BAAAA,IAAA,OAAA;AAAA,QAAK1B,WAAWE,QAAQyB;AAAAA,QAAYF,UAAErB;AAAAA,MAAAA,CAAW,GAChDI,UACCkB,2BAAAA,IAAA,OAAA;AAAA,QAAKzB,IAAIsB,MAAAA,MAAMtB,IAAI,QAAQ;AAAA,QAAGD,WAAWE,QAAQM;AAAAA,QAAOiB,yCACrDG,iCAAgB;AAAA,UACf3B;AAAAA,UACA4B,UACEX,2CAAaY,SAASC;AAAAA,UAExBC,SAASlB;AAAAA,UACTmB,iBAAiBxB;AAAAA,QAAAA,CAClB;AAAA,MAAA,CACE,CACN;AAAA,IAAA,CACE;AAAA,IACN,GACGC;AAAAA,EAAAA,CACL;AAEL,CACF;;;"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const uikitStyles = require("@hitachivantara/uikit-styles");
4
+ const actionsGenericClasses = require("../../ActionsGeneric/actionsGenericClasses.cjs");
4
5
  const classes = require("../../../utils/classes.cjs");
5
6
  const {
6
7
  useClasses,
@@ -43,7 +44,15 @@ const {
43
44
  wordBreak: "break-word"
44
45
  },
45
46
  action: {
46
- textAlign: "right"
47
+ textAlign: "right",
48
+ marginLeft: uikitStyles.theme.snackbar.actionMarginLeft,
49
+ [`& .${actionsGenericClasses.default.button}`]: {
50
+ borderColor: uikitStyles.theme.colors.base_dark,
51
+ color: uikitStyles.theme.colors.base_dark,
52
+ "&:hover": {
53
+ borderColor: uikitStyles.theme.colors.base_dark
54
+ }
55
+ }
47
56
  },
48
57
  iconVariant: {}
49
58
  });