@hitachivantara/uikit-react-core 5.22.0 → 5.23.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 (446) hide show
  1. package/dist/cjs/components/Accordion/Accordion.cjs +17 -15
  2. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
  3. package/dist/cjs/components/ActionBar/ActionBar.cjs +2 -1
  4. package/dist/cjs/components/ActionBar/ActionBar.cjs.map +1 -1
  5. package/dist/cjs/components/ActionsGeneric/ActionsGeneric.cjs +13 -11
  6. package/dist/cjs/components/ActionsGeneric/ActionsGeneric.cjs.map +1 -1
  7. package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs +16 -14
  8. package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs.map +1 -1
  9. package/dist/cjs/components/Avatar/Avatar.cjs +41 -35
  10. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
  11. package/dist/cjs/components/Avatar/Avatar.styles.cjs +92 -134
  12. package/dist/cjs/components/Avatar/Avatar.styles.cjs.map +1 -1
  13. package/dist/cjs/components/Badge/Badge.cjs +20 -16
  14. package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
  15. package/dist/cjs/components/Badge/Badge.styles.cjs +23 -69
  16. package/dist/cjs/components/Badge/Badge.styles.cjs.map +1 -1
  17. package/dist/cjs/components/Banner/Banner.cjs +22 -20
  18. package/dist/cjs/components/Banner/Banner.cjs.map +1 -1
  19. package/dist/cjs/components/Banner/BannerContent/BannerContent.cjs +1 -1
  20. package/dist/cjs/components/Banner/BannerContent/BannerContent.cjs.map +1 -1
  21. package/dist/cjs/components/BaseCheckBox/BaseCheckBox.cjs +21 -19
  22. package/dist/cjs/components/BaseCheckBox/BaseCheckBox.cjs.map +1 -1
  23. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs +26 -24
  24. package/dist/cjs/components/BaseDropdown/BaseDropdown.cjs.map +1 -1
  25. package/dist/cjs/components/BaseInput/BaseInput.cjs +23 -21
  26. package/dist/cjs/components/BaseInput/BaseInput.cjs.map +1 -1
  27. package/dist/cjs/components/BaseRadio/BaseRadio.cjs +2 -1
  28. package/dist/cjs/components/BaseRadio/BaseRadio.cjs.map +1 -1
  29. package/dist/cjs/components/BaseSwitch/BaseSwitch.cjs +2 -1
  30. package/dist/cjs/components/BaseSwitch/BaseSwitch.cjs.map +1 -1
  31. package/dist/cjs/components/Box/Box.cjs +9 -8
  32. package/dist/cjs/components/Box/Box.cjs.map +1 -1
  33. package/dist/cjs/components/BreadCrumb/BreadCrumb.cjs +14 -12
  34. package/dist/cjs/components/BreadCrumb/BreadCrumb.cjs.map +1 -1
  35. package/dist/cjs/components/BulkActions/BulkActions.cjs +22 -20
  36. package/dist/cjs/components/BulkActions/BulkActions.cjs.map +1 -1
  37. package/dist/cjs/components/Button/Button.cjs +4 -3
  38. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  39. package/dist/cjs/components/Calendar/Calendar.cjs +20 -18
  40. package/dist/cjs/components/Calendar/Calendar.cjs.map +1 -1
  41. package/dist/cjs/components/Card/Card.cjs +13 -11
  42. package/dist/cjs/components/Card/Card.cjs.map +1 -1
  43. package/dist/cjs/components/Carousel/Carousel.cjs +2 -2
  44. package/dist/cjs/components/Carousel/Carousel.cjs.map +1 -1
  45. package/dist/cjs/components/Carousel/CarouselControls.cjs +2 -3
  46. package/dist/cjs/components/Carousel/CarouselControls.cjs.map +1 -1
  47. package/dist/cjs/components/Carousel/CarouselSlide/CarouselSlide.cjs +1 -1
  48. package/dist/cjs/components/Carousel/CarouselSlide/CarouselSlide.cjs.map +1 -1
  49. package/dist/cjs/components/CheckBox/CheckBox.cjs +29 -27
  50. package/dist/cjs/components/CheckBox/CheckBox.cjs.map +1 -1
  51. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs +28 -26
  52. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.cjs.map +1 -1
  53. package/dist/cjs/components/ColorPicker/ColorPicker.cjs +34 -32
  54. package/dist/cjs/components/ColorPicker/ColorPicker.cjs.map +1 -1
  55. package/dist/cjs/components/Container/Container.cjs +9 -7
  56. package/dist/cjs/components/Container/Container.cjs.map +1 -1
  57. package/dist/cjs/components/Controls/Controls.cjs +14 -12
  58. package/dist/cjs/components/Controls/Controls.cjs.map +1 -1
  59. package/dist/cjs/components/DatePicker/DatePicker.cjs +39 -37
  60. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  61. package/dist/cjs/components/Dialog/Actions/Actions.cjs +9 -7
  62. package/dist/cjs/components/Dialog/Actions/Actions.cjs.map +1 -1
  63. package/dist/cjs/components/Dialog/Content/Content.cjs +8 -6
  64. package/dist/cjs/components/Dialog/Content/Content.cjs.map +1 -1
  65. package/dist/cjs/components/Dialog/Dialog.cjs +16 -14
  66. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  67. package/dist/cjs/components/Dialog/Title/Title.cjs +11 -9
  68. package/dist/cjs/components/Dialog/Title/Title.cjs.map +1 -1
  69. package/dist/cjs/components/DotPagination/DotPagination.cjs +14 -12
  70. package/dist/cjs/components/DotPagination/DotPagination.cjs.map +1 -1
  71. package/dist/cjs/components/Drawer/Drawer.cjs +13 -11
  72. package/dist/cjs/components/Drawer/Drawer.cjs.map +1 -1
  73. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs +20 -17
  74. package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
  75. package/dist/cjs/components/Dropdown/Dropdown.cjs +2 -1
  76. package/dist/cjs/components/Dropdown/Dropdown.cjs.map +1 -1
  77. package/dist/cjs/components/EmptyState/EmptyState.cjs +2 -1
  78. package/dist/cjs/components/EmptyState/EmptyState.cjs.map +1 -1
  79. package/dist/cjs/components/FileUploader/File/File.cjs +0 -1
  80. package/dist/cjs/components/FileUploader/File/File.cjs.map +1 -1
  81. package/dist/cjs/components/FileUploader/FileUploader.cjs +17 -15
  82. package/dist/cjs/components/FileUploader/FileUploader.cjs.map +1 -1
  83. package/dist/cjs/components/FileUploader/Preview/Preview.cjs +0 -1
  84. package/dist/cjs/components/FileUploader/Preview/Preview.cjs.map +1 -1
  85. package/dist/cjs/components/FilterGroup/FilterGroup.cjs +30 -28
  86. package/dist/cjs/components/FilterGroup/FilterGroup.cjs.map +1 -1
  87. package/dist/cjs/components/FilterGroup/FilterGroupContext.cjs +8 -6
  88. package/dist/cjs/components/FilterGroup/FilterGroupContext.cjs.map +1 -1
  89. package/dist/cjs/components/Footer/Footer.cjs +2 -1
  90. package/dist/cjs/components/Footer/Footer.cjs.map +1 -1
  91. package/dist/cjs/components/Forms/CharCounter/CharCounter.cjs +13 -11
  92. package/dist/cjs/components/Forms/CharCounter/CharCounter.cjs.map +1 -1
  93. package/dist/cjs/components/Forms/FormElement/FormElement.cjs +15 -13
  94. package/dist/cjs/components/Forms/FormElement/FormElement.cjs.map +1 -1
  95. package/dist/cjs/components/Forms/InfoMessage/InfoMessage.cjs +11 -9
  96. package/dist/cjs/components/Forms/InfoMessage/InfoMessage.cjs.map +1 -1
  97. package/dist/cjs/components/Forms/Label/Label.cjs +13 -11
  98. package/dist/cjs/components/Forms/Label/Label.cjs.map +1 -1
  99. package/dist/cjs/components/Forms/WarningText/WarningText.cjs +16 -14
  100. package/dist/cjs/components/Forms/WarningText/WarningText.cjs.map +1 -1
  101. package/dist/cjs/components/GlobalActions/GlobalActions.cjs +13 -11
  102. package/dist/cjs/components/GlobalActions/GlobalActions.cjs.map +1 -1
  103. package/dist/cjs/components/Grid/Grid.cjs +10 -8
  104. package/dist/cjs/components/Grid/Grid.cjs.map +1 -1
  105. package/dist/cjs/components/Header/Actions/Actions.cjs +8 -6
  106. package/dist/cjs/components/Header/Actions/Actions.cjs.map +1 -1
  107. package/dist/cjs/components/Header/Brand/Brand.cjs +9 -7
  108. package/dist/cjs/components/Header/Brand/Brand.cjs.map +1 -1
  109. package/dist/cjs/components/Header/Header.cjs +2 -1
  110. package/dist/cjs/components/Header/Header.cjs.map +1 -1
  111. package/dist/cjs/components/Header/Navigation/Navigation.cjs +11 -9
  112. package/dist/cjs/components/Header/Navigation/Navigation.cjs.map +1 -1
  113. package/dist/cjs/components/InlineEditor/InlineEditor.cjs +18 -16
  114. package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
  115. package/dist/cjs/components/Input/Input.cjs +2 -1
  116. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  117. package/dist/cjs/components/Kpi/Kpi.cjs +13 -11
  118. package/dist/cjs/components/Kpi/Kpi.cjs.map +1 -1
  119. package/dist/cjs/components/Link/Link.cjs +11 -9
  120. package/dist/cjs/components/Link/Link.cjs.map +1 -1
  121. package/dist/cjs/components/List/List.cjs +21 -19
  122. package/dist/cjs/components/List/List.cjs.map +1 -1
  123. package/dist/cjs/components/ListContainer/ListContainer.cjs +12 -10
  124. package/dist/cjs/components/ListContainer/ListContainer.cjs.map +1 -1
  125. package/dist/cjs/components/ListContainer/ListItem/ListItem.cjs +20 -18
  126. package/dist/cjs/components/ListContainer/ListItem/ListItem.cjs.map +1 -1
  127. package/dist/cjs/components/Loading/Loading.cjs +2 -1
  128. package/dist/cjs/components/Loading/Loading.cjs.map +1 -1
  129. package/dist/cjs/components/Login/Login.cjs +10 -8
  130. package/dist/cjs/components/Login/Login.cjs.map +1 -1
  131. package/dist/cjs/components/MultiButton/MultiButton.cjs +11 -9
  132. package/dist/cjs/components/MultiButton/MultiButton.cjs.map +1 -1
  133. package/dist/cjs/components/OverflowTooltip/OverflowTooltip.cjs +12 -10
  134. package/dist/cjs/components/OverflowTooltip/OverflowTooltip.cjs.map +1 -1
  135. package/dist/cjs/components/Pagination/ButtonIconTooltip.cjs +0 -1
  136. package/dist/cjs/components/Pagination/ButtonIconTooltip.cjs.map +1 -1
  137. package/dist/cjs/components/Pagination/Pagination.cjs +22 -20
  138. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  139. package/dist/cjs/components/Pagination/Select.cjs +1 -1
  140. package/dist/cjs/components/Pagination/Select.cjs.map +1 -1
  141. package/dist/cjs/components/Panel/Panel.cjs +9 -7
  142. package/dist/cjs/components/Panel/Panel.cjs.map +1 -1
  143. package/dist/cjs/components/ProgressBar/ProgressBar.cjs +2 -1
  144. package/dist/cjs/components/ProgressBar/ProgressBar.cjs.map +1 -1
  145. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs +13 -11
  146. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs.map +1 -1
  147. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs +0 -1
  148. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs.map +1 -1
  149. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs +1 -2
  150. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -1
  151. package/dist/cjs/components/Radio/Radio.cjs +2 -1
  152. package/dist/cjs/components/Radio/Radio.cjs.map +1 -1
  153. package/dist/cjs/components/RadioGroup/RadioGroup.cjs +25 -23
  154. package/dist/cjs/components/RadioGroup/RadioGroup.cjs.map +1 -1
  155. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs +18 -16
  156. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs.map +1 -1
  157. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs +19 -17
  158. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs.map +1 -1
  159. package/dist/cjs/components/SelectionList/SelectionList.cjs +27 -25
  160. package/dist/cjs/components/SelectionList/SelectionList.cjs.map +1 -1
  161. package/dist/cjs/components/SimpleGrid/SimpleGrid.cjs +9 -7
  162. package/dist/cjs/components/SimpleGrid/SimpleGrid.cjs.map +1 -1
  163. package/dist/cjs/components/Slider/Slider.cjs +37 -35
  164. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  165. package/dist/cjs/components/Snackbar/Snackbar.cjs +1 -1
  166. package/dist/cjs/components/Snackbar/Snackbar.cjs.map +1 -1
  167. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.cjs +1 -1
  168. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.cjs.map +1 -1
  169. package/dist/cjs/components/Snackbar/SnackbarProvider/SnackbarProvider.cjs +2 -2
  170. package/dist/cjs/components/Snackbar/SnackbarProvider/SnackbarProvider.cjs.map +1 -1
  171. package/dist/cjs/components/Stack/Stack.cjs +13 -11
  172. package/dist/cjs/components/Stack/Stack.cjs.map +1 -1
  173. package/dist/cjs/components/Switch/Switch.cjs +2 -1
  174. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  175. package/dist/cjs/components/Tab/Tab.cjs +8 -6
  176. package/dist/cjs/components/Tab/Tab.cjs.map +1 -1
  177. package/dist/cjs/components/Table/Table.cjs +12 -10
  178. package/dist/cjs/components/Table/Table.cjs.map +1 -1
  179. package/dist/cjs/components/Table/TableHeader/TableHeader.cjs +2 -3
  180. package/dist/cjs/components/Table/TableHeader/TableHeader.cjs.map +1 -1
  181. package/dist/cjs/components/Table/hooks/useRowExpand.cjs +0 -1
  182. package/dist/cjs/components/Table/hooks/useRowExpand.cjs.map +1 -1
  183. package/dist/cjs/components/Table/renderers/renderers.cjs +0 -1
  184. package/dist/cjs/components/Table/renderers/renderers.cjs.map +1 -1
  185. package/dist/cjs/components/Tabs/Tabs.cjs +6 -4
  186. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
  187. package/dist/cjs/components/Tag/Tag.cjs +18 -16
  188. package/dist/cjs/components/Tag/Tag.cjs.map +1 -1
  189. package/dist/cjs/components/TagsInput/TagsInput.cjs +39 -37
  190. package/dist/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
  191. package/dist/cjs/components/TextArea/TextArea.cjs +2 -1
  192. package/dist/cjs/components/TextArea/TextArea.cjs.map +1 -1
  193. package/dist/cjs/components/TimeAgo/TimeAgo.cjs +14 -12
  194. package/dist/cjs/components/TimeAgo/TimeAgo.cjs.map +1 -1
  195. package/dist/cjs/components/TimePicker/TimePicker.cjs +3 -2
  196. package/dist/cjs/components/TimePicker/TimePicker.cjs.map +1 -1
  197. package/dist/cjs/components/ToggleButton/ToggleButton.cjs +2 -2
  198. package/dist/cjs/components/ToggleButton/ToggleButton.cjs.map +1 -1
  199. package/dist/cjs/components/Tooltip/Tooltip.cjs +2 -1
  200. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  201. package/dist/cjs/components/Typography/Typography.cjs +2 -1
  202. package/dist/cjs/components/Typography/Typography.cjs.map +1 -1
  203. package/dist/cjs/components/VerticalNavigation/Header/Header.cjs +0 -2
  204. package/dist/cjs/components/VerticalNavigation/Header/Header.cjs.map +1 -1
  205. package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.cjs +0 -1
  206. package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.cjs.map +1 -1
  207. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs +1 -0
  208. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.cjs.map +1 -1
  209. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs +10 -6
  210. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs.map +1 -1
  211. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.cjs +12 -10
  212. package/dist/cjs/components/VerticalNavigation/VerticalNavigation.cjs.map +1 -1
  213. package/dist/cjs/hooks/useDefaultProps.cjs +41 -0
  214. package/dist/cjs/hooks/useDefaultProps.cjs.map +1 -0
  215. package/dist/cjs/index.cjs +9 -4
  216. package/dist/cjs/index.cjs.map +1 -1
  217. package/dist/cjs/utils/classes.cjs +1 -1
  218. package/dist/cjs/utils/classes.cjs.map +1 -1
  219. package/dist/esm/components/Accordion/Accordion.js +17 -15
  220. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  221. package/dist/esm/components/ActionBar/ActionBar.js +2 -1
  222. package/dist/esm/components/ActionBar/ActionBar.js.map +1 -1
  223. package/dist/esm/components/ActionsGeneric/ActionsGeneric.js +13 -11
  224. package/dist/esm/components/ActionsGeneric/ActionsGeneric.js.map +1 -1
  225. package/dist/esm/components/AppSwitcher/AppSwitcher.js +16 -14
  226. package/dist/esm/components/AppSwitcher/AppSwitcher.js.map +1 -1
  227. package/dist/esm/components/Avatar/Avatar.js +42 -37
  228. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  229. package/dist/esm/components/Avatar/Avatar.styles.js +92 -132
  230. package/dist/esm/components/Avatar/Avatar.styles.js.map +1 -1
  231. package/dist/esm/components/Badge/Badge.js +23 -18
  232. package/dist/esm/components/Badge/Badge.js.map +1 -1
  233. package/dist/esm/components/Badge/Badge.styles.js +23 -67
  234. package/dist/esm/components/Badge/Badge.styles.js.map +1 -1
  235. package/dist/esm/components/Banner/Banner.js +22 -20
  236. package/dist/esm/components/Banner/Banner.js.map +1 -1
  237. package/dist/esm/components/Banner/BannerContent/BannerContent.js +1 -1
  238. package/dist/esm/components/Banner/BannerContent/BannerContent.js.map +1 -1
  239. package/dist/esm/components/BaseCheckBox/BaseCheckBox.js +21 -19
  240. package/dist/esm/components/BaseCheckBox/BaseCheckBox.js.map +1 -1
  241. package/dist/esm/components/BaseDropdown/BaseDropdown.js +26 -24
  242. package/dist/esm/components/BaseDropdown/BaseDropdown.js.map +1 -1
  243. package/dist/esm/components/BaseInput/BaseInput.js +23 -21
  244. package/dist/esm/components/BaseInput/BaseInput.js.map +1 -1
  245. package/dist/esm/components/BaseRadio/BaseRadio.js +2 -1
  246. package/dist/esm/components/BaseRadio/BaseRadio.js.map +1 -1
  247. package/dist/esm/components/BaseSwitch/BaseSwitch.js +2 -1
  248. package/dist/esm/components/BaseSwitch/BaseSwitch.js.map +1 -1
  249. package/dist/esm/components/Box/Box.js +9 -8
  250. package/dist/esm/components/Box/Box.js.map +1 -1
  251. package/dist/esm/components/BreadCrumb/BreadCrumb.js +14 -12
  252. package/dist/esm/components/BreadCrumb/BreadCrumb.js.map +1 -1
  253. package/dist/esm/components/BulkActions/BulkActions.js +22 -20
  254. package/dist/esm/components/BulkActions/BulkActions.js.map +1 -1
  255. package/dist/esm/components/Button/Button.js +4 -3
  256. package/dist/esm/components/Button/Button.js.map +1 -1
  257. package/dist/esm/components/Calendar/Calendar.js +20 -18
  258. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  259. package/dist/esm/components/Card/Card.js +13 -11
  260. package/dist/esm/components/Card/Card.js.map +1 -1
  261. package/dist/esm/components/Carousel/Carousel.js +2 -2
  262. package/dist/esm/components/Carousel/Carousel.js.map +1 -1
  263. package/dist/esm/components/Carousel/CarouselControls.js +2 -3
  264. package/dist/esm/components/Carousel/CarouselControls.js.map +1 -1
  265. package/dist/esm/components/Carousel/CarouselSlide/CarouselSlide.js +1 -1
  266. package/dist/esm/components/Carousel/CarouselSlide/CarouselSlide.js.map +1 -1
  267. package/dist/esm/components/CheckBox/CheckBox.js +29 -27
  268. package/dist/esm/components/CheckBox/CheckBox.js.map +1 -1
  269. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js +28 -26
  270. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  271. package/dist/esm/components/ColorPicker/ColorPicker.js +34 -32
  272. package/dist/esm/components/ColorPicker/ColorPicker.js.map +1 -1
  273. package/dist/esm/components/Container/Container.js +9 -7
  274. package/dist/esm/components/Container/Container.js.map +1 -1
  275. package/dist/esm/components/Controls/Controls.js +14 -12
  276. package/dist/esm/components/Controls/Controls.js.map +1 -1
  277. package/dist/esm/components/DatePicker/DatePicker.js +39 -37
  278. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  279. package/dist/esm/components/Dialog/Actions/Actions.js +9 -7
  280. package/dist/esm/components/Dialog/Actions/Actions.js.map +1 -1
  281. package/dist/esm/components/Dialog/Content/Content.js +8 -6
  282. package/dist/esm/components/Dialog/Content/Content.js.map +1 -1
  283. package/dist/esm/components/Dialog/Dialog.js +16 -14
  284. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  285. package/dist/esm/components/Dialog/Title/Title.js +11 -9
  286. package/dist/esm/components/Dialog/Title/Title.js.map +1 -1
  287. package/dist/esm/components/DotPagination/DotPagination.js +14 -12
  288. package/dist/esm/components/DotPagination/DotPagination.js.map +1 -1
  289. package/dist/esm/components/Drawer/Drawer.js +13 -11
  290. package/dist/esm/components/Drawer/Drawer.js.map +1 -1
  291. package/dist/esm/components/DropDownMenu/DropDownMenu.js +20 -17
  292. package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
  293. package/dist/esm/components/Dropdown/Dropdown.js +2 -1
  294. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  295. package/dist/esm/components/EmptyState/EmptyState.js +2 -1
  296. package/dist/esm/components/EmptyState/EmptyState.js.map +1 -1
  297. package/dist/esm/components/FileUploader/File/File.js +0 -1
  298. package/dist/esm/components/FileUploader/File/File.js.map +1 -1
  299. package/dist/esm/components/FileUploader/FileUploader.js +17 -15
  300. package/dist/esm/components/FileUploader/FileUploader.js.map +1 -1
  301. package/dist/esm/components/FileUploader/Preview/Preview.js +0 -1
  302. package/dist/esm/components/FileUploader/Preview/Preview.js.map +1 -1
  303. package/dist/esm/components/FilterGroup/FilterGroup.js +30 -28
  304. package/dist/esm/components/FilterGroup/FilterGroup.js.map +1 -1
  305. package/dist/esm/components/FilterGroup/FilterGroupContext.js +8 -6
  306. package/dist/esm/components/FilterGroup/FilterGroupContext.js.map +1 -1
  307. package/dist/esm/components/Footer/Footer.js +2 -1
  308. package/dist/esm/components/Footer/Footer.js.map +1 -1
  309. package/dist/esm/components/Forms/CharCounter/CharCounter.js +13 -11
  310. package/dist/esm/components/Forms/CharCounter/CharCounter.js.map +1 -1
  311. package/dist/esm/components/Forms/FormElement/FormElement.js +15 -13
  312. package/dist/esm/components/Forms/FormElement/FormElement.js.map +1 -1
  313. package/dist/esm/components/Forms/InfoMessage/InfoMessage.js +11 -9
  314. package/dist/esm/components/Forms/InfoMessage/InfoMessage.js.map +1 -1
  315. package/dist/esm/components/Forms/Label/Label.js +13 -11
  316. package/dist/esm/components/Forms/Label/Label.js.map +1 -1
  317. package/dist/esm/components/Forms/WarningText/WarningText.js +16 -14
  318. package/dist/esm/components/Forms/WarningText/WarningText.js.map +1 -1
  319. package/dist/esm/components/GlobalActions/GlobalActions.js +13 -11
  320. package/dist/esm/components/GlobalActions/GlobalActions.js.map +1 -1
  321. package/dist/esm/components/Grid/Grid.js +10 -8
  322. package/dist/esm/components/Grid/Grid.js.map +1 -1
  323. package/dist/esm/components/Header/Actions/Actions.js +8 -6
  324. package/dist/esm/components/Header/Actions/Actions.js.map +1 -1
  325. package/dist/esm/components/Header/Brand/Brand.js +9 -7
  326. package/dist/esm/components/Header/Brand/Brand.js.map +1 -1
  327. package/dist/esm/components/Header/Header.js +2 -1
  328. package/dist/esm/components/Header/Header.js.map +1 -1
  329. package/dist/esm/components/Header/Navigation/Navigation.js +11 -9
  330. package/dist/esm/components/Header/Navigation/Navigation.js.map +1 -1
  331. package/dist/esm/components/InlineEditor/InlineEditor.js +18 -16
  332. package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
  333. package/dist/esm/components/Input/Input.js +2 -1
  334. package/dist/esm/components/Input/Input.js.map +1 -1
  335. package/dist/esm/components/Kpi/Kpi.js +13 -11
  336. package/dist/esm/components/Kpi/Kpi.js.map +1 -1
  337. package/dist/esm/components/Link/Link.js +11 -9
  338. package/dist/esm/components/Link/Link.js.map +1 -1
  339. package/dist/esm/components/List/List.js +21 -19
  340. package/dist/esm/components/List/List.js.map +1 -1
  341. package/dist/esm/components/ListContainer/ListContainer.js +12 -10
  342. package/dist/esm/components/ListContainer/ListContainer.js.map +1 -1
  343. package/dist/esm/components/ListContainer/ListItem/ListItem.js +20 -18
  344. package/dist/esm/components/ListContainer/ListItem/ListItem.js.map +1 -1
  345. package/dist/esm/components/Loading/Loading.js +2 -1
  346. package/dist/esm/components/Loading/Loading.js.map +1 -1
  347. package/dist/esm/components/Login/Login.js +10 -8
  348. package/dist/esm/components/Login/Login.js.map +1 -1
  349. package/dist/esm/components/MultiButton/MultiButton.js +11 -9
  350. package/dist/esm/components/MultiButton/MultiButton.js.map +1 -1
  351. package/dist/esm/components/OverflowTooltip/OverflowTooltip.js +12 -10
  352. package/dist/esm/components/OverflowTooltip/OverflowTooltip.js.map +1 -1
  353. package/dist/esm/components/Pagination/ButtonIconTooltip.js +0 -1
  354. package/dist/esm/components/Pagination/ButtonIconTooltip.js.map +1 -1
  355. package/dist/esm/components/Pagination/Pagination.js +22 -20
  356. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  357. package/dist/esm/components/Pagination/Select.js +1 -1
  358. package/dist/esm/components/Pagination/Select.js.map +1 -1
  359. package/dist/esm/components/Panel/Panel.js +9 -7
  360. package/dist/esm/components/Panel/Panel.js.map +1 -1
  361. package/dist/esm/components/ProgressBar/ProgressBar.js +2 -1
  362. package/dist/esm/components/ProgressBar/ProgressBar.js.map +1 -1
  363. package/dist/esm/components/QueryBuilder/QueryBuilder.js +13 -11
  364. package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -1
  365. package/dist/esm/components/QueryBuilder/Rule/Rule.js +0 -1
  366. package/dist/esm/components/QueryBuilder/Rule/Rule.js.map +1 -1
  367. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +1 -2
  368. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
  369. package/dist/esm/components/Radio/Radio.js +2 -1
  370. package/dist/esm/components/Radio/Radio.js.map +1 -1
  371. package/dist/esm/components/RadioGroup/RadioGroup.js +25 -23
  372. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  373. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js +18 -16
  374. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  375. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js +19 -17
  376. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  377. package/dist/esm/components/SelectionList/SelectionList.js +27 -25
  378. package/dist/esm/components/SelectionList/SelectionList.js.map +1 -1
  379. package/dist/esm/components/SimpleGrid/SimpleGrid.js +9 -7
  380. package/dist/esm/components/SimpleGrid/SimpleGrid.js.map +1 -1
  381. package/dist/esm/components/Slider/Slider.js +37 -35
  382. package/dist/esm/components/Slider/Slider.js.map +1 -1
  383. package/dist/esm/components/Snackbar/Snackbar.js +1 -1
  384. package/dist/esm/components/Snackbar/Snackbar.js.map +1 -1
  385. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js +1 -1
  386. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js.map +1 -1
  387. package/dist/esm/components/Snackbar/SnackbarProvider/SnackbarProvider.js +2 -2
  388. package/dist/esm/components/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -1
  389. package/dist/esm/components/Stack/Stack.js +13 -11
  390. package/dist/esm/components/Stack/Stack.js.map +1 -1
  391. package/dist/esm/components/Switch/Switch.js +2 -1
  392. package/dist/esm/components/Switch/Switch.js.map +1 -1
  393. package/dist/esm/components/Tab/Tab.js +8 -6
  394. package/dist/esm/components/Tab/Tab.js.map +1 -1
  395. package/dist/esm/components/Table/Table.js +12 -10
  396. package/dist/esm/components/Table/Table.js.map +1 -1
  397. package/dist/esm/components/Table/TableHeader/TableHeader.js +2 -3
  398. package/dist/esm/components/Table/TableHeader/TableHeader.js.map +1 -1
  399. package/dist/esm/components/Table/hooks/useRowExpand.js +0 -1
  400. package/dist/esm/components/Table/hooks/useRowExpand.js.map +1 -1
  401. package/dist/esm/components/Table/renderers/renderers.js +0 -1
  402. package/dist/esm/components/Table/renderers/renderers.js.map +1 -1
  403. package/dist/esm/components/Tabs/Tabs.js +6 -4
  404. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  405. package/dist/esm/components/Tag/Tag.js +18 -16
  406. package/dist/esm/components/Tag/Tag.js.map +1 -1
  407. package/dist/esm/components/TagsInput/TagsInput.js +39 -37
  408. package/dist/esm/components/TagsInput/TagsInput.js.map +1 -1
  409. package/dist/esm/components/TextArea/TextArea.js +2 -1
  410. package/dist/esm/components/TextArea/TextArea.js.map +1 -1
  411. package/dist/esm/components/TimeAgo/TimeAgo.js +14 -12
  412. package/dist/esm/components/TimeAgo/TimeAgo.js.map +1 -1
  413. package/dist/esm/components/TimePicker/TimePicker.js +3 -2
  414. package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
  415. package/dist/esm/components/ToggleButton/ToggleButton.js +2 -2
  416. package/dist/esm/components/ToggleButton/ToggleButton.js.map +1 -1
  417. package/dist/esm/components/Tooltip/Tooltip.js +2 -1
  418. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  419. package/dist/esm/components/Typography/Typography.js +2 -1
  420. package/dist/esm/components/Typography/Typography.js.map +1 -1
  421. package/dist/esm/components/VerticalNavigation/Header/Header.js +0 -2
  422. package/dist/esm/components/VerticalNavigation/Header/Header.js.map +1 -1
  423. package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.js +0 -1
  424. package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.js.map +1 -1
  425. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js +1 -0
  426. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  427. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js +10 -6
  428. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -1
  429. package/dist/esm/components/VerticalNavigation/VerticalNavigation.js +12 -10
  430. package/dist/esm/components/VerticalNavigation/VerticalNavigation.js.map +1 -1
  431. package/dist/esm/hooks/useDefaultProps.js +41 -0
  432. package/dist/esm/hooks/useDefaultProps.js.map +1 -0
  433. package/dist/esm/index.js +213 -208
  434. package/dist/esm/index.js.map +1 -1
  435. package/dist/esm/utils/classes.js +1 -1
  436. package/dist/esm/utils/classes.js.map +1 -1
  437. package/dist/types/index.d.ts +279 -244
  438. package/package.json +5 -5
  439. package/dist/cjs/components/Avatar/avatarClasses.cjs +0 -8
  440. package/dist/cjs/components/Avatar/avatarClasses.cjs.map +0 -1
  441. package/dist/cjs/components/Badge/badgeClasses.cjs +0 -8
  442. package/dist/cjs/components/Badge/badgeClasses.cjs.map +0 -1
  443. package/dist/esm/components/Avatar/avatarClasses.js +0 -8
  444. package/dist/esm/components/Avatar/avatarClasses.js.map +0 -1
  445. package/dist/esm/components/Badge/badgeClasses.js +0 -8
  446. package/dist/esm/components/Badge/badgeClasses.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { useRef, useState, Children, useCallback, useEffect } from "react";
2
+ import { useDefaultProps } from "../../hooks/useDefaultProps.js";
2
3
  import useCarousel from "embla-carousel-react";
3
4
  import { Close, Fullscreen, Backwards, Forwards } from "@hitachivantara/uikit-react-icons";
4
5
  import { useTheme } from "../../hooks/useTheme.js";
@@ -32,7 +33,7 @@ const HvCarousel = (props) => {
32
33
  renderThumbnail,
33
34
  onChange,
34
35
  ...others
35
- } = props;
36
+ } = useDefaultProps("HvCarousel", props);
36
37
  const {
37
38
  activeTheme
38
39
  } = useTheme();
@@ -108,7 +109,6 @@ const HvCarousel = (props) => {
108
109
  })),
109
110
  children: [actionsProp, showFullscreen && /* @__PURE__ */ jsx(HvButton, {
110
111
  icon: true,
111
- variant: "secondaryGhost",
112
112
  onClick: () => setIsFullscreen((curr) => !curr),
113
113
  className: classes.closeButton,
114
114
  children: isFullscreen ? /* @__PURE__ */ jsx(Close, {
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.js","sources":["../../../../src/components/Carousel/Carousel.tsx"],"sourcesContent":["import React, {\n CSSProperties,\n Children,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport useCarousel, { EmblaOptionsType } from \"embla-carousel-react\";\n\nimport {\n Backwards,\n Forwards,\n Close,\n Fullscreen,\n} from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvButton } from \"@core/components/Button\";\nimport { useTheme } from \"@core/hooks/useTheme\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { HvContainer } from \"@core/components/Container\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { HvCarouselControls } from \"./CarouselControls\";\nimport { HvCarouselThumbnails } from \"./CarouselThumbnails\";\nimport { staticClasses, useClasses } from \"./Carousel.styles\";\n\nconst clamp = (num: number, max: number, min = 0) =>\n Math.min(Math.max(num, min), max);\n\nexport { staticClasses as carouselClasses };\n\nexport type HvCarouselClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvCarouselProps\n extends HvBaseProps<HTMLDivElement, \"title\" | \"onChange\"> {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvCarouselClasses;\n /** Height of the Slider container. If `undefined`, images will keep a 16/9 aspect-ratio */\n height?: CSSProperties[\"height\"];\n /** Width of the thumbnail. Height will try to maintain a 16/9 aspect-ratio */\n thumbnailWidth?: CSSProperties[\"width\"];\n /** Title of the carousel */\n title?: React.ReactNode;\n /** Content slides to be displayed. @see `<HvCarouselSlide />` */\n children?: React.ReactNode;\n /** Custom content to render in the actions area */\n actions?: React.ReactNode;\n /** Whether Carousel is in \"xs mode\" - to use in embedded contexts */\n xs?: boolean;\n /** Whether to show dots instead of arrow pagination. Defaults to true under 5 elements */\n showDots?: boolean;\n /** Whether to show the counter on the top-right corner of the active slide */\n showCounter?: boolean;\n /** Whether to show the back/forwards buttons over the active slide */\n showSlideControls?: boolean;\n /** Whether to enable the fullscreen toggle button */\n showFullscreen?: boolean;\n /** Whether to hide the thumbnails. Hidden by default in \"xs\" mode */\n hideThumbnails?: boolean;\n controlsPosition?: \"top\" | \"bottom\";\n thumbnailsPosition?: \"top\" | \"bottom\";\n /** Carousel configuration options. @see https://www.embla-carousel.com/api/options/ */\n carouselOptions?: EmblaOptionsType;\n /** */\n renderThumbnail?: (index: number) => React.ReactNode;\n /** The callback fired when the active slide changes. */\n onChange?: (index: number) => void;\n}\n\n/**\n * A Carousel is commonly used to browse images, it can also be used to browse any kind of content like text, video, or charts.\n * It allows you to focus on a particular content while having a notion of how many you have to explore.\n */\nexport const HvCarousel = (props: HvCarouselProps) => {\n const {\n className,\n classes: classesProp,\n height: heightProp = \"auto\",\n thumbnailWidth = 90,\n title,\n children,\n actions: actionsProp,\n xs,\n showDots: showDotsProp,\n showCounter: showCounterProp,\n showSlideControls,\n showFullscreen: showFullscreenProp,\n hideThumbnails: hideThumbnailsProp,\n controlsPosition: controlsPositionProp,\n thumbnailsPosition: thumbnailsPositionProp,\n carouselOptions,\n renderThumbnail,\n onChange,\n ...others\n } = props;\n const { activeTheme } = useTheme();\n const { classes, css, cx } = useClasses(classesProp);\n const thumbnailsRef = useRef<HTMLDivElement>(null);\n const [isFullscreen, setIsFullscreen] = useState(false);\n\n const isDs3 = activeTheme?.name === \"ds3\";\n const actionsPosition = isDs3 ? \"header\" : \"controls\";\n const controlsPosition = controlsPositionProp ?? (isDs3 ? \"bottom\" : \"top\");\n const thumbnailsPosition = thumbnailsPositionProp ?? \"bottom\";\n\n const [containerRef, controller] = useCarousel({\n align: \"start\",\n loop: true,\n ...carouselOptions,\n });\n\n const [selectedIndex, setSelectedIndex] = useState(\n carouselOptions?.startIndex ?? 0\n );\n\n const numSlides = Children.count(children);\n\n const handlePrevious = useCallback(() => {\n controller?.scrollPrev();\n }, [controller]);\n\n const handleNext = useCallback(() => {\n controller?.scrollNext();\n }, [controller]);\n\n const handleScroll = (index: number) => {\n controller?.scrollTo(index);\n };\n\n const handleSelect = useCallback(() => {\n if (!controller) return;\n\n const slideIndex = controller.selectedScrollSnap();\n setSelectedIndex(slideIndex);\n\n // scroll to thumbnail button\n thumbnailsRef.current\n ?.querySelectorAll(\"button\")\n ?.[slideIndex]?.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n });\n\n onChange?.(slideIndex);\n }, [controller, onChange]);\n\n useEffect(() => {\n if (!controller) return;\n\n controller.on(\"select\", handleSelect);\n\n return () => {\n controller.off(\"select\", handleSelect);\n };\n }, [controller, handleSelect]);\n\n useEffect(() => {\n if (!controller) return;\n\n controller.reInit();\n setSelectedIndex((currentIndex) => clamp(currentIndex, numSlides, 0));\n }, [numSlides, controller]);\n\n const canPrev = controller?.canScrollPrev() ?? false;\n const canNext = controller?.canScrollNext() ?? false;\n const showTitle = !!title && (!xs || isFullscreen);\n const showFullscreen = showFullscreenProp ?? xs;\n const height = isFullscreen ? \"100%\" : heightProp ?? \"auto\";\n const showCounter = xs;\n const hideThumbnails = hideThumbnailsProp ?? (xs && !isFullscreen);\n const showThumbnails = !hideThumbnails && !!renderThumbnail;\n const showDots = showDotsProp ?? numSlides <= 5;\n\n const actions = (\n <div\n className={cx(\n classes.actions,\n actionsPosition === \"header\"\n ? css({ position: \"relative\", top: -40, height: 0 })\n : css({ position: \"absolute\" })\n )}\n >\n {actionsProp}\n {showFullscreen && (\n <HvButton\n icon\n variant=\"secondaryGhost\"\n onClick={() => setIsFullscreen((curr) => !curr)}\n className={classes.closeButton}\n >\n {isFullscreen ? (\n <Close aria-label=\"Close\" />\n ) : (\n <Fullscreen aria-label=\"Fullscreen\" />\n )}\n </HvButton>\n )}\n </div>\n );\n\n const controls = (\n <HvCarouselControls\n classes={classes}\n showDots={showDots}\n page={selectedIndex}\n pages={numSlides}\n canPrevious={canPrev}\n canNext={canNext}\n onPreviousClick={handlePrevious}\n onNextClick={handleNext}\n actions={actionsPosition === \"controls\" && actions}\n />\n );\n\n const thumbnails = showThumbnails && (\n <HvCarouselThumbnails\n classes={classes}\n ref={thumbnailsRef}\n page={selectedIndex}\n pages={numSlides}\n width={thumbnailWidth}\n onThumbnailClick={(evt, i) => handleScroll(i)}\n renderThumbnail={renderThumbnail}\n />\n );\n\n return (\n <HvContainer\n className={cx(classes.root, className, {\n [classes.xs]: xs,\n [classes.fullscreen]: isFullscreen,\n })}\n {...others}\n >\n {showTitle && (\n <HvTypography variant=\"title2\" className={classes.title}>\n {title}\n </HvTypography>\n )}\n\n {actionsPosition === \"header\" && actions}\n {thumbnailsPosition === \"top\" && thumbnails}\n {controlsPosition === \"top\" && controls}\n <div\n className={cx(classes.main, {\n [classes.mainXs]: xs,\n [classes.mainFullscreen]: isFullscreen,\n })}\n >\n {showCounter && (\n <div className={classes.counterContainer}>\n <span className={classes.counter}>\n {`${selectedIndex + 1}/${numSlides}`}\n </span>\n </div>\n )}\n\n {showSlideControls && (\n <div className={classes.slideControls}>\n <HvButton\n icon\n disabled={!canPrev}\n variant=\"secondary\"\n aria-label=\"Backwards\"\n onClick={handlePrevious}\n >\n <Backwards iconSize=\"XS\" />\n </HvButton>\n <HvButton\n icon\n disabled={!canNext}\n variant=\"secondary\"\n aria-label=\"Forwards\"\n onClick={handleNext}\n >\n <Forwards iconSize=\"XS\" />\n </HvButton>\n </div>\n )}\n\n <div\n ref={containerRef}\n style={{ height }}\n className={classes.slidesViewport}\n >\n <div className={classes.slidesContainer}>{children}</div>\n </div>\n </div>\n {controlsPosition === \"bottom\" && controls}\n {thumbnailsPosition === \"bottom\" && thumbnails}\n </HvContainer>\n );\n};\n"],"names":["clamp","num","max","min","Math","HvCarousel","props","className","classes","classesProp","height","heightProp","thumbnailWidth","title","children","actions","actionsProp","xs","showDots","showDotsProp","showCounter","showCounterProp","showSlideControls","showFullscreen","showFullscreenProp","hideThumbnails","hideThumbnailsProp","controlsPosition","controlsPositionProp","thumbnailsPosition","thumbnailsPositionProp","carouselOptions","renderThumbnail","onChange","others","activeTheme","useTheme","css","cx","useClasses","thumbnailsRef","useRef","isFullscreen","setIsFullscreen","useState","isDs3","name","actionsPosition","containerRef","controller","useCarousel","align","loop","selectedIndex","setSelectedIndex","startIndex","numSlides","Children","count","handlePrevious","useCallback","scrollPrev","handleNext","scrollNext","handleScroll","index","scrollTo","handleSelect","slideIndex","selectedScrollSnap","current","querySelectorAll","scrollIntoView","behavior","block","useEffect","on","off","reInit","currentIndex","canPrev","canScrollPrev","canNext","canScrollNext","showTitle","showThumbnails","position","top","HvButton","icon","variant","onClick","curr","closeButton","_jsx","Close","Fullscreen","controls","HvCarouselControls","page","pages","canPrevious","onPreviousClick","onNextClick","thumbnails","HvCarouselThumbnails","ref","width","onThumbnailClick","evt","i","HvContainer","root","fullscreen","HvTypography","_jsxs","main","mainXs","mainFullscreen","counterContainer","counter","slideControls","disabled","Backwards","iconSize","Forwards","style","slidesViewport","slidesContainer"],"mappings":"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"}
1
+ {"version":3,"file":"Carousel.js","sources":["../../../../src/components/Carousel/Carousel.tsx"],"sourcesContent":["import React, {\n CSSProperties,\n Children,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport useCarousel, { EmblaOptionsType } from \"embla-carousel-react\";\n\nimport {\n Backwards,\n Forwards,\n Close,\n Fullscreen,\n} from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvButton } from \"@core/components/Button\";\nimport { useTheme } from \"@core/hooks/useTheme\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { HvContainer } from \"@core/components/Container\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { HvCarouselControls } from \"./CarouselControls\";\nimport { HvCarouselThumbnails } from \"./CarouselThumbnails\";\nimport { staticClasses, useClasses } from \"./Carousel.styles\";\n\nconst clamp = (num: number, max: number, min = 0) =>\n Math.min(Math.max(num, min), max);\n\nexport { staticClasses as carouselClasses };\n\nexport type HvCarouselClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvCarouselProps\n extends HvBaseProps<HTMLDivElement, \"title\" | \"onChange\"> {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvCarouselClasses;\n /** Height of the Slider container. If `undefined`, images will keep a 16/9 aspect-ratio */\n height?: CSSProperties[\"height\"];\n /** Width of the thumbnail. Height will try to maintain a 16/9 aspect-ratio */\n thumbnailWidth?: CSSProperties[\"width\"];\n /** Title of the carousel */\n title?: React.ReactNode;\n /** Content slides to be displayed. @see `<HvCarouselSlide />` */\n children?: React.ReactNode;\n /** Custom content to render in the actions area */\n actions?: React.ReactNode;\n /** Whether Carousel is in \"xs mode\" - to use in embedded contexts */\n xs?: boolean;\n /** Whether to show dots instead of arrow pagination. Defaults to true under 5 elements */\n showDots?: boolean;\n /** Whether to show the counter on the top-right corner of the active slide */\n showCounter?: boolean;\n /** Whether to show the back/forwards buttons over the active slide */\n showSlideControls?: boolean;\n /** Whether to enable the fullscreen toggle button */\n showFullscreen?: boolean;\n /** Whether to hide the thumbnails. Hidden by default in \"xs\" mode */\n hideThumbnails?: boolean;\n controlsPosition?: \"top\" | \"bottom\";\n thumbnailsPosition?: \"top\" | \"bottom\";\n /** Carousel configuration options. @see https://www.embla-carousel.com/api/options/ */\n carouselOptions?: EmblaOptionsType;\n /** */\n renderThumbnail?: (index: number) => React.ReactNode;\n /** The callback fired when the active slide changes. */\n onChange?: (index: number) => void;\n}\n\n/**\n * A Carousel is commonly used to browse images, it can also be used to browse any kind of content like text, video, or charts.\n * It allows you to focus on a particular content while having a notion of how many you have to explore.\n */\nexport const HvCarousel = (props: HvCarouselProps) => {\n const {\n className,\n classes: classesProp,\n height: heightProp = \"auto\",\n thumbnailWidth = 90,\n title,\n children,\n actions: actionsProp,\n xs,\n showDots: showDotsProp,\n showCounter: showCounterProp,\n showSlideControls,\n showFullscreen: showFullscreenProp,\n hideThumbnails: hideThumbnailsProp,\n controlsPosition: controlsPositionProp,\n thumbnailsPosition: thumbnailsPositionProp,\n carouselOptions,\n renderThumbnail,\n onChange,\n ...others\n } = useDefaultProps(\"HvCarousel\", props);\n const { activeTheme } = useTheme();\n const { classes, css, cx } = useClasses(classesProp);\n const thumbnailsRef = useRef<HTMLDivElement>(null);\n const [isFullscreen, setIsFullscreen] = useState(false);\n\n const isDs3 = activeTheme?.name === \"ds3\";\n const actionsPosition = isDs3 ? \"header\" : \"controls\";\n const controlsPosition = controlsPositionProp ?? (isDs3 ? \"bottom\" : \"top\");\n const thumbnailsPosition = thumbnailsPositionProp ?? \"bottom\";\n\n const [containerRef, controller] = useCarousel({\n align: \"start\",\n loop: true,\n ...carouselOptions,\n });\n\n const [selectedIndex, setSelectedIndex] = useState(\n carouselOptions?.startIndex ?? 0\n );\n\n const numSlides = Children.count(children);\n\n const handlePrevious = useCallback(() => {\n controller?.scrollPrev();\n }, [controller]);\n\n const handleNext = useCallback(() => {\n controller?.scrollNext();\n }, [controller]);\n\n const handleScroll = (index: number) => {\n controller?.scrollTo(index);\n };\n\n const handleSelect = useCallback(() => {\n if (!controller) return;\n\n const slideIndex = controller.selectedScrollSnap();\n setSelectedIndex(slideIndex);\n\n // scroll to thumbnail button\n thumbnailsRef.current\n ?.querySelectorAll(\"button\")\n ?.[slideIndex]?.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n });\n\n onChange?.(slideIndex);\n }, [controller, onChange]);\n\n useEffect(() => {\n if (!controller) return;\n\n controller.on(\"select\", handleSelect);\n\n return () => {\n controller.off(\"select\", handleSelect);\n };\n }, [controller, handleSelect]);\n\n useEffect(() => {\n if (!controller) return;\n\n controller.reInit();\n setSelectedIndex((currentIndex) => clamp(currentIndex, numSlides, 0));\n }, [numSlides, controller]);\n\n const canPrev = controller?.canScrollPrev() ?? false;\n const canNext = controller?.canScrollNext() ?? false;\n const showTitle = !!title && (!xs || isFullscreen);\n const showFullscreen = showFullscreenProp ?? xs;\n const height = isFullscreen ? \"100%\" : heightProp ?? \"auto\";\n const showCounter = xs;\n const hideThumbnails = hideThumbnailsProp ?? (xs && !isFullscreen);\n const showThumbnails = !hideThumbnails && !!renderThumbnail;\n const showDots = showDotsProp ?? numSlides <= 5;\n\n const actions = (\n <div\n className={cx(\n classes.actions,\n actionsPosition === \"header\"\n ? css({ position: \"relative\", top: -40, height: 0 })\n : css({ position: \"absolute\" })\n )}\n >\n {actionsProp}\n {showFullscreen && (\n <HvButton\n icon\n onClick={() => setIsFullscreen((curr) => !curr)}\n className={classes.closeButton}\n >\n {isFullscreen ? (\n <Close aria-label=\"Close\" />\n ) : (\n <Fullscreen aria-label=\"Fullscreen\" />\n )}\n </HvButton>\n )}\n </div>\n );\n\n const controls = (\n <HvCarouselControls\n classes={classes}\n showDots={showDots}\n page={selectedIndex}\n pages={numSlides}\n canPrevious={canPrev}\n canNext={canNext}\n onPreviousClick={handlePrevious}\n onNextClick={handleNext}\n actions={actionsPosition === \"controls\" && actions}\n />\n );\n\n const thumbnails = showThumbnails && (\n <HvCarouselThumbnails\n classes={classes}\n ref={thumbnailsRef}\n page={selectedIndex}\n pages={numSlides}\n width={thumbnailWidth}\n onThumbnailClick={(evt, i) => handleScroll(i)}\n renderThumbnail={renderThumbnail}\n />\n );\n\n return (\n <HvContainer\n className={cx(classes.root, className, {\n [classes.xs]: xs,\n [classes.fullscreen]: isFullscreen,\n })}\n {...others}\n >\n {showTitle && (\n <HvTypography variant=\"title2\" className={classes.title}>\n {title}\n </HvTypography>\n )}\n\n {actionsPosition === \"header\" && actions}\n {thumbnailsPosition === \"top\" && thumbnails}\n {controlsPosition === \"top\" && controls}\n <div\n className={cx(classes.main, {\n [classes.mainXs]: xs,\n [classes.mainFullscreen]: isFullscreen,\n })}\n >\n {showCounter && (\n <div className={classes.counterContainer}>\n <span className={classes.counter}>\n {`${selectedIndex + 1}/${numSlides}`}\n </span>\n </div>\n )}\n\n {showSlideControls && (\n <div className={classes.slideControls}>\n <HvButton\n icon\n disabled={!canPrev}\n variant=\"secondary\"\n aria-label=\"Backwards\"\n onClick={handlePrevious}\n >\n <Backwards iconSize=\"XS\" />\n </HvButton>\n <HvButton\n icon\n disabled={!canNext}\n variant=\"secondary\"\n aria-label=\"Forwards\"\n onClick={handleNext}\n >\n <Forwards iconSize=\"XS\" />\n </HvButton>\n </div>\n )}\n\n <div\n ref={containerRef}\n style={{ height }}\n className={classes.slidesViewport}\n >\n <div className={classes.slidesContainer}>{children}</div>\n </div>\n </div>\n {controlsPosition === \"bottom\" && controls}\n {thumbnailsPosition === \"bottom\" && thumbnails}\n </HvContainer>\n );\n};\n"],"names":["clamp","num","max","min","Math","HvCarousel","props","className","classes","classesProp","height","heightProp","thumbnailWidth","title","children","actions","actionsProp","xs","showDots","showDotsProp","showCounter","showCounterProp","showSlideControls","showFullscreen","showFullscreenProp","hideThumbnails","hideThumbnailsProp","controlsPosition","controlsPositionProp","thumbnailsPosition","thumbnailsPositionProp","carouselOptions","renderThumbnail","onChange","others","useDefaultProps","activeTheme","useTheme","css","cx","useClasses","thumbnailsRef","useRef","isFullscreen","setIsFullscreen","useState","isDs3","name","actionsPosition","containerRef","controller","useCarousel","align","loop","selectedIndex","setSelectedIndex","startIndex","numSlides","Children","count","handlePrevious","useCallback","scrollPrev","handleNext","scrollNext","handleScroll","index","scrollTo","handleSelect","slideIndex","selectedScrollSnap","current","querySelectorAll","scrollIntoView","behavior","block","useEffect","on","off","reInit","currentIndex","canPrev","canScrollPrev","canNext","canScrollNext","showTitle","showThumbnails","position","top","HvButton","icon","onClick","curr","closeButton","_jsx","Close","Fullscreen","controls","HvCarouselControls","page","pages","canPrevious","onPreviousClick","onNextClick","thumbnails","HvCarouselThumbnails","ref","width","onThumbnailClick","evt","i","HvContainer","root","fullscreen","HvTypography","variant","_jsxs","main","mainXs","mainFullscreen","counterContainer","counter","slideControls","disabled","Backwards","iconSize","Forwards","style","slidesViewport","slidesContainer"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { useDefaultProps } from "../../hooks/useDefaultProps.js";
1
2
  import { Backwards, Forwards } from "@hitachivantara/uikit-react-icons";
2
3
  import { useClasses } from "./Carousel.styles.js";
3
4
  import { jsxs, jsx, Fragment } from "@emotion/react/jsx-runtime";
@@ -14,7 +15,7 @@ const HvCarouselControls = (props) => {
14
15
  actions,
15
16
  onPreviousClick,
16
17
  onNextClick
17
- } = props;
18
+ } = useDefaultProps("HvCarouselControls", props);
18
19
  const {
19
20
  classes,
20
21
  cx
@@ -34,7 +35,6 @@ const HvCarouselControls = (props) => {
34
35
  children: [/* @__PURE__ */ jsx(HvButton, {
35
36
  icon: true,
36
37
  disabled: !canPrevious,
37
- variant: "secondaryGhost",
38
38
  "aria-label": "Backwards",
39
39
  onClick: onPreviousClick,
40
40
  children: /* @__PURE__ */ jsx(Backwards, {
@@ -46,7 +46,6 @@ const HvCarouselControls = (props) => {
46
46
  }), /* @__PURE__ */ jsx(HvButton, {
47
47
  icon: true,
48
48
  disabled: !canNext,
49
- variant: "secondaryGhost",
50
49
  "aria-label": "Forwards",
51
50
  onClick: onNextClick,
52
51
  children: /* @__PURE__ */ jsx(Forwards, {
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselControls.js","sources":["../../../../src/components/Carousel/CarouselControls.tsx"],"sourcesContent":["import { MouseEventHandler, ReactNode } from \"react\";\n\nimport { Backwards, Forwards } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvButton } from \"@core/components/Button\";\nimport { HvPaginationProps } from \"@core/components/Pagination\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { useClasses } from \"./Carousel.styles\";\n\ninterface HvCarouselControlsProps\n extends HvBaseProps<HTMLDivElement>,\n Pick<HvPaginationProps, \"page\" | \"pages\" | \"canPrevious\" | \"canNext\"> {\n showDots?: boolean;\n classes?: ExtractNames<typeof useClasses>;\n actions?: ReactNode;\n onPreviousClick?: MouseEventHandler<HTMLButtonElement>;\n onNextClick?: MouseEventHandler<HTMLButtonElement>;\n}\n\nexport const HvCarouselControls = (props: HvCarouselControlsProps) => {\n const {\n classes: classesProp,\n className,\n showDots,\n page,\n pages,\n canPrevious,\n canNext,\n actions,\n onPreviousClick,\n onNextClick,\n } = props;\n const { classes, cx } = useClasses(classesProp, false);\n\n const selectedIndex = page || 0;\n const numSlides = pages;\n\n return (\n <div className={cx(classes.controls, className)}>\n {showDots ? (\n <div className={classes.dots}>\n {Array.from(Array(numSlides)).map((el, index) => (\n <span\n key={`circle-${index}`}\n className={cx(classes.dot, {\n [classes.dotSelected]: index === selectedIndex,\n })}\n />\n ))}\n </div>\n ) : (\n <>\n <HvButton\n icon\n disabled={!canPrevious}\n variant=\"secondaryGhost\"\n aria-label=\"Backwards\"\n onClick={onPreviousClick}\n >\n <Backwards iconSize=\"XS\" />\n </HvButton>\n <div className={classes.pageCounter}>\n {`${selectedIndex + 1} / ${numSlides}`}\n </div>\n <HvButton\n icon\n disabled={!canNext}\n variant=\"secondaryGhost\"\n aria-label=\"Forwards\"\n onClick={onNextClick}\n >\n <Forwards iconSize=\"XS\" />\n </HvButton>\n </>\n )}\n {actions}\n </div>\n );\n};\n"],"names":["HvCarouselControls","props","classes","classesProp","className","showDots","page","pages","canPrevious","canNext","actions","onPreviousClick","onNextClick","cx","useClasses","selectedIndex","numSlides","controls","children","_jsx","dots","Array","from","map","el","index","dot","dotSelected","_jsxs","_Fragment","HvButton","icon","disabled","variant","onClick","Backwards","iconSize","pageCounter","Forwards"],"mappings":";;;;AAqBaA,MAAAA,qBAAqBA,CAACC,UAAmC;AAC9D,QAAA;AAAA,IACJC,SAASC;AAAAA,IACTC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,EACEX,IAAAA;AACE,QAAA;AAAA,IAAEC;AAAAA,IAASW;AAAAA,EAAAA,IAAOC,WAAWX,aAAa,KAAK;AAErD,QAAMY,gBAAgBT,QAAQ;AAC9B,QAAMU,YAAYT;AAElB,8BACE,OAAA;AAAA,IAAKH,WAAWS,GAAGX,QAAQe,UAAUb,SAAS;AAAA,IAAEc,UAAA,CAC7Cb,WACCc,oBAAA,OAAA;AAAA,MAAKf,WAAWF,QAAQkB;AAAAA,MAAKF,UAC1BG,MAAMC,KAAKD,MAAML,SAAS,CAAC,EAAEO,IAAI,CAACC,IAAIC,UACrCN,oBAAA,QAAA;AAAA,QAEEf,WAAWS,GAAGX,QAAQwB,KAAK;AAAA,UACzB,CAACxB,QAAQyB,WAAW,GAAGF,UAAUV;AAAAA,QAAAA,CAClC;AAAA,MAAE,GAHG,UAASU,OAIhB,CACF;AAAA,IAAA,CACE,IAELG,qBAAAC,UAAA;AAAA,MAAAX,UAAA,CACEC,oBAACW,UAAQ;AAAA,QACPC,MAAI;AAAA,QACJC,UAAU,CAACxB;AAAAA,QACXyB,SAAQ;AAAA,QACR,cAAW;AAAA,QACXC,SAASvB;AAAAA,QAAgBO,8BAExBiB,WAAS;AAAA,UAACC,UAAS;AAAA,QAAA,CAAM;AAAA,MAAA,CAClB,GACVjB,oBAAA,OAAA;AAAA,QAAKf,WAAWF,QAAQmC;AAAAA,QAAYnB,UAChC,GAAEH,gBAAgB,OAAOC;AAAAA,MAAAA,CACxB,GACLG,oBAACW,UAAQ;AAAA,QACPC,MAAI;AAAA,QACJC,UAAU,CAACvB;AAAAA,QACXwB,SAAQ;AAAA,QACR,cAAW;AAAA,QACXC,SAAStB;AAAAA,QAAYM,8BAEpBoB,UAAQ;AAAA,UAACF,UAAS;AAAA,QAAA,CAAM;AAAA,MAAA,CACjB,CAAC;AAAA,IACX,CAAA,GAEH1B,OAAO;AAAA,EAAA,CACL;AAET;"}
1
+ {"version":3,"file":"CarouselControls.js","sources":["../../../../src/components/Carousel/CarouselControls.tsx"],"sourcesContent":["import { MouseEventHandler, ReactNode } from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { Backwards, Forwards } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvButton } from \"@core/components/Button\";\nimport { HvPaginationProps } from \"@core/components/Pagination\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { useClasses } from \"./Carousel.styles\";\n\ninterface HvCarouselControlsProps\n extends HvBaseProps<HTMLDivElement>,\n Pick<HvPaginationProps, \"page\" | \"pages\" | \"canPrevious\" | \"canNext\"> {\n showDots?: boolean;\n classes?: ExtractNames<typeof useClasses>;\n actions?: ReactNode;\n onPreviousClick?: MouseEventHandler<HTMLButtonElement>;\n onNextClick?: MouseEventHandler<HTMLButtonElement>;\n}\n\nexport const HvCarouselControls = (props: HvCarouselControlsProps) => {\n const {\n classes: classesProp,\n className,\n showDots,\n page,\n pages,\n canPrevious,\n canNext,\n actions,\n onPreviousClick,\n onNextClick,\n } = useDefaultProps(\"HvCarouselControls\", props);\n const { classes, cx } = useClasses(classesProp, false);\n\n const selectedIndex = page || 0;\n const numSlides = pages;\n\n return (\n <div className={cx(classes.controls, className)}>\n {showDots ? (\n <div className={classes.dots}>\n {Array.from(Array(numSlides)).map((el, index) => (\n <span\n key={`circle-${index}`}\n className={cx(classes.dot, {\n [classes.dotSelected]: index === selectedIndex,\n })}\n />\n ))}\n </div>\n ) : (\n <>\n <HvButton\n icon\n disabled={!canPrevious}\n aria-label=\"Backwards\"\n onClick={onPreviousClick}\n >\n <Backwards iconSize=\"XS\" />\n </HvButton>\n <div className={classes.pageCounter}>\n {`${selectedIndex + 1} / ${numSlides}`}\n </div>\n <HvButton\n icon\n disabled={!canNext}\n aria-label=\"Forwards\"\n onClick={onNextClick}\n >\n <Forwards iconSize=\"XS\" />\n </HvButton>\n </>\n )}\n {actions}\n </div>\n );\n};\n"],"names":["HvCarouselControls","props","classes","classesProp","className","showDots","page","pages","canPrevious","canNext","actions","onPreviousClick","onNextClick","useDefaultProps","cx","useClasses","selectedIndex","numSlides","controls","children","_jsx","dots","Array","from","map","el","index","dot","dotSelected","_jsxs","_Fragment","HvButton","icon","disabled","onClick","Backwards","iconSize","pageCounter","Forwards"],"mappings":";;;;;AAsBaA,MAAAA,qBAAqBA,CAACC,UAAmC;AAC9D,QAAA;AAAA,IACJC,SAASC;AAAAA,IACTC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,EAAAA,IACEC,gBAAgB,sBAAsBZ,KAAK;AACzC,QAAA;AAAA,IAAEC;AAAAA,IAASY;AAAAA,EAAAA,IAAOC,WAAWZ,aAAa,KAAK;AAErD,QAAMa,gBAAgBV,QAAQ;AAC9B,QAAMW,YAAYV;AAElB,8BACE,OAAA;AAAA,IAAKH,WAAWU,GAAGZ,QAAQgB,UAAUd,SAAS;AAAA,IAAEe,UAAA,CAC7Cd,WACCe,oBAAA,OAAA;AAAA,MAAKhB,WAAWF,QAAQmB;AAAAA,MAAKF,UAC1BG,MAAMC,KAAKD,MAAML,SAAS,CAAC,EAAEO,IAAI,CAACC,IAAIC,UACrCN,oBAAA,QAAA;AAAA,QAEEhB,WAAWU,GAAGZ,QAAQyB,KAAK;AAAA,UACzB,CAACzB,QAAQ0B,WAAW,GAAGF,UAAUV;AAAAA,QAAAA,CAClC;AAAA,MAAE,GAHG,UAASU,OAIhB,CACF;AAAA,IAAA,CACE,IAELG,qBAAAC,UAAA;AAAA,MAAAX,UAAA,CACEC,oBAACW,UAAQ;AAAA,QACPC,MAAI;AAAA,QACJC,UAAU,CAACzB;AAAAA,QACX,cAAW;AAAA,QACX0B,SAASvB;AAAAA,QAAgBQ,8BAExBgB,WAAS;AAAA,UAACC,UAAS;AAAA,QAAA,CAAM;AAAA,MAAA,CAClB,GACVhB,oBAAA,OAAA;AAAA,QAAKhB,WAAWF,QAAQmC;AAAAA,QAAYlB,UAChC,GAAEH,gBAAgB,OAAOC;AAAAA,MAAAA,CACxB,GACLG,oBAACW,UAAQ;AAAA,QACPC,MAAI;AAAA,QACJC,UAAU,CAACxB;AAAAA,QACX,cAAW;AAAA,QACXyB,SAAStB;AAAAA,QAAYO,8BAEpBmB,UAAQ;AAAA,UAACF,UAAS;AAAA,QAAA,CAAM;AAAA,MAAA,CACjB,CAAC;AAAA,IACX,CAAA,GAEH1B,OAAO;AAAA,EAAA,CACL;AAET;"}
@@ -1,7 +1,7 @@
1
1
  import { useClasses } from "./CarouselSlide.styles.js";
2
2
  import { jsx } from "@emotion/react/jsx-runtime";
3
3
  const HvCarouselSlide = ({
4
- classes: classesProp = {},
4
+ classes: classesProp,
5
5
  className,
6
6
  children,
7
7
  size: flexBasis = "100%",
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselSlide.js","sources":["../../../../../src/components/Carousel/CarouselSlide/CarouselSlide.tsx"],"sourcesContent":["import { ImgHTMLAttributes } from \"react\";\n\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { useClasses } from \"./CarouselSlide.styles\";\n\nexport type HvCarouselSlideClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvCarouselSlideProps\n extends ImgHTMLAttributes<HTMLImageElement> {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvCarouselSlideClasses;\n /** The width of the Slide. Defaults to `100%` */\n size?: string;\n /** Content of a slide to be displayed */\n children?: React.ReactNode;\n}\n\n/**\n * A container to use as `children` of `HvCarousel`.\n * Pass `img` props directly to it, or `children` for any custom content\n */\nexport const HvCarouselSlide = ({\n classes: classesProp = {},\n className,\n children,\n size: flexBasis = \"100%\",\n src,\n alt,\n ...props\n}: HvCarouselSlideProps) => {\n const { classes, css, cx } = useClasses(classesProp);\n return (\n <div\n className={cx(\n css({ flex: `0 0 ${flexBasis}` }),\n classes.slide,\n className\n )}\n >\n {children ?? (\n <img className={classes.image} src={src} alt={alt} {...props} />\n )}\n </div>\n );\n};\n"],"names":["HvCarouselSlide","classes","classesProp","className","children","size","flexBasis","src","alt","props","css","cx","useClasses","flex","slide","_jsx","image"],"mappings":";;AAsBO,MAAMA,kBAAkBA,CAAC;AAAA,EAC9BC,SAASC,cAAc,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC,MAAMC,YAAY;AAAA,EAClBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACiB,MAAM;AACpB,QAAA;AAAA,IAAER;AAAAA,IAASS;AAAAA,IAAKC;AAAAA,EAAAA,IAAOC,WAAWV,WAAW;AACnD,6BACE,OAAA;AAAA,IACEC,WAAWQ,GACTD,IAAI;AAAA,MAAEG,MAAO,OAAMP;AAAAA,IAAAA,CAAa,GAChCL,QAAQa,OACRX,SACF;AAAA,IAAEC,UAEDA,YACCW,oBAAA,OAAA;AAAA,MAAKZ,WAAWF,QAAQe;AAAAA,MAAOT;AAAAA,MAAUC;AAAAA,MAAS,GAAKC;AAAAA,IAAAA,CAAQ;AAAA,EAAA,CAE9D;AAET;"}
1
+ {"version":3,"file":"CarouselSlide.js","sources":["../../../../../src/components/Carousel/CarouselSlide/CarouselSlide.tsx"],"sourcesContent":["import { ImgHTMLAttributes } from \"react\";\n\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { useClasses } from \"./CarouselSlide.styles\";\n\nexport type HvCarouselSlideClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvCarouselSlideProps\n extends ImgHTMLAttributes<HTMLImageElement> {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvCarouselSlideClasses;\n /** The width of the Slide. Defaults to `100%` */\n size?: string;\n /** Content of a slide to be displayed */\n children?: React.ReactNode;\n}\n\n/**\n * A container to use as `children` of `HvCarousel`.\n * Pass `img` props directly to it, or `children` for any custom content\n */\nexport const HvCarouselSlide = ({\n classes: classesProp,\n className,\n children,\n size: flexBasis = \"100%\",\n src,\n alt,\n ...props\n}: HvCarouselSlideProps) => {\n const { classes, css, cx } = useClasses(classesProp);\n return (\n <div\n className={cx(\n css({ flex: `0 0 ${flexBasis}` }),\n classes.slide,\n className\n )}\n >\n {children ?? (\n <img className={classes.image} src={src} alt={alt} {...props} />\n )}\n </div>\n );\n};\n"],"names":["HvCarouselSlide","classes","classesProp","className","children","size","flexBasis","src","alt","props","css","cx","useClasses","flex","slide","_jsx","image"],"mappings":";;AAsBO,MAAMA,kBAAkBA,CAAC;AAAA,EAC9BC,SAASC;AAAAA,EACTC;AAAAA,EACAC;AAAAA,EACAC,MAAMC,YAAY;AAAA,EAClBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACiB,MAAM;AACpB,QAAA;AAAA,IAAER;AAAAA,IAASS;AAAAA,IAAKC;AAAAA,EAAAA,IAAOC,WAAWV,WAAW;AACnD,6BACE,OAAA;AAAA,IACEC,WAAWQ,GACTD,IAAI;AAAA,MAAEG,MAAO,OAAMP;AAAAA,IAAAA,CAAa,GAChCL,QAAQa,OACRX,SACF;AAAA,IAAEC,UAEDA,YACCW,oBAAA,OAAA;AAAA,MAAKZ,WAAWF,QAAQe;AAAAA,MAAOT;AAAAA,MAAUC;AAAAA,MAAS,GAAKC;AAAAA,IAAAA,CAAQ;AAAA,EAAA,CAE9D;AAET;"}
@@ -1,4 +1,5 @@
1
1
  import { useState, useCallback } from "react";
2
+ import { useDefaultProps } from "../../hooks/useDefaultProps.js";
2
3
  import { clsx } from "clsx";
3
4
  import { useUniqueId } from "../../hooks/useUniqueId.js";
4
5
  import { useControlled } from "../../hooks/useControlled.js";
@@ -8,33 +9,34 @@ import checkBoxClasses from "./checkBoxClasses.js";
8
9
  import { jsx, jsxs } from "@emotion/react/jsx-runtime";
9
10
  import { isInvalid } from "../Forms/FormElement/validationStates.js";
10
11
  import { HvWarningText } from "../Forms/WarningText/WarningText.js";
11
- const HvCheckBox = ({
12
- id,
13
- classes,
14
- className,
15
- name,
16
- checked,
17
- status,
18
- indeterminate,
19
- statusMessage,
20
- label,
21
- labelProps,
22
- inputProps,
23
- value = "on",
24
- required = false,
25
- readOnly = false,
26
- disabled = false,
27
- semantic = false,
28
- defaultChecked = false,
29
- "aria-label": ariaLabel,
30
- "aria-labelledby": ariaLabelledBy,
31
- "aria-describedby": ariaDescribedBy,
32
- "aria-errormessage": ariaErrorMessage,
33
- onChange,
34
- onFocusVisible,
35
- onBlur,
36
- ...others
37
- }) => {
12
+ const HvCheckBox = (props) => {
13
+ const {
14
+ id,
15
+ classes,
16
+ className,
17
+ name,
18
+ checked,
19
+ status,
20
+ indeterminate,
21
+ statusMessage,
22
+ label,
23
+ labelProps,
24
+ inputProps,
25
+ value = "on",
26
+ required = false,
27
+ readOnly = false,
28
+ disabled = false,
29
+ semantic = false,
30
+ defaultChecked = false,
31
+ "aria-label": ariaLabel,
32
+ "aria-labelledby": ariaLabelledBy,
33
+ "aria-describedby": ariaDescribedBy,
34
+ "aria-errormessage": ariaErrorMessage,
35
+ onChange,
36
+ onFocusVisible,
37
+ onBlur,
38
+ ...others
39
+ } = useDefaultProps("HvCheckBox", props);
38
40
  const elementId = useUniqueId(id, "hvcheckbox");
39
41
  const [focusVisible, setFocusVisible] = useState(false);
40
42
  const [validationState, setValidationState] = useControlled(status, "standBy");
@@ -1 +1 @@
1
- {"version":3,"file":"CheckBox.js","sources":["../../../../src/components/CheckBox/CheckBox.tsx"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nimport { clsx } from \"clsx\";\n\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { setId } from \"@core/utils/setId\";\nimport { HvBaseCheckBoxProps } from \"@core/components/BaseCheckBox\";\nimport {\n HvLabelProps,\n HvFormStatus,\n HvWarningText,\n isInvalid,\n} from \"@core/components/Forms\";\n\nimport {\n StyledBaseCheckBox,\n StyledFormElement,\n StyledLabel,\n StyledLabelContainer,\n} from \"./CheckBox.styles\";\nimport checkBoxClasses, { HvCheckBoxClasses } from \"./checkBoxClasses\";\n\nexport interface HvCheckBoxProps extends Omit<HvBaseCheckBoxProps, \"classes\"> {\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 inputted via inputProps.\n */\n label?: React.ReactNode;\n /**\n * Properties passed on to the label element.\n */\n labelProps?: HvLabelProps;\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?: React.ReactNode;\n /**\n * A Jss Object used to override or extend the styles applied to the checkbox.\n */\n classes?: HvCheckBoxClasses;\n}\n\n/**\n * A Checkbox is a mechanism that allows the user to select one or more options.\n *\n * Usually used in a Checkbox Group to present the user with a range of options from\n * which the user <b>may select any number of options</b> to complete their task.\n *\n * It can also be used individually to represent the toggle of a single option, when\n * the Toggle Switch and Toggle Button aren't more appropriate.\n */\nexport const HvCheckBox = ({\n id,\n classes,\n className,\n name,\n checked,\n status,\n indeterminate,\n statusMessage,\n label,\n labelProps,\n inputProps,\n value = \"on\",\n required = false,\n readOnly = false,\n disabled = false,\n semantic = false,\n defaultChecked = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-errormessage\": ariaErrorMessage,\n onChange,\n onFocusVisible,\n onBlur,\n ...others\n}: HvCheckBoxProps) => {\n const elementId = useUniqueId(id, \"hvcheckbox\");\n\n const [focusVisible, setFocusVisible] = useState<boolean>(false);\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const [isChecked, setIsChecked] = useControlled(\n checked,\n Boolean(defaultChecked)\n );\n\n const [isIndeterminate, setIsIndeterminate] = useControlled(\n checked !== undefined ? indeterminate : undefined,\n Boolean(indeterminate)\n );\n\n const isStateInvalid = isInvalid(validationState);\n\n const onChangeCallback = useCallback<\n NonNullable<HvBaseCheckBoxProps[\"onChange\"]>\n >(\n (event, newChecked) => {\n setIsChecked(() => {\n // This will only run if uncontrolled\n setIsIndeterminate(false);\n\n if (required && !newChecked) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newChecked;\n });\n\n onChange?.(event, newChecked, value);\n },\n [\n onChange,\n required,\n setIsChecked,\n setIsIndeterminate,\n setValidationState,\n value,\n ]\n );\n\n const onFocusVisibleCallback: HvBaseCheckBoxProps[\"onBlur\"] = (event) => {\n setFocusVisible(true);\n onFocusVisible?.(event);\n };\n\n const onBlurCallback: HvBaseCheckBoxProps[\"onBlur\"] = (event) => {\n setFocusVisible(false);\n onBlur?.(event);\n };\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 hasLabel = label != null;\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n }\n\n const checkbox = (\n <StyledBaseCheckBox\n id={hasLabel ? setId(elementId, \"input\") : setId(id, \"input\")}\n name={name}\n className={clsx(\n checkBoxClasses.checkbox,\n classes?.checkbox,\n isStateInvalid &&\n clsx(checkBoxClasses.invalidCheckbox, classes?.invalidCheckbox)\n )}\n $invalid={isStateInvalid}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n onChange={onChangeCallback}\n value={value}\n checked={isChecked}\n indeterminate={isIndeterminate}\n semantic={semantic}\n inputProps={{\n \"aria-invalid\": isStateInvalid ? true : undefined,\n \"aria-errormessage\": errorMessageId,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n ...inputProps,\n }}\n onFocusVisible={onFocusVisibleCallback}\n onBlur={onBlurCallback}\n {...others}\n />\n );\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(\n className,\n checkBoxClasses.root,\n classes?.root,\n !!(focusVisible && label) &&\n clsx(checkBoxClasses.focusVisible, classes?.focusVisible)\n )}\n $focusVisible={!!(focusVisible && label)}\n >\n {hasLabel ? (\n <StyledLabelContainer\n className={clsx(\n checkBoxClasses.container,\n classes?.container,\n disabled && clsx(checkBoxClasses.disabled, classes?.disabled),\n isStateInvalid &&\n clsx(checkBoxClasses.invalidContainer, classes?.invalidContainer)\n )}\n $disabled={disabled}\n $invalid={isStateInvalid}\n >\n {checkbox}\n <StyledLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={clsx(checkBoxClasses.label, classes?.label)}\n $disabled={disabled}\n {...labelProps}\n />\n </StyledLabelContainer>\n ) : (\n checkbox\n )}\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableAdornment={!hasLabel}\n hideText={!hasLabel}\n disableBorder\n >\n {validationMessage}\n </HvWarningText>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["HvCheckBox","id","classes","className","name","checked","status","indeterminate","statusMessage","label","labelProps","inputProps","value","required","readOnly","disabled","semantic","defaultChecked","ariaLabel","ariaLabelledBy","ariaDescribedBy","ariaErrorMessage","onChange","onFocusVisible","onBlur","others","elementId","useUniqueId","focusVisible","setFocusVisible","useState","validationState","setValidationState","useControlled","validationMessage","isChecked","setIsChecked","Boolean","isIndeterminate","setIsIndeterminate","undefined","isStateInvalid","isInvalid","onChangeCallback","useCallback","event","newChecked","onFocusVisibleCallback","onBlurCallback","canShowError","hasLabel","errorMessageId","setId","checkbox","StyledBaseCheckBox","clsx","checkBoxClasses","invalidCheckbox","$invalid","StyledFormElement","root","$focusVisible","children","_jsxs","StyledLabelContainer","container","invalidContainer","$disabled","_jsx","StyledLabel","htmlFor","HvWarningText","disableAdornment","hideText","disableBorder"],"mappings":"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"}
1
+ {"version":3,"file":"CheckBox.js","sources":["../../../../src/components/CheckBox/CheckBox.tsx"],"sourcesContent":["import { useCallback, useState } from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { clsx } from \"clsx\";\n\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { setId } from \"@core/utils/setId\";\nimport { HvBaseCheckBoxProps } from \"@core/components/BaseCheckBox\";\nimport {\n HvLabelProps,\n HvFormStatus,\n HvWarningText,\n isInvalid,\n} from \"@core/components/Forms\";\n\nimport {\n StyledBaseCheckBox,\n StyledFormElement,\n StyledLabel,\n StyledLabelContainer,\n} from \"./CheckBox.styles\";\nimport checkBoxClasses, { HvCheckBoxClasses } from \"./checkBoxClasses\";\n\nexport interface HvCheckBoxProps extends Omit<HvBaseCheckBoxProps, \"classes\"> {\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 inputted via inputProps.\n */\n label?: React.ReactNode;\n /**\n * Properties passed on to the label element.\n */\n labelProps?: HvLabelProps;\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?: React.ReactNode;\n /**\n * A Jss Object used to override or extend the styles applied to the checkbox.\n */\n classes?: HvCheckBoxClasses;\n}\n\n/**\n * A Checkbox is a mechanism that allows the user to select one or more options.\n *\n * Usually used in a Checkbox Group to present the user with a range of options from\n * which the user <b>may select any number of options</b> to complete their task.\n *\n * It can also be used individually to represent the toggle of a single option, when\n * the Toggle Switch and Toggle Button aren't more appropriate.\n */\nexport const HvCheckBox = (props: HvCheckBoxProps) => {\n const {\n id,\n classes,\n className,\n name,\n checked,\n status,\n indeterminate,\n statusMessage,\n label,\n labelProps,\n inputProps,\n value = \"on\",\n required = false,\n readOnly = false,\n disabled = false,\n semantic = false,\n defaultChecked = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-errormessage\": ariaErrorMessage,\n onChange,\n onFocusVisible,\n onBlur,\n ...others\n } = useDefaultProps(\"HvCheckBox\", props);\n\n const elementId = useUniqueId(id, \"hvcheckbox\");\n\n const [focusVisible, setFocusVisible] = useState<boolean>(false);\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const [isChecked, setIsChecked] = useControlled(\n checked,\n Boolean(defaultChecked)\n );\n\n const [isIndeterminate, setIsIndeterminate] = useControlled(\n checked !== undefined ? indeterminate : undefined,\n Boolean(indeterminate)\n );\n\n const isStateInvalid = isInvalid(validationState);\n\n const onChangeCallback = useCallback<\n NonNullable<HvBaseCheckBoxProps[\"onChange\"]>\n >(\n (event, newChecked) => {\n setIsChecked(() => {\n // This will only run if uncontrolled\n setIsIndeterminate(false);\n\n if (required && !newChecked) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newChecked;\n });\n\n onChange?.(event, newChecked, value);\n },\n [\n onChange,\n required,\n setIsChecked,\n setIsIndeterminate,\n setValidationState,\n value,\n ]\n );\n\n const onFocusVisibleCallback: HvBaseCheckBoxProps[\"onBlur\"] = (event) => {\n setFocusVisible(true);\n onFocusVisible?.(event);\n };\n\n const onBlurCallback: HvBaseCheckBoxProps[\"onBlur\"] = (event) => {\n setFocusVisible(false);\n onBlur?.(event);\n };\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 hasLabel = label != null;\n\n let errorMessageId;\n if (isStateInvalid) {\n errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n }\n\n const checkbox = (\n <StyledBaseCheckBox\n id={hasLabel ? setId(elementId, \"input\") : setId(id, \"input\")}\n name={name}\n className={clsx(\n checkBoxClasses.checkbox,\n classes?.checkbox,\n isStateInvalid &&\n clsx(checkBoxClasses.invalidCheckbox, classes?.invalidCheckbox)\n )}\n $invalid={isStateInvalid}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n onChange={onChangeCallback}\n value={value}\n checked={isChecked}\n indeterminate={isIndeterminate}\n semantic={semantic}\n inputProps={{\n \"aria-invalid\": isStateInvalid ? true : undefined,\n \"aria-errormessage\": errorMessageId,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n ...inputProps,\n }}\n onFocusVisible={onFocusVisibleCallback}\n onBlur={onBlurCallback}\n {...others}\n />\n );\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(\n className,\n checkBoxClasses.root,\n classes?.root,\n !!(focusVisible && label) &&\n clsx(checkBoxClasses.focusVisible, classes?.focusVisible)\n )}\n $focusVisible={!!(focusVisible && label)}\n >\n {hasLabel ? (\n <StyledLabelContainer\n className={clsx(\n checkBoxClasses.container,\n classes?.container,\n disabled && clsx(checkBoxClasses.disabled, classes?.disabled),\n isStateInvalid &&\n clsx(checkBoxClasses.invalidContainer, classes?.invalidContainer)\n )}\n $disabled={disabled}\n $invalid={isStateInvalid}\n >\n {checkbox}\n <StyledLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={clsx(checkBoxClasses.label, classes?.label)}\n $disabled={disabled}\n {...labelProps}\n />\n </StyledLabelContainer>\n ) : (\n checkbox\n )}\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableAdornment={!hasLabel}\n hideText={!hasLabel}\n disableBorder\n >\n {validationMessage}\n </HvWarningText>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["HvCheckBox","props","id","classes","className","name","checked","status","indeterminate","statusMessage","label","labelProps","inputProps","value","required","readOnly","disabled","semantic","defaultChecked","ariaLabel","ariaLabelledBy","ariaDescribedBy","ariaErrorMessage","onChange","onFocusVisible","onBlur","others","useDefaultProps","elementId","useUniqueId","focusVisible","setFocusVisible","useState","validationState","setValidationState","useControlled","validationMessage","isChecked","setIsChecked","Boolean","isIndeterminate","setIsIndeterminate","undefined","isStateInvalid","isInvalid","onChangeCallback","useCallback","event","newChecked","onFocusVisibleCallback","onBlurCallback","canShowError","hasLabel","errorMessageId","setId","checkbox","StyledBaseCheckBox","clsx","checkBoxClasses","invalidCheckbox","$invalid","StyledFormElement","root","$focusVisible","children","_jsxs","StyledLabelContainer","container","invalidContainer","$disabled","_jsx","StyledLabel","htmlFor","HvWarningText","disableAdornment","hideText","disableBorder"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { useRef, useMemo, Children, useCallback, cloneElement } from "react";
2
+ import { useDefaultProps } from "../../hooks/useDefaultProps.js";
2
3
  import { clsx } from "clsx";
3
4
  import { useUniqueId } from "../../hooks/useUniqueId.js";
4
5
  import { useControlled } from "../../hooks/useControlled.js";
@@ -28,32 +29,33 @@ const getValueFromSelectedChildren = (children) => {
28
29
  }).filter((v) => v !== void 0);
29
30
  return selectedValues;
30
31
  };
31
- const HvCheckBoxGroup = ({
32
- id,
33
- classes,
34
- className,
35
- children,
36
- name,
37
- label,
38
- description,
39
- status,
40
- statusMessage,
41
- defaultValue,
42
- value: valueProp,
43
- required = false,
44
- readOnly = false,
45
- disabled = false,
46
- showSelectAll = false,
47
- orientation = "vertical",
48
- selectAllLabel = "All",
49
- selectAllConjunctionLabel = "/",
50
- "aria-label": ariaLabel,
51
- "aria-labelledby": ariaLabelledBy,
52
- "aria-describedby": ariaDescribedBy,
53
- "aria-errormessage": ariaErrorMessage,
54
- onChange,
55
- ...others
56
- }) => {
32
+ const HvCheckBoxGroup = (props) => {
33
+ const {
34
+ id,
35
+ classes,
36
+ className,
37
+ children,
38
+ name,
39
+ label,
40
+ description,
41
+ status,
42
+ statusMessage,
43
+ defaultValue,
44
+ value: valueProp,
45
+ required = false,
46
+ readOnly = false,
47
+ disabled = false,
48
+ showSelectAll = false,
49
+ orientation = "vertical",
50
+ selectAllLabel = "All",
51
+ selectAllConjunctionLabel = "/",
52
+ "aria-label": ariaLabel,
53
+ "aria-labelledby": ariaLabelledBy,
54
+ "aria-describedby": ariaDescribedBy,
55
+ "aria-errormessage": ariaErrorMessage,
56
+ onChange,
57
+ ...others
58
+ } = useDefaultProps("HvCheckBoxGroup", props);
57
59
  const [value, setValue] = useControlled(valueProp, defaultValue !== void 0 ? defaultValue : (
58
60
  // When uncontrolled and no default value is given,
59
61
  // extract the initial selected values from the children own state
@@ -1 +1 @@
1
- {"version":3,"file":"CheckBoxGroup.js","sources":["../../../../src/components/CheckBoxGroup/CheckBoxGroup.tsx"],"sourcesContent":["import { Children, cloneElement, useCallback, useMemo, useRef } from \"react\";\n\nimport { clsx } from \"clsx\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { setId } from \"@core/utils/setId\";\nimport { multiSelectionEventHandler } from \"@core/utils/multiSelectionEventHandler\";\nimport { HvCheckBox } from \"@core/components/CheckBox\";\nimport {\n HvFormStatus,\n HvInfoMessage,\n HvWarningText,\n} from \"@core/components/Forms\";\n\nimport {\n StyledFormElement,\n StyledGroupContainer,\n StyledLabel,\n} from \"./CheckBoxGroup.styles\";\nimport checkBoxGroupClasses, {\n HvCheckBoxGroupClasses,\n} from \"./checkBoxGroupClasses\";\n\nconst computeSelectAllState = (selected: number, total: number) => {\n if (selected === 0) {\n return \"none\";\n }\n\n if (selected === total) {\n return \"all\";\n }\n\n return \"some\";\n};\n\nconst getValueFromSelectedChildren = (children: React.ReactNode) => {\n const selectedValues = Children.toArray(children)\n .map((child: any) => {\n const childIsControlled = child?.props?.checked !== undefined;\n const childIsSelected = childIsControlled\n ? child?.props?.checked\n : child?.props?.defaultChecked;\n\n return childIsSelected ? child?.props?.value : undefined;\n })\n .filter((v) => v !== undefined);\n\n return selectedValues;\n};\n\nexport interface HvCheckBoxGroupProps\n extends HvBaseProps<HTMLDivElement, \"onChange\"> {\n /**\n * The form element name.\n *\n * It is propagated to the children checkboxes, unless they already have one.\n */\n name?: string;\n /**\n * The value of the form element. An array of values represented in the child checkboxes.\n *\n * When defined the checkbox group state becomes controlled.\n */\n value?: any[];\n /**\n * When uncontrolled, defines the initial value.\n */\n defaultValue?: 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 /**\n * Provide additional descriptive text for the form element.\n */\n description?: React.ReactNode;\n /**\n * Indicates that the form element is disabled.\n * If `true` the state is propagated to the children checkboxes.\n */\n disabled?: boolean;\n /**\n * Indicates that the form element is not editable.\n * If `true` the state is propagated to the children checkboxes.\n */\n readOnly?: boolean;\n /**\n * Indicates that user input is required on the form element.\n */\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?: React.ReactNode;\n /**\n * The callback fired when the value changes.\n */\n onChange?: (event: React.ChangeEvent<HTMLInputElement>, value: any[]) => void;\n /**\n * Indicates whether the checkbox group's orientation is horizontal or vertical.\n *\n * Defaults to vertical.\n */\n orientation?: \"vertical\" | \"horizontal\";\n /**\n * Indicates if an additional select all checkbox should be shown.\n */\n showSelectAll?: boolean;\n /**\n * The label of the select all checkbox. Defaults to \"All\".\n */\n selectAllLabel?: string;\n /**\n * Custom label for select all checkbox conjunction\n */\n selectAllConjunctionLabel?: string;\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes?: HvCheckBoxGroupClasses;\n}\n\n/**\n * A checkbox group is a type of selection list that allows the user to select multiple options through the use of checkboxes.\n */\nexport const HvCheckBoxGroup = ({\n id,\n classes,\n className,\n children,\n name,\n label,\n description,\n status,\n statusMessage,\n defaultValue,\n value: valueProp,\n required = false,\n readOnly = false,\n disabled = false,\n showSelectAll = false,\n orientation = \"vertical\",\n selectAllLabel = \"All\",\n selectAllConjunctionLabel = \"/\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-errormessage\": ariaErrorMessage,\n onChange,\n ...others\n}: HvCheckBoxGroupProps) => {\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)\n );\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvcheckboxgroup\");\n\n const selectionAnchor = useRef(undefined);\n\n const [allValues, selectedState, selectedCount] = useMemo(() => {\n const childValues: any[] = [];\n const childSelectedState: boolean[] = [];\n let childSelectedCounter = 0;\n\n Children.toArray(children).forEach((child: any, i: number) => {\n const childValue = child?.props?.value;\n const childIsSelected = value.indexOf(childValue) !== -1;\n\n childValues[i] = childValue;\n childSelectedState[i] = childIsSelected;\n\n if (childIsSelected) {\n childSelectedCounter += 1;\n }\n });\n\n return [childValues, childSelectedState, childSelectedCounter];\n }, [children, value]);\n\n const selectAllState = computeSelectAllState(\n value.length,\n selectedState.length\n );\n\n const onChildChangeInterceptor = useCallback(\n (\n index: number,\n childOnChange: (\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) => void,\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) => {\n const newValue = multiSelectionEventHandler(\n event,\n index,\n selectionAnchor,\n allValues,\n selectedState,\n isChecked\n );\n\n childOnChange?.(event, isChecked);\n\n onChange?.(event, 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 [allValues, onChange, required, selectedState, setValidationState, setValue]\n );\n\n const modifiedChildren = useMemo(() => {\n return Children.map(children, (child: any, i: number) => {\n const childIsSelected = selectedState[i];\n\n return cloneElement(child, {\n checked: childIsSelected,\n name: child?.props?.name || name,\n onChange: (\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) =>\n onChildChangeInterceptor(i, child?.props?.onChange, event, isChecked),\n disabled: disabled || child?.props?.disabled,\n readOnly: readOnly || child?.props?.readOnly,\n });\n });\n }, [\n children,\n disabled,\n name,\n onChildChangeInterceptor,\n readOnly,\n selectedState,\n ]);\n\n const handleSelectAll = (\n event: React.ChangeEvent<HTMLInputElement>,\n selectAllChecked: boolean\n ) => {\n let newValue: any[];\n if (selectAllChecked) {\n newValue = [...allValues];\n } else {\n newValue = [];\n }\n\n onChange?.(event, newValue);\n\n setValue(() => {\n // This will only run if uncontrolled\n if (required && newValue.length === 0) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newValue;\n });\n };\n\n const selectAllLabelComponent =\n selectedCount === 0 ? (\n <>\n <b>{selectAllLabel}</b>\n {` (${Children.toArray(children).length})`}\n </>\n ) : (\n <>\n <b>{selectedCount}</b>\n {` ${selectAllConjunctionLabel} ${Children.toArray(children).length}`}\n </>\n );\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 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, classes?.root, checkBoxGroupClasses.root)}\n >\n {label && (\n <StyledLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={clsx(classes?.label, checkBoxGroupClasses.label)}\n />\n )}\n\n {description && (\n <HvInfoMessage id={setId(elementId, \"description\")}>\n {description}\n </HvInfoMessage>\n )}\n\n <StyledGroupContainer\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={\n ariaLabelledBy || (label && setId(elementId, \"label\")) || undefined\n }\n aria-disabled={disabled ? true : undefined}\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?.group,\n checkBoxGroupClasses.group,\n orientation === \"vertical\" &&\n clsx(classes?.vertical, checkBoxGroupClasses.vertical),\n orientation === \"horizontal\" &&\n clsx(classes?.horizontal, checkBoxGroupClasses.horizontal),\n validationState === \"invalid\" &&\n clsx(classes?.invalid, checkBoxGroupClasses.invalid)\n )}\n $vertical={orientation === \"vertical\"}\n $horizontal={orientation === \"horizontal\"}\n $invalid={validationState === \"invalid\"}\n {...others}\n >\n {showSelectAll && (\n <HvCheckBox\n checked={selectAllState === \"all\"}\n indeterminate={selectAllState === \"some\"}\n label={selectAllLabelComponent}\n disabled={disabled}\n readOnly={readOnly}\n className={clsx(classes?.selectAll, checkBoxGroupClasses.selectAll)}\n onChange={handleSelectAll}\n />\n )}\n {modifiedChildren}\n </StyledGroupContainer>\n\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(classes?.error, checkBoxGroupClasses.error)}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["computeSelectAllState","selected","total","getValueFromSelectedChildren","children","selectedValues","Children","toArray","map","child","childIsControlled","props","checked","undefined","childIsSelected","defaultChecked","value","filter","v","HvCheckBoxGroup","id","classes","className","name","label","description","status","statusMessage","defaultValue","valueProp","required","readOnly","disabled","showSelectAll","orientation","selectAllLabel","selectAllConjunctionLabel","ariaLabel","ariaLabelledBy","ariaDescribedBy","ariaErrorMessage","onChange","others","setValue","useControlled","validationState","setValidationState","validationMessage","elementId","useUniqueId","selectionAnchor","useRef","allValues","selectedState","selectedCount","useMemo","childValues","childSelectedState","childSelectedCounter","forEach","i","childValue","indexOf","selectAllState","length","onChildChangeInterceptor","useCallback","index","childOnChange","event","isChecked","newValue","multiSelectionEventHandler","modifiedChildren","cloneElement","handleSelectAll","selectAllChecked","selectAllLabelComponent","_jsxs","_Fragment","_jsx","canShowError","errorMessageId","setId","StyledFormElement","clsx","root","checkBoxGroupClasses","StyledLabel","HvInfoMessage","StyledGroupContainer","role","join","trim","group","vertical","horizontal","invalid","$vertical","$horizontal","$invalid","HvCheckBox","indeterminate","selectAll","HvWarningText","disableBorder","error"],"mappings":"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"}
1
+ {"version":3,"file":"CheckBoxGroup.js","sources":["../../../../src/components/CheckBoxGroup/CheckBoxGroup.tsx"],"sourcesContent":["import { Children, cloneElement, useCallback, useMemo, useRef } from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { clsx } from \"clsx\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { setId } from \"@core/utils/setId\";\nimport { multiSelectionEventHandler } from \"@core/utils/multiSelectionEventHandler\";\nimport { HvCheckBox } from \"@core/components/CheckBox\";\nimport {\n HvFormStatus,\n HvInfoMessage,\n HvWarningText,\n} from \"@core/components/Forms\";\n\nimport {\n StyledFormElement,\n StyledGroupContainer,\n StyledLabel,\n} from \"./CheckBoxGroup.styles\";\nimport checkBoxGroupClasses, {\n HvCheckBoxGroupClasses,\n} from \"./checkBoxGroupClasses\";\n\nconst computeSelectAllState = (selected: number, total: number) => {\n if (selected === 0) {\n return \"none\";\n }\n\n if (selected === total) {\n return \"all\";\n }\n\n return \"some\";\n};\n\nconst getValueFromSelectedChildren = (children: React.ReactNode) => {\n const selectedValues = Children.toArray(children)\n .map((child: any) => {\n const childIsControlled = child?.props?.checked !== undefined;\n const childIsSelected = childIsControlled\n ? child?.props?.checked\n : child?.props?.defaultChecked;\n\n return childIsSelected ? child?.props?.value : undefined;\n })\n .filter((v) => v !== undefined);\n\n return selectedValues;\n};\n\nexport interface HvCheckBoxGroupProps\n extends HvBaseProps<HTMLDivElement, \"onChange\"> {\n /**\n * The form element name.\n *\n * It is propagated to the children checkboxes, unless they already have one.\n */\n name?: string;\n /**\n * The value of the form element. An array of values represented in the child checkboxes.\n *\n * When defined the checkbox group state becomes controlled.\n */\n value?: any[];\n /**\n * When uncontrolled, defines the initial value.\n */\n defaultValue?: 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 /**\n * Provide additional descriptive text for the form element.\n */\n description?: React.ReactNode;\n /**\n * Indicates that the form element is disabled.\n * If `true` the state is propagated to the children checkboxes.\n */\n disabled?: boolean;\n /**\n * Indicates that the form element is not editable.\n * If `true` the state is propagated to the children checkboxes.\n */\n readOnly?: boolean;\n /**\n * Indicates that user input is required on the form element.\n */\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?: React.ReactNode;\n /**\n * The callback fired when the value changes.\n */\n onChange?: (event: React.ChangeEvent<HTMLInputElement>, value: any[]) => void;\n /**\n * Indicates whether the checkbox group's orientation is horizontal or vertical.\n *\n * Defaults to vertical.\n */\n orientation?: \"vertical\" | \"horizontal\";\n /**\n * Indicates if an additional select all checkbox should be shown.\n */\n showSelectAll?: boolean;\n /**\n * The label of the select all checkbox. Defaults to \"All\".\n */\n selectAllLabel?: string;\n /**\n * Custom label for select all checkbox conjunction\n */\n selectAllConjunctionLabel?: string;\n /**\n * A Jss Object used to override or extend the component styles applied.\n */\n classes?: HvCheckBoxGroupClasses;\n}\n\n/**\n * A checkbox group is a type of selection list that allows the user to select multiple options through the use of checkboxes.\n */\nexport const HvCheckBoxGroup = (props: HvCheckBoxGroupProps) => {\n const {\n id,\n classes,\n className,\n children,\n name,\n label,\n description,\n status,\n statusMessage,\n defaultValue,\n value: valueProp,\n required = false,\n readOnly = false,\n disabled = false,\n showSelectAll = false,\n orientation = \"vertical\",\n selectAllLabel = \"All\",\n selectAllConjunctionLabel = \"/\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-errormessage\": ariaErrorMessage,\n onChange,\n ...others\n } = useDefaultProps(\"HvCheckBoxGroup\", props);\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)\n );\n\n const [validationState, setValidationState] = useControlled(\n status,\n \"standBy\"\n );\n\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvcheckboxgroup\");\n\n const selectionAnchor = useRef(undefined);\n\n const [allValues, selectedState, selectedCount] = useMemo(() => {\n const childValues: any[] = [];\n const childSelectedState: boolean[] = [];\n let childSelectedCounter = 0;\n\n Children.toArray(children).forEach((child: any, i: number) => {\n const childValue = child?.props?.value;\n const childIsSelected = value.indexOf(childValue) !== -1;\n\n childValues[i] = childValue;\n childSelectedState[i] = childIsSelected;\n\n if (childIsSelected) {\n childSelectedCounter += 1;\n }\n });\n\n return [childValues, childSelectedState, childSelectedCounter];\n }, [children, value]);\n\n const selectAllState = computeSelectAllState(\n value.length,\n selectedState.length\n );\n\n const onChildChangeInterceptor = useCallback(\n (\n index: number,\n childOnChange: (\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) => void,\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) => {\n const newValue = multiSelectionEventHandler(\n event,\n index,\n selectionAnchor,\n allValues,\n selectedState,\n isChecked\n );\n\n childOnChange?.(event, isChecked);\n\n onChange?.(event, 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 [allValues, onChange, required, selectedState, setValidationState, setValue]\n );\n\n const modifiedChildren = useMemo(() => {\n return Children.map(children, (child: any, i: number) => {\n const childIsSelected = selectedState[i];\n\n return cloneElement(child, {\n checked: childIsSelected,\n name: child?.props?.name || name,\n onChange: (\n event: React.ChangeEvent<HTMLInputElement>,\n isChecked: boolean\n ) =>\n onChildChangeInterceptor(i, child?.props?.onChange, event, isChecked),\n disabled: disabled || child?.props?.disabled,\n readOnly: readOnly || child?.props?.readOnly,\n });\n });\n }, [\n children,\n disabled,\n name,\n onChildChangeInterceptor,\n readOnly,\n selectedState,\n ]);\n\n const handleSelectAll = (\n event: React.ChangeEvent<HTMLInputElement>,\n selectAllChecked: boolean\n ) => {\n let newValue: any[];\n if (selectAllChecked) {\n newValue = [...allValues];\n } else {\n newValue = [];\n }\n\n onChange?.(event, newValue);\n\n setValue(() => {\n // This will only run if uncontrolled\n if (required && newValue.length === 0) {\n setValidationState(\"invalid\");\n } else {\n setValidationState(\"valid\");\n }\n\n return newValue;\n });\n };\n\n const selectAllLabelComponent =\n selectedCount === 0 ? (\n <>\n <b>{selectAllLabel}</b>\n {` (${Children.toArray(children).length})`}\n </>\n ) : (\n <>\n <b>{selectedCount}</b>\n {` ${selectAllConjunctionLabel} ${Children.toArray(children).length}`}\n </>\n );\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 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, classes?.root, checkBoxGroupClasses.root)}\n >\n {label && (\n <StyledLabel\n id={setId(elementId, \"label\")}\n label={label}\n className={clsx(classes?.label, checkBoxGroupClasses.label)}\n />\n )}\n\n {description && (\n <HvInfoMessage id={setId(elementId, \"description\")}>\n {description}\n </HvInfoMessage>\n )}\n\n <StyledGroupContainer\n role=\"group\"\n aria-label={ariaLabel}\n aria-labelledby={\n ariaLabelledBy || (label && setId(elementId, \"label\")) || undefined\n }\n aria-disabled={disabled ? true : undefined}\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?.group,\n checkBoxGroupClasses.group,\n orientation === \"vertical\" &&\n clsx(classes?.vertical, checkBoxGroupClasses.vertical),\n orientation === \"horizontal\" &&\n clsx(classes?.horizontal, checkBoxGroupClasses.horizontal),\n validationState === \"invalid\" &&\n clsx(classes?.invalid, checkBoxGroupClasses.invalid)\n )}\n $vertical={orientation === \"vertical\"}\n $horizontal={orientation === \"horizontal\"}\n $invalid={validationState === \"invalid\"}\n {...others}\n >\n {showSelectAll && (\n <HvCheckBox\n checked={selectAllState === \"all\"}\n indeterminate={selectAllState === \"some\"}\n label={selectAllLabelComponent}\n disabled={disabled}\n readOnly={readOnly}\n className={clsx(classes?.selectAll, checkBoxGroupClasses.selectAll)}\n onChange={handleSelectAll}\n />\n )}\n {modifiedChildren}\n </StyledGroupContainer>\n\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(classes?.error, checkBoxGroupClasses.error)}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </StyledFormElement>\n );\n};\n"],"names":["computeSelectAllState","selected","total","getValueFromSelectedChildren","children","selectedValues","Children","toArray","map","child","childIsControlled","props","checked","undefined","childIsSelected","defaultChecked","value","filter","v","HvCheckBoxGroup","id","classes","className","name","label","description","status","statusMessage","defaultValue","valueProp","required","readOnly","disabled","showSelectAll","orientation","selectAllLabel","selectAllConjunctionLabel","ariaLabel","ariaLabelledBy","ariaDescribedBy","ariaErrorMessage","onChange","others","useDefaultProps","setValue","useControlled","validationState","setValidationState","validationMessage","elementId","useUniqueId","selectionAnchor","useRef","allValues","selectedState","selectedCount","useMemo","childValues","childSelectedState","childSelectedCounter","forEach","i","childValue","indexOf","selectAllState","length","onChildChangeInterceptor","useCallback","index","childOnChange","event","isChecked","newValue","multiSelectionEventHandler","modifiedChildren","cloneElement","handleSelectAll","selectAllChecked","selectAllLabelComponent","_jsxs","_Fragment","_jsx","canShowError","errorMessageId","setId","StyledFormElement","clsx","root","checkBoxGroupClasses","StyledLabel","HvInfoMessage","StyledGroupContainer","role","join","trim","group","vertical","horizontal","invalid","$vertical","$horizontal","$invalid","HvCheckBox","indeterminate","selectAll","HvWarningText","disableBorder","error"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Checkbox, ColorPicker } from "@hitachivantara/uikit-react-icons";
2
+ import { useDefaultProps } from "../../hooks/useDefaultProps.js";
2
3
  import { useControlled } from "../../hooks/useControlled.js";
3
4
  import { useUniqueId } from "../../hooks/useUniqueId.js";
4
5
  import { useLabels } from "../../hooks/useLabels.js";
@@ -20,38 +21,39 @@ const DEFAULT_LABELS = {
20
21
  recommendedColorsLabel: "Recommended colors:",
21
22
  customColorsLabel: "Custom colors:"
22
23
  };
23
- const HvColorPicker = ({
24
- id,
25
- name,
26
- required = false,
27
- disabled = false,
28
- label,
29
- "aria-label": ariaLabel,
30
- "aria-labelledby": ariaLabelledBy,
31
- description,
32
- "aria-describedby": ariaDescribedBy,
33
- className,
34
- classes: classesProp,
35
- value,
36
- onChange,
37
- defaultValue = "",
38
- expanded,
39
- defaultExpanded = false,
40
- recommendedColorsPosition = "top",
41
- recommendedColors = ["#95AFE8", "#E89E5D", "#83B8A6", "#70759C", "#C57E7E", "#FADA95", "#ADBFE8", "#E3B386", "#9AC6B7", "#8B90AF", "#CF9797", "#FAE1AA"],
42
- showLabels = true,
43
- labels: labelsProp,
44
- dropdownIcon = "colorPicker",
45
- placeholder = "Select color...",
46
- iconOnly = false,
47
- showSavedColors = true,
48
- showCustomColors = true,
49
- savedColorsValue,
50
- defaultSavedColorsValue = [],
51
- onSavedColorAdded,
52
- onSavedColorRemoved,
53
- deleteSavedColorButtonArialLabel = "Delete saved color"
54
- }) => {
24
+ const HvColorPicker = (props) => {
25
+ const {
26
+ id,
27
+ name,
28
+ required = false,
29
+ disabled = false,
30
+ label,
31
+ "aria-label": ariaLabel,
32
+ "aria-labelledby": ariaLabelledBy,
33
+ description,
34
+ "aria-describedby": ariaDescribedBy,
35
+ className,
36
+ classes: classesProp,
37
+ value,
38
+ onChange,
39
+ defaultValue = "",
40
+ expanded,
41
+ defaultExpanded = false,
42
+ recommendedColorsPosition = "top",
43
+ recommendedColors = ["#95AFE8", "#E89E5D", "#83B8A6", "#70759C", "#C57E7E", "#FADA95", "#ADBFE8", "#E3B386", "#9AC6B7", "#8B90AF", "#CF9797", "#FAE1AA"],
44
+ showLabels = true,
45
+ labels: labelsProp,
46
+ dropdownIcon = "colorPicker",
47
+ placeholder = "Select color...",
48
+ iconOnly = false,
49
+ showSavedColors = true,
50
+ showCustomColors = true,
51
+ savedColorsValue,
52
+ defaultSavedColorsValue = [],
53
+ onSavedColorAdded,
54
+ onSavedColorRemoved,
55
+ deleteSavedColorButtonArialLabel = "Delete saved color"
56
+ } = useDefaultProps("HvColorPicker", props);
55
57
  const {
56
58
  classes,
57
59
  css,