@hitachivantara/uikit-react-core 5.19.2 → 5.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/dist/cjs/components/Accordion/Accordion.cjs +19 -11
  2. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
  3. package/dist/cjs/components/Accordion/Accordion.styles.cjs +44 -68
  4. package/dist/cjs/components/Accordion/Accordion.styles.cjs.map +1 -1
  5. package/dist/cjs/components/ActionsGeneric/ActionsGeneric.cjs +22 -12
  6. package/dist/cjs/components/ActionsGeneric/ActionsGeneric.cjs.map +1 -1
  7. package/dist/cjs/components/ActionsGeneric/ActionsGeneric.styles.cjs +17 -53
  8. package/dist/cjs/components/ActionsGeneric/ActionsGeneric.styles.cjs.map +1 -1
  9. package/dist/cjs/components/AppSwitcher/Action/Action.cjs +23 -16
  10. package/dist/cjs/components/AppSwitcher/Action/Action.cjs.map +1 -1
  11. package/dist/cjs/components/AppSwitcher/Action/Action.styles.cjs +51 -91
  12. package/dist/cjs/components/AppSwitcher/Action/Action.styles.cjs.map +1 -1
  13. package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs +28 -24
  14. package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs.map +1 -1
  15. package/dist/cjs/components/AppSwitcher/AppSwitcher.styles.cjs +52 -116
  16. package/dist/cjs/components/AppSwitcher/AppSwitcher.styles.cjs.map +1 -1
  17. package/dist/cjs/components/AppSwitcher/TitleWithTooltip.cjs +3 -6
  18. package/dist/cjs/components/AppSwitcher/TitleWithTooltip.cjs.map +1 -1
  19. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs +6 -14
  20. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs.map +1 -1
  21. package/dist/cjs/components/BreadCrumb/Page/Page.styles.cjs +2 -2
  22. package/dist/cjs/components/BreadCrumb/Page/Page.styles.cjs.map +1 -1
  23. package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.cjs +2 -6
  24. package/dist/cjs/components/Calendar/CalendarHeader/CalendarHeader.cjs.map +1 -1
  25. package/dist/cjs/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.cjs +2 -3
  26. package/dist/cjs/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.cjs.map +1 -1
  27. package/dist/cjs/components/Calendar/CalendarNavigation/Navigation/Navigation.cjs +2 -3
  28. package/dist/cjs/components/Calendar/CalendarNavigation/Navigation/Navigation.cjs.map +1 -1
  29. package/dist/cjs/components/Calendar/SingleCalendar/SingleCalendar.cjs +6 -14
  30. package/dist/cjs/components/Calendar/SingleCalendar/SingleCalendar.cjs.map +1 -1
  31. package/dist/cjs/components/Dialog/Actions/Actions.cjs.map +1 -1
  32. package/dist/cjs/components/Dialog/Content/Content.cjs.map +1 -1
  33. package/dist/cjs/components/Dialog/Dialog.cjs +47 -46
  34. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  35. package/dist/cjs/components/Dialog/Dialog.styles.cjs +15 -0
  36. package/dist/cjs/components/Dialog/Dialog.styles.cjs.map +1 -1
  37. package/dist/cjs/components/Dialog/Title/Title.cjs.map +1 -1
  38. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs +2 -3
  39. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
  40. package/dist/cjs/components/FileUploader/DropZone/DropZone.cjs +2 -3
  41. package/dist/cjs/components/FileUploader/DropZone/DropZone.cjs.map +1 -1
  42. package/dist/cjs/components/Focus/Focus.cjs +22 -44
  43. package/dist/cjs/components/Focus/Focus.cjs.map +1 -1
  44. package/dist/cjs/components/Focus/utils.cjs +0 -5
  45. package/dist/cjs/components/Focus/utils.cjs.map +1 -1
  46. package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs +5 -1
  47. package/dist/cjs/components/Header/Navigation/MenuBar/MenuBar.cjs.map +1 -1
  48. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs +9 -6
  49. package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.cjs.map +1 -1
  50. package/dist/cjs/components/Header/Navigation/Navigation.cjs +4 -1
  51. package/dist/cjs/components/Header/Navigation/Navigation.cjs.map +1 -1
  52. package/dist/cjs/components/InlineEditor/InlineEditor.cjs +4 -5
  53. package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
  54. package/dist/cjs/components/Input/Input.cjs +5 -6
  55. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  56. package/dist/cjs/components/Pagination/Pagination.cjs +2 -6
  57. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  58. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs +2 -6
  59. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs.map +1 -1
  60. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs +2 -6
  61. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs.map +1 -1
  62. package/dist/cjs/components/SelectionList/SelectionList.cjs +3 -8
  63. package/dist/cjs/components/SelectionList/SelectionList.cjs.map +1 -1
  64. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.cjs +5 -2
  65. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.cjs.map +1 -1
  66. package/dist/cjs/components/TagsInput/TagsInput.cjs +3 -4
  67. package/dist/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  68. package/dist/cjs/components/TimePicker/TimePicker.styles.cjs +1 -1
  69. package/dist/cjs/components/TimePicker/TimePicker.styles.cjs.map +1 -1
  70. package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
  71. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  72. package/dist/cjs/components/VerticalNavigation/Actions/Action.cjs +2 -3
  73. package/dist/cjs/components/VerticalNavigation/Actions/Action.cjs.map +1 -1
  74. package/dist/cjs/hooks/useCss.cjs +4 -13
  75. package/dist/cjs/hooks/useCss.cjs.map +1 -1
  76. package/dist/cjs/hooks/useEmotionCache.cjs +4 -4
  77. package/dist/cjs/hooks/useEmotionCache.cjs.map +1 -1
  78. package/dist/cjs/hooks/useTheme.cjs +3 -1
  79. package/dist/cjs/hooks/useTheme.cjs.map +1 -1
  80. package/dist/cjs/index.cjs +25 -19
  81. package/dist/cjs/index.cjs.map +1 -1
  82. package/dist/cjs/providers/Provider.cjs +5 -4
  83. package/dist/cjs/providers/Provider.cjs.map +1 -1
  84. package/dist/cjs/providers/ThemeProvider.cjs +13 -15
  85. package/dist/cjs/providers/ThemeProvider.cjs.map +1 -1
  86. package/dist/cjs/utils/keyboardUtils.cjs +30 -0
  87. package/dist/cjs/utils/keyboardUtils.cjs.map +1 -0
  88. package/dist/esm/components/Accordion/Accordion.js +22 -13
  89. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  90. package/dist/esm/components/Accordion/Accordion.styles.js +44 -66
  91. package/dist/esm/components/Accordion/Accordion.styles.js.map +1 -1
  92. package/dist/esm/components/ActionsGeneric/ActionsGeneric.js +25 -14
  93. package/dist/esm/components/ActionsGeneric/ActionsGeneric.js.map +1 -1
  94. package/dist/esm/components/ActionsGeneric/ActionsGeneric.styles.js +17 -51
  95. package/dist/esm/components/ActionsGeneric/ActionsGeneric.styles.js.map +1 -1
  96. package/dist/esm/components/AppSwitcher/Action/Action.js +26 -18
  97. package/dist/esm/components/AppSwitcher/Action/Action.js.map +1 -1
  98. package/dist/esm/components/AppSwitcher/Action/Action.styles.js +51 -89
  99. package/dist/esm/components/AppSwitcher/Action/Action.styles.js.map +1 -1
  100. package/dist/esm/components/AppSwitcher/AppSwitcher.js +31 -26
  101. package/dist/esm/components/AppSwitcher/AppSwitcher.js.map +1 -1
  102. package/dist/esm/components/AppSwitcher/AppSwitcher.styles.js +52 -114
  103. package/dist/esm/components/AppSwitcher/AppSwitcher.styles.js.map +1 -1
  104. package/dist/esm/components/AppSwitcher/TitleWithTooltip.js +3 -6
  105. package/dist/esm/components/AppSwitcher/TitleWithTooltip.js.map +1 -1
  106. package/dist/esm/components/BaseDropdown/BaseDropdown.js +6 -14
  107. package/dist/esm/components/BaseDropdown/BaseDropdown.js.map +1 -1
  108. package/dist/esm/components/BreadCrumb/Page/Page.styles.js +1 -1
  109. package/dist/esm/components/BreadCrumb/Page/Page.styles.js.map +1 -1
  110. package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.js +2 -6
  111. package/dist/esm/components/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  112. package/dist/esm/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js +2 -3
  113. package/dist/esm/components/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  114. package/dist/esm/components/Calendar/CalendarNavigation/Navigation/Navigation.js +2 -3
  115. package/dist/esm/components/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  116. package/dist/esm/components/Calendar/SingleCalendar/SingleCalendar.js +6 -14
  117. package/dist/esm/components/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  118. package/dist/esm/components/Dialog/Actions/Actions.js.map +1 -1
  119. package/dist/esm/components/Dialog/Content/Content.js.map +1 -1
  120. package/dist/esm/components/Dialog/Dialog.js +47 -46
  121. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  122. package/dist/esm/components/Dialog/Dialog.styles.js +15 -0
  123. package/dist/esm/components/Dialog/Dialog.styles.js.map +1 -1
  124. package/dist/esm/components/Dialog/Title/Title.js.map +1 -1
  125. package/dist/esm/components/DropDownMenu/DropDownMenu.js +2 -3
  126. package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
  127. package/dist/esm/components/FileUploader/DropZone/DropZone.js +2 -3
  128. package/dist/esm/components/FileUploader/DropZone/DropZone.js.map +1 -1
  129. package/dist/esm/components/Focus/Focus.js +23 -45
  130. package/dist/esm/components/Focus/Focus.js.map +1 -1
  131. package/dist/esm/components/Focus/utils.js +0 -5
  132. package/dist/esm/components/Focus/utils.js.map +1 -1
  133. package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js +5 -1
  134. package/dist/esm/components/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  135. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js +9 -6
  136. package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  137. package/dist/esm/components/Header/Navigation/Navigation.js +4 -1
  138. package/dist/esm/components/Header/Navigation/Navigation.js.map +1 -1
  139. package/dist/esm/components/InlineEditor/InlineEditor.js +3 -4
  140. package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
  141. package/dist/esm/components/Input/Input.js +5 -6
  142. package/dist/esm/components/Input/Input.js.map +1 -1
  143. package/dist/esm/components/Pagination/Pagination.js +2 -6
  144. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  145. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js +2 -6
  146. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  147. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js +2 -6
  148. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  149. package/dist/esm/components/SelectionList/SelectionList.js +3 -8
  150. package/dist/esm/components/SelectionList/SelectionList.js.map +1 -1
  151. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.js +5 -2
  152. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.styles.js.map +1 -1
  153. package/dist/esm/components/TagsInput/TagsInput.js +3 -4
  154. package/dist/esm/components/TagsInput/TagsInput.js.map +1 -1
  155. package/dist/esm/components/TimePicker/TimePicker.styles.js +1 -1
  156. package/dist/esm/components/TimePicker/TimePicker.styles.js.map +1 -1
  157. package/dist/esm/components/Tooltip/Tooltip.js +1 -1
  158. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  159. package/dist/esm/components/VerticalNavigation/Actions/Action.js +2 -3
  160. package/dist/esm/components/VerticalNavigation/Actions/Action.js.map +1 -1
  161. package/dist/esm/hooks/useCss.js +4 -13
  162. package/dist/esm/hooks/useCss.js.map +1 -1
  163. package/dist/esm/hooks/useEmotionCache.js +4 -4
  164. package/dist/esm/hooks/useEmotionCache.js.map +1 -1
  165. package/dist/esm/hooks/useTheme.js +3 -1
  166. package/dist/esm/hooks/useTheme.js.map +1 -1
  167. package/dist/esm/index.js +241 -244
  168. package/dist/esm/index.js.map +1 -1
  169. package/dist/esm/providers/Provider.js +4 -3
  170. package/dist/esm/providers/Provider.js.map +1 -1
  171. package/dist/esm/providers/ThemeProvider.js +4 -13
  172. package/dist/esm/providers/ThemeProvider.js.map +1 -1
  173. package/dist/esm/utils/keyboardUtils.js +30 -0
  174. package/dist/esm/utils/keyboardUtils.js.map +1 -0
  175. package/dist/types/index.d.ts +274 -330
  176. package/package.json +4 -4
  177. package/dist/cjs/components/Accordion/accordionClasses.cjs +0 -8
  178. package/dist/cjs/components/Accordion/accordionClasses.cjs.map +0 -1
  179. package/dist/cjs/components/ActionsGeneric/actionsGenericClasses.cjs +0 -8
  180. package/dist/cjs/components/ActionsGeneric/actionsGenericClasses.cjs.map +0 -1
  181. package/dist/cjs/components/AppSwitcher/Action/actionClasses.cjs +0 -8
  182. package/dist/cjs/components/AppSwitcher/Action/actionClasses.cjs.map +0 -1
  183. package/dist/cjs/components/AppSwitcher/appSwitcherClasses.cjs +0 -8
  184. package/dist/cjs/components/AppSwitcher/appSwitcherClasses.cjs.map +0 -1
  185. package/dist/cjs/utils/keyboardUtils/keyCheck.cjs +0 -9
  186. package/dist/cjs/utils/keyboardUtils/keyCheck.cjs.map +0 -1
  187. package/dist/cjs/utils/keyboardUtils/keyboardCodes.cjs +0 -105
  188. package/dist/cjs/utils/keyboardUtils/keyboardCodes.cjs.map +0 -1
  189. package/dist/esm/components/Accordion/accordionClasses.js +0 -8
  190. package/dist/esm/components/Accordion/accordionClasses.js.map +0 -1
  191. package/dist/esm/components/ActionsGeneric/actionsGenericClasses.js +0 -8
  192. package/dist/esm/components/ActionsGeneric/actionsGenericClasses.js.map +0 -1
  193. package/dist/esm/components/AppSwitcher/Action/actionClasses.js +0 -8
  194. package/dist/esm/components/AppSwitcher/Action/actionClasses.js.map +0 -1
  195. package/dist/esm/components/AppSwitcher/appSwitcherClasses.js +0 -8
  196. package/dist/esm/components/AppSwitcher/appSwitcherClasses.js.map +0 -1
  197. package/dist/esm/utils/keyboardUtils/keyCheck.js +0 -9
  198. package/dist/esm/utils/keyboardUtils/keyCheck.js.map +0 -1
  199. package/dist/esm/utils/keyboardUtils/keyboardCodes.js +0 -105
  200. package/dist/esm/utils/keyboardUtils/keyboardCodes.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Content.js","sources":["../../../../../src/components/Dialog/Content/Content.tsx"],"sourcesContent":["import MuiDialogContent, {\n DialogContentProps as MuiDialogContentProps,\n} from \"@mui/material/DialogContent\";\n\nimport { HvBaseProps } from \"@core/types\";\nimport { ExtractNames } from \"@core/utils\";\nimport { HvTypography } from \"@core/components\";\n\nimport { staticClasses, useClasses } from \"./Content.styles\";\n\nexport { staticClasses as dialogContentClasses };\n\nexport type HvDialogContentClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDialogContentProps\n extends Omit<MuiDialogContentProps, \"classes\">,\n HvBaseProps {\n /** Content should be indented in relationship to the Dialog title. */\n indentContent?: boolean;\n classes?: HvDialogContentClasses;\n}\n\nexport const HvDialogContent = ({\n classes: classesProp,\n className,\n children,\n indentContent = false,\n}: HvDialogContentProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <HvTypography\n component={MuiDialogContent}\n className={cx(\n classes.root,\n { [classes.textContent]: !!indentContent },\n className\n )}\n >\n {children}\n </HvTypography>\n );\n};\n"],"names":["HvDialogContent","classes","classesProp","className","children","indentContent","cx","useClasses","HvTypography","component","MuiDialogContent","root","textContent"],"mappings":";;;;;AAsBO,MAAMA,kBAAkBA,CAAC;AAAA,EAC9BC,SAASC;AAAAA,EACTC;AAAAA,EACAC;AAAAA,EACAC,gBAAgB;AACI,MAAM;AACpB,QAAA;AAAA,IAAEJ;AAAAA,IAASK;AAAAA,EAAAA,IAAOC,WAAWL,WAAW;AAE9C,6BACGM,cAAY;AAAA,IACXC,WAAWC;AAAAA,IACXP,WAAWG,GACTL,QAAQU,MACR;AAAA,MAAE,CAACV,QAAQW,WAAW,GAAG,CAAC,CAACP;AAAAA,OAC3BF,SACF;AAAA,IAAEC;AAAAA,EAAAA,CAGU;AAElB;"}
1
+ {"version":3,"file":"Content.js","sources":["../../../../../src/components/Dialog/Content/Content.tsx"],"sourcesContent":["import MuiDialogContent, {\n DialogContentProps as MuiDialogContentProps,\n} from \"@mui/material/DialogContent\";\n\nimport { HvBaseProps } from \"@core/types\";\nimport { ExtractNames } from \"@core/utils\";\nimport { HvTypography } from \"@core/components\";\n\nimport { staticClasses, useClasses } from \"./Content.styles\";\n\nexport { staticClasses as dialogContentClasses };\n\nexport type HvDialogContentClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDialogContentProps\n extends Omit<MuiDialogContentProps, \"classes\">,\n HvBaseProps {\n /** Content should be indented in relationship to the Dialog title. */\n indentContent?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDialogContentClasses;\n}\n\nexport const HvDialogContent = ({\n classes: classesProp,\n className,\n children,\n indentContent = false,\n}: HvDialogContentProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <HvTypography\n component={MuiDialogContent}\n className={cx(\n classes.root,\n { [classes.textContent]: !!indentContent },\n className\n )}\n >\n {children}\n </HvTypography>\n );\n};\n"],"names":["HvDialogContent","classes","classesProp","className","children","indentContent","cx","useClasses","HvTypography","component","MuiDialogContent","root","textContent"],"mappings":";;;;;AAuBO,MAAMA,kBAAkBA,CAAC;AAAA,EAC9BC,SAASC;AAAAA,EACTC;AAAAA,EACAC;AAAAA,EACAC,gBAAgB;AACI,MAAM;AACpB,QAAA;AAAA,IAAEJ;AAAAA,IAASK;AAAAA,EAAAA,IAAOC,WAAWL,WAAW;AAE9C,6BACGM,cAAY;AAAA,IACXC,WAAWC;AAAAA,IACXP,WAAWG,GACTL,QAAQU,MACR;AAAA,MAAE,CAACV,QAAQW,WAAW,GAAG,CAAC,CAACP;AAAAA,OAC3BF,SACF;AAAA,IAAEC;AAAAA,EAAAA,CAGU;AAElB;"}
@@ -12,6 +12,7 @@ import { HvButton } from "../Button/Button.js";
12
12
  import { useTheme } from "../../hooks/useTheme.js";
13
13
  import { setId } from "../../utils/setId.js";
14
14
  const HvDialog = ({
15
+ variant,
15
16
  classes: classesProp,
16
17
  className,
17
18
  id,
@@ -58,55 +59,55 @@ const HvDialog = ({
58
59
  ...backdropProps
59
60
  })
60
61
  }), [open, wrappedClose]);
61
- return /* @__PURE__ */ jsxs(
62
- MuiDialog,
63
- {
64
- container: document.getElementById(rootId || "") || document.body,
65
- className: cx(className, classes.root),
66
- classes: {
67
- container: css({
68
- position: "relative"
69
- })
70
- },
71
- id,
72
- ref: measuredRef,
73
- open,
74
- fullScreen: fullscreen,
75
- onClose: (event, reason) => wrappedClose(event, void 0, reason),
76
- slots,
77
- slotProps: {
78
- backdrop: {
79
- classes: {
80
- root: cx(css({
81
- background: fade(((_a = activeTheme == null ? void 0 : activeTheme.colors) == null ? void 0 : _a.modes[selectedMode].atmo4) || theme.colors.atmo4, 0.8)
82
- }), classes.background)
83
- }
84
- }
85
- },
86
- PaperProps: {
62
+ return /* @__PURE__ */ jsxs(MuiDialog, {
63
+ container: typeof window !== "undefined" ? (
64
+ // TODO: review
65
+ // eslint-disable-next-line ssr-friendly/no-dom-globals-in-react-fc
66
+ document.getElementById(rootId || "") || document.body
67
+ ) : void 0,
68
+ className: cx(classes.root, className),
69
+ classes: {
70
+ container: css({
71
+ position: "relative"
72
+ })
73
+ },
74
+ id,
75
+ ref: measuredRef,
76
+ open,
77
+ fullScreen: fullscreen,
78
+ onClose: (event, reason) => wrappedClose(event, void 0, reason),
79
+ slots,
80
+ slotProps: {
81
+ backdrop: {
87
82
  classes: {
88
83
  root: cx(css({
89
- position: "absolute"
90
- }), classes.paper, {
91
- fullscreen,
92
- [classes.fullscreen]: fullscreen
93
- })
84
+ background: fade(((_a = activeTheme == null ? void 0 : activeTheme.colors) == null ? void 0 : _a.modes[selectedMode].atmo4) || theme.colors.atmo4, 0.8)
85
+ }), classes.background)
94
86
  }
95
- },
96
- "aria-modal": true,
97
- ...others,
98
- children: [/* @__PURE__ */ jsx(HvButton, {
99
- id: setId(id, "close"),
100
- className: classes.closeButton,
101
- variant: "secondaryGhost",
102
- onClick: (event) => wrappedClose(event, true, void 0),
103
- "aria-label": buttonTitle,
104
- children: /* @__PURE__ */ jsx(CloseButtonTooltipWrapper, {})
105
- }), children && typeof children === "object" ? React__default.Children.map(children, (c) => c && React__default.cloneElement(c, {
106
- fullscreen
107
- })) : children]
108
- }
109
- );
87
+ }
88
+ },
89
+ PaperProps: {
90
+ classes: {
91
+ root: cx(css({
92
+ position: "absolute"
93
+ }), classes.paper, variant && cx(classes.statusBar, classes[variant]), {
94
+ [classes.fullscreen]: fullscreen
95
+ })
96
+ }
97
+ },
98
+ "aria-modal": true,
99
+ ...others,
100
+ children: [/* @__PURE__ */ jsx(HvButton, {
101
+ id: setId(id, "close"),
102
+ className: classes.closeButton,
103
+ variant: "secondaryGhost",
104
+ onClick: (event) => wrappedClose(event, true, void 0),
105
+ "aria-label": buttonTitle,
106
+ children: /* @__PURE__ */ jsx(CloseButtonTooltipWrapper, {})
107
+ }), children && typeof children === "object" ? React__default.Children.map(children, (c) => c && React__default.cloneElement(c, {
108
+ fullscreen
109
+ })) : children]
110
+ });
110
111
  };
111
112
  export {
112
113
  HvDialog,
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":["../../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\n\nimport MuiDialog, { DialogProps as MuiDialogProps } from \"@mui/material/Dialog\";\nimport MuiBackdrop from \"@mui/material/Backdrop\";\n\nimport { Close } from \"@hitachivantara/uikit-react-icons\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { ExtractNames, setId } from \"@core/utils\";\nimport { withTooltip } from \"@core/hocs\";\nimport { useTheme } from \"@core/hooks\";\nimport fade from \"@core/utils/hexToRgbA\";\n\nimport { staticClasses, useClasses } from \"./Dialog.styles\";\nimport { HvButton } from \"..\";\n\nexport { staticClasses as dialogClasses };\n\nexport type HvDialogClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDialogProps\n extends Omit<MuiDialogProps, \"fullScreen\" | \"classes\" | \"open\">,\n HvBaseProps {\n /** Id to be applied to the root node. */\n id?: string;\n /** Current state of the Dialog. */\n open?: boolean;\n /** Function executed on close. */\n onClose?: (\n event: React.SyntheticEvent,\n reason?: \"escapeKeyDown\" | \"backdropClick\"\n ) => void;\n /** @inheritdoc */\n maxWidth?: MuiDialogProps[\"maxWidth\"];\n /** @inheritdoc */\n fullWidth?: MuiDialogProps[\"fullWidth\"];\n /**\n * Element id that should be focus when the Dialog opens.\n * Auto-focusing elements can cause usability issues, so this should be avoided.\n * @deprecated Use `autoFocus` on the element instead, if auto-focusing is required.\n */\n firstFocusable?: string;\n /** Title for the button close. */\n buttonTitle?: string;\n /** Set the dialog to fullscreen mode. */\n fullscreen?: boolean;\n /** Prevent closing the dialog when clicking on the backdrop. */\n disableBackdropClick?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDialogClasses;\n}\n\nexport const HvDialog = ({\n classes: classesProp,\n className,\n id,\n children,\n open = false,\n onClose,\n firstFocusable,\n buttonTitle = \"Close\",\n fullscreen = false,\n disableBackdropClick = false,\n ...others\n}: HvDialogProps) => {\n const { classes, css, cx } = useClasses(classesProp);\n delete (others as any).fullScreen;\n\n const { rootId, activeTheme, selectedMode } = useTheme();\n\n // Because the `disableBackdropClick` property was deprecated in MUI5\n // and we want to maintain that functionality to the user we're wrapping\n // the onClose call here to make that check.\n const wrappedClose = useCallback(\n (\n event: any,\n bypassValidation: boolean = false,\n reason?: \"escapeKeyDown\" | \"backdropClick\"\n ) => {\n if (bypassValidation || !disableBackdropClick) {\n onClose?.(event, reason);\n }\n },\n [onClose, disableBackdropClick]\n );\n\n const measuredRef = useCallback(() => {\n if (!firstFocusable) return;\n\n const element = document.getElementById(firstFocusable);\n element?.focus();\n }, [firstFocusable]);\n\n const closeButtonDisplay = () => <Close role=\"presentation\" />;\n\n const CloseButtonTooltipWrapper = buttonTitle\n ? withTooltip(closeButtonDisplay, buttonTitle, \"top\")\n : closeButtonDisplay;\n\n const slots = useMemo<MuiDialogProps[\"slots\"]>(\n () => ({\n backdrop: (backdropProps) => (\n <MuiBackdrop open={open} onClick={wrappedClose} {...backdropProps} />\n ),\n }),\n [open, wrappedClose]\n );\n\n return (\n <MuiDialog\n // TODO: review\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-react-fc\n container={document.getElementById(rootId || \"\") || document.body}\n className={cx(className, classes.root)}\n classes={{ container: css({ position: \"relative\" }) }}\n id={id}\n ref={measuredRef}\n open={open}\n fullScreen={fullscreen}\n onClose={(event, reason) => wrappedClose(event, undefined, reason)}\n slots={slots}\n slotProps={{\n backdrop: {\n classes: {\n root: cx(\n css({\n background: fade(\n activeTheme?.colors?.modes[selectedMode].atmo4 ||\n theme.colors.atmo4,\n 0.8\n ),\n }),\n classes.background\n ),\n },\n },\n }}\n PaperProps={{\n classes: {\n root: cx(css({ position: \"absolute\" }), classes.paper, {\n fullscreen,\n [classes.fullscreen]: fullscreen,\n }),\n },\n }}\n aria-modal\n {...others}\n >\n <HvButton\n id={setId(id, \"close\")}\n className={classes.closeButton}\n variant=\"secondaryGhost\"\n onClick={(event) => wrappedClose(event, true, undefined)}\n aria-label={buttonTitle}\n >\n <CloseButtonTooltipWrapper />\n </HvButton>\n {children && typeof children === \"object\"\n ? React.Children.map(\n children,\n (c: React.ReactNode) =>\n c && React.cloneElement(c as React.ReactElement, { fullscreen })\n )\n : children}\n </MuiDialog>\n );\n};\n"],"names":["HvDialog","classes","classesProp","className","id","children","open","onClose","firstFocusable","buttonTitle","fullscreen","disableBackdropClick","others","css","cx","useClasses","fullScreen","rootId","activeTheme","selectedMode","useTheme","wrappedClose","useCallback","event","bypassValidation","reason","measuredRef","element","document","getElementById","focus","closeButtonDisplay","_jsx","Close","role","CloseButtonTooltipWrapper","withTooltip","slots","useMemo","backdrop","backdropProps","MuiBackdrop","onClick","_jsxs","MuiDialog","container","body","root","position","ref","undefined","slotProps","background","fade","colors","modes","atmo4","theme","PaperProps","paper","HvButton","setId","closeButton","variant","React","Children","map","c","cloneElement"],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","sources":["../../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\n\nimport MuiDialog, { DialogProps as MuiDialogProps } from \"@mui/material/Dialog\";\nimport MuiBackdrop from \"@mui/material/Backdrop\";\n\nimport { Close } from \"@hitachivantara/uikit-react-icons\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { ExtractNames, setId } from \"@core/utils\";\nimport { withTooltip } from \"@core/hocs\";\nimport { useTheme } from \"@core/hooks\";\nimport fade from \"@core/utils/hexToRgbA\";\n\nimport { staticClasses, useClasses } from \"./Dialog.styles\";\nimport { HvButton } from \"..\";\n\nexport { staticClasses as dialogClasses };\n\nexport type HvDialogClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDialogProps\n extends Omit<MuiDialogProps, \"fullScreen\" | \"classes\" | \"open\">,\n HvBaseProps {\n /** Id to be applied to the root node. */\n id?: string;\n /** Current state of the Dialog. */\n open?: boolean;\n /** Function executed on close. */\n onClose?: (\n event: React.SyntheticEvent,\n reason?: \"escapeKeyDown\" | \"backdropClick\"\n ) => void;\n /** @inheritdoc */\n maxWidth?: MuiDialogProps[\"maxWidth\"];\n /** @inheritdoc */\n fullWidth?: MuiDialogProps[\"fullWidth\"];\n /**\n * Element id that should be focus when the Dialog opens.\n * Auto-focusing elements can cause usability issues, so this should be avoided.\n * @deprecated Use `autoFocus` on the element instead, if auto-focusing is required.\n */\n firstFocusable?: string;\n /** Title for the button close. */\n buttonTitle?: string;\n /** Set the dialog to fullscreen mode. */\n fullscreen?: boolean;\n /** Prevent closing the dialog when clicking on the backdrop. */\n disableBackdropClick?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDialogClasses;\n /** Variant of the dialog. Adds a status bar to the top of the dialog. If not provided, no status bar is added. */\n variant?: \"success\" | \"error\" | \"warning\";\n}\n\nexport const HvDialog = ({\n variant,\n classes: classesProp,\n className,\n id,\n children,\n open = false,\n onClose,\n firstFocusable,\n buttonTitle = \"Close\",\n fullscreen = false,\n disableBackdropClick = false,\n ...others\n}: HvDialogProps) => {\n const { classes, css, cx } = useClasses(classesProp);\n delete (others as any).fullScreen;\n\n const { rootId, activeTheme, selectedMode } = useTheme();\n\n // Because the `disableBackdropClick` property was deprecated in MUI5\n // and we want to maintain that functionality to the user we're wrapping\n // the onClose call here to make that check.\n const wrappedClose = useCallback(\n (\n event: any,\n bypassValidation: boolean = false,\n reason?: \"escapeKeyDown\" | \"backdropClick\"\n ) => {\n if (bypassValidation || !disableBackdropClick) {\n onClose?.(event, reason);\n }\n },\n [onClose, disableBackdropClick]\n );\n\n const measuredRef = useCallback(() => {\n if (!firstFocusable) return;\n\n const element = document.getElementById(firstFocusable);\n element?.focus();\n }, [firstFocusable]);\n\n const closeButtonDisplay = () => <Close role=\"presentation\" />;\n\n const CloseButtonTooltipWrapper = buttonTitle\n ? withTooltip(closeButtonDisplay, buttonTitle, \"top\")\n : closeButtonDisplay;\n\n const slots = useMemo<MuiDialogProps[\"slots\"]>(\n () => ({\n backdrop: (backdropProps) => (\n <MuiBackdrop open={open} onClick={wrappedClose} {...backdropProps} />\n ),\n }),\n [open, wrappedClose]\n );\n\n return (\n <MuiDialog\n container={\n typeof window !== \"undefined\"\n ? // TODO: review\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-react-fc\n document.getElementById(rootId || \"\") || document.body\n : undefined\n }\n className={cx(classes.root, className)}\n classes={{ container: css({ position: \"relative\" }) }}\n id={id}\n ref={measuredRef}\n open={open}\n fullScreen={fullscreen}\n onClose={(event, reason) => wrappedClose(event, undefined, reason)}\n slots={slots}\n slotProps={{\n backdrop: {\n classes: {\n root: cx(\n css({\n background: fade(\n activeTheme?.colors?.modes[selectedMode].atmo4 ||\n theme.colors.atmo4,\n 0.8\n ),\n }),\n classes.background\n ),\n },\n },\n }}\n PaperProps={{\n classes: {\n root: cx(\n css({ position: \"absolute\" }),\n classes.paper,\n variant && cx(classes.statusBar, classes[variant]),\n {\n [classes.fullscreen]: fullscreen,\n }\n ),\n },\n }}\n aria-modal\n {...others}\n >\n <HvButton\n id={setId(id, \"close\")}\n className={classes.closeButton}\n variant=\"secondaryGhost\"\n onClick={(event) => wrappedClose(event, true, undefined)}\n aria-label={buttonTitle}\n >\n <CloseButtonTooltipWrapper />\n </HvButton>\n {children && typeof children === \"object\"\n ? React.Children.map(\n children,\n (c: React.ReactNode) =>\n c && React.cloneElement(c as React.ReactElement, { fullscreen })\n )\n : children}\n </MuiDialog>\n );\n};\n"],"names":["HvDialog","variant","classes","classesProp","className","id","children","open","onClose","firstFocusable","buttonTitle","fullscreen","disableBackdropClick","others","css","cx","useClasses","fullScreen","rootId","activeTheme","selectedMode","useTheme","wrappedClose","useCallback","event","bypassValidation","reason","measuredRef","element","document","getElementById","focus","closeButtonDisplay","_jsx","Close","role","CloseButtonTooltipWrapper","withTooltip","slots","useMemo","backdrop","backdropProps","MuiBackdrop","onClick","MuiDialog","container","window","body","undefined","root","position","ref","slotProps","background","fade","colors","modes","atmo4","theme","PaperProps","paper","statusBar","HvButton","setId","closeButton","React","Children","map","c","cloneElement"],"mappings":"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"}
@@ -21,6 +21,21 @@ const {
21
21
  right: theme.space.sm,
22
22
  width: 32,
23
23
  height: 32
24
+ },
25
+ statusBar: {
26
+ borderTopLeftRadius: 0,
27
+ borderTopRightRadius: 0,
28
+ borderTopWidth: 4,
29
+ borderTopStyle: "solid"
30
+ },
31
+ success: {
32
+ borderTopColor: theme.colors.positive
33
+ },
34
+ error: {
35
+ borderTopColor: theme.colors.negative
36
+ },
37
+ warning: {
38
+ borderTopColor: theme.colors.warning
24
39
  }
25
40
  });
26
41
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.styles.js","sources":["../../../../src/components/Dialog/Dialog.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvDialog\", {\n root: {},\n background: {},\n paper: {\n color: theme.colors.secondary,\n backgroundColor: theme.colors.atmo1,\n boxShadow: [\"none\", theme.colors.shadow],\n borderRadius: theme.dialog.borderRadius,\n },\n fullscreen: {},\n closeButton: {\n padding: 0,\n minWidth: \"auto\",\n position: \"absolute\",\n top: theme.space.sm,\n right: theme.space.sm,\n width: 32,\n height: 32,\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","background","paper","color","theme","colors","secondary","backgroundColor","atmo1","boxShadow","shadow","borderRadius","dialog","fullscreen","closeButton","padding","minWidth","position","top","space","sm","right","width","height"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,YAAY;AAAA,EACrEC,MAAM,CAAC;AAAA,EACPC,YAAY,CAAC;AAAA,EACbC,OAAO;AAAA,IACLC,OAAOC,MAAMC,OAAOC;AAAAA,IACpBC,iBAAiBH,MAAMC,OAAOG;AAAAA,IAC9BC,WAAW,CAAC,QAAQL,MAAMC,OAAOK,MAAM;AAAA,IACvCC,cAAcP,MAAMQ,OAAOD;AAAAA,EAC7B;AAAA,EACAE,YAAY,CAAC;AAAA,EACbC,aAAa;AAAA,IACXC,SAAS;AAAA,IACTC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,KAAKd,MAAMe,MAAMC;AAAAA,IACjBC,OAAOjB,MAAMe,MAAMC;AAAAA,IACnBE,OAAO;AAAA,IACPC,QAAQ;AAAA,EACV;AACF,CAAC;"}
1
+ {"version":3,"file":"Dialog.styles.js","sources":["../../../../src/components/Dialog/Dialog.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvDialog\", {\n root: {},\n background: {},\n paper: {\n color: theme.colors.secondary,\n backgroundColor: theme.colors.atmo1,\n boxShadow: [\"none\", theme.colors.shadow],\n borderRadius: theme.dialog.borderRadius,\n },\n fullscreen: {},\n closeButton: {\n padding: 0,\n minWidth: \"auto\",\n position: \"absolute\",\n top: theme.space.sm,\n right: theme.space.sm,\n width: 32,\n height: 32,\n },\n statusBar: {\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0,\n borderTopWidth: 4,\n borderTopStyle: \"solid\",\n },\n success: {\n borderTopColor: theme.colors.positive,\n },\n error: {\n borderTopColor: theme.colors.negative,\n },\n warning: {\n borderTopColor: theme.colors.warning,\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","background","paper","color","theme","colors","secondary","backgroundColor","atmo1","boxShadow","shadow","borderRadius","dialog","fullscreen","closeButton","padding","minWidth","position","top","space","sm","right","width","height","statusBar","borderTopLeftRadius","borderTopRightRadius","borderTopWidth","borderTopStyle","success","borderTopColor","positive","error","negative","warning"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,YAAY;AAAA,EACrEC,MAAM,CAAC;AAAA,EACPC,YAAY,CAAC;AAAA,EACbC,OAAO;AAAA,IACLC,OAAOC,MAAMC,OAAOC;AAAAA,IACpBC,iBAAiBH,MAAMC,OAAOG;AAAAA,IAC9BC,WAAW,CAAC,QAAQL,MAAMC,OAAOK,MAAM;AAAA,IACvCC,cAAcP,MAAMQ,OAAOD;AAAAA,EAC7B;AAAA,EACAE,YAAY,CAAC;AAAA,EACbC,aAAa;AAAA,IACXC,SAAS;AAAA,IACTC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,KAAKd,MAAMe,MAAMC;AAAAA,IACjBC,OAAOjB,MAAMe,MAAMC;AAAAA,IACnBE,OAAO;AAAA,IACPC,QAAQ;AAAA,EACV;AAAA,EACAC,WAAW;AAAA,IACTC,qBAAqB;AAAA,IACrBC,sBAAsB;AAAA,IACtBC,gBAAgB;AAAA,IAChBC,gBAAgB;AAAA,EAClB;AAAA,EACAC,SAAS;AAAA,IACPC,gBAAgB1B,MAAMC,OAAO0B;AAAAA,EAC/B;AAAA,EACAC,OAAO;AAAA,IACLF,gBAAgB1B,MAAMC,OAAO4B;AAAAA,EAC/B;AAAA,EACAC,SAAS;AAAA,IACPJ,gBAAgB1B,MAAMC,OAAO6B;AAAAA,EAC/B;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Title.js","sources":["../../../../../src/components/Dialog/Title/Title.tsx"],"sourcesContent":["import MuiDialogTitle, {\n DialogTitleProps as MuiDialogTitleProps,\n} from \"@mui/material/DialogTitle\";\n\nimport { HvTypography } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport { ExtractNames, iconVariant } from \"@core/utils\";\nimport { useTheme } from \"@core/hooks\";\n\nimport { staticClasses, useClasses } from \"./Title.styles\";\n\nexport { staticClasses as dialogTitleClasses };\n\nexport type HvDialogTitleClasses = ExtractNames<typeof useClasses>;\n\nexport type HvDialogTitleVariant =\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\"\n | \"default\";\n\nexport interface HvDialogTitleProps\n extends Omit<MuiDialogTitleProps, \"variant\" | \"classes\">,\n HvBaseProps<HTMLSpanElement, \"color\"> {\n /** Variant of the Dialog. */\n variant?: HvDialogTitleVariant;\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 classes?: HvDialogTitleClasses;\n}\n\nexport const HvDialogTitle = ({\n classes: classesProp,\n className,\n children,\n variant = \"default\",\n showIcon = true,\n customIcon = null,\n ...others\n}: HvDialogTitleProps) => {\n const { classes, css, cx } = useClasses(classesProp);\n\n const { activeTheme } = useTheme();\n\n const isString = typeof children === \"string\";\n\n const { fullscreen } = others as any;\n delete (others as any).fullscreen;\n\n const icon = customIcon || (showIcon && iconVariant(variant));\n\n return (\n <MuiDialogTitle\n className={cx(\n !fullscreen && css({ flex: 1 }),\n classes.root,\n {\n [classes.fullscreen]: fullscreen,\n },\n className\n )}\n {...others}\n >\n <div className={classes.messageContainer}>\n {icon}\n <div className={cx({ [classes.textWithIcon]: !!icon })}>\n {!isString && children}\n {isString && (\n <HvTypography variant={activeTheme?.dialog.titleVariant}>\n {children}\n </HvTypography>\n )}\n </div>\n </div>\n </MuiDialogTitle>\n );\n};\n"],"names":["HvDialogTitle","classes","classesProp","className","children","variant","showIcon","customIcon","others","css","cx","useClasses","activeTheme","useTheme","isString","fullscreen","icon","iconVariant","MuiDialogTitle","flex","root","messageContainer","_jsxs","textWithIcon","HvTypography","dialog","titleVariant"],"mappings":";;;;;;;AAkCO,MAAMA,gBAAgBA,CAAC;AAAA,EAC5BC,SAASC;AAAAA,EACTC;AAAAA,EACAC;AAAAA,EACAC,UAAU;AAAA,EACVC,WAAW;AAAA,EACXC,aAAa;AAAA,EACb,GAAGC;AACe,MAAM;AAClB,QAAA;AAAA,IAAEP;AAAAA,IAASQ;AAAAA,IAAKC;AAAAA,EAAAA,IAAOC,WAAWT,WAAW;AAE7C,QAAA;AAAA,IAAEU;AAAAA,MAAgBC,SAAS;AAE3BC,QAAAA,WAAW,OAAOV,aAAa;AAE/B,QAAA;AAAA,IAAEW;AAAAA,EAAeP,IAAAA;AACvB,SAAQA,OAAeO;AAEvB,QAAMC,OAAOT,cAAeD,YAAYW,YAAYZ,OAAO;AAE3D,6BACGa,gBAAc;AAAA,IACbf,WAAWO,GACT,CAACK,cAAcN,IAAI;AAAA,MAAEU,MAAM;AAAA,IAAA,CAAG,GAC9BlB,QAAQmB,MACR;AAAA,MACE,CAACnB,QAAQc,UAAU,GAAGA;AAAAA,OAExBZ,SACF;AAAA,IAAE,GACEK;AAAAA,IAAMJ,+BAEV,OAAA;AAAA,MAAKD,WAAWF,QAAQoB;AAAAA,MAAiBjB,UAAA,CACtCY,MACDM,qBAAA,OAAA;AAAA,QAAKnB,WAAWO,GAAG;AAAA,UAAE,CAACT,QAAQsB,YAAY,GAAG,CAAC,CAACP;AAAAA,QAAAA,CAAM;AAAA,QAAEZ,UAAA,CACpD,CAACU,YAAYV,UACbU,gCACEU,cAAY;AAAA,UAACnB,SAASO,2CAAaa,OAAOC;AAAAA,UAAatB;AAAAA,QAAAA,CAE1C,CACf;AAAA,MAAA,CACE,CAAC;AAAA,IAAA,CACH;AAAA,EAAA,CACS;AAEpB;"}
1
+ {"version":3,"file":"Title.js","sources":["../../../../../src/components/Dialog/Title/Title.tsx"],"sourcesContent":["import MuiDialogTitle, {\n DialogTitleProps as MuiDialogTitleProps,\n} from \"@mui/material/DialogTitle\";\n\nimport { HvTypography } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport { ExtractNames, iconVariant } from \"@core/utils\";\nimport { useTheme } from \"@core/hooks\";\n\nimport { staticClasses, useClasses } from \"./Title.styles\";\n\nexport { staticClasses as dialogTitleClasses };\n\nexport type HvDialogTitleClasses = ExtractNames<typeof useClasses>;\n\nexport type HvDialogTitleVariant =\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\"\n | \"default\";\n\nexport interface HvDialogTitleProps\n extends Omit<MuiDialogTitleProps, \"variant\" | \"classes\">,\n HvBaseProps<HTMLSpanElement, \"color\"> {\n /** Variant of the dialog title. */\n variant?: HvDialogTitleVariant;\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 /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDialogTitleClasses;\n}\n\nexport const HvDialogTitle = ({\n classes: classesProp,\n className,\n children,\n variant = \"default\",\n showIcon = true,\n customIcon = null,\n ...others\n}: HvDialogTitleProps) => {\n const { classes, css, cx } = useClasses(classesProp);\n\n const { activeTheme } = useTheme();\n\n const isString = typeof children === \"string\";\n\n const { fullscreen } = others as any;\n delete (others as any).fullscreen;\n\n const icon = customIcon || (showIcon && iconVariant(variant));\n\n return (\n <MuiDialogTitle\n className={cx(\n !fullscreen && css({ flex: 1 }),\n classes.root,\n {\n [classes.fullscreen]: fullscreen,\n },\n className\n )}\n {...others}\n >\n <div className={classes.messageContainer}>\n {icon}\n <div className={cx({ [classes.textWithIcon]: !!icon })}>\n {!isString && children}\n {isString && (\n <HvTypography variant={activeTheme?.dialog.titleVariant}>\n {children}\n </HvTypography>\n )}\n </div>\n </div>\n </MuiDialogTitle>\n );\n};\n"],"names":["HvDialogTitle","classes","classesProp","className","children","variant","showIcon","customIcon","others","css","cx","useClasses","activeTheme","useTheme","isString","fullscreen","icon","iconVariant","MuiDialogTitle","flex","root","messageContainer","_jsxs","textWithIcon","HvTypography","dialog","titleVariant"],"mappings":";;;;;;;AAmCO,MAAMA,gBAAgBA,CAAC;AAAA,EAC5BC,SAASC;AAAAA,EACTC;AAAAA,EACAC;AAAAA,EACAC,UAAU;AAAA,EACVC,WAAW;AAAA,EACXC,aAAa;AAAA,EACb,GAAGC;AACe,MAAM;AAClB,QAAA;AAAA,IAAEP;AAAAA,IAASQ;AAAAA,IAAKC;AAAAA,EAAAA,IAAOC,WAAWT,WAAW;AAE7C,QAAA;AAAA,IAAEU;AAAAA,MAAgBC,SAAS;AAE3BC,QAAAA,WAAW,OAAOV,aAAa;AAE/B,QAAA;AAAA,IAAEW;AAAAA,EAAeP,IAAAA;AACvB,SAAQA,OAAeO;AAEvB,QAAMC,OAAOT,cAAeD,YAAYW,YAAYZ,OAAO;AAE3D,6BACGa,gBAAc;AAAA,IACbf,WAAWO,GACT,CAACK,cAAcN,IAAI;AAAA,MAAEU,MAAM;AAAA,IAAA,CAAG,GAC9BlB,QAAQmB,MACR;AAAA,MACE,CAACnB,QAAQc,UAAU,GAAGA;AAAAA,OAExBZ,SACF;AAAA,IAAE,GACEK;AAAAA,IAAMJ,+BAEV,OAAA;AAAA,MAAKD,WAAWF,QAAQoB;AAAAA,MAAiBjB,UAAA,CACtCY,MACDM,qBAAA,OAAA;AAAA,QAAKnB,WAAWO,GAAG;AAAA,UAAE,CAACT,QAAQsB,YAAY,GAAG,CAAC,CAACP;AAAAA,QAAAA,CAAM;AAAA,QAAEZ,UAAA,CACpD,CAACU,YAAYV,UACbU,gCACEU,cAAY;AAAA,UAACnB,SAASO,2CAAaa,OAAOC;AAAAA,UAAatB;AAAAA,QAAAA,CAE1C,CACf;AAAA,MAAA,CACE,CAAC;AAAA,IAAA,CACH;AAAA,EAAA,CACS;AAEpB;"}
@@ -12,8 +12,7 @@ import { HvList } from "../List/List.js";
12
12
  import { useControlled } from "../../hooks/useControlled.js";
13
13
  import { setId } from "../../utils/setId.js";
14
14
  import { HvButton } from "../Button/Button.js";
15
- import { isKeypress } from "../../utils/keyboardUtils/keyCheck.js";
16
- import { keyboardCodes } from "../../utils/keyboardUtils/keyboardCodes.js";
15
+ import { isKey } from "../../utils/keyboardUtils.js";
17
16
  const HvDropDownMenu = ({
18
17
  id: idProp,
19
18
  classes: classesProp,
@@ -44,7 +43,7 @@ const HvDropDownMenu = ({
44
43
  onToggle == null ? void 0 : onToggle(event, false);
45
44
  };
46
45
  const handleKeyDown = (event) => {
47
- if (isKeypress(event, keyboardCodes.Tab)) {
46
+ if (isKey(event, "Tab")) {
48
47
  const node = event.shiftKey ? focusNodes.prevFocus : focusNodes.nextFocus;
49
48
  if (node)
50
49
  setTimeout(() => node.focus(), 0);
@@ -1 +1 @@
1
- {"version":3,"file":"DropDownMenu.js","sources":["../../../../src/components/DropDownMenu/DropDownMenu.tsx"],"sourcesContent":["import { ChangeEvent, useMemo } from \"react\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { MoreOptionsVertical } from \"@hitachivantara/uikit-react-icons\";\nimport { useControlled, useUniqueId } from \"@core/hooks\";\nimport { HvBaseProps } from \"@core/types\";\nimport {\n isKeypress,\n keyboardCodes,\n setId,\n getPrevNextFocus,\n ExtractNames,\n} from \"@core/utils\";\nimport {\n HvBaseDropdown,\n HvBaseDropdownProps,\n HvButton,\n HvButtonVariant,\n HvList,\n HvListProps,\n HvListValue,\n HvPanel,\n} from \"@core/components\";\nimport { staticClasses, useClasses } from \"./DropDownMenu.styles\";\n\nexport { staticClasses as dropDownMenuClasses };\n\nexport type HvDropDownMenuClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDropDownMenuProps\n extends HvBaseProps<HTMLDivElement, \"onClick\"> {\n /** Icon. */\n icon?: React.ReactElement;\n /**\n * A list containing the elements to be rendered.\n *\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - icon: The icon node to be rendered on the left.\n * - showNavIcon: If true renders the navigation icon on the right.\n */\n dataList: HvListValue[];\n /** Placement of the dropdown. */\n placement?: \"left\" | \"right\";\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n /** Function executed on toggle of the dropdown. Should receive the open status. */\n onToggle?: (event: Event, open: boolean) => void;\n /** Function executed in each onClick. Should received the clicked element. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue\n ) => void;\n /** Keep the Dropdown Menu opened after clicking one option */\n keepOpened?: boolean;\n /** Defines if the component is disabled. */\n disabled?: boolean;\n /** If true it should be displayed open. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** The variant to be used in the header. */\n category?: HvButtonVariant;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDropDownMenuClasses;\n}\n\n/**\n * A drop-down menu is a graphical control element, similar to a list box, that allows the user to choose a value from a list.\n */\nexport const HvDropDownMenu = ({\n id: idProp,\n classes: classesProp,\n className,\n icon,\n placement = \"right\",\n dataList,\n disablePortal = false,\n onToggle,\n onClick,\n keepOpened = true,\n disabled = false,\n expanded,\n defaultExpanded = false,\n category = \"secondaryGhost\",\n ...others\n}: HvDropDownMenuProps) => {\n const { classes, cx } = useClasses(classesProp);\n const [open, setOpen] = useControlled(expanded, Boolean(defaultExpanded));\n const id = useUniqueId(idProp, \"dropdown-menu\");\n const focusNodes = getPrevNextFocus(setId(id, \"icon-button\"));\n\n const listId = setId(id, \"list\");\n\n const handleClose = (event: ChangeEvent) => {\n // this will only run if uncontrolled\n setOpen(false);\n onToggle?.(event as any, false);\n };\n\n // If the ESCAPE key is pressed inside the list, the close handler must be called.\n const handleKeyDown: HvListProps[\"onKeyDown\"] = (event) => {\n if (isKeypress(event, keyboardCodes.Tab)) {\n const node = event.shiftKey ? focusNodes.prevFocus : focusNodes.nextFocus;\n if (node) setTimeout(() => node.focus(), 0);\n handleClose(event as any);\n }\n event.preventDefault();\n };\n\n const setFocusToContent: HvBaseDropdownProps[\"onContainerCreation\"] = (\n containerRef\n ) => {\n containerRef?.getElementsByTagName(\"li\")[0]?.focus();\n };\n\n const condensed = useMemo(() => dataList.every((el) => !el.icon), [dataList]);\n const popperStyle: HvBaseDropdownProps[\"popperProps\"] = {\n style: {\n zIndex: theme.zIndices.tooltip,\n width: \"auto\",\n position: \"relative\",\n },\n };\n\n return (\n <HvBaseDropdown\n id={id}\n className={cx(className, classes.container)}\n classes={{\n root: classes.root,\n container: classes.baseContainer,\n }}\n expanded={open && !disabled}\n component={\n <HvButton\n icon\n variant={category}\n id={setId(id, \"icon-button\")}\n className={cx(classes.icon, { [classes.iconSelected]: open })}\n aria-expanded={open}\n disabled={disabled}\n aria-label=\"Dropdown menu\"\n >\n {icon || (\n <MoreOptionsVertical\n color={disabled ? \"secondary_60\" : undefined}\n />\n )}\n </HvButton>\n }\n aria-haspopup=\"menu\"\n placement={placement}\n variableWidth\n disablePortal={disablePortal}\n onToggle={(e, s) => {\n // this will only run if uncontrolled\n setOpen(s);\n onToggle?.(e, s);\n }}\n disabled={disabled}\n onContainerCreation={setFocusToContent}\n popperProps={popperStyle}\n {...others}\n >\n <HvPanel className={classes.menuListRoot}>\n <HvList\n id={listId}\n values={dataList}\n selectable={false}\n condensed={condensed}\n onClick={(event, item) => {\n if (!keepOpened) handleClose(event);\n onClick?.(event, item);\n }}\n onKeyDown={handleKeyDown}\n classes={{\n root: classes.menuList,\n }}\n />\n </HvPanel>\n </HvBaseDropdown>\n );\n};\n"],"names":["HvDropDownMenu","id","idProp","classes","classesProp","className","icon","placement","dataList","disablePortal","onToggle","onClick","keepOpened","disabled","expanded","defaultExpanded","category","others","cx","useClasses","open","setOpen","useControlled","Boolean","useUniqueId","focusNodes","getPrevNextFocus","setId","listId","handleClose","event","handleKeyDown","isKeypress","keyboardCodes","Tab","node","shiftKey","prevFocus","nextFocus","setTimeout","focus","preventDefault","setFocusToContent","containerRef","getElementsByTagName","condensed","useMemo","every","el","popperStyle","style","zIndex","theme","zIndices","tooltip","width","position","HvBaseDropdown","container","root","baseContainer","component","HvButton","variant","iconSelected","children","_jsx","MoreOptionsVertical","color","undefined","variableWidth","e","s","onContainerCreation","popperProps","HvPanel","menuListRoot","HvList","values","selectable","item","onKeyDown","menuList"],"mappings":"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"}
1
+ {"version":3,"file":"DropDownMenu.js","sources":["../../../../src/components/DropDownMenu/DropDownMenu.tsx"],"sourcesContent":["import { ChangeEvent, useMemo } from \"react\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { MoreOptionsVertical } from \"@hitachivantara/uikit-react-icons\";\nimport { useControlled, useUniqueId } from \"@core/hooks\";\nimport { HvBaseProps } from \"@core/types\";\nimport { isKey, setId, getPrevNextFocus, ExtractNames } from \"@core/utils\";\nimport {\n HvBaseDropdown,\n HvBaseDropdownProps,\n HvButton,\n HvButtonVariant,\n HvList,\n HvListProps,\n HvListValue,\n HvPanel,\n} from \"@core/components\";\nimport { staticClasses, useClasses } from \"./DropDownMenu.styles\";\n\nexport { staticClasses as dropDownMenuClasses };\n\nexport type HvDropDownMenuClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDropDownMenuProps\n extends HvBaseProps<HTMLDivElement, \"onClick\"> {\n /** Icon. */\n icon?: React.ReactElement;\n /**\n * A list containing the elements to be rendered.\n *\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - icon: The icon node to be rendered on the left.\n * - showNavIcon: If true renders the navigation icon on the right.\n */\n dataList: HvListValue[];\n /** Placement of the dropdown. */\n placement?: \"left\" | \"right\";\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n /** Function executed on toggle of the dropdown. Should receive the open status. */\n onToggle?: (event: Event, open: boolean) => void;\n /** Function executed in each onClick. Should received the clicked element. */\n onClick?: (\n event: React.ChangeEvent<HTMLLIElement>,\n value: HvListValue\n ) => void;\n /** Keep the Dropdown Menu opened after clicking one option */\n keepOpened?: boolean;\n /** Defines if the component is disabled. */\n disabled?: boolean;\n /** If true it should be displayed open. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** The variant to be used in the header. */\n category?: HvButtonVariant;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDropDownMenuClasses;\n}\n\n/**\n * A drop-down menu is a graphical control element, similar to a list box, that allows the user to choose a value from a list.\n */\nexport const HvDropDownMenu = ({\n id: idProp,\n classes: classesProp,\n className,\n icon,\n placement = \"right\",\n dataList,\n disablePortal = false,\n onToggle,\n onClick,\n keepOpened = true,\n disabled = false,\n expanded,\n defaultExpanded = false,\n category = \"secondaryGhost\",\n ...others\n}: HvDropDownMenuProps) => {\n const { classes, cx } = useClasses(classesProp);\n const [open, setOpen] = useControlled(expanded, Boolean(defaultExpanded));\n const id = useUniqueId(idProp, \"dropdown-menu\");\n const focusNodes = getPrevNextFocus(setId(id, \"icon-button\"));\n\n const listId = setId(id, \"list\");\n\n const handleClose = (event: ChangeEvent) => {\n // this will only run if uncontrolled\n setOpen(false);\n onToggle?.(event as any, false);\n };\n\n // If the ESCAPE key is pressed inside the list, the close handler must be called.\n const handleKeyDown: HvListProps[\"onKeyDown\"] = (event) => {\n if (isKey(event, \"Tab\")) {\n const node = event.shiftKey ? focusNodes.prevFocus : focusNodes.nextFocus;\n if (node) setTimeout(() => node.focus(), 0);\n handleClose(event as any);\n }\n event.preventDefault();\n };\n\n const setFocusToContent: HvBaseDropdownProps[\"onContainerCreation\"] = (\n containerRef\n ) => {\n containerRef?.getElementsByTagName(\"li\")[0]?.focus();\n };\n\n const condensed = useMemo(() => dataList.every((el) => !el.icon), [dataList]);\n const popperStyle: HvBaseDropdownProps[\"popperProps\"] = {\n style: {\n zIndex: theme.zIndices.tooltip,\n width: \"auto\",\n position: \"relative\",\n },\n };\n\n return (\n <HvBaseDropdown\n id={id}\n className={cx(className, classes.container)}\n classes={{\n root: classes.root,\n container: classes.baseContainer,\n }}\n expanded={open && !disabled}\n component={\n <HvButton\n icon\n variant={category}\n id={setId(id, \"icon-button\")}\n className={cx(classes.icon, { [classes.iconSelected]: open })}\n aria-expanded={open}\n disabled={disabled}\n aria-label=\"Dropdown menu\"\n >\n {icon || (\n <MoreOptionsVertical\n color={disabled ? \"secondary_60\" : undefined}\n />\n )}\n </HvButton>\n }\n aria-haspopup=\"menu\"\n placement={placement}\n variableWidth\n disablePortal={disablePortal}\n onToggle={(e, s) => {\n // this will only run if uncontrolled\n setOpen(s);\n onToggle?.(e, s);\n }}\n disabled={disabled}\n onContainerCreation={setFocusToContent}\n popperProps={popperStyle}\n {...others}\n >\n <HvPanel className={classes.menuListRoot}>\n <HvList\n id={listId}\n values={dataList}\n selectable={false}\n condensed={condensed}\n onClick={(event, item) => {\n if (!keepOpened) handleClose(event);\n onClick?.(event, item);\n }}\n onKeyDown={handleKeyDown}\n classes={{\n root: classes.menuList,\n }}\n />\n </HvPanel>\n </HvBaseDropdown>\n );\n};\n"],"names":["HvDropDownMenu","id","idProp","classes","classesProp","className","icon","placement","dataList","disablePortal","onToggle","onClick","keepOpened","disabled","expanded","defaultExpanded","category","others","cx","useClasses","open","setOpen","useControlled","Boolean","useUniqueId","focusNodes","getPrevNextFocus","setId","listId","handleClose","event","handleKeyDown","isKey","node","shiftKey","prevFocus","nextFocus","setTimeout","focus","preventDefault","setFocusToContent","containerRef","getElementsByTagName","condensed","useMemo","every","el","popperStyle","style","zIndex","theme","zIndices","tooltip","width","position","HvBaseDropdown","container","root","baseContainer","component","HvButton","variant","iconSelected","children","_jsx","MoreOptionsVertical","color","undefined","variableWidth","e","s","onContainerCreation","popperProps","HvPanel","menuListRoot","HvList","values","selectable","item","onKeyDown","menuList"],"mappings":"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"}
@@ -8,8 +8,7 @@ import dropZoneClasses from "./dropZoneClasses.js";
8
8
  import { jsxs, Fragment, jsx } from "@emotion/react/jsx-runtime";
9
9
  import useUniqueId from "../../../hooks/useUniqueId.js";
10
10
  import { setId } from "../../../utils/setId.js";
11
- import { isKeypress } from "../../../utils/keyboardUtils/keyCheck.js";
12
- import { keyboardCodes } from "../../../utils/keyboardUtils/keyboardCodes.js";
11
+ import { isKey } from "../../../utils/keyboardUtils.js";
13
12
  const HvDropZone = ({
14
13
  id: idProp,
15
14
  classes,
@@ -106,7 +105,7 @@ const HvDropZone = ({
106
105
  },
107
106
  onKeyDown: (e) => {
108
107
  var _a;
109
- if (isKeypress(e, keyboardCodes.Enter) || isKeypress(e, 32)) {
108
+ if (isKey(e, "Enter") || isKey(e, "Space")) {
110
109
  (_a = inputRef.current) == null ? void 0 : _a.click();
111
110
  }
112
111
  },
@@ -1 +1 @@
1
- {"version":3,"file":"DropZone.js","sources":["../../../../../src/components/FileUploader/DropZone/DropZone.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\nimport uniqueId from \"lodash/uniqueId\";\nimport accept from \"attr-accept\";\nimport { clsx } from \"clsx\";\nimport { isKeypress, keyboardCodes, setId } from \"@core/utils\";\nimport { useUniqueId } from \"@core/hooks\";\nimport { convertUnits } from \"../utils\";\nimport {\n StyledDragText,\n StyledDropArea,\n StyledDropAreaIcon,\n StyledDropAreaLabel,\n StyledDropAreaLabels,\n StyledDropZoneContainer,\n StyledDropZoneLabelsGroup,\n StyledInfoMessage,\n StyledInput,\n StyledLabel,\n StyledSelectedFilesText,\n} from \"./DropZone.styles\";\nimport dropZoneClasses, { HvDropZoneClasses } from \"./dropZoneClasses\";\nimport { HvFileData, HvFilesAddedEvent } from \"../File\";\n\nexport interface HvDropZoneLabels {\n /**\n * Extensions of the accepted file types\n */\n acceptedFiles?: string;\n /**\n * Dropzone area label.\n */\n dropzone?: string;\n /**\n * Size file warning label.\n */\n sizeWarning?: string;\n /**\n * Size file warning label.\n */\n drag?: string;\n /**\n * Size file warning label.\n */\n selectFiles?: string;\n /**\n * Theming sheet used to style components\n * */\n dropFiles?: string;\n /**\n * Message to display when file size is greater than allowed\n * */\n fileSizeError?: string;\n /**\n * Message to display when file type is greater than allowed\n * */\n fileTypeError?: string;\n}\n\nexport interface HvDropZoneProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Labels to present in FileUploader.\n */\n labels?: HvDropZoneLabels;\n /**\n * Whether the Dropzone should accept multiple files at once.\n */\n multiple?: boolean;\n /**\n * If the input is disabled or not\n */\n disabled?: boolean;\n /**\n * Files extensions accepted for upload.\n */\n acceptedFiles: string[];\n /**\n * Max upload size\n * */\n maxFileSize: number;\n /**\n * Function responsible for processing files added to the drop zone.\n */\n onFilesAdded?: HvFilesAddedEvent;\n /**\n * Whether the DropZone should hide labels or not.\n */\n hideLabels?: boolean;\n /**\n * Attributes applied to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvDropZoneClasses;\n}\n\nexport const HvDropZone = ({\n id: idProp,\n classes,\n labels,\n acceptedFiles,\n maxFileSize,\n inputProps,\n hideLabels,\n multiple = true,\n disabled = false,\n onFilesAdded,\n}: HvDropZoneProps) => {\n const id = useUniqueId(idProp, \"dropzone\");\n const [dragState, setDrag] = useState<boolean>(false);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const leaveDropArea = () => {\n setDrag(false);\n };\n\n const enterDropArea = () => {\n setDrag(true);\n };\n\n const onChangeHandler = (filesList: FileList) => {\n const filesToProcess = Object.keys(filesList).map((e) => filesList[e]);\n\n const newFiles: HvFileData[] = [];\n\n filesToProcess.forEach((file: File) => {\n const newFile: HvFileData = file;\n\n const isSizeAllowed = file.size <= maxFileSize;\n const isFileAccepted =\n !acceptedFiles.length ||\n acceptedFiles.indexOf(file.type.split(\"/\")[1]) > -1 ||\n acceptedFiles.some((acceptExtension) =>\n accept({ name: file.name, type: file.type }, acceptExtension)\n );\n\n if (!isFileAccepted) {\n newFile.errorMessage = labels?.fileTypeError;\n newFile.status = \"fail\";\n } else if (!isSizeAllowed) {\n newFile.errorMessage = labels?.fileSizeError;\n newFile.status = \"fail\";\n }\n\n newFile.id = uniqueId(\"uploaded-file-data-\");\n newFiles.push(newFile);\n });\n\n onFilesAdded?.(newFiles);\n };\n\n return (\n <>\n {!hideLabels && (\n <StyledDropZoneLabelsGroup\n id={id}\n className={clsx(\n classes?.dropZoneLabelsGroup,\n dropZoneClasses.dropZoneLabelsGroup\n )}\n aria-label=\"File Dropzone\"\n >\n <StyledLabel\n id={setId(id, \"input-file-label\")}\n htmlFor={setId(id, \"input-file\")}\n label={labels?.dropzone}\n className={clsx(\n classes?.dropZoneLabel,\n dropZoneClasses.dropZoneLabel\n )}\n $disabled={disabled}\n />\n <StyledInfoMessage $disabled={disabled} id={setId(id, \"description\")}>\n {Number.isInteger(maxFileSize) &&\n `${labels?.sizeWarning} ${convertUnits(maxFileSize)}`}\n {labels?.acceptedFiles && labels.acceptedFiles}\n {!labels?.acceptedFiles &&\n acceptedFiles.length > 0 &&\n `\\u00A0(${acceptedFiles.join(\", \")})`}\n </StyledInfoMessage>\n </StyledDropZoneLabelsGroup>\n )}\n <StyledDropZoneContainer\n id={setId(id, \"button\")}\n className={clsx(\n classes?.dropZoneContainer,\n dropZoneClasses.dropZoneContainer,\n dragState && clsx(classes?.dragAction, dropZoneClasses.dragAction),\n disabled &&\n clsx(\n classes?.dropZoneContainerDisabled,\n dropZoneClasses.dropZoneContainerDisabled\n )\n )}\n $drag={dragState}\n $disabled={disabled}\n role=\"button\"\n tabIndex={0}\n onDragEnter={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDragLeave={leaveDropArea}\n onDropCapture={leaveDropArea}\n onDragOver={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDrop={(event) => {\n if (!disabled) {\n const { files } = event.dataTransfer;\n if (multiple === true || files.length === 1) {\n event.stopPropagation();\n event.preventDefault();\n onChangeHandler(files);\n }\n }\n }}\n onKeyDown={(e) => {\n if (isKeypress(e, keyboardCodes.Enter) || isKeypress(e, 32)) {\n inputRef.current?.click();\n }\n }}\n >\n <StyledInput\n id={setId(id, \"input-file\")}\n tabIndex={-1}\n className={clsx(classes?.inputArea, dropZoneClasses.inputArea)}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n title={!disabled ? `${labels?.drag}\\xa0${labels?.selectFiles}` : \"\"}\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n }}\n onChange={() => {\n if (!disabled && inputRef.current?.files) {\n onChangeHandler(inputRef.current.files);\n }\n }}\n ref={inputRef}\n accept={acceptedFiles.join(\",\")}\n {...inputProps}\n />\n <StyledDropArea\n className={clsx(classes?.dropArea, dropZoneClasses.dropArea)}\n >\n {dragState ? (\n <StyledDropAreaLabel\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(classes?.dragText, dropZoneClasses.dragText)}\n >\n {labels?.dropFiles}\n </StyledDragText>\n </StyledDropAreaLabel>\n ) : (\n <>\n <StyledDropAreaIcon\n iconSize=\"M\"\n className={clsx(\n classes?.dropZoneAreaIcon,\n dropZoneClasses.dropZoneAreaIcon\n )}\n color={disabled ? \"secondary_60\" : \"secondary\"}\n />\n <StyledDropAreaLabels\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(classes?.dragText, dropZoneClasses.dragText)}\n >\n {labels?.drag}\n <StyledSelectedFilesText\n className={clsx(\n classes?.selectFilesText,\n dropZoneClasses.selectFilesText\n )}\n >{`\\xa0${labels?.selectFiles}`}</StyledSelectedFilesText>\n </StyledDragText>\n </StyledDropAreaLabels>\n </>\n )}\n </StyledDropArea>\n </StyledDropZoneContainer>\n </>\n );\n};\n"],"names":["HvDropZone","id","idProp","classes","labels","acceptedFiles","maxFileSize","inputProps","hideLabels","multiple","disabled","onFilesAdded","useUniqueId","dragState","setDrag","useState","inputRef","useRef","leaveDropArea","enterDropArea","onChangeHandler","filesList","filesToProcess","Object","keys","map","e","newFiles","forEach","file","newFile","isSizeAllowed","size","isFileAccepted","length","indexOf","type","split","some","acceptExtension","accept","name","errorMessage","fileTypeError","status","fileSizeError","uniqueId","push","_Fragment","children","StyledDropZoneLabelsGroup","className","clsx","dropZoneLabelsGroup","dropZoneClasses","_jsx","StyledLabel","setId","htmlFor","label","dropzone","dropZoneLabel","$disabled","_jsxs","StyledInfoMessage","Number","isInteger","sizeWarning","convertUnits","join","StyledDropZoneContainer","dropZoneContainer","dragAction","dropZoneContainerDisabled","$drag","role","tabIndex","onDragEnter","event","stopPropagation","preventDefault","onDragLeave","onDropCapture","onDragOver","onDrop","files","dataTransfer","onKeyDown","isKeypress","keyboardCodes","Enter","current","click","StyledInput","inputArea","title","drag","selectFiles","onClick","value","onChange","ref","StyledDropArea","dropArea","StyledDropAreaLabel","dropZoneAreaLabels","StyledDragText","dragText","dropFiles","StyledDropAreaIcon","iconSize","dropZoneAreaIcon","color","StyledDropAreaLabels","StyledSelectedFilesText","selectFilesText"],"mappings":"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"}
1
+ {"version":3,"file":"DropZone.js","sources":["../../../../../src/components/FileUploader/DropZone/DropZone.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\nimport uniqueId from \"lodash/uniqueId\";\nimport accept from \"attr-accept\";\nimport { clsx } from \"clsx\";\nimport { isKey, setId } from \"@core/utils\";\nimport { useUniqueId } from \"@core/hooks\";\nimport { convertUnits } from \"../utils\";\nimport {\n StyledDragText,\n StyledDropArea,\n StyledDropAreaIcon,\n StyledDropAreaLabel,\n StyledDropAreaLabels,\n StyledDropZoneContainer,\n StyledDropZoneLabelsGroup,\n StyledInfoMessage,\n StyledInput,\n StyledLabel,\n StyledSelectedFilesText,\n} from \"./DropZone.styles\";\nimport dropZoneClasses, { HvDropZoneClasses } from \"./dropZoneClasses\";\nimport { HvFileData, HvFilesAddedEvent } from \"../File\";\n\nexport interface HvDropZoneLabels {\n /**\n * Extensions of the accepted file types\n */\n acceptedFiles?: string;\n /**\n * Dropzone area label.\n */\n dropzone?: string;\n /**\n * Size file warning label.\n */\n sizeWarning?: string;\n /**\n * Size file warning label.\n */\n drag?: string;\n /**\n * Size file warning label.\n */\n selectFiles?: string;\n /**\n * Theming sheet used to style components\n * */\n dropFiles?: string;\n /**\n * Message to display when file size is greater than allowed\n * */\n fileSizeError?: string;\n /**\n * Message to display when file type is greater than allowed\n * */\n fileTypeError?: string;\n}\n\nexport interface HvDropZoneProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Labels to present in FileUploader.\n */\n labels?: HvDropZoneLabels;\n /**\n * Whether the Dropzone should accept multiple files at once.\n */\n multiple?: boolean;\n /**\n * If the input is disabled or not\n */\n disabled?: boolean;\n /**\n * Files extensions accepted for upload.\n */\n acceptedFiles: string[];\n /**\n * Max upload size\n * */\n maxFileSize: number;\n /**\n * Function responsible for processing files added to the drop zone.\n */\n onFilesAdded?: HvFilesAddedEvent;\n /**\n * Whether the DropZone should hide labels or not.\n */\n hideLabels?: boolean;\n /**\n * Attributes applied to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvDropZoneClasses;\n}\n\nexport const HvDropZone = ({\n id: idProp,\n classes,\n labels,\n acceptedFiles,\n maxFileSize,\n inputProps,\n hideLabels,\n multiple = true,\n disabled = false,\n onFilesAdded,\n}: HvDropZoneProps) => {\n const id = useUniqueId(idProp, \"dropzone\");\n const [dragState, setDrag] = useState<boolean>(false);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const leaveDropArea = () => {\n setDrag(false);\n };\n\n const enterDropArea = () => {\n setDrag(true);\n };\n\n const onChangeHandler = (filesList: FileList) => {\n const filesToProcess = Object.keys(filesList).map((e) => filesList[e]);\n\n const newFiles: HvFileData[] = [];\n\n filesToProcess.forEach((file: File) => {\n const newFile: HvFileData = file;\n\n const isSizeAllowed = file.size <= maxFileSize;\n const isFileAccepted =\n !acceptedFiles.length ||\n acceptedFiles.indexOf(file.type.split(\"/\")[1]) > -1 ||\n acceptedFiles.some((acceptExtension) =>\n accept({ name: file.name, type: file.type }, acceptExtension)\n );\n\n if (!isFileAccepted) {\n newFile.errorMessage = labels?.fileTypeError;\n newFile.status = \"fail\";\n } else if (!isSizeAllowed) {\n newFile.errorMessage = labels?.fileSizeError;\n newFile.status = \"fail\";\n }\n\n newFile.id = uniqueId(\"uploaded-file-data-\");\n newFiles.push(newFile);\n });\n\n onFilesAdded?.(newFiles);\n };\n\n return (\n <>\n {!hideLabels && (\n <StyledDropZoneLabelsGroup\n id={id}\n className={clsx(\n classes?.dropZoneLabelsGroup,\n dropZoneClasses.dropZoneLabelsGroup\n )}\n aria-label=\"File Dropzone\"\n >\n <StyledLabel\n id={setId(id, \"input-file-label\")}\n htmlFor={setId(id, \"input-file\")}\n label={labels?.dropzone}\n className={clsx(\n classes?.dropZoneLabel,\n dropZoneClasses.dropZoneLabel\n )}\n $disabled={disabled}\n />\n <StyledInfoMessage $disabled={disabled} id={setId(id, \"description\")}>\n {Number.isInteger(maxFileSize) &&\n `${labels?.sizeWarning} ${convertUnits(maxFileSize)}`}\n {labels?.acceptedFiles && labels.acceptedFiles}\n {!labels?.acceptedFiles &&\n acceptedFiles.length > 0 &&\n `\\u00A0(${acceptedFiles.join(\", \")})`}\n </StyledInfoMessage>\n </StyledDropZoneLabelsGroup>\n )}\n <StyledDropZoneContainer\n id={setId(id, \"button\")}\n className={clsx(\n classes?.dropZoneContainer,\n dropZoneClasses.dropZoneContainer,\n dragState && clsx(classes?.dragAction, dropZoneClasses.dragAction),\n disabled &&\n clsx(\n classes?.dropZoneContainerDisabled,\n dropZoneClasses.dropZoneContainerDisabled\n )\n )}\n $drag={dragState}\n $disabled={disabled}\n role=\"button\"\n tabIndex={0}\n onDragEnter={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDragLeave={leaveDropArea}\n onDropCapture={leaveDropArea}\n onDragOver={(event) => {\n if (!disabled) {\n enterDropArea();\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n onDrop={(event) => {\n if (!disabled) {\n const { files } = event.dataTransfer;\n if (multiple === true || files.length === 1) {\n event.stopPropagation();\n event.preventDefault();\n onChangeHandler(files);\n }\n }\n }}\n onKeyDown={(e) => {\n if (isKey(e, \"Enter\") || isKey(e, \"Space\")) {\n inputRef.current?.click();\n }\n }}\n >\n <StyledInput\n id={setId(id, \"input-file\")}\n tabIndex={-1}\n className={clsx(classes?.inputArea, dropZoneClasses.inputArea)}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n title={!disabled ? `${labels?.drag}\\xa0${labels?.selectFiles}` : \"\"}\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n }}\n onChange={() => {\n if (!disabled && inputRef.current?.files) {\n onChangeHandler(inputRef.current.files);\n }\n }}\n ref={inputRef}\n accept={acceptedFiles.join(\",\")}\n {...inputProps}\n />\n <StyledDropArea\n className={clsx(classes?.dropArea, dropZoneClasses.dropArea)}\n >\n {dragState ? (\n <StyledDropAreaLabel\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(classes?.dragText, dropZoneClasses.dragText)}\n >\n {labels?.dropFiles}\n </StyledDragText>\n </StyledDropAreaLabel>\n ) : (\n <>\n <StyledDropAreaIcon\n iconSize=\"M\"\n className={clsx(\n classes?.dropZoneAreaIcon,\n dropZoneClasses.dropZoneAreaIcon\n )}\n color={disabled ? \"secondary_60\" : \"secondary\"}\n />\n <StyledDropAreaLabels\n className={clsx(\n classes?.dropZoneAreaLabels,\n dropZoneClasses.dropZoneAreaLabels\n )}\n >\n <StyledDragText\n className={clsx(classes?.dragText, dropZoneClasses.dragText)}\n >\n {labels?.drag}\n <StyledSelectedFilesText\n className={clsx(\n classes?.selectFilesText,\n dropZoneClasses.selectFilesText\n )}\n >{`\\xa0${labels?.selectFiles}`}</StyledSelectedFilesText>\n </StyledDragText>\n </StyledDropAreaLabels>\n </>\n )}\n </StyledDropArea>\n </StyledDropZoneContainer>\n </>\n );\n};\n"],"names":["HvDropZone","id","idProp","classes","labels","acceptedFiles","maxFileSize","inputProps","hideLabels","multiple","disabled","onFilesAdded","useUniqueId","dragState","setDrag","useState","inputRef","useRef","leaveDropArea","enterDropArea","onChangeHandler","filesList","filesToProcess","Object","keys","map","e","newFiles","forEach","file","newFile","isSizeAllowed","size","isFileAccepted","length","indexOf","type","split","some","acceptExtension","accept","name","errorMessage","fileTypeError","status","fileSizeError","uniqueId","push","_Fragment","children","StyledDropZoneLabelsGroup","className","clsx","dropZoneLabelsGroup","dropZoneClasses","_jsx","StyledLabel","setId","htmlFor","label","dropzone","dropZoneLabel","$disabled","_jsxs","StyledInfoMessage","Number","isInteger","sizeWarning","convertUnits","join","StyledDropZoneContainer","dropZoneContainer","dragAction","dropZoneContainerDisabled","$drag","role","tabIndex","onDragEnter","event","stopPropagation","preventDefault","onDragLeave","onDropCapture","onDragOver","onDrop","files","dataTransfer","onKeyDown","isKey","current","click","StyledInput","inputArea","title","drag","selectFiles","onClick","value","onChange","ref","StyledDropArea","dropArea","StyledDropAreaLabel","dropZoneAreaLabels","StyledDragText","dragText","dropFiles","StyledDropAreaIcon","iconSize","dropZoneAreaIcon","color","StyledDropAreaLabels","StyledSelectedFilesText","selectFilesText"],"mappings":"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"}