@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 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { HTMLAttributes, useCallback, useEffect } from \"react\";\n\nimport { Hidden } from \"@mui/material\";\n\nimport {\n Start,\n End,\n Backwards,\n Forwards,\n} from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvInput, HvInputProps } from \"@core/components/Input\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { setId } from \"@core/utils/setId\";\nimport { isKey } from \"@core/utils/keyboardUtils\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { useLabels } from \"@core/hooks/useLabels\";\n\nimport HvSelect, { Option } from \"./Select\";\nimport { staticClasses, useClasses } from \"./Pagination.styles\";\nimport { usePageInput, getSafePage, setColor } from \"./utils\";\nimport ButtonIconTooltip from \"./ButtonIconTooltip\";\n\nexport { staticClasses as paginationClasses };\n\nexport type HvPaginationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPaginationLabels {\n /** The show label. */\n pageSizePrev?: string;\n /** Indicate the units of the page size selection. */\n pageSizeEntryName?: string;\n /** Used for the aria-label of the selection of number of unit.s */\n pageSizeSelectorDescription?: string;\n /** Separator of current page and total pages. */\n pagesSeparator?: string;\n /** Title of button `firstPage`. */\n paginationFirstPageTitle?: string;\n /** Title of button `previousPage`. */\n paginationPreviousPageTitle?: string;\n /** Title of button `nextPage`. */\n paginationNextPageTitle?: string;\n /** Title of button `lastPage`. */\n paginationLastPageTitle?: string;\n /** Aria-label passed to the page input. */\n paginationInputLabel?: string;\n /** Aria-label of the first page button */\n firstPage?: string;\n /** Aria-label of the previous page button */\n previousPage?: string;\n /** Aria-label of the next page button */\n nextPage?: string;\n /** Aria-label of the last page button */\n lastPage?: string;\n}\n\nexport interface HvPaginationProps extends HvBaseProps {\n /** The number of pages the component has. */\n pages?: number;\n /** The currently selected page (0-indexed). */\n page?: number;\n /** Controls whether the left page size mechanism should be visible. */\n showPageSizeOptions?: boolean;\n /** The array of possible page sizes for the dropdown. */\n pageSizeOptions?: number[];\n /** The currently selected page size. */\n pageSize?: number;\n /** Controls whether the central page changing mechanism should be visible. */\n showPageJump?: boolean;\n /** Controls whether the previous/first page buttons are enabled. */\n canPrevious?: boolean;\n /** Controls whether the next/last page buttons are enabled. */\n canNext?: boolean;\n /** Function called when the page changes. */\n onPageChange?: (page: number) => void;\n /** Function called when the page size changes. */\n onPageSizeChange?: (pageSize: number) => void;\n /** An object containing all the labels for the component. */\n labels?: HvPaginationLabels;\n /** Other props to show page component. */\n showPageProps?: HTMLAttributes<HTMLDivElement>;\n /** Other props to pagination component. */\n navigationProps?: HTMLAttributes<HTMLDivElement>;\n /** Extra properties passed to the input component representing the current pages. */\n currentPageInputProps?: HvInputProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvPaginationClasses;\n}\n\nconst DEFAULT_LABELS = {\n pageSizePrev: \"Show\",\n pageSizeEntryName: \"rows\",\n pageSizeSelectorDescription: \"Select how many to display\",\n pagesSeparator: \"/\",\n paginationFirstPageTitle: \"First page\",\n paginationPreviousPageTitle: \"Previous page\",\n paginationNextPageTitle: \"Next page\",\n paginationLastPageTitle: \"Last page\",\n paginationInputLabel: \"Current page\",\n firstPage: \"First Page\",\n previousPage: \"Previous Page\",\n nextPage: \"Next Page\",\n lastPage: \"Last Page\",\n};\n\nconst defaultPageSizeOptions = [5, 10, 20, 25, 50, 100];\n\n/**\n * Pagination is the process of dividing a document into discrete pages. It relates to how users interact\n * with structured content on a website or application.\n */\nexport const HvPagination = ({\n classes: classesProp = {},\n className,\n id,\n pages = 1,\n page = 0,\n showPageSizeOptions = true,\n pageSizeOptions = defaultPageSizeOptions,\n pageSize = defaultPageSizeOptions[1],\n showPageJump = true,\n canPrevious = false,\n canNext = false,\n onPageChange,\n onPageSizeChange,\n labels: labelsProp,\n showPageProps,\n navigationProps,\n currentPageInputProps,\n ...others\n}: HvPaginationProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const [pageInput, handleInputChange] = usePageInput(page);\n const { classes, cx } = useClasses(classesProp);\n\n const changePage = useCallback(\n (newPage: number) => {\n const safePage: number = getSafePage(newPage, page, pages);\n\n onPageChange?.(safePage);\n handleInputChange(null, safePage + 1);\n },\n [page, pages, onPageChange, handleInputChange]\n );\n\n useEffect(() => {\n if (page >= pages && pages > 0) {\n changePage(page);\n }\n }, [changePage, page, pages]);\n\n useEffect(() => {\n if (pageInput !== page + 1) {\n handleInputChange(null, page + 1);\n }\n\n // we only want to \"fix\" the input's display value when `page` property changed\n // (either externally or when internally committed - onBlur or Enter),\n // not while editing the input.\n // breaking a rule of hooks isn't ideal and it's just a hack for fixing\n // a bug preventing properly controlling of the `page` property.\n // fixing it some other way would potentially introduce a breaking change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleInputChange, page]);\n\n const renderPageJump = () => (\n <div className={classes.pageJump}>\n <HvInput\n id={setId(id, \"currentPage\")}\n labels={labels}\n inputProps={{\n \"aria-label\": labels?.paginationInputLabel,\n // We really want the native number input\n type: \"number\",\n }}\n classes={{\n root: classes?.pageSizeInputContainer,\n input: classes?.pageSizeInput,\n inputRoot: classes?.pageSizeInputRoot,\n }}\n onChange={(event, value) => handleInputChange(event, Number(value))}\n value={String(pageInput)}\n onBlur={(evt, value) => changePage(Number(value) - 1)}\n onKeyDown={(evt, value) =>\n isKey(evt, \"Enter\") && changePage(Number(value) - 1)\n }\n disabled={pageSize === 0}\n disableClear\n {...currentPageInputProps}\n />\n </div>\n );\n\n return (\n <div id={id} className={cx(classes.root, className)} {...others}>\n <div className={classes.pageSizeOptions} {...showPageProps}>\n {showPageSizeOptions && (\n <>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes?.pageSizeTextContainer}\n >\n {labels?.pageSizePrev}\n </HvTypography>\n </Hidden>\n <HvSelect\n id={setId(id, \"pageSize\")}\n disabled={pageSize === 0}\n className={classes.pageSizeOptionsSelect}\n aria-label={labels?.pageSizeSelectorDescription}\n onChange={(_: any, val: number) => onPageSizeChange?.(val)}\n value={pageSize}\n >\n {pageSizeOptions.map((option) => (\n <Option key={option} value={option}>\n {option}\n </Option>\n ))}\n </HvSelect>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes.pageSizeTextContainer}\n >\n {labels?.pageSizeEntryName}\n </HvTypography>\n </Hidden>\n </>\n )}\n </div>\n <div className={classes.pageNavigator} {...navigationProps}>\n <ButtonIconTooltip\n id={setId(id, \"firstPage-button\")}\n aria-label={labels?.firstPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(0)}\n tooltip={labels?.paginationFirstPageTitle}\n >\n <Start className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"previousPage-button\")}\n aria-label={labels?.previousPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(page - 1)}\n tooltip={labels?.paginationPreviousPageTitle}\n >\n <Backwards className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <div className={classes.pageInfo}>\n {showPageJump ? (\n renderPageJump()\n ) : (\n <HvTypography component=\"span\">{`${page + 1}`}</HvTypography>\n )}\n <HvTypography component=\"span\">{`${labels?.pagesSeparator} `}</HvTypography>\n <HvTypography component=\"span\" id={setId(id, \"totalPages\")}>\n {pages}\n </HvTypography>\n </div>\n <ButtonIconTooltip\n id={setId(id, \"nextPage-button\")}\n aria-label={labels?.nextPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(page + 1)}\n tooltip={labels?.paginationNextPageTitle}\n >\n <Forwards className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"lastPage-button\")}\n aria-label={labels?.lastPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(pages - 1)}\n tooltip={labels?.paginationLastPageTitle}\n >\n <End className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n </div>\n </div>\n );\n};\n"],"names":["DEFAULT_LABELS","pageSizePrev","pageSizeEntryName","pageSizeSelectorDescription","pagesSeparator","paginationFirstPageTitle","paginationPreviousPageTitle","paginationNextPageTitle","paginationLastPageTitle","paginationInputLabel","firstPage","previousPage","nextPage","lastPage","defaultPageSizeOptions","HvPagination","classes","classesProp","className","id","pages","page","showPageSizeOptions","pageSizeOptions","pageSize","showPageJump","canPrevious","canNext","onPageChange","onPageSizeChange","labels","labelsProp","showPageProps","navigationProps","currentPageInputProps","others","useLabels","pageInput","handleInputChange","usePageInput","cx","useClasses","changePage","useCallback","newPage","safePage","getSafePage","useEffect","renderPageJump","_jsx","pageJump","children","HvInput","setId","inputProps","type","root","pageSizeInputContainer","input","pageSizeInput","inputRoot","pageSizeInputRoot","onChange","event","value","Number","String","onBlur","evt","onKeyDown","isKey","disabled","disableClear","_jsxs","_Fragment","Hidden","xsDown","HvTypography","component","pageSizeTextContainer","HvSelect","pageSizeOptionsSelect","_","val","map","option","Option","pageNavigator","ButtonIconTooltip","iconContainer","onClick","tooltip","Start","icon","color","setColor","Backwards","pageInfo","Forwards","End"],"mappings":";;;;;;;;;;;;;;AA0FA,MAAMA,iBAAiB;AAAA,EACrBC,cAAc;AAAA,EACdC,mBAAmB;AAAA,EACnBC,6BAA6B;AAAA,EAC7BC,gBAAgB;AAAA,EAChBC,0BAA0B;AAAA,EAC1BC,6BAA6B;AAAA,EAC7BC,yBAAyB;AAAA,EACzBC,yBAAyB;AAAA,EACzBC,sBAAsB;AAAA,EACtBC,WAAW;AAAA,EACXC,cAAc;AAAA,EACdC,UAAU;AAAA,EACVC,UAAU;AACZ;AAEA,MAAMC,yBAAyB,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG;AAM/C,MAAMC,eAAeA,CAAC;AAAA,EAC3BC,SAASC,cAAc,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC,QAAQ;AAAA,EACRC,OAAO;AAAA,EACPC,sBAAsB;AAAA,EACtBC,kBAAkBT;AAAAA,EAClBU,WAAWV,uBAAuB,CAAC;AAAA,EACnCW,eAAe;AAAA,EACfC,cAAc;AAAA,EACdC,UAAU;AAAA,EACVC;AAAAA,EACAC;AAAAA,EACAC,QAAQC;AAAAA,EACRC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACc,MAAM;AACjBL,QAAAA,SAASM,UAAUpC,gBAAgB+B,UAAU;AACnD,QAAM,CAACM,WAAWC,iBAAiB,IAAIC,aAAalB,IAAI;AAClD,QAAA;AAAA,IAAEL;AAAAA,IAASwB;AAAAA,EAAAA,IAAOC,WAAWxB,WAAW;AAExCyB,QAAAA,aAAaC,YACjB,CAACC,YAAoB;AACnB,UAAMC,WAAmBC,YAAYF,SAASvB,MAAMD,KAAK;AAEzDQ,iDAAeiB;AACG,sBAAA,MAAMA,WAAW,CAAC;AAAA,KAEtC,CAACxB,MAAMD,OAAOQ,cAAcU,iBAAiB,CAC/C;AAEAS,YAAU,MAAM;AACV1B,QAAAA,QAAQD,SAASA,QAAQ,GAAG;AAC9BsB,iBAAWrB,IAAI;AAAA,IACjB;AAAA,EACC,GAAA,CAACqB,YAAYrB,MAAMD,KAAK,CAAC;AAE5B2B,YAAU,MAAM;AACVV,QAAAA,cAAchB,OAAO,GAAG;AACR,wBAAA,MAAMA,OAAO,CAAC;AAAA,IAClC;AAAA,EAAA,GASC,CAACiB,mBAAmBjB,IAAI,CAAC;AAEtB2B,QAAAA,iBAAiBA,MACrBC,oBAAA,OAAA;AAAA,IAAK/B,WAAWF,QAAQkC;AAAAA,IAASC,8BAC9BC,SAAO;AAAA,MACNjC,IAAIkC,MAAMlC,IAAI,aAAa;AAAA,MAC3BW;AAAAA,MACAwB,YAAY;AAAA,QACV,cAAcxB,iCAAQrB;AAAAA;AAAAA,QAEtB8C,MAAM;AAAA,MACR;AAAA,MACAvC,SAAS;AAAA,QACPwC,MAAMxC,mCAASyC;AAAAA,QACfC,OAAO1C,mCAAS2C;AAAAA,QAChBC,WAAW5C,mCAAS6C;AAAAA,MACtB;AAAA,MACAC,UAAUA,CAACC,OAAOC,UAAU1B,kBAAkByB,OAAOE,OAAOD,KAAK,CAAC;AAAA,MAClEA,OAAOE,OAAO7B,SAAS;AAAA,MACvB8B,QAAQA,CAACC,KAAKJ,UAAUtB,WAAWuB,OAAOD,KAAK,IAAI,CAAC;AAAA,MACpDK,WAAWA,CAACD,KAAKJ,UACfM,MAAMF,KAAK,OAAO,KAAK1B,WAAWuB,OAAOD,KAAK,IAAI,CAAC;AAAA,MAErDO,UAAU/C,aAAa;AAAA,MACvBgD,cAAY;AAAA,MAAA,GACRtC;AAAAA,IAAAA,CACL;AAAA,EAAA,CACE;AAGP,8BACE,OAAA;AAAA,IAAKf;AAAAA,IAAQD,WAAWsB,GAAGxB,QAAQwC,MAAMtC,SAAS;AAAA,IAAE,GAAKiB;AAAAA,IAAMgB,WAC7DF,oBAAA,OAAA;AAAA,MAAK/B,WAAWF,QAAQO;AAAAA,MAAgB,GAAKS;AAAAA,MAAamB,UACvD7B,uBACCmD,qBAAAC,UAAA;AAAA,QAAAvB,UAAA,CACEF,oBAAC0B,QAAM;AAAA,UAACC,QAAM;AAAA,UAAAzB,8BACX0B,cAAY;AAAA,YACXC,WAAU;AAAA,YACV5D,WAAWF,mCAAS+D;AAAAA,YAAsB5B,UAEzCrB,iCAAQ7B;AAAAA,UAAAA,CACG;AAAA,QAAA,CACR,GACRgD,oBAAC+B,UAAQ;AAAA,UACP7D,IAAIkC,MAAMlC,IAAI,UAAU;AAAA,UACxBoD,UAAU/C,aAAa;AAAA,UACvBN,WAAWF,QAAQiE;AAAAA,UACnB,cAAYnD,iCAAQ3B;AAAAA,UACpB2D,UAAUA,CAACoB,GAAQC,QAAgBtD,qDAAmBsD;AAAAA,UACtDnB,OAAOxC;AAAAA,UAAS2B,UAEf5B,gBAAgB6D,IAAKC,CAAAA,+BACnBC,QAAM;AAAA,YAActB,OAAOqB;AAAAA,YAAOlC,UAChCkC;AAAAA,UAAM,GADIA,MAEL,CACT;AAAA,QAAA,CACO,GACVpC,oBAAC0B,QAAM;AAAA,UAACC,QAAM;AAAA,UAAAzB,8BACX0B,cAAY;AAAA,YACXC,WAAU;AAAA,YACV5D,WAAWF,QAAQ+D;AAAAA,YAAsB5B,UAExCrB,iCAAQ5B;AAAAA,UAAAA,CACG;AAAA,QAAA,CACR,CAAC;AAAA,MAAA,CACT;AAAA,IAAA,CAED,GACLuE,qBAAA,OAAA;AAAA,MAAKvD,WAAWF,QAAQuE;AAAAA,MAAc,GAAKtD;AAAAA,MAAekB,UAAA,CACxDF,oBAACuC,mBAAiB;AAAA,QAChBrE,IAAIkC,MAAMlC,IAAI,kBAAkB;AAAA,QAChC,cAAYW,iCAAQpB;AAAAA,QACpBQ,WAAWF,QAAQyE;AAAAA,QACnBlB,UAAU,CAAC7C;AAAAA,QACXgE,SAASA,MAAMhD,WAAW,CAAC;AAAA,QAC3BiD,SAAS7D,iCAAQzB;AAAAA,QAAyB8C,8BAEzCyC,OAAK;AAAA,UAAC1E,WAAWF,QAAQ6E;AAAAA,UAAMC,OAAOC,SAAS,CAACrE,WAAW;AAAA,QAAA,CAAI;AAAA,MAAA,CAC/C,GACnBuB,oBAACuC,mBAAiB;AAAA,QAChBrE,IAAIkC,MAAMlC,IAAI,qBAAqB;AAAA,QACnC,cAAYW,iCAAQnB;AAAAA,QACpBO,WAAWF,QAAQyE;AAAAA,QACnBlB,UAAU,CAAC7C;AAAAA,QACXgE,SAASA,MAAMhD,WAAWrB,OAAO,CAAC;AAAA,QAClCsE,SAAS7D,iCAAQxB;AAAAA,QAA4B6C,8BAE5C6C,WAAS;AAAA,UAAC9E,WAAWF,QAAQ6E;AAAAA,UAAMC,OAAOC,SAAS,CAACrE,WAAW;AAAA,QAAA,CAAI;AAAA,MAAA,CACnD,GACnB+C,qBAAA,OAAA;AAAA,QAAKvD,WAAWF,QAAQiF;AAAAA,QAAS9C,UAAA,CAC9B1B,eACCuB,eAAe,wBAEd6B,cAAY;AAAA,UAACC,WAAU;AAAA,UAAM3B,UAAG,GAAE9B,OAAO;AAAA,QAAA,CAAkB,GAE9D4B,oBAAC4B,cAAY;AAAA,UAACC,WAAU;AAAA,UAAM3B,UAAG,GAAErB,iCAAQ1B;AAAAA,QAAAA,CAAgC,GAC3E6C,oBAAC4B,cAAY;AAAA,UAACC,WAAU;AAAA,UAAO3D,IAAIkC,MAAMlC,IAAI,YAAY;AAAA,UAAEgC,UACxD/B;AAAAA,QAAAA,CACW,CAAC;AAAA,MAAA,CACZ,GACL6B,oBAACuC,mBAAiB;AAAA,QAChBrE,IAAIkC,MAAMlC,IAAI,iBAAiB;AAAA,QAC/B,cAAYW,iCAAQlB;AAAAA,QACpBM,WAAWF,QAAQyE;AAAAA,QACnBlB,UAAU,CAAC5C;AAAAA,QACX+D,SAASA,MAAMhD,WAAWrB,OAAO,CAAC;AAAA,QAClCsE,SAAS7D,iCAAQvB;AAAAA,QAAwB4C,8BAExC+C,UAAQ;AAAA,UAAChF,WAAWF,QAAQ6E;AAAAA,UAAMC,OAAOC,SAAS,CAACpE,OAAO;AAAA,QAAA,CAAI;AAAA,MAAA,CAC9C,GACnBsB,oBAACuC,mBAAiB;AAAA,QAChBrE,IAAIkC,MAAMlC,IAAI,iBAAiB;AAAA,QAC/B,cAAYW,iCAAQjB;AAAAA,QACpBK,WAAWF,QAAQyE;AAAAA,QACnBlB,UAAU,CAAC5C;AAAAA,QACX+D,SAASA,MAAMhD,WAAWtB,QAAQ,CAAC;AAAA,QACnCuE,SAAS7D,iCAAQtB;AAAAA,QAAwB2C,8BAExCgD,KAAG;AAAA,UAACjF,WAAWF,QAAQ6E;AAAAA,UAAMC,OAAOC,SAAS,CAACpE,OAAO;AAAA,QAAA,CAAI;AAAA,MAAA,CACzC,CAAC;AAAA,IAAA,CACjB,CAAC;AAAA,EAAA,CACH;AAET;"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { HTMLAttributes, useCallback, useEffect } from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { Hidden } from \"@mui/material\";\n\nimport {\n Start,\n End,\n Backwards,\n Forwards,\n} from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvInput, HvInputProps } from \"@core/components/Input\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { setId } from \"@core/utils/setId\";\nimport { isKey } from \"@core/utils/keyboardUtils\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { useLabels } from \"@core/hooks/useLabels\";\n\nimport HvSelect, { Option } from \"./Select\";\nimport { staticClasses, useClasses } from \"./Pagination.styles\";\nimport { usePageInput, getSafePage, setColor } from \"./utils\";\nimport ButtonIconTooltip from \"./ButtonIconTooltip\";\n\nexport { staticClasses as paginationClasses };\n\nexport type HvPaginationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPaginationLabels {\n /** The show label. */\n pageSizePrev?: string;\n /** Indicate the units of the page size selection. */\n pageSizeEntryName?: string;\n /** Used for the aria-label of the selection of number of unit.s */\n pageSizeSelectorDescription?: string;\n /** Separator of current page and total pages. */\n pagesSeparator?: string;\n /** Title of button `firstPage`. */\n paginationFirstPageTitle?: string;\n /** Title of button `previousPage`. */\n paginationPreviousPageTitle?: string;\n /** Title of button `nextPage`. */\n paginationNextPageTitle?: string;\n /** Title of button `lastPage`. */\n paginationLastPageTitle?: string;\n /** Aria-label passed to the page input. */\n paginationInputLabel?: string;\n /** Aria-label of the first page button */\n firstPage?: string;\n /** Aria-label of the previous page button */\n previousPage?: string;\n /** Aria-label of the next page button */\n nextPage?: string;\n /** Aria-label of the last page button */\n lastPage?: string;\n}\n\nexport interface HvPaginationProps extends HvBaseProps {\n /** The number of pages the component has. */\n pages?: number;\n /** The currently selected page (0-indexed). */\n page?: number;\n /** Controls whether the left page size mechanism should be visible. */\n showPageSizeOptions?: boolean;\n /** The array of possible page sizes for the dropdown. */\n pageSizeOptions?: number[];\n /** The currently selected page size. */\n pageSize?: number;\n /** Controls whether the central page changing mechanism should be visible. */\n showPageJump?: boolean;\n /** Controls whether the previous/first page buttons are enabled. */\n canPrevious?: boolean;\n /** Controls whether the next/last page buttons are enabled. */\n canNext?: boolean;\n /** Function called when the page changes. */\n onPageChange?: (page: number) => void;\n /** Function called when the page size changes. */\n onPageSizeChange?: (pageSize: number) => void;\n /** An object containing all the labels for the component. */\n labels?: HvPaginationLabels;\n /** Other props to show page component. */\n showPageProps?: HTMLAttributes<HTMLDivElement>;\n /** Other props to pagination component. */\n navigationProps?: HTMLAttributes<HTMLDivElement>;\n /** Extra properties passed to the input component representing the current pages. */\n currentPageInputProps?: HvInputProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvPaginationClasses;\n}\n\nconst DEFAULT_LABELS = {\n pageSizePrev: \"Show\",\n pageSizeEntryName: \"rows\",\n pageSizeSelectorDescription: \"Select how many to display\",\n pagesSeparator: \"/\",\n paginationFirstPageTitle: \"First page\",\n paginationPreviousPageTitle: \"Previous page\",\n paginationNextPageTitle: \"Next page\",\n paginationLastPageTitle: \"Last page\",\n paginationInputLabel: \"Current page\",\n firstPage: \"First Page\",\n previousPage: \"Previous Page\",\n nextPage: \"Next Page\",\n lastPage: \"Last Page\",\n};\n\nconst defaultPageSizeOptions = [5, 10, 20, 25, 50, 100];\n\n/**\n * Pagination is the process of dividing a document into discrete pages. It relates to how users interact\n * with structured content on a website or application.\n */\nexport const HvPagination = (props: HvPaginationProps) => {\n const {\n classes: classesProp,\n className,\n id,\n pages = 1,\n page = 0,\n showPageSizeOptions = true,\n pageSizeOptions = defaultPageSizeOptions,\n pageSize = defaultPageSizeOptions[1],\n showPageJump = true,\n canPrevious = false,\n canNext = false,\n onPageChange,\n onPageSizeChange,\n labels: labelsProp,\n showPageProps,\n navigationProps,\n currentPageInputProps,\n ...others\n } = useDefaultProps(\"HvPagination\", props);\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const [pageInput, handleInputChange] = usePageInput(page);\n const { classes, cx } = useClasses(classesProp);\n\n const changePage = useCallback(\n (newPage: number) => {\n const safePage: number = getSafePage(newPage, page, pages);\n\n onPageChange?.(safePage);\n handleInputChange(null, safePage + 1);\n },\n [page, pages, onPageChange, handleInputChange]\n );\n\n useEffect(() => {\n if (page >= pages && pages > 0) {\n changePage(page);\n }\n }, [changePage, page, pages]);\n\n useEffect(() => {\n if (pageInput !== page + 1) {\n handleInputChange(null, page + 1);\n }\n\n // we only want to \"fix\" the input's display value when `page` property changed\n // (either externally or when internally committed - onBlur or Enter),\n // not while editing the input.\n // breaking a rule of hooks isn't ideal and it's just a hack for fixing\n // a bug preventing properly controlling of the `page` property.\n // fixing it some other way would potentially introduce a breaking change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleInputChange, page]);\n\n const renderPageJump = () => (\n <div className={classes.pageJump}>\n <HvInput\n id={setId(id, \"currentPage\")}\n labels={labels}\n inputProps={{\n \"aria-label\": labels?.paginationInputLabel,\n // We really want the native number input\n type: \"number\",\n }}\n classes={{\n root: classes?.pageSizeInputContainer,\n input: classes?.pageSizeInput,\n inputRoot: classes?.pageSizeInputRoot,\n }}\n onChange={(event, value) => handleInputChange(event, Number(value))}\n value={String(pageInput)}\n onBlur={(evt, value) => changePage(Number(value) - 1)}\n onKeyDown={(evt, value) =>\n isKey(evt, \"Enter\") && changePage(Number(value) - 1)\n }\n disabled={pageSize === 0}\n disableClear\n {...currentPageInputProps}\n />\n </div>\n );\n\n return (\n <div id={id} className={cx(classes.root, className)} {...others}>\n <div className={classes.pageSizeOptions} {...showPageProps}>\n {showPageSizeOptions && (\n <>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes?.pageSizeTextContainer}\n >\n {labels?.pageSizePrev}\n </HvTypography>\n </Hidden>\n <HvSelect\n id={setId(id, \"pageSize\")}\n disabled={pageSize === 0}\n className={classes.pageSizeOptionsSelect}\n aria-label={labels?.pageSizeSelectorDescription}\n onChange={(_: any, val: number) => onPageSizeChange?.(val)}\n value={pageSize}\n >\n {pageSizeOptions.map((option) => (\n <Option key={option} value={option}>\n {option}\n </Option>\n ))}\n </HvSelect>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes.pageSizeTextContainer}\n >\n {labels?.pageSizeEntryName}\n </HvTypography>\n </Hidden>\n </>\n )}\n </div>\n <div className={classes.pageNavigator} {...navigationProps}>\n <ButtonIconTooltip\n id={setId(id, \"firstPage-button\")}\n aria-label={labels?.firstPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(0)}\n tooltip={labels?.paginationFirstPageTitle}\n >\n <Start className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"previousPage-button\")}\n aria-label={labels?.previousPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(page - 1)}\n tooltip={labels?.paginationPreviousPageTitle}\n >\n <Backwards className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <div className={classes.pageInfo}>\n {showPageJump ? (\n renderPageJump()\n ) : (\n <HvTypography component=\"span\">{`${page + 1}`}</HvTypography>\n )}\n <HvTypography component=\"span\">{`${labels?.pagesSeparator} `}</HvTypography>\n <HvTypography component=\"span\" id={setId(id, \"totalPages\")}>\n {pages}\n </HvTypography>\n </div>\n <ButtonIconTooltip\n id={setId(id, \"nextPage-button\")}\n aria-label={labels?.nextPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(page + 1)}\n tooltip={labels?.paginationNextPageTitle}\n >\n <Forwards className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"lastPage-button\")}\n aria-label={labels?.lastPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(pages - 1)}\n tooltip={labels?.paginationLastPageTitle}\n >\n <End className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n </div>\n </div>\n );\n};\n"],"names":["DEFAULT_LABELS","pageSizePrev","pageSizeEntryName","pageSizeSelectorDescription","pagesSeparator","paginationFirstPageTitle","paginationPreviousPageTitle","paginationNextPageTitle","paginationLastPageTitle","paginationInputLabel","firstPage","previousPage","nextPage","lastPage","defaultPageSizeOptions","HvPagination","props","classes","classesProp","className","id","pages","page","showPageSizeOptions","pageSizeOptions","pageSize","showPageJump","canPrevious","canNext","onPageChange","onPageSizeChange","labels","labelsProp","showPageProps","navigationProps","currentPageInputProps","others","useDefaultProps","useLabels","pageInput","handleInputChange","usePageInput","cx","useClasses","changePage","useCallback","newPage","safePage","getSafePage","useEffect","renderPageJump","_jsx","pageJump","children","HvInput","setId","inputProps","type","root","pageSizeInputContainer","input","pageSizeInput","inputRoot","pageSizeInputRoot","onChange","event","value","Number","String","onBlur","evt","onKeyDown","isKey","disabled","disableClear","_jsxs","_Fragment","Hidden","xsDown","HvTypography","component","pageSizeTextContainer","HvSelect","pageSizeOptionsSelect","_","val","map","option","Option","pageNavigator","ButtonIconTooltip","iconContainer","onClick","tooltip","Start","icon","color","setColor","Backwards","pageInfo","Forwards","End"],"mappings":"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"}
@@ -12,7 +12,7 @@ const Option = ({
12
12
  });
13
13
  const HvSelect = ({
14
14
  className,
15
- classes: classesProp = {},
15
+ classes: classesProp,
16
16
  onChange,
17
17
  disabled,
18
18
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../../src/components/Pagination/Select.tsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport {\n HvBaseDropdown,\n HvBaseDropdownProps,\n} from \"@core/components/BaseDropdown\";\nimport {\n HvSelectionList,\n HvSelectionListProps,\n} from \"@core/components/SelectionList\";\nimport { HvPanel } from \"@core/components/Panel\";\nimport { HvListItem, HvListItemProps } from \"@core/components/ListContainer\";\n\nimport { useClasses } from \"./Select.styles\";\n\nexport const Option = ({ ...props }: Partial<HvListItemProps>) => (\n <HvListItem {...props} />\n);\n\nconst HvSelect = ({\n className,\n classes: classesProp = {},\n onChange,\n disabled,\n value,\n children,\n ...others\n}: any) => {\n const { classes } = useClasses(classesProp);\n const [open, setOpen] = useState(false);\n\n const handleSelect: HvSelectionListProps[\"onChange\"] = (evt, val) => {\n onChange?.(evt, val);\n setOpen(false);\n };\n\n const handleToggle: HvBaseDropdownProps[\"onToggle\"] = (_evt, s) => {\n setOpen(s);\n };\n\n const setFocusToContent: HvBaseDropdownProps[\"onContainerCreation\"] = (\n containerRef\n ) => {\n const listItems =\n containerRef != null ? [...containerRef.getElementsByTagName(\"li\")] : [];\n listItems.every((listItem) => {\n if (listItem.tabIndex >= 0) {\n listItem.focus();\n return false;\n }\n return true;\n });\n };\n\n return (\n <HvBaseDropdown\n className={className}\n classes={{\n selection: classes.selection,\n header: classes.header,\n headerOpen: classes.headerOpen,\n }}\n expanded={open}\n onToggle={handleToggle}\n onContainerCreation={setFocusToContent}\n placeholder={value}\n disabled={disabled}\n variableWidth\n {...others}\n >\n <HvPanel>\n <HvSelectionList value={value} onChange={handleSelect}>\n {children}\n </HvSelectionList>\n </HvPanel>\n </HvBaseDropdown>\n );\n};\n\nexport default HvSelect;\n"],"names":["Option","props","HvListItem","HvSelect","className","classes","classesProp","onChange","disabled","value","children","others","useClasses","open","setOpen","useState","handleSelect","evt","val","handleToggle","_evt","s","setFocusToContent","containerRef","listItems","getElementsByTagName","every","listItem","tabIndex","focus","HvBaseDropdown","selection","header","headerOpen","expanded","onToggle","onContainerCreation","placeholder","variableWidth","HvPanel","HvSelectionList"],"mappings":";;;;;;;AAeO,MAAMA,SAASA,CAAC;AAAA,EAAE,GAAGC;AAAgC,0BACzDC,YAAU;AAAA,EAAA,GAAKD;AAAK,CAAG;AAG1B,MAAME,WAAWA,CAAC;AAAA,EAChBC;AAAAA,EACAC,SAASC,cAAc,CAAC;AAAA,EACxBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACA,MAAM;AACH,QAAA;AAAA,IAAEN;AAAAA,EAAAA,IAAYO,WAAWN,WAAW;AAC1C,QAAM,CAACO,MAAMC,OAAO,IAAIC,SAAS,KAAK;AAEhCC,QAAAA,eAAiDA,CAACC,KAAKC,QAAQ;AACnEX,yCAAWU,KAAKC;AAChBJ,YAAQ,KAAK;AAAA,EAAA;AAGTK,QAAAA,eAAgDA,CAACC,MAAMC,MAAM;AACjEP,YAAQO,CAAC;AAAA,EAAA;AAGX,QAAMC,oBACJC,CACG,iBAAA;AACGC,UAAAA,YACJD,gBAAgB,OAAO,CAAC,GAAGA,aAAaE,qBAAqB,IAAI,CAAC,IAAI;AACxED,cAAUE,MAAOC,CAAa,aAAA;AACxBA,UAAAA,SAASC,YAAY,GAAG;AAC1BD,iBAASE,MAAM;AACR,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IAAA,CACR;AAAA,EAAA;AAGH,6BACGC,gBAAc;AAAA,IACb1B;AAAAA,IACAC,SAAS;AAAA,MACP0B,WAAW1B,QAAQ0B;AAAAA,MACnBC,QAAQ3B,QAAQ2B;AAAAA,MAChBC,YAAY5B,QAAQ4B;AAAAA,IACtB;AAAA,IACAC,UAAUrB;AAAAA,IACVsB,UAAUhB;AAAAA,IACViB,qBAAqBd;AAAAA,IACrBe,aAAa5B;AAAAA,IACbD;AAAAA,IACA8B,eAAa;AAAA,IAAA,GACT3B;AAAAA,IAAMD,8BAET6B,SAAO;AAAA,MAAA7B,8BACL8B,iBAAe;AAAA,QAAC/B;AAAAA,QAAcF,UAAUS;AAAAA,QAAaN;AAAAA,MAAAA,CAErC;AAAA,IAAA,CACV;AAAA,EAAA,CACK;AAEpB;AAEA,MAAA,aAAeP;"}
1
+ {"version":3,"file":"Select.js","sources":["../../../../src/components/Pagination/Select.tsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport {\n HvBaseDropdown,\n HvBaseDropdownProps,\n} from \"@core/components/BaseDropdown\";\nimport {\n HvSelectionList,\n HvSelectionListProps,\n} from \"@core/components/SelectionList\";\nimport { HvPanel } from \"@core/components/Panel\";\nimport { HvListItem, HvListItemProps } from \"@core/components/ListContainer\";\n\nimport { useClasses } from \"./Select.styles\";\n\nexport const Option = ({ ...props }: Partial<HvListItemProps>) => (\n <HvListItem {...props} />\n);\n\nconst HvSelect = ({\n className,\n classes: classesProp,\n onChange,\n disabled,\n value,\n children,\n ...others\n}: any) => {\n const { classes } = useClasses(classesProp);\n const [open, setOpen] = useState(false);\n\n const handleSelect: HvSelectionListProps[\"onChange\"] = (evt, val) => {\n onChange?.(evt, val);\n setOpen(false);\n };\n\n const handleToggle: HvBaseDropdownProps[\"onToggle\"] = (_evt, s) => {\n setOpen(s);\n };\n\n const setFocusToContent: HvBaseDropdownProps[\"onContainerCreation\"] = (\n containerRef\n ) => {\n const listItems =\n containerRef != null ? [...containerRef.getElementsByTagName(\"li\")] : [];\n listItems.every((listItem) => {\n if (listItem.tabIndex >= 0) {\n listItem.focus();\n return false;\n }\n return true;\n });\n };\n\n return (\n <HvBaseDropdown\n className={className}\n classes={{\n selection: classes.selection,\n header: classes.header,\n headerOpen: classes.headerOpen,\n }}\n expanded={open}\n onToggle={handleToggle}\n onContainerCreation={setFocusToContent}\n placeholder={value}\n disabled={disabled}\n variableWidth\n {...others}\n >\n <HvPanel>\n <HvSelectionList value={value} onChange={handleSelect}>\n {children}\n </HvSelectionList>\n </HvPanel>\n </HvBaseDropdown>\n );\n};\n\nexport default HvSelect;\n"],"names":["Option","props","HvListItem","HvSelect","className","classes","classesProp","onChange","disabled","value","children","others","useClasses","open","setOpen","useState","handleSelect","evt","val","handleToggle","_evt","s","setFocusToContent","containerRef","listItems","getElementsByTagName","every","listItem","tabIndex","focus","HvBaseDropdown","selection","header","headerOpen","expanded","onToggle","onContainerCreation","placeholder","variableWidth","HvPanel","HvSelectionList"],"mappings":";;;;;;;AAeO,MAAMA,SAASA,CAAC;AAAA,EAAE,GAAGC;AAAgC,0BACzDC,YAAU;AAAA,EAAA,GAAKD;AAAK,CAAG;AAG1B,MAAME,WAAWA,CAAC;AAAA,EAChBC;AAAAA,EACAC,SAASC;AAAAA,EACTC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACA,MAAM;AACH,QAAA;AAAA,IAAEN;AAAAA,EAAAA,IAAYO,WAAWN,WAAW;AAC1C,QAAM,CAACO,MAAMC,OAAO,IAAIC,SAAS,KAAK;AAEhCC,QAAAA,eAAiDA,CAACC,KAAKC,QAAQ;AACnEX,yCAAWU,KAAKC;AAChBJ,YAAQ,KAAK;AAAA,EAAA;AAGTK,QAAAA,eAAgDA,CAACC,MAAMC,MAAM;AACjEP,YAAQO,CAAC;AAAA,EAAA;AAGX,QAAMC,oBACJC,CACG,iBAAA;AACGC,UAAAA,YACJD,gBAAgB,OAAO,CAAC,GAAGA,aAAaE,qBAAqB,IAAI,CAAC,IAAI;AACxED,cAAUE,MAAOC,CAAa,aAAA;AACxBA,UAAAA,SAASC,YAAY,GAAG;AAC1BD,iBAASE,MAAM;AACR,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IAAA,CACR;AAAA,EAAA;AAGH,6BACGC,gBAAc;AAAA,IACb1B;AAAAA,IACAC,SAAS;AAAA,MACP0B,WAAW1B,QAAQ0B;AAAAA,MACnBC,QAAQ3B,QAAQ2B;AAAAA,MAChBC,YAAY5B,QAAQ4B;AAAAA,IACtB;AAAA,IACAC,UAAUrB;AAAAA,IACVsB,UAAUhB;AAAAA,IACViB,qBAAqBd;AAAAA,IACrBe,aAAa5B;AAAAA,IACbD;AAAAA,IACA8B,eAAa;AAAA,IAAA,GACT3B;AAAAA,IAAMD,8BAET6B,SAAO;AAAA,MAAA7B,8BACL8B,iBAAe;AAAA,QAAC/B;AAAAA,QAAcF,UAAUS;AAAAA,QAAaN;AAAAA,MAAAA,CAErC;AAAA,IAAA,CACV;AAAA,EAAA,CACK;AAEpB;AAEA,MAAA,aAAeP;"}
@@ -1,14 +1,16 @@
1
1
  import { clsx } from "clsx";
2
+ import { useDefaultProps } from "../../hooks/useDefaultProps.js";
2
3
  import { StyledDiv } from "./Panel.styles.js";
3
4
  import panelClasses from "./panelClasses.js";
4
5
  import { jsx } from "@emotion/react/jsx-runtime";
5
- const HvPanel = ({
6
- id,
7
- className,
8
- classes,
9
- children,
10
- ...others
11
- }) => {
6
+ const HvPanel = (props) => {
7
+ const {
8
+ id,
9
+ className,
10
+ classes,
11
+ children,
12
+ ...others
13
+ } = useDefaultProps("HvPanel", props);
12
14
  return /* @__PURE__ */ jsx(StyledDiv, {
13
15
  id,
14
16
  className: clsx(className, panelClasses.root, classes == null ? void 0 : classes.root),
@@ -1 +1 @@
1
- {"version":3,"file":"Panel.js","sources":["../../../../src/components/Panel/Panel.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\n\nimport { StyledDiv } from \"./Panel.styles\";\nimport panelClasses, { HvPanelClasses } from \"./panelClasses\";\n\nexport interface HvPanelProps extends HvBaseProps {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvPanelClasses;\n}\n\n/**\n * A panel is a container used in a variety of patterns (e.g. dropdown, filter group, details section).\n * It can be horizontal or vertical and its size is defined by its content and how it relates to surrounding patterns.\n * Regardless of its content, a panel look and feel should be consistent.\n */\nexport const HvPanel = ({\n id,\n className,\n classes,\n children,\n ...others\n}: HvPanelProps) => {\n return (\n <StyledDiv\n id={id}\n className={clsx(className, panelClasses.root, classes?.root)}\n {...others}\n >\n {children}\n </StyledDiv>\n );\n};\n"],"names":["HvPanel","id","className","classes","children","others","StyledDiv","clsx","panelClasses","root"],"mappings":";;;;AAiBO,MAAMA,UAAUA,CAAC;AAAA,EACtBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACS,MAAM;AAClB,6BACGC,WAAS;AAAA,IACRL;AAAAA,IACAC,WAAWK,KAAKL,WAAWM,aAAaC,MAAMN,mCAASM,IAAI;AAAA,IAAE,GACzDJ;AAAAA,IAAMD;AAAAA,EAAAA,CAGD;AAEf;"}
1
+ {"version":3,"file":"Panel.js","sources":["../../../../src/components/Panel/Panel.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\n\nimport { StyledDiv } from \"./Panel.styles\";\nimport panelClasses, { HvPanelClasses } from \"./panelClasses\";\n\nexport interface HvPanelProps extends HvBaseProps {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvPanelClasses;\n}\n\n/**\n * A panel is a container used in a variety of patterns (e.g. dropdown, filter group, details section).\n * It can be horizontal or vertical and its size is defined by its content and how it relates to surrounding patterns.\n * Regardless of its content, a panel look and feel should be consistent.\n */\nexport const HvPanel = (props: HvPanelProps) => {\n const { id, className, classes, children, ...others } = useDefaultProps(\n \"HvPanel\",\n props\n );\n\n return (\n <StyledDiv\n id={id}\n className={clsx(className, panelClasses.root, classes?.root)}\n {...others}\n >\n {children}\n </StyledDiv>\n );\n};\n"],"names":["HvPanel","props","id","className","classes","children","others","useDefaultProps","StyledDiv","clsx","panelClasses","root"],"mappings":";;;;;AAkBaA,MAAAA,UAAUA,CAACC,UAAwB;AACxC,QAAA;AAAA,IAAEC;AAAAA,IAAIC;AAAAA,IAAWC;AAAAA,IAASC;AAAAA,IAAU,GAAGC;AAAAA,EAAAA,IAAWC,gBACtD,WACAN,KACF;AAEA,6BACGO,WAAS;AAAA,IACRN;AAAAA,IACAC,WAAWM,KAAKN,WAAWO,aAAaC,MAAMP,mCAASO,IAAI;AAAA,IAAE,GACzDL;AAAAA,IAAMD;AAAAA,EAAAA,CAGD;AAEf;"}
@@ -1,4 +1,5 @@
1
1
  import { clsx } from "clsx";
2
+ import { useDefaultProps } from "../../hooks/useDefaultProps.js";
2
3
  import clamp from "lodash/clamp";
3
4
  import { StyledRoot, StyledProgressContainer, StyledValue, StyledProgressBarContainer, StyledProgressBar } from "./ProgressBar.styles.js";
4
5
  import progressBarClasses from "./progressBarClasses.js";
@@ -11,7 +12,7 @@ const HvProgressBar = (props) => {
11
12
  status = "inProgress",
12
13
  labelProps,
13
14
  ...others
14
- } = props;
15
+ } = useDefaultProps("HvProgressBar", props);
15
16
  const clampedValue = clamp(value, 0, 100);
16
17
  return /* @__PURE__ */ jsx(StyledRoot, {
17
18
  className: clsx(className, progressBarClasses.root, classes == null ? void 0 : classes.root, progressBarClasses.progress, classes == null ? void 0 : classes.progress),
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.js","sources":["../../../../src/components/ProgressBar/ProgressBar.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\n\nimport clamp from \"lodash/clamp\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvTypographyProps } from \"@core/components/Typography\";\n\nimport {\n StyledProgressBar,\n StyledProgressBarContainer,\n StyledProgressContainer,\n StyledRoot,\n StyledValue,\n} from \"./ProgressBar.styles\";\nimport progressBarClasses, { HvProgressBarClasses } from \"./progressBarClasses\";\n\nexport type HvProgressBarStatus = \"inProgress\" | \"completed\" | \"error\";\n\n/**\n * ProgressBar provides feedback about a process that is taking place in the application.\n */\nexport interface HvProgressBarProps extends HvBaseProps {\n /** The value of the progress bar. */\n value: number;\n /**\n * The status of the progress bar.\n *\n * inProgress is black, error is red and completed is green.\n *\n * When uncontrolled and unspecified it will default to \"inProgress\".\n */\n status?: HvProgressBarStatus;\n /** Aria Properties passed on to the progress bar. */\n labelProps?: HvTypographyProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvProgressBarClasses;\n}\n\nexport const HvProgressBar = (props: HvProgressBarProps) => {\n const {\n className,\n classes,\n value = 0,\n status = \"inProgress\",\n labelProps,\n ...others\n } = props;\n\n const clampedValue = clamp(value, 0, 100);\n\n return (\n <StyledRoot\n className={clsx(\n className,\n progressBarClasses.root,\n classes?.root,\n progressBarClasses.progress,\n classes?.progress\n )}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={clampedValue}\n {...others}\n >\n <StyledProgressContainer\n className={clsx(\n classes?.progressContainer,\n progressBarClasses.progressContainer\n )}\n >\n <StyledValue\n className={clsx(\n progressBarClasses.progressBarLabel,\n classes?.progressBarLabel,\n status === \"completed\" &&\n clsx(progressBarClasses.progressDone, classes?.progressDone)\n )}\n variant=\"caption2\"\n style={{ width: `${clampedValue}%` }}\n {...labelProps}\n >\n {`${clampedValue}%`}\n </StyledValue>\n <StyledProgressBarContainer\n className={clsx(\n classes?.progressBarContainer,\n progressBarClasses.progressBarContainer\n )}\n >\n <StyledProgressBar\n style={{ width: `${clampedValue}%` }}\n className={clsx(\n progressBarClasses.progressBar,\n classes?.progressBar,\n status === \"completed\" &&\n clsx(classes?.progressDone, progressBarClasses.progressDone),\n status === \"error\" &&\n clsx(classes?.progressError, progressBarClasses.progressError)\n )}\n $status={status}\n />\n </StyledProgressBarContainer>\n </StyledProgressContainer>\n </StyledRoot>\n );\n};\n"],"names":["HvProgressBar","props","className","classes","value","status","labelProps","others","clampedValue","clamp","StyledRoot","clsx","progressBarClasses","root","progress","role","children","StyledProgressContainer","progressContainer","_jsx","StyledValue","progressBarLabel","progressDone","variant","style","width","StyledProgressBarContainer","progressBarContainer","StyledProgressBar","progressBar","progressError","$status"],"mappings":";;;;;AAsCaA,MAAAA,gBAAgBA,CAACC,UAA8B;AACpD,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC,QAAQ;AAAA,IACRC,SAAS;AAAA,IACTC;AAAAA,IACA,GAAGC;AAAAA,EACDN,IAAAA;AAEJ,QAAMO,eAAeC,MAAML,OAAO,GAAG,GAAG;AAExC,6BACGM,YAAU;AAAA,IACTR,WAAWS,KACTT,WACAU,mBAAmBC,MACnBV,mCAASU,MACTD,mBAAmBE,UACnBX,mCAASW,QACX;AAAA,IACAC,MAAK;AAAA,IACL,iBAAe;AAAA,IACf,iBAAe;AAAA,IACf,iBAAeP;AAAAA,IAAa,GACxBD;AAAAA,IAAMS,+BAETC,yBAAuB;AAAA,MACtBf,WAAWS,KACTR,mCAASe,mBACTN,mBAAmBM,iBACrB;AAAA,MAAEF,UAAA,CAEFG,oBAACC,aAAW;AAAA,QACVlB,WAAWS,KACTC,mBAAmBS,kBACnBlB,mCAASkB,kBACThB,WAAW,eACTM,KAAKC,mBAAmBU,cAAcnB,mCAASmB,YAAY,CAC/D;AAAA,QACAC,SAAQ;AAAA,QACRC,OAAO;AAAA,UAAEC,OAAQ,GAAEjB;AAAAA,QAAgB;AAAA,QAAE,GACjCF;AAAAA,QAAUU,UAEZ,GAAER;AAAAA,MAAAA,CACO,GACbW,oBAACO,4BAA0B;AAAA,QACzBxB,WAAWS,KACTR,mCAASwB,sBACTf,mBAAmBe,oBACrB;AAAA,QAAEX,8BAEDY,mBAAiB;AAAA,UAChBJ,OAAO;AAAA,YAAEC,OAAQ,GAAEjB;AAAAA,UAAgB;AAAA,UACnCN,WAAWS,KACTC,mBAAmBiB,aACnB1B,mCAAS0B,aACTxB,WAAW,eACTM,KAAKR,mCAASmB,cAAcV,mBAAmBU,YAAY,GAC7DjB,WAAW,WACTM,KAAKR,mCAAS2B,eAAelB,mBAAmBkB,aAAa,CACjE;AAAA,UACAC,SAAS1B;AAAAA,QAAAA,CACV;AAAA,MAAA,CACyB,CAAC;AAAA,IAAA,CACN;AAAA,EAAA,CACf;AAEhB;"}
1
+ {"version":3,"file":"ProgressBar.js","sources":["../../../../src/components/ProgressBar/ProgressBar.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport clamp from \"lodash/clamp\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvTypographyProps } from \"@core/components/Typography\";\n\nimport {\n StyledProgressBar,\n StyledProgressBarContainer,\n StyledProgressContainer,\n StyledRoot,\n StyledValue,\n} from \"./ProgressBar.styles\";\nimport progressBarClasses, { HvProgressBarClasses } from \"./progressBarClasses\";\n\nexport type HvProgressBarStatus = \"inProgress\" | \"completed\" | \"error\";\n\n/**\n * ProgressBar provides feedback about a process that is taking place in the application.\n */\nexport interface HvProgressBarProps extends HvBaseProps {\n /** The value of the progress bar. */\n value: number;\n /**\n * The status of the progress bar.\n *\n * inProgress is black, error is red and completed is green.\n *\n * When uncontrolled and unspecified it will default to \"inProgress\".\n */\n status?: HvProgressBarStatus;\n /** Aria Properties passed on to the progress bar. */\n labelProps?: HvTypographyProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvProgressBarClasses;\n}\n\nexport const HvProgressBar = (props: HvProgressBarProps) => {\n const {\n className,\n classes,\n value = 0,\n status = \"inProgress\",\n labelProps,\n ...others\n } = useDefaultProps(\"HvProgressBar\", props);\n\n const clampedValue = clamp(value, 0, 100);\n\n return (\n <StyledRoot\n className={clsx(\n className,\n progressBarClasses.root,\n classes?.root,\n progressBarClasses.progress,\n classes?.progress\n )}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={clampedValue}\n {...others}\n >\n <StyledProgressContainer\n className={clsx(\n classes?.progressContainer,\n progressBarClasses.progressContainer\n )}\n >\n <StyledValue\n className={clsx(\n progressBarClasses.progressBarLabel,\n classes?.progressBarLabel,\n status === \"completed\" &&\n clsx(progressBarClasses.progressDone, classes?.progressDone)\n )}\n variant=\"caption2\"\n style={{ width: `${clampedValue}%` }}\n {...labelProps}\n >\n {`${clampedValue}%`}\n </StyledValue>\n <StyledProgressBarContainer\n className={clsx(\n classes?.progressBarContainer,\n progressBarClasses.progressBarContainer\n )}\n >\n <StyledProgressBar\n style={{ width: `${clampedValue}%` }}\n className={clsx(\n progressBarClasses.progressBar,\n classes?.progressBar,\n status === \"completed\" &&\n clsx(classes?.progressDone, progressBarClasses.progressDone),\n status === \"error\" &&\n clsx(classes?.progressError, progressBarClasses.progressError)\n )}\n $status={status}\n />\n </StyledProgressBarContainer>\n </StyledProgressContainer>\n </StyledRoot>\n );\n};\n"],"names":["HvProgressBar","props","className","classes","value","status","labelProps","others","useDefaultProps","clampedValue","clamp","StyledRoot","clsx","progressBarClasses","root","progress","role","children","StyledProgressContainer","progressContainer","_jsx","StyledValue","progressBarLabel","progressDone","variant","style","width","StyledProgressBarContainer","progressBarContainer","StyledProgressBar","progressBar","progressError","$status"],"mappings":";;;;;;AAuCaA,MAAAA,gBAAgBA,CAACC,UAA8B;AACpD,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC,QAAQ;AAAA,IACRC,SAAS;AAAA,IACTC;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,iBAAiBP,KAAK;AAE1C,QAAMQ,eAAeC,MAAMN,OAAO,GAAG,GAAG;AAExC,6BACGO,YAAU;AAAA,IACTT,WAAWU,KACTV,WACAW,mBAAmBC,MACnBX,mCAASW,MACTD,mBAAmBE,UACnBZ,mCAASY,QACX;AAAA,IACAC,MAAK;AAAA,IACL,iBAAe;AAAA,IACf,iBAAe;AAAA,IACf,iBAAeP;AAAAA,IAAa,GACxBF;AAAAA,IAAMU,+BAETC,yBAAuB;AAAA,MACtBhB,WAAWU,KACTT,mCAASgB,mBACTN,mBAAmBM,iBACrB;AAAA,MAAEF,UAAA,CAEFG,oBAACC,aAAW;AAAA,QACVnB,WAAWU,KACTC,mBAAmBS,kBACnBnB,mCAASmB,kBACTjB,WAAW,eACTO,KAAKC,mBAAmBU,cAAcpB,mCAASoB,YAAY,CAC/D;AAAA,QACAC,SAAQ;AAAA,QACRC,OAAO;AAAA,UAAEC,OAAQ,GAAEjB;AAAAA,QAAgB;AAAA,QAAE,GACjCH;AAAAA,QAAUW,UAEZ,GAAER;AAAAA,MAAAA,CACO,GACbW,oBAACO,4BAA0B;AAAA,QACzBzB,WAAWU,KACTT,mCAASyB,sBACTf,mBAAmBe,oBACrB;AAAA,QAAEX,8BAEDY,mBAAiB;AAAA,UAChBJ,OAAO;AAAA,YAAEC,OAAQ,GAAEjB;AAAAA,UAAgB;AAAA,UACnCP,WAAWU,KACTC,mBAAmBiB,aACnB3B,mCAAS2B,aACTzB,WAAW,eACTO,KAAKT,mCAASoB,cAAcV,mBAAmBU,YAAY,GAC7DlB,WAAW,WACTO,KAAKT,mCAAS4B,eAAelB,mBAAmBkB,aAAa,CACjE;AAAA,UACAC,SAAS3B;AAAAA,QAAAA,CACV;AAAA,MAAA,CACyB,CAAC;AAAA,IAAA,CACN;AAAA,EAAA,CACf;AAEhB;"}
@@ -1,5 +1,6 @@
1
1
  import cloneDeep from "lodash/cloneDeep";
2
2
  import isEqual from "lodash/isEqual";
3
+ import { useDefaultProps } from "../../hooks/useDefaultProps.js";
3
4
  import { useState, useRef, useReducer, useContext, useMemo, useEffect } from "react";
4
5
  import { QueryBuilderContext } from "./Context.js";
5
6
  import { emptyGroup, clearNodeIds } from "./utils/index.js";
@@ -7,17 +8,18 @@ import reducer from "./utils/reducer.js";
7
8
  import { jsxs, jsx } from "@emotion/react/jsx-runtime";
8
9
  import { RuleGroup } from "./RuleGroup/RuleGroup.js";
9
10
  import { ConfirmationDialog } from "./ConfirmationDialog/ConfirmationDialog.js";
10
- const HvQueryBuilder = ({
11
- attributes,
12
- query,
13
- onChange,
14
- operators,
15
- combinators,
16
- maxDepth = 1,
17
- labels,
18
- readOnly = false,
19
- classes
20
- }) => {
11
+ const HvQueryBuilder = (props) => {
12
+ const {
13
+ attributes,
14
+ query,
15
+ onChange,
16
+ operators,
17
+ combinators,
18
+ maxDepth = 1,
19
+ labels,
20
+ readOnly = false,
21
+ classes
22
+ } = useDefaultProps("HvQueryBuilder", props);
21
23
  const [pendingAction, askAction] = useState();
22
24
  const currentAttributes = useRef(null);
23
25
  const [state, dispatchAction] = useReducer(reducer, query, (initialState2) => initialState2 || emptyGroup());
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.js","sources":["../../../../src/components/QueryBuilder/QueryBuilder.tsx"],"sourcesContent":["import cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\n\nimport {\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\n\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { ConfirmationDialog } from \"./ConfirmationDialog\";\nimport { QueryBuilderContext } from \"./Context\";\nimport { RuleGroup } from \"./RuleGroup\";\nimport {\n AskAction,\n Attribute,\n Query,\n QueryBuilderLabels,\n QueryCombinator,\n QueryOperator,\n} from \"./types\";\nimport { clearNodeIds, emptyGroup } from \"./utils\";\nimport reducer from \"./utils/reducer\";\nimport { useClasses, staticClasses } from \"./QueryBuilder.styles\";\n\nexport { staticClasses as queryBuilderClasses };\n\nexport type HvQueryBuilderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvQueryBuilderProps {\n attributes?: Record<string, Attribute>;\n /**\n * The query rules operators by attribute type and combinator.\n */\n operators?: Record<string, QueryOperator[]>;\n /**\n * The query combinators operands.\n */\n combinators?: QueryCombinator[];\n /**\n * The initial query representation.\n */\n query?: Query;\n /**\n * Callback fired when query changes.\n * @param {Query} value - the query representation.\n */\n onChange?: (value: Query) => void;\n /**\n * Max depth of nested query groups.\n */\n maxDepth?: number;\n /**\n * An object containing all the labels.\n */\n labels?: QueryBuilderLabels;\n /**\n * A flag indicating if the Query Builder is in read only mode.\n */\n readOnly?: boolean;\n /**\n * Override or extend the styles applied to the component.\n * See CSS API tab for more details.\n */\n classes?: HvQueryBuilderClasses;\n}\n\n/**\n * **HvQueryBuilder** component allows you to create conditions and group them using logical operators.\n * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.\n */\nexport const HvQueryBuilder = ({\n attributes,\n query,\n onChange,\n operators,\n combinators,\n maxDepth = 1,\n labels,\n readOnly = false,\n classes,\n}: HvQueryBuilderProps) => {\n const [pendingAction, askAction] = useState<AskAction>();\n const currentAttributes = useRef<\n Record<string, Attribute> | undefined | null\n >(null);\n const [state, dispatchAction] = useReducer(\n reducer,\n query,\n (initialState) => initialState || emptyGroup()\n );\n\n const initialState = query === state;\n const [prevState, setPrevState] = useState();\n\n const defaultContext = useContext(QueryBuilderContext);\n\n const context = useMemo(\n () => ({\n dispatchAction,\n askAction,\n attributes,\n /* eslint-disable react/destructuring-assignment */\n operators: operators ?? defaultContext.operators,\n combinators: combinators ?? defaultContext.combinators,\n maxDepth: maxDepth ?? defaultContext.maxDepth,\n labels: labels ?? defaultContext.labels,\n initialTouched: initialState,\n readOnly,\n }),\n [\n attributes,\n operators,\n defaultContext.operators,\n defaultContext.combinators,\n defaultContext.maxDepth,\n defaultContext.labels,\n combinators,\n maxDepth,\n labels,\n readOnly,\n initialState,\n ]\n );\n\n useEffect(() => {\n if (currentAttributes.current == null) {\n // first run, nothing to do\n currentAttributes.current = attributes;\n } else if (currentAttributes.current !== attributes) {\n // attributes changed, the existing query is almost certain invalid, so reset it\n currentAttributes.current = attributes;\n dispatchAction({ type: \"reset-query\" });\n }\n }, [attributes]);\n\n // Propagate the change if the query is modified.\n useEffect(() => {\n if (!initialState && !isEqual(state, prevState)) {\n onChange?.(clearNodeIds(state));\n setPrevState(cloneDeep(state));\n }\n }, [state, prevState, initialState, onChange]);\n\n const onConfirmHandler = () => {\n if (pendingAction) {\n askAction(undefined);\n pendingAction.actions.forEach((action) => dispatchAction(action));\n }\n };\n\n const onCancelHandler = () => {\n askAction(undefined);\n };\n\n return (\n <QueryBuilderContext.Provider value={context}>\n <RuleGroup\n level={0}\n id={state.id}\n combinator={state.combinator}\n rules={state.rules}\n classes={classes}\n />\n <ConfirmationDialog\n isOpen={pendingAction != null}\n onConfirm={onConfirmHandler}\n onCancel={onCancelHandler}\n title={pendingAction?.dialog.dialogTitle || \"\"}\n message={pendingAction?.dialog.dialogMessage || \"\"}\n confirmButtonLabel={pendingAction?.dialog.dialogConfirm || \"\"}\n cancelButtonLabel={pendingAction?.dialog.dialogCancel || \"\"}\n closeButtonTooltip={pendingAction?.dialog.dialogCloseTooltip || \"\"}\n />\n </QueryBuilderContext.Provider>\n );\n};\n"],"names":["HvQueryBuilder","attributes","query","onChange","operators","combinators","maxDepth","labels","readOnly","classes","pendingAction","askAction","useState","currentAttributes","useRef","state","dispatchAction","useReducer","reducer","initialState","emptyGroup","prevState","setPrevState","defaultContext","useContext","QueryBuilderContext","context","useMemo","initialTouched","useEffect","current","type","isEqual","clearNodeIds","cloneDeep","onConfirmHandler","undefined","actions","forEach","action","onCancelHandler","_jsxs","Provider","value","children","_jsx","RuleGroup","level","id","combinator","rules","ConfirmationDialog","isOpen","onConfirm","onCancel","title","dialog","dialogTitle","message","dialogMessage","confirmButtonLabel","dialogConfirm","cancelButtonLabel","dialogCancel","closeButtonTooltip","dialogCloseTooltip"],"mappings":";;;;;;;;;AA2EO,MAAMA,iBAAiBA,CAAC;AAAA,EAC7BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC;AAAAA,EACAC,WAAW;AAAA,EACXC;AACmB,MAAM;AACzB,QAAM,CAACC,eAAeC,SAAS,IAAIC,SAAoB;AACjDC,QAAAA,oBAAoBC,OAExB,IAAI;AACA,QAAA,CAACC,OAAOC,cAAc,IAAIC,WAC9BC,SACAhB,OACCiB,CAAAA,kBAAiBA,iBAAgBC,WACpC,CAAA;AAEA,QAAMD,eAAejB,UAAUa;AAC/B,QAAM,CAACM,WAAWC,YAAY,IAAIV,SAAS;AAErCW,QAAAA,iBAAiBC,WAAWC,mBAAmB;AAE/CC,QAAAA,UAAUC,QACd,OAAO;AAAA,IACLX;AAAAA,IACAL;AAAAA,IACAV;AAAAA;AAAAA,IAEAG,WAAWA,aAAamB,eAAenB;AAAAA,IACvCC,aAAaA,eAAekB,eAAelB;AAAAA,IAC3CC,UAAUA,YAAYiB,eAAejB;AAAAA,IACrCC,QAAQA,UAAUgB,eAAehB;AAAAA,IACjCqB,gBAAgBT;AAAAA,IAChBX;AAAAA,EAAAA,IAEF,CACEP,YACAG,WACAmB,eAAenB,WACfmB,eAAelB,aACfkB,eAAejB,UACfiB,eAAehB,QACfF,aACAC,UACAC,QACAC,UACAW,YAAY,CAEhB;AAEAU,YAAU,MAAM;AACVhB,QAAAA,kBAAkBiB,WAAW,MAAM;AAErCjB,wBAAkBiB,UAAU7B;AAAAA,IAAAA,WACnBY,kBAAkBiB,YAAY7B,YAAY;AAEnDY,wBAAkBiB,UAAU7B;AACb,qBAAA;AAAA,QAAE8B,MAAM;AAAA,MAAA,CAAe;AAAA,IACxC;AAAA,EAAA,GACC,CAAC9B,UAAU,CAAC;AAGf4B,YAAU,MAAM;AACd,QAAI,CAACV,gBAAgB,CAACa,QAAQjB,OAAOM,SAAS,GAAG;AACpCY,2CAAAA,aAAalB,KAAK;AAChBmB,mBAAAA,UAAUnB,KAAK,CAAC;AAAA,IAC/B;AAAA,KACC,CAACA,OAAOM,WAAWF,cAAchB,QAAQ,CAAC;AAE7C,QAAMgC,mBAAmBA,MAAM;AAC7B,QAAIzB,eAAe;AACjBC,gBAAUyB,MAAS;AACnB1B,oBAAc2B,QAAQC,QAASC,CAAWvB,WAAAA,eAAeuB,MAAM,CAAC;AAAA,IAClE;AAAA,EAAA;AAGF,QAAMC,kBAAkBA,MAAM;AAC5B7B,cAAUyB,MAAS;AAAA,EAAA;AAInBK,SAAAA,qBAAChB,oBAAoBiB,UAAQ;AAAA,IAACC,OAAOjB;AAAAA,IAAQkB,UAAA,CAC3CC,oBAACC,WAAS;AAAA,MACRC,OAAO;AAAA,MACPC,IAAIjC,MAAMiC;AAAAA,MACVC,YAAYlC,MAAMkC;AAAAA,MAClBC,OAAOnC,MAAMmC;AAAAA,MACbzC;AAAAA,IAAAA,CACD,GACDoC,oBAACM,oBAAkB;AAAA,MACjBC,QAAQ1C,iBAAiB;AAAA,MACzB2C,WAAWlB;AAAAA,MACXmB,UAAUd;AAAAA,MACVe,QAAO7C,+CAAe8C,OAAOC,gBAAe;AAAA,MAC5CC,UAAShD,+CAAe8C,OAAOG,kBAAiB;AAAA,MAChDC,qBAAoBlD,+CAAe8C,OAAOK,kBAAiB;AAAA,MAC3DC,oBAAmBpD,+CAAe8C,OAAOO,iBAAgB;AAAA,MACzDC,qBAAoBtD,+CAAe8C,OAAOS,uBAAsB;AAAA,IAAA,CACjE,CAAC;AAAA,EAAA,CAC0B;AAElC;"}
1
+ {"version":3,"file":"QueryBuilder.js","sources":["../../../../src/components/QueryBuilder/QueryBuilder.tsx"],"sourcesContent":["import cloneDeep from \"lodash/cloneDeep\";\nimport isEqual from \"lodash/isEqual\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport {\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\n\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { ConfirmationDialog } from \"./ConfirmationDialog\";\nimport { QueryBuilderContext } from \"./Context\";\nimport { RuleGroup } from \"./RuleGroup\";\nimport {\n AskAction,\n Attribute,\n Query,\n QueryBuilderLabels,\n QueryCombinator,\n QueryOperator,\n} from \"./types\";\nimport { clearNodeIds, emptyGroup } from \"./utils\";\nimport reducer from \"./utils/reducer\";\nimport { useClasses, staticClasses } from \"./QueryBuilder.styles\";\n\nexport { staticClasses as queryBuilderClasses };\n\nexport type HvQueryBuilderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvQueryBuilderProps {\n attributes?: Record<string, Attribute>;\n /**\n * The query rules operators by attribute type and combinator.\n */\n operators?: Record<string, QueryOperator[]>;\n /**\n * The query combinators operands.\n */\n combinators?: QueryCombinator[];\n /**\n * The initial query representation.\n */\n query?: Query;\n /**\n * Callback fired when query changes.\n * @param {Query} value - the query representation.\n */\n onChange?: (value: Query) => void;\n /**\n * Max depth of nested query groups.\n */\n maxDepth?: number;\n /**\n * An object containing all the labels.\n */\n labels?: QueryBuilderLabels;\n /**\n * A flag indicating if the Query Builder is in read only mode.\n */\n readOnly?: boolean;\n /**\n * Override or extend the styles applied to the component.\n * See CSS API tab for more details.\n */\n classes?: HvQueryBuilderClasses;\n}\n\n/**\n * **HvQueryBuilder** component allows you to create conditions and group them using logical operators.\n * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.\n */\nexport const HvQueryBuilder = (props: HvQueryBuilderProps) => {\n const {\n attributes,\n query,\n onChange,\n operators,\n combinators,\n maxDepth = 1,\n labels,\n readOnly = false,\n classes,\n } = useDefaultProps(\"HvQueryBuilder\", props);\n\n const [pendingAction, askAction] = useState<AskAction>();\n const currentAttributes = useRef<\n Record<string, Attribute> | undefined | null\n >(null);\n const [state, dispatchAction] = useReducer(\n reducer,\n query,\n (initialState) => initialState || emptyGroup()\n );\n\n const initialState = query === state;\n const [prevState, setPrevState] = useState();\n\n const defaultContext = useContext(QueryBuilderContext);\n\n const context = useMemo(\n () => ({\n dispatchAction,\n askAction,\n attributes,\n /* eslint-disable react/destructuring-assignment */\n operators: operators ?? defaultContext.operators,\n combinators: combinators ?? defaultContext.combinators,\n maxDepth: maxDepth ?? defaultContext.maxDepth,\n labels: labels ?? defaultContext.labels,\n initialTouched: initialState,\n readOnly,\n }),\n [\n attributes,\n operators,\n defaultContext.operators,\n defaultContext.combinators,\n defaultContext.maxDepth,\n defaultContext.labels,\n combinators,\n maxDepth,\n labels,\n readOnly,\n initialState,\n ]\n );\n\n useEffect(() => {\n if (currentAttributes.current == null) {\n // first run, nothing to do\n currentAttributes.current = attributes;\n } else if (currentAttributes.current !== attributes) {\n // attributes changed, the existing query is almost certain invalid, so reset it\n currentAttributes.current = attributes;\n dispatchAction({ type: \"reset-query\" });\n }\n }, [attributes]);\n\n // Propagate the change if the query is modified.\n useEffect(() => {\n if (!initialState && !isEqual(state, prevState)) {\n onChange?.(clearNodeIds(state));\n setPrevState(cloneDeep(state));\n }\n }, [state, prevState, initialState, onChange]);\n\n const onConfirmHandler = () => {\n if (pendingAction) {\n askAction(undefined);\n pendingAction.actions.forEach((action) => dispatchAction(action));\n }\n };\n\n const onCancelHandler = () => {\n askAction(undefined);\n };\n\n return (\n <QueryBuilderContext.Provider value={context}>\n <RuleGroup\n level={0}\n id={state.id}\n combinator={state.combinator}\n rules={state.rules}\n classes={classes}\n />\n <ConfirmationDialog\n isOpen={pendingAction != null}\n onConfirm={onConfirmHandler}\n onCancel={onCancelHandler}\n title={pendingAction?.dialog.dialogTitle || \"\"}\n message={pendingAction?.dialog.dialogMessage || \"\"}\n confirmButtonLabel={pendingAction?.dialog.dialogConfirm || \"\"}\n cancelButtonLabel={pendingAction?.dialog.dialogCancel || \"\"}\n closeButtonTooltip={pendingAction?.dialog.dialogCloseTooltip || \"\"}\n />\n </QueryBuilderContext.Provider>\n );\n};\n"],"names":["HvQueryBuilder","props","attributes","query","onChange","operators","combinators","maxDepth","labels","readOnly","classes","useDefaultProps","pendingAction","askAction","useState","currentAttributes","useRef","state","dispatchAction","useReducer","reducer","initialState","emptyGroup","prevState","setPrevState","defaultContext","useContext","QueryBuilderContext","context","useMemo","initialTouched","useEffect","current","type","isEqual","clearNodeIds","cloneDeep","onConfirmHandler","undefined","actions","forEach","action","onCancelHandler","_jsxs","Provider","value","children","_jsx","RuleGroup","level","id","combinator","rules","ConfirmationDialog","isOpen","onConfirm","onCancel","title","dialog","dialogTitle","message","dialogMessage","confirmButtonLabel","dialogConfirm","cancelButtonLabel","dialogCancel","closeButtonTooltip","dialogCloseTooltip"],"mappings":";;;;;;;;;;AA4EaA,MAAAA,iBAAiBA,CAACC,UAA+B;AACtD,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,WAAW;AAAA,IACXC;AAAAA,IACAC,WAAW;AAAA,IACXC;AAAAA,EAAAA,IACEC,gBAAgB,kBAAkBV,KAAK;AAE3C,QAAM,CAACW,eAAeC,SAAS,IAAIC,SAAoB;AACjDC,QAAAA,oBAAoBC,OAExB,IAAI;AACA,QAAA,CAACC,OAAOC,cAAc,IAAIC,WAC9BC,SACAjB,OACCkB,CAAAA,kBAAiBA,iBAAgBC,WACpC,CAAA;AAEA,QAAMD,eAAelB,UAAUc;AAC/B,QAAM,CAACM,WAAWC,YAAY,IAAIV,SAAS;AAErCW,QAAAA,iBAAiBC,WAAWC,mBAAmB;AAE/CC,QAAAA,UAAUC,QACd,OAAO;AAAA,IACLX;AAAAA,IACAL;AAAAA,IACAX;AAAAA;AAAAA,IAEAG,WAAWA,aAAaoB,eAAepB;AAAAA,IACvCC,aAAaA,eAAemB,eAAenB;AAAAA,IAC3CC,UAAUA,YAAYkB,eAAelB;AAAAA,IACrCC,QAAQA,UAAUiB,eAAejB;AAAAA,IACjCsB,gBAAgBT;AAAAA,IAChBZ;AAAAA,EAAAA,IAEF,CACEP,YACAG,WACAoB,eAAepB,WACfoB,eAAenB,aACfmB,eAAelB,UACfkB,eAAejB,QACfF,aACAC,UACAC,QACAC,UACAY,YAAY,CAEhB;AAEAU,YAAU,MAAM;AACVhB,QAAAA,kBAAkBiB,WAAW,MAAM;AAErCjB,wBAAkBiB,UAAU9B;AAAAA,IAAAA,WACnBa,kBAAkBiB,YAAY9B,YAAY;AAEnDa,wBAAkBiB,UAAU9B;AACb,qBAAA;AAAA,QAAE+B,MAAM;AAAA,MAAA,CAAe;AAAA,IACxC;AAAA,EAAA,GACC,CAAC/B,UAAU,CAAC;AAGf6B,YAAU,MAAM;AACd,QAAI,CAACV,gBAAgB,CAACa,QAAQjB,OAAOM,SAAS,GAAG;AACpCY,2CAAAA,aAAalB,KAAK;AAChBmB,mBAAAA,UAAUnB,KAAK,CAAC;AAAA,IAC/B;AAAA,KACC,CAACA,OAAOM,WAAWF,cAAcjB,QAAQ,CAAC;AAE7C,QAAMiC,mBAAmBA,MAAM;AAC7B,QAAIzB,eAAe;AACjBC,gBAAUyB,MAAS;AACnB1B,oBAAc2B,QAAQC,QAASC,CAAWvB,WAAAA,eAAeuB,MAAM,CAAC;AAAA,IAClE;AAAA,EAAA;AAGF,QAAMC,kBAAkBA,MAAM;AAC5B7B,cAAUyB,MAAS;AAAA,EAAA;AAInBK,SAAAA,qBAAChB,oBAAoBiB,UAAQ;AAAA,IAACC,OAAOjB;AAAAA,IAAQkB,UAAA,CAC3CC,oBAACC,WAAS;AAAA,MACRC,OAAO;AAAA,MACPC,IAAIjC,MAAMiC;AAAAA,MACVC,YAAYlC,MAAMkC;AAAAA,MAClBC,OAAOnC,MAAMmC;AAAAA,MACb1C;AAAAA,IAAAA,CACD,GACDqC,oBAACM,oBAAkB;AAAA,MACjBC,QAAQ1C,iBAAiB;AAAA,MACzB2C,WAAWlB;AAAAA,MACXmB,UAAUd;AAAAA,MACVe,QAAO7C,+CAAe8C,OAAOC,gBAAe;AAAA,MAC5CC,UAAShD,+CAAe8C,OAAOG,kBAAiB;AAAA,MAChDC,qBAAoBlD,+CAAe8C,OAAOK,kBAAiB;AAAA,MAC3DC,oBAAmBpD,+CAAe8C,OAAOO,iBAAgB;AAAA,MACzDC,qBAAoBtD,+CAAe8C,OAAOS,uBAAsB;AAAA,IAAA,CACjE,CAAC;AAAA,EAAA,CAC0B;AAElC;"}
@@ -97,7 +97,6 @@ const Rule = ({
97
97
  });
98
98
  },
99
99
  disabled: readOnly,
100
- variant: "secondaryGhost",
101
100
  children: /* @__PURE__ */ jsx(DeleteIcon, {})
102
101
  })
103
102
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"Rule.js","sources":["../../../../../src/components/QueryBuilder/Rule/Rule.tsx"],"sourcesContent":["import { Delete } from \"@hitachivantara/uikit-react-icons\";\n\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { useContext, useMemo } from \"react\";\n\nimport { HvGrid } from \"@core/components/Grid\";\nimport { HvButton } from \"@core/components/Button\";\nimport { withTooltip } from \"@core/hocs/withTooltip\";\n\nimport { QueryBuilderContext } from \"../Context\";\nimport { Attribute } from \"./Attribute\";\nimport { Operator } from \"./Operator\";\nimport { Value } from \"./Value\";\nimport { useClasses } from \"./Rule.styles\";\n\nexport interface RuleProps {\n id: number;\n combinator: string;\n attribute: string;\n operator: string;\n value: any;\n disabled: boolean;\n isInvalid: boolean;\n}\n\nexport const Rule = ({\n id,\n combinator,\n attribute,\n operator,\n value,\n disabled,\n isInvalid,\n}: RuleProps) => {\n const { classes, cx } = useClasses();\n\n const context = useContext(QueryBuilderContext);\n\n const theme = useTheme();\n\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const { askAction, attributes, operators, labels, readOnly } = context;\n\n const availableOperators = useMemo(() => {\n const attributeSpec =\n attribute != null && attributes ? attributes[attribute] : null;\n if (attributeSpec != null) {\n const typeOperators = operators[attributeSpec.type];\n if (typeOperators != null) {\n return typeOperators.reduce(\n (count, item) =>\n count + (item.combinators.includes(combinator) ? 1 : 0),\n 0\n );\n }\n }\n\n return -1;\n }, [attribute, attributes, combinator, operators]);\n\n const shouldShowValueInput =\n operator !== \"Empty\" && operator !== \"IsNotEmpty\";\n\n const DeleteIcon = withTooltip(\n () => <Delete />,\n labels.rule.delete.tooltip,\n \"bottom\"\n );\n\n return (\n <HvGrid\n container\n className={cx(classes.root, { [classes.isMdDown]: isMdDown })}\n spacing={0}\n wrap=\"nowrap\"\n >\n <HvGrid item xs={2} lg={3}>\n <Attribute\n attribute={attribute}\n id={id}\n disabled={disabled}\n isInvalid={isInvalid}\n />\n </HvGrid>\n {attribute != null && availableOperators > 0 && (\n <HvGrid item xs={2} lg={3}>\n <Operator\n id={id}\n combinator={combinator}\n attribute={attribute}\n operator={operator}\n />\n </HvGrid>\n )}\n {attribute != null && (operator != null || availableOperators === 0) && (\n <HvGrid item xs>\n {shouldShowValueInput && (\n <Value\n attribute={attribute}\n id={id}\n operator={operator}\n value={value}\n />\n )}\n </HvGrid>\n )}\n <HvGrid item className={classes.actionsContainer}>\n <HvButton\n icon\n aria-label={labels.rule.delete.ariaLabel}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog: labels.rule.delete,\n });\n }}\n disabled={readOnly}\n variant=\"secondaryGhost\"\n >\n <DeleteIcon />\n </HvButton>\n </HvGrid>\n </HvGrid>\n );\n};\n"],"names":["Rule","id","combinator","attribute","operator","value","disabled","isInvalid","classes","cx","useClasses","context","useContext","QueryBuilderContext","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","askAction","attributes","operators","labels","readOnly","availableOperators","useMemo","attributeSpec","typeOperators","type","reduce","count","item","combinators","includes","shouldShowValueInput","DeleteIcon","withTooltip","_jsx","Delete","rule","delete","tooltip","HvGrid","container","className","root","spacing","wrap","children","xs","lg","Attribute","Operator","Value","actionsContainer","HvButton","icon","ariaLabel","onClick","actions","dialog","variant"],"mappings":"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"}
1
+ {"version":3,"file":"Rule.js","sources":["../../../../../src/components/QueryBuilder/Rule/Rule.tsx"],"sourcesContent":["import { Delete } from \"@hitachivantara/uikit-react-icons\";\n\nimport { useMediaQuery, useTheme } from \"@mui/material\";\n\nimport { useContext, useMemo } from \"react\";\n\nimport { HvGrid } from \"@core/components/Grid\";\nimport { HvButton } from \"@core/components/Button\";\nimport { withTooltip } from \"@core/hocs/withTooltip\";\n\nimport { QueryBuilderContext } from \"../Context\";\nimport { Attribute } from \"./Attribute\";\nimport { Operator } from \"./Operator\";\nimport { Value } from \"./Value\";\nimport { useClasses } from \"./Rule.styles\";\n\nexport interface RuleProps {\n id: number;\n combinator: string;\n attribute: string;\n operator: string;\n value: any;\n disabled: boolean;\n isInvalid: boolean;\n}\n\nexport const Rule = ({\n id,\n combinator,\n attribute,\n operator,\n value,\n disabled,\n isInvalid,\n}: RuleProps) => {\n const { classes, cx } = useClasses();\n\n const context = useContext(QueryBuilderContext);\n\n const theme = useTheme();\n\n const isMdDown = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const { askAction, attributes, operators, labels, readOnly } = context;\n\n const availableOperators = useMemo(() => {\n const attributeSpec =\n attribute != null && attributes ? attributes[attribute] : null;\n if (attributeSpec != null) {\n const typeOperators = operators[attributeSpec.type];\n if (typeOperators != null) {\n return typeOperators.reduce(\n (count, item) =>\n count + (item.combinators.includes(combinator) ? 1 : 0),\n 0\n );\n }\n }\n\n return -1;\n }, [attribute, attributes, combinator, operators]);\n\n const shouldShowValueInput =\n operator !== \"Empty\" && operator !== \"IsNotEmpty\";\n\n const DeleteIcon = withTooltip(\n () => <Delete />,\n labels.rule.delete.tooltip,\n \"bottom\"\n );\n\n return (\n <HvGrid\n container\n className={cx(classes.root, { [classes.isMdDown]: isMdDown })}\n spacing={0}\n wrap=\"nowrap\"\n >\n <HvGrid item xs={2} lg={3}>\n <Attribute\n attribute={attribute}\n id={id}\n disabled={disabled}\n isInvalid={isInvalid}\n />\n </HvGrid>\n {attribute != null && availableOperators > 0 && (\n <HvGrid item xs={2} lg={3}>\n <Operator\n id={id}\n combinator={combinator}\n attribute={attribute}\n operator={operator}\n />\n </HvGrid>\n )}\n {attribute != null && (operator != null || availableOperators === 0) && (\n <HvGrid item xs>\n {shouldShowValueInput && (\n <Value\n attribute={attribute}\n id={id}\n operator={operator}\n value={value}\n />\n )}\n </HvGrid>\n )}\n <HvGrid item className={classes.actionsContainer}>\n <HvButton\n icon\n aria-label={labels.rule.delete.ariaLabel}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog: labels.rule.delete,\n });\n }}\n disabled={readOnly}\n >\n <DeleteIcon />\n </HvButton>\n </HvGrid>\n </HvGrid>\n );\n};\n"],"names":["Rule","id","combinator","attribute","operator","value","disabled","isInvalid","classes","cx","useClasses","context","useContext","QueryBuilderContext","theme","useTheme","isMdDown","useMediaQuery","breakpoints","down","askAction","attributes","operators","labels","readOnly","availableOperators","useMemo","attributeSpec","typeOperators","type","reduce","count","item","combinators","includes","shouldShowValueInput","DeleteIcon","withTooltip","_jsx","Delete","rule","delete","tooltip","HvGrid","container","className","root","spacing","wrap","children","xs","lg","Attribute","Operator","Value","actionsContainer","HvButton","icon","ariaLabel","onClick","actions","dialog"],"mappings":";;;;;;;;;;;;AA0BO,MAAMA,OAAOA,CAAC;AAAA,EACnBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AACS,MAAM;AACT,QAAA;AAAA,IAAEC;AAAAA,IAASC;AAAAA,MAAOC,WAAW;AAE7BC,QAAAA,UAAUC,WAAWC,mBAAmB;AAE9C,QAAMC,QAAQC;AAEd,QAAMC,WAAWC,cAAcH,MAAMI,YAAYC,KAAK,IAAI,CAAC;AAErD,QAAA;AAAA,IAAEC;AAAAA,IAAWC;AAAAA,IAAYC;AAAAA,IAAWC;AAAAA,IAAQC;AAAAA,EAAab,IAAAA;AAEzDc,QAAAA,qBAAqBC,QAAQ,MAAM;AACvC,UAAMC,gBACJxB,aAAa,QAAQkB,aAAaA,WAAWlB,SAAS,IAAI;AAC5D,QAAIwB,iBAAiB,MAAM;AACnBC,YAAAA,gBAAgBN,UAAUK,cAAcE,IAAI;AAClD,UAAID,iBAAiB,MAAM;AACzB,eAAOA,cAAcE,OACnB,CAACC,OAAOC,SACND,SAASC,KAAKC,YAAYC,SAAShC,UAAU,IAAI,IAAI,IACvD,CACF;AAAA,MACF;AAAA,IACF;AAEO,WAAA;AAAA,KACN,CAACC,WAAWkB,YAAYnB,YAAYoB,SAAS,CAAC;AAE3Ca,QAAAA,uBACJ/B,aAAa,WAAWA,aAAa;AAEvC,QAAMgC,aAAaC,YACjB,MAAMC,oBAACC,QAAQ,CAAA,CAAA,GACfhB,OAAOiB,KAAKC,OAAOC,SACnB,QACF;AAEA,8BACGC,QAAM;AAAA,IACLC,WAAS;AAAA,IACTC,WAAWpC,GAAGD,QAAQsC,MAAM;AAAA,MAAE,CAACtC,QAAQQ,QAAQ,GAAGA;AAAAA,IAAAA,CAAU;AAAA,IAC5D+B,SAAS;AAAA,IACTC,MAAK;AAAA,IAAQC,UAAA,CAEbX,oBAACK,QAAM;AAAA,MAACX,MAAI;AAAA,MAACkB,IAAI;AAAA,MAAGC,IAAI;AAAA,MAAEF,8BACvBG,WAAS;AAAA,QACRjD;AAAAA,QACAF;AAAAA,QACAK;AAAAA,QACAC;AAAAA,MAAAA,CACD;AAAA,IAAA,CACK,GACPJ,aAAa,QAAQsB,qBAAqB,yBACxCkB,QAAM;AAAA,MAACX,MAAI;AAAA,MAACkB,IAAI;AAAA,MAAGC,IAAI;AAAA,MAAEF,8BACvBI,UAAQ;AAAA,QACPpD;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,MAAAA,CACD;AAAA,IAAA,CACK,GAETD,aAAa,SAASC,YAAY,QAAQqB,uBAAuB,MAChEa,oBAACK,QAAM;AAAA,MAACX,MAAI;AAAA,MAACkB,IAAE;AAAA,MAAAD,UACZd,wBACCG,oBAACgB,OAAK;AAAA,QACJnD;AAAAA,QACAF;AAAAA,QACAG;AAAAA,QACAC;AAAAA,MAAAA,CACD;AAAA,IAAA,CAEG,GAEViC,oBAACK,QAAM;AAAA,MAACX,MAAI;AAAA,MAACa,WAAWrC,QAAQ+C;AAAAA,MAAiBN,8BAC9CO,UAAQ;AAAA,QACPC,MAAI;AAAA,QACJ,cAAYlC,OAAOiB,KAAKC,OAAOiB;AAAAA,QAC/BC,SAASA,MAAM;AACH,oBAAA;AAAA,YACRC,SAAS,CAAC;AAAA,cAAE/B,MAAM;AAAA,cAAe5B;AAAAA,YAAAA,CAAI;AAAA,YACrC4D,QAAQtC,OAAOiB,KAAKC;AAAAA,UAAAA,CACrB;AAAA,QACH;AAAA,QACAnC,UAAUkB;AAAAA,QAASyB,UAEnBX,oBAACF,YAAY,EAAA;AAAA,MAAA,CACL;AAAA,IAAA,CACJ,CAAC;AAAA,EAAA,CACH;AAEZ;"}
@@ -15,7 +15,7 @@ const RuleGroup = ({
15
15
  id,
16
16
  combinator = "and",
17
17
  rules = [],
18
- classes: classesProp = {}
18
+ classes: classesProp
19
19
  }) => {
20
20
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
21
21
  const {
@@ -115,7 +115,6 @@ const RuleGroup = ({
115
115
  },
116
116
  "aria-label": level === 0 && ((_n = (_m = labels.query) == null ? void 0 : _m.delete) == null ? void 0 : _n.ariaLabel) ? (_p = (_o = labels.query) == null ? void 0 : _o.delete) == null ? void 0 : _p.ariaLabel : labels.group.delete.ariaLabel,
117
117
  disabled: readOnly,
118
- variant: "secondaryGhost",
119
118
  children: /* @__PURE__ */ jsx(DeleteIcon, {})
120
119
  })
121
120
  })
@@ -1 +1 @@
1
- {"version":3,"file":"RuleGroup.js","sources":["../../../../../src/components/QueryBuilder/RuleGroup/RuleGroup.tsx"],"sourcesContent":["import { useCallback, useContext } from \"react\";\n\nimport { Add, Delete, Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvButton } from \"@core/components/Button\";\nimport { HvEmptyState } from \"@core/components/EmptyState\";\nimport { HvGrid } from \"@core/components/Grid\";\nimport { HvMultiButton } from \"@core/components/MultiButton\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { withTooltip } from \"@core/hocs/withTooltip\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { Rule } from \"../Rule\";\nimport { QueryBuilderContext } from \"../Context\";\nimport { useClasses } from \"../QueryBuilder.styles\";\n\nexport interface RuleGroupProps {\n /**\n * Override or extend the styles applied to the component.\n * See CSS API tab for more details.\n */\n classes?: ExtractNames<typeof useClasses>;\n id?: number;\n level?: number;\n combinator?: string;\n rules?: any[];\n}\n\nexport const RuleGroup = ({\n level = 0,\n id,\n combinator = \"and\",\n rules = [],\n classes: classesProp = {},\n}: RuleGroupProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n const context = useContext(QueryBuilderContext);\n\n const { dispatchAction, askAction, maxDepth, combinators, labels, readOnly } =\n context;\n const normalizedMaxDepth = maxDepth - 1;\n\n const actionButtons = (\n <>\n <div className={classes.buttonBackground}>\n <HvButton\n variant=\"secondarySubtle\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n disabled={readOnly}\n startIcon={<Add />}\n >\n {level === 0 && labels.query?.addRule?.label != null\n ? labels.query?.addRule?.label\n : labels.group.addRule.label}\n </HvButton>\n </div>\n {level <= normalizedMaxDepth && (\n <div className={classes.buttonBackground}>\n <HvButton\n variant=\"secondarySubtle\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n disabled={readOnly}\n startIcon={<Add />}\n >\n {level === 0 && labels.query?.addGroup?.label != null\n ? labels.query?.addGroup?.label\n : labels.group.addGroup.label}\n </HvButton>\n </div>\n )}\n </>\n );\n\n const DeleteIcon = withTooltip(\n () => (\n <Delete className={cx({ [classes.topRemoveButtonDisabled]: readOnly })} />\n ),\n level === 0 && labels.query?.delete?.tooltip\n ? labels.query?.delete?.tooltip\n : labels.group.delete.tooltip,\n \"top\"\n );\n\n const onClickCombinator = useCallback(\n (item) => {\n dispatchAction({\n type: \"set-combinator\",\n id,\n combinator: item.operand,\n });\n },\n [dispatchAction, id]\n );\n\n return (\n <div\n className={cx(classes.root, {\n [classes.topGroup]: level === 0,\n [classes.subGroup]: level > 0,\n })}\n >\n <HvGrid container>\n <HvGrid item>\n <HvMultiButton\n className={cx(classes.combinator, classes.topCombinator)}\n disabled={readOnly}\n >\n {combinators &&\n combinators.map((item) => (\n <HvButton\n key={item.operand}\n className={classes.combinatorButton}\n selected={item.operand === combinator}\n onClick={() => item.operand && onClickCombinator(item)}\n disabled={readOnly}\n size=\"xs\"\n >\n {item.label}\n </HvButton>\n ))}\n </HvMultiButton>\n </HvGrid>\n <HvGrid item>\n <div\n className={cx(classes.buttonBackground, classes.topRemoveButton)}\n >\n <HvButton\n icon\n className={classes.removeButton}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog:\n level === 0 && labels.query?.delete != null\n ? labels.query.delete\n : labels.group.delete,\n });\n }}\n aria-label={\n level === 0 && labels.query?.delete?.ariaLabel\n ? labels.query?.delete?.ariaLabel\n : labels.group.delete.ariaLabel\n }\n disabled={readOnly}\n variant=\"secondaryGhost\"\n >\n <DeleteIcon />\n </HvButton>\n </div>\n </HvGrid>\n </HvGrid>\n {rules?.length > 0 && (\n <div\n className={cx(classes.rulesContainer, {\n [classes.subRulesContainer]: level > 0,\n [classes.topRulesContainer]: level === 0,\n })}\n >\n {rules.map((rule, index) => {\n if (\"combinator\" in rule) {\n return (\n <RuleGroup\n key={rule.id ?? index}\n level={level + 1}\n {...rule}\n id={rule.id}\n classes={classes}\n />\n );\n }\n\n const isInvalid =\n combinator === \"and\" &&\n rules.some((r, i) => {\n if (\"attribute\" in r) {\n if (\n r.attribute === rule.attribute &&\n r.id !== rule.id &&\n i < index\n ) {\n return true;\n }\n }\n return false;\n });\n\n return (\n <Rule\n key={rule.id ?? index}\n {...rule}\n isInvalid={isInvalid}\n id={rule.id}\n combinator={combinator}\n />\n );\n })}\n </div>\n )}\n {rules?.length === 0 && (\n <HvEmptyState\n title={labels.empty?.title}\n message={\n <>\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createCondition}`}\n </HvTypography>\n {level <= normalizedMaxDepth && (\n <>\n {`${labels.empty?.spacer}`}\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n style={{\n cursor: \"pointer\",\n textDecoration: \"underline\",\n }}\n >\n {`${labels.empty?.createGroup}`}\n </HvTypography>\n </>\n )}\n </>\n }\n icon={<Info />}\n />\n )}\n <HvGrid container>\n <HvGrid\n item\n className={cx(\n classes.actionButtonContainer,\n classes.topActionButtonContainer\n )}\n >\n {actionButtons}\n </HvGrid>\n </HvGrid>\n </div>\n );\n};\n"],"names":["RuleGroup","level","id","combinator","rules","classes","classesProp","cx","useClasses","context","useContext","QueryBuilderContext","dispatchAction","askAction","maxDepth","combinators","labels","readOnly","normalizedMaxDepth","actionButtons","_Fragment","children","_jsx","className","buttonBackground","HvButton","variant","onClick","type","disabled","startIcon","Add","query","addRule","label","group","addGroup","DeleteIcon","withTooltip","Delete","topRemoveButtonDisabled","delete","tooltip","onClickCombinator","useCallback","item","operand","root","topGroup","subGroup","_jsxs","HvGrid","container","HvMultiButton","topCombinator","map","combinatorButton","selected","size","topRemoveButton","icon","removeButton","actions","dialog","ariaLabel","length","rulesContainer","subRulesContainer","topRulesContainer","rule","index","isInvalid","some","r","i","attribute","Rule","HvEmptyState","title","empty","message","HvTypography","component","style","cursor","textDecoration","createCondition","spacer","createGroup","Info","actionButtonContainer","topActionButtonContainer"],"mappings":"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"}
1
+ {"version":3,"file":"RuleGroup.js","sources":["../../../../../src/components/QueryBuilder/RuleGroup/RuleGroup.tsx"],"sourcesContent":["import { useCallback, useContext } from \"react\";\n\nimport { Add, Delete, Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvButton } from \"@core/components/Button\";\nimport { HvEmptyState } from \"@core/components/EmptyState\";\nimport { HvGrid } from \"@core/components/Grid\";\nimport { HvMultiButton } from \"@core/components/MultiButton\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { withTooltip } from \"@core/hocs/withTooltip\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { Rule } from \"../Rule\";\nimport { QueryBuilderContext } from \"../Context\";\nimport { useClasses } from \"../QueryBuilder.styles\";\n\nexport interface RuleGroupProps {\n /**\n * Override or extend the styles applied to the component.\n * See CSS API tab for more details.\n */\n classes?: ExtractNames<typeof useClasses>;\n id?: number;\n level?: number;\n combinator?: string;\n rules?: any[];\n}\n\nexport const RuleGroup = ({\n level = 0,\n id,\n combinator = \"and\",\n rules = [],\n classes: classesProp,\n}: RuleGroupProps) => {\n const { classes, cx } = useClasses(classesProp);\n\n const context = useContext(QueryBuilderContext);\n\n const { dispatchAction, askAction, maxDepth, combinators, labels, readOnly } =\n context;\n const normalizedMaxDepth = maxDepth - 1;\n\n const actionButtons = (\n <>\n <div className={classes.buttonBackground}>\n <HvButton\n variant=\"secondarySubtle\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n disabled={readOnly}\n startIcon={<Add />}\n >\n {level === 0 && labels.query?.addRule?.label != null\n ? labels.query?.addRule?.label\n : labels.group.addRule.label}\n </HvButton>\n </div>\n {level <= normalizedMaxDepth && (\n <div className={classes.buttonBackground}>\n <HvButton\n variant=\"secondarySubtle\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n disabled={readOnly}\n startIcon={<Add />}\n >\n {level === 0 && labels.query?.addGroup?.label != null\n ? labels.query?.addGroup?.label\n : labels.group.addGroup.label}\n </HvButton>\n </div>\n )}\n </>\n );\n\n const DeleteIcon = withTooltip(\n () => (\n <Delete className={cx({ [classes.topRemoveButtonDisabled]: readOnly })} />\n ),\n level === 0 && labels.query?.delete?.tooltip\n ? labels.query?.delete?.tooltip\n : labels.group.delete.tooltip,\n \"top\"\n );\n\n const onClickCombinator = useCallback(\n (item) => {\n dispatchAction({\n type: \"set-combinator\",\n id,\n combinator: item.operand,\n });\n },\n [dispatchAction, id]\n );\n\n return (\n <div\n className={cx(classes.root, {\n [classes.topGroup]: level === 0,\n [classes.subGroup]: level > 0,\n })}\n >\n <HvGrid container>\n <HvGrid item>\n <HvMultiButton\n className={cx(classes.combinator, classes.topCombinator)}\n disabled={readOnly}\n >\n {combinators &&\n combinators.map((item) => (\n <HvButton\n key={item.operand}\n className={classes.combinatorButton}\n selected={item.operand === combinator}\n onClick={() => item.operand && onClickCombinator(item)}\n disabled={readOnly}\n size=\"xs\"\n >\n {item.label}\n </HvButton>\n ))}\n </HvMultiButton>\n </HvGrid>\n <HvGrid item>\n <div\n className={cx(classes.buttonBackground, classes.topRemoveButton)}\n >\n <HvButton\n icon\n className={classes.removeButton}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog:\n level === 0 && labels.query?.delete != null\n ? labels.query.delete\n : labels.group.delete,\n });\n }}\n aria-label={\n level === 0 && labels.query?.delete?.ariaLabel\n ? labels.query?.delete?.ariaLabel\n : labels.group.delete.ariaLabel\n }\n disabled={readOnly}\n >\n <DeleteIcon />\n </HvButton>\n </div>\n </HvGrid>\n </HvGrid>\n {rules?.length > 0 && (\n <div\n className={cx(classes.rulesContainer, {\n [classes.subRulesContainer]: level > 0,\n [classes.topRulesContainer]: level === 0,\n })}\n >\n {rules.map((rule, index) => {\n if (\"combinator\" in rule) {\n return (\n <RuleGroup\n key={rule.id ?? index}\n level={level + 1}\n {...rule}\n id={rule.id}\n classes={classes}\n />\n );\n }\n\n const isInvalid =\n combinator === \"and\" &&\n rules.some((r, i) => {\n if (\"attribute\" in r) {\n if (\n r.attribute === rule.attribute &&\n r.id !== rule.id &&\n i < index\n ) {\n return true;\n }\n }\n return false;\n });\n\n return (\n <Rule\n key={rule.id ?? index}\n {...rule}\n isInvalid={isInvalid}\n id={rule.id}\n combinator={combinator}\n />\n );\n })}\n </div>\n )}\n {rules?.length === 0 && (\n <HvEmptyState\n title={labels.empty?.title}\n message={\n <>\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createCondition}`}\n </HvTypography>\n {level <= normalizedMaxDepth && (\n <>\n {`${labels.empty?.spacer}`}\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n style={{\n cursor: \"pointer\",\n textDecoration: \"underline\",\n }}\n >\n {`${labels.empty?.createGroup}`}\n </HvTypography>\n </>\n )}\n </>\n }\n icon={<Info />}\n />\n )}\n <HvGrid container>\n <HvGrid\n item\n className={cx(\n classes.actionButtonContainer,\n classes.topActionButtonContainer\n )}\n >\n {actionButtons}\n </HvGrid>\n </HvGrid>\n </div>\n );\n};\n"],"names":["RuleGroup","level","id","combinator","rules","classes","classesProp","cx","useClasses","context","useContext","QueryBuilderContext","dispatchAction","askAction","maxDepth","combinators","labels","readOnly","normalizedMaxDepth","actionButtons","_Fragment","children","_jsx","className","buttonBackground","HvButton","variant","onClick","type","disabled","startIcon","Add","query","addRule","label","group","addGroup","DeleteIcon","withTooltip","Delete","topRemoveButtonDisabled","delete","tooltip","onClickCombinator","useCallback","item","operand","root","topGroup","subGroup","_jsxs","HvGrid","container","HvMultiButton","topCombinator","map","combinatorButton","selected","size","topRemoveButton","icon","removeButton","actions","dialog","ariaLabel","length","rulesContainer","subRulesContainer","topRulesContainer","rule","index","isInvalid","some","r","i","attribute","Rule","HvEmptyState","title","empty","message","HvTypography","component","style","cursor","textDecoration","createCondition","spacer","createGroup","Info","actionButtonContainer","topActionButtonContainer"],"mappings":"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"}
@@ -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";
@@ -34,7 +35,7 @@ const HvRadio = (props) => {
34
35
  onFocusVisible,
35
36
  onBlur,
36
37
  ...others
37
- } = props;
38
+ } = useDefaultProps("HvRadio", props);
38
39
  const elementId = useUniqueId(id, "hvradio");
39
40
  const [focusVisible, setFocusVisible] = useState(false);
40
41
  const onFocusVisibleCallback = useCallback((evt) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","sources":["../../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\n\nimport { clsx } from \"clsx\";\n\nimport { RadioProps as MuiRadioProps } from \"@mui/material\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvWarningText, HvLabelProps, isInvalid } from \"@core/components/Forms\";\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { setId } from \"@core/utils/setId\";\n\nimport {\n StyledDivContainer,\n StyledHvBaseRadio,\n StyledHvFormElement,\n StyledHvLabel,\n} from \"./Radio.styles\";\nimport radioClasses, { HvRadioClasses } from \"./radioClasses\";\n\nexport type HvRadioStatus = \"standBy\" | \"valid\" | \"invalid\";\n\nexport interface HvRadioProps\n extends Omit<MuiRadioProps, \"onChange\" | \"classes\">,\n HvBaseProps<HTMLButtonElement, \"onChange\" | \"color\"> {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the radio button.\n */\n classes?: HvRadioClasses;\n /**\n * Id to be applied to the form element root node.\n */\n id?: string;\n /**\n * The form element name.\n */\n name?: string;\n /**\n * The value of the form element.\n *\n * The default value is \"on\".\n */\n value?: any;\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided.\n */\n label?: React.ReactNode;\n /**\n * @ignore\n */\n \"aria-label\"?: string;\n /**\n * @ignore\n */\n \"aria-labelledby\"?: string;\n /**\n * @ignore\n */\n \"aria-describedby\"?: string;\n /**\n * Properties passed on to the label element.\n */\n labelProps?: HvLabelProps;\n /**\n * Indicates that user input is required on the form element.\n *\n * If a single radio button in a group has the required attribute, a radio button in\n * that group must be check, though it doesn't have to be the one with the attribute is applied.\n *\n * For that reason, the component doesn't make any uncontrolled changes to its validation status.\n * That should ideally be managed in the context of a radio button group.\n */\n required?: boolean;\n /**\n * Indicates that the form element is not editable.\n */\n readOnly?: boolean;\n /**\n * Indicates that the form element is disabled.\n */\n disabled?: boolean;\n /**\n * If `true` the radio button is selected, if set to `false` the radio button is not selected.\n *\n * When defined the radio button state becomes controlled.\n */\n checked?: boolean;\n /**\n * When uncontrolled, defines the initial checked state.\n */\n defaultChecked?: 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 status?: HvRadioStatus;\n /**\n * The error message to show when `status` is \"invalid\".\n */\n statusMessage?: string;\n /**\n * Identifies the element that provides an error message for the radio button.\n *\n * Will only be used when the validation status is invalid.\n */\n \"aria-errormessage\"?: string;\n /**\n * The callback fired when the radio button is pressed.\n */\n onChange?: (\n event: React.ChangeEvent<HTMLInputElement>,\n checked: boolean,\n value: any\n ) => void;\n /**\n * Whether the selector should use semantic colors.\n */\n semantic?: boolean;\n /**\n * Properties passed on to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible?: (event: React.FocusEvent<any>) => void;\n /**\n * @ignore\n */\n onBlur?: (event: React.FocusEvent<any>) => void;\n}\n\n/**\n * A Radio Button is a mechanism that allows user to select just an option from a group of options.\n *\n * It should used in a Radio Button Group to present the user with a range of options from\n * which the user <b>may select just one option</b> to complete their task.\n *\n * Individual use of radio buttons, at least uncontrolled, is unadvised as React state management doesn't\n * respond to the browser's native management of radio inputs checked state.\n */\nexport const HvRadio = (props: HvRadioProps) => {\n const {\n classes,\n className,\n id,\n name,\n value = \"on\",\n required = false,\n readOnly = false,\n disabled = false,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n labelProps,\n checked,\n defaultChecked = false,\n onChange,\n status = \"standBy\",\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n semantic = false,\n inputProps,\n onFocusVisible,\n onBlur,\n ...others\n } = props;\n\n const elementId = useUniqueId(id, \"hvradio\");\n\n const [focusVisible, setFocusVisible] = useState(false);\n\n const onFocusVisibleCallback = useCallback(\n (evt: React.FocusEvent<any>) => {\n setFocusVisible(true);\n onFocusVisible?.(evt);\n },\n [onFocusVisible]\n );\n\n const onBlurCallback = useCallback(\n (evt: React.FocusEvent<any>) => {\n setFocusVisible(false);\n onBlur?.(evt);\n },\n [onBlur]\n );\n\n const [isChecked, setIsChecked] = useControlled(\n checked,\n Boolean(defaultChecked)\n );\n\n const onLocalChange = useCallback(\n (evt: React.ChangeEvent<HTMLInputElement>, newChecked: boolean) => {\n setIsChecked(newChecked);\n\n onChange?.(evt, newChecked, value);\n },\n [onChange, setIsChecked, value]\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\n const canShowError =\n ariaErrorMessage == null &&\n status !== undefined &&\n statusMessage !== undefined;\n\n const hasLabel = label != null;\n\n const isStateInvalid = isInvalid(status);\n\n let errorMessageId: string | undefined;\n if (isStateInvalid) {\n errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n }\n\n const radio = (\n <StyledHvBaseRadio\n id={label ? setId(elementId, \"input\") : setId(id, \"input\")}\n name={name}\n className={clsx(\n radioClasses.radio,\n classes?.radio,\n isStateInvalid && clsx(radioClasses.invalidRadio, classes?.invalidRadio)\n )}\n $invalid={isStateInvalid}\n disabled={disabled}\n readOnly={readOnly}\n onChange={onLocalChange}\n value={value}\n checked={isChecked}\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 <StyledHvFormElement\n id={id}\n name={name}\n status={status || \"standBy\"}\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n className={clsx(className, radioClasses.root, classes?.root)}\n >\n {hasLabel ? (\n <StyledDivContainer\n className={clsx(\n radioClasses.container,\n classes?.container,\n disabled && clsx(radioClasses.disabled, classes?.disabled),\n focusVisible &&\n label &&\n clsx(radioClasses.focusVisible, classes?.focusVisible),\n isStateInvalid &&\n clsx(radioClasses.invalidContainer, classes?.invalidContainer)\n )}\n $invalid={isStateInvalid}\n $focusVisible={!!(focusVisible && label)}\n $disabled={disabled}\n >\n {radio}\n <StyledHvLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={clsx(radioClasses.label, classes?.label)}\n $disabled={disabled}\n {...labelProps}\n />\n </StyledDivContainer>\n ) : (\n radio\n )}\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder>\n {statusMessage}\n </HvWarningText>\n )}\n </StyledHvFormElement>\n );\n};\n"],"names":["HvRadio","props","classes","className","id","name","value","required","readOnly","disabled","label","ariaLabel","ariaLabelledBy","ariaDescribedBy","labelProps","checked","defaultChecked","onChange","status","statusMessage","ariaErrorMessage","semantic","inputProps","onFocusVisible","onBlur","others","elementId","useUniqueId","focusVisible","setFocusVisible","useState","onFocusVisibleCallback","useCallback","evt","onBlurCallback","isChecked","setIsChecked","useControlled","Boolean","onLocalChange","newChecked","canShowError","undefined","hasLabel","isStateInvalid","isInvalid","errorMessageId","setId","radio","StyledHvBaseRadio","clsx","radioClasses","invalidRadio","$invalid","StyledHvFormElement","root","children","_jsxs","StyledDivContainer","container","invalidContainer","$focusVisible","$disabled","_jsx","StyledHvLabel","htmlFor","HvWarningText","disableBorder"],"mappings":"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"}
1
+ {"version":3,"file":"Radio.js","sources":["../../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { clsx } from \"clsx\";\n\nimport { RadioProps as MuiRadioProps } from \"@mui/material\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvWarningText, HvLabelProps, isInvalid } from \"@core/components/Forms\";\nimport { useUniqueId } from \"@core/hooks/useUniqueId\";\nimport { useControlled } from \"@core/hooks/useControlled\";\nimport { setId } from \"@core/utils/setId\";\n\nimport {\n StyledDivContainer,\n StyledHvBaseRadio,\n StyledHvFormElement,\n StyledHvLabel,\n} from \"./Radio.styles\";\nimport radioClasses, { HvRadioClasses } from \"./radioClasses\";\n\nexport type HvRadioStatus = \"standBy\" | \"valid\" | \"invalid\";\n\nexport interface HvRadioProps\n extends Omit<MuiRadioProps, \"onChange\" | \"classes\">,\n HvBaseProps<HTMLButtonElement, \"onChange\" | \"color\"> {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the radio button.\n */\n classes?: HvRadioClasses;\n /**\n * Id to be applied to the form element root node.\n */\n id?: string;\n /**\n * The form element name.\n */\n name?: string;\n /**\n * The value of the form element.\n *\n * The default value is \"on\".\n */\n value?: any;\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided.\n */\n label?: React.ReactNode;\n /**\n * @ignore\n */\n \"aria-label\"?: string;\n /**\n * @ignore\n */\n \"aria-labelledby\"?: string;\n /**\n * @ignore\n */\n \"aria-describedby\"?: string;\n /**\n * Properties passed on to the label element.\n */\n labelProps?: HvLabelProps;\n /**\n * Indicates that user input is required on the form element.\n *\n * If a single radio button in a group has the required attribute, a radio button in\n * that group must be check, though it doesn't have to be the one with the attribute is applied.\n *\n * For that reason, the component doesn't make any uncontrolled changes to its validation status.\n * That should ideally be managed in the context of a radio button group.\n */\n required?: boolean;\n /**\n * Indicates that the form element is not editable.\n */\n readOnly?: boolean;\n /**\n * Indicates that the form element is disabled.\n */\n disabled?: boolean;\n /**\n * If `true` the radio button is selected, if set to `false` the radio button is not selected.\n *\n * When defined the radio button state becomes controlled.\n */\n checked?: boolean;\n /**\n * When uncontrolled, defines the initial checked state.\n */\n defaultChecked?: 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 status?: HvRadioStatus;\n /**\n * The error message to show when `status` is \"invalid\".\n */\n statusMessage?: string;\n /**\n * Identifies the element that provides an error message for the radio button.\n *\n * Will only be used when the validation status is invalid.\n */\n \"aria-errormessage\"?: string;\n /**\n * The callback fired when the radio button is pressed.\n */\n onChange?: (\n event: React.ChangeEvent<HTMLInputElement>,\n checked: boolean,\n value: any\n ) => void;\n /**\n * Whether the selector should use semantic colors.\n */\n semantic?: boolean;\n /**\n * Properties passed on to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible?: (event: React.FocusEvent<any>) => void;\n /**\n * @ignore\n */\n onBlur?: (event: React.FocusEvent<any>) => void;\n}\n\n/**\n * A Radio Button is a mechanism that allows user to select just an option from a group of options.\n *\n * It should used in a Radio Button Group to present the user with a range of options from\n * which the user <b>may select just one option</b> to complete their task.\n *\n * Individual use of radio buttons, at least uncontrolled, is unadvised as React state management doesn't\n * respond to the browser's native management of radio inputs checked state.\n */\nexport const HvRadio = (props: HvRadioProps) => {\n const {\n classes,\n className,\n id,\n name,\n value = \"on\",\n required = false,\n readOnly = false,\n disabled = false,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n labelProps,\n checked,\n defaultChecked = false,\n onChange,\n status = \"standBy\",\n statusMessage,\n \"aria-errormessage\": ariaErrorMessage,\n semantic = false,\n inputProps,\n onFocusVisible,\n onBlur,\n ...others\n } = useDefaultProps(\"HvRadio\", props);\n\n const elementId = useUniqueId(id, \"hvradio\");\n\n const [focusVisible, setFocusVisible] = useState(false);\n\n const onFocusVisibleCallback = useCallback(\n (evt: React.FocusEvent<any>) => {\n setFocusVisible(true);\n onFocusVisible?.(evt);\n },\n [onFocusVisible]\n );\n\n const onBlurCallback = useCallback(\n (evt: React.FocusEvent<any>) => {\n setFocusVisible(false);\n onBlur?.(evt);\n },\n [onBlur]\n );\n\n const [isChecked, setIsChecked] = useControlled(\n checked,\n Boolean(defaultChecked)\n );\n\n const onLocalChange = useCallback(\n (evt: React.ChangeEvent<HTMLInputElement>, newChecked: boolean) => {\n setIsChecked(newChecked);\n\n onChange?.(evt, newChecked, value);\n },\n [onChange, setIsChecked, value]\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\n const canShowError =\n ariaErrorMessage == null &&\n status !== undefined &&\n statusMessage !== undefined;\n\n const hasLabel = label != null;\n\n const isStateInvalid = isInvalid(status);\n\n let errorMessageId: string | undefined;\n if (isStateInvalid) {\n errorMessageId = canShowError\n ? setId(elementId, \"error\")\n : ariaErrorMessage;\n }\n\n const radio = (\n <StyledHvBaseRadio\n id={label ? setId(elementId, \"input\") : setId(id, \"input\")}\n name={name}\n className={clsx(\n radioClasses.radio,\n classes?.radio,\n isStateInvalid && clsx(radioClasses.invalidRadio, classes?.invalidRadio)\n )}\n $invalid={isStateInvalid}\n disabled={disabled}\n readOnly={readOnly}\n onChange={onLocalChange}\n value={value}\n checked={isChecked}\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 <StyledHvFormElement\n id={id}\n name={name}\n status={status || \"standBy\"}\n disabled={disabled}\n required={required}\n readOnly={readOnly}\n className={clsx(className, radioClasses.root, classes?.root)}\n >\n {hasLabel ? (\n <StyledDivContainer\n className={clsx(\n radioClasses.container,\n classes?.container,\n disabled && clsx(radioClasses.disabled, classes?.disabled),\n focusVisible &&\n label &&\n clsx(radioClasses.focusVisible, classes?.focusVisible),\n isStateInvalid &&\n clsx(radioClasses.invalidContainer, classes?.invalidContainer)\n )}\n $invalid={isStateInvalid}\n $focusVisible={!!(focusVisible && label)}\n $disabled={disabled}\n >\n {radio}\n <StyledHvLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={clsx(radioClasses.label, classes?.label)}\n $disabled={disabled}\n {...labelProps}\n />\n </StyledDivContainer>\n ) : (\n radio\n )}\n {canShowError && (\n <HvWarningText id={setId(elementId, \"error\")} disableBorder>\n {statusMessage}\n </HvWarningText>\n )}\n </StyledHvFormElement>\n );\n};\n"],"names":["HvRadio","props","classes","className","id","name","value","required","readOnly","disabled","label","ariaLabel","ariaLabelledBy","ariaDescribedBy","labelProps","checked","defaultChecked","onChange","status","statusMessage","ariaErrorMessage","semantic","inputProps","onFocusVisible","onBlur","others","useDefaultProps","elementId","useUniqueId","focusVisible","setFocusVisible","useState","onFocusVisibleCallback","useCallback","evt","onBlurCallback","isChecked","setIsChecked","useControlled","Boolean","onLocalChange","newChecked","canShowError","undefined","hasLabel","isStateInvalid","isInvalid","errorMessageId","setId","radio","StyledHvBaseRadio","clsx","radioClasses","invalidRadio","$invalid","StyledHvFormElement","root","children","_jsxs","StyledDivContainer","container","invalidContainer","$focusVisible","$disabled","_jsx","StyledHvLabel","htmlFor","HvWarningText","disableBorder"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { useCallback, useMemo, Children, 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";
@@ -22,29 +23,30 @@ const getValueFromSelectedChildren = (children) => {
22
23
  }
23
24
  return null;
24
25
  };
25
- const HvRadioGroup = ({
26
- id,
27
- classes,
28
- className,
29
- children,
30
- name,
31
- value: valueProp,
32
- defaultValue,
33
- label,
34
- description,
35
- status,
36
- statusMessage,
37
- required = false,
38
- readOnly = false,
39
- disabled = false,
40
- orientation = "vertical",
41
- "aria-label": ariaLabel,
42
- "aria-labelledby": ariaLabelledBy,
43
- "aria-describedby": ariaDescribedBy,
44
- "aria-errormessage": ariaErrorMessage,
45
- onChange,
46
- ...others
47
- }) => {
26
+ const HvRadioGroup = (props) => {
27
+ const {
28
+ id,
29
+ classes,
30
+ className,
31
+ children,
32
+ name,
33
+ value: valueProp,
34
+ defaultValue,
35
+ label,
36
+ description,
37
+ status,
38
+ statusMessage,
39
+ required = false,
40
+ readOnly = false,
41
+ disabled = false,
42
+ orientation = "vertical",
43
+ "aria-label": ariaLabel,
44
+ "aria-labelledby": ariaLabelledBy,
45
+ "aria-describedby": ariaDescribedBy,
46
+ "aria-errormessage": ariaErrorMessage,
47
+ onChange,
48
+ ...others
49
+ } = useDefaultProps("HvRadioGroup", props);
48
50
  const elementId = useUniqueId(id, "hvradiogroup");
49
51
  const [value, setValue] = useControlled(valueProp, defaultValue !== void 0 ? defaultValue : (
50
52
  // When uncontrolled and no default value is given,