@salt-ds/lab 1.0.0-alpha.54 → 1.0.0-alpha.56

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 (1289) hide show
  1. package/CHANGELOG.md +2056 -0
  2. package/css/salt-lab.css +254 -57
  3. package/dist-cjs/app-header/AppHeader.js +9 -8
  4. package/dist-cjs/app-header/AppHeader.js.map +1 -1
  5. package/dist-cjs/breadcrumbs/Breadcrumb.js +43 -43
  6. package/dist-cjs/breadcrumbs/Breadcrumb.js.map +1 -1
  7. package/dist-cjs/breadcrumbs/Breadcrumbs.js +28 -33
  8. package/dist-cjs/breadcrumbs/Breadcrumbs.js.map +1 -1
  9. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js +19 -16
  10. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  11. package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js +0 -2
  12. package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js.map +1 -1
  13. package/dist-cjs/breadcrumbs/internal/BreadcrumbsSeparator.js +1 -5
  14. package/dist-cjs/breadcrumbs/internal/BreadcrumbsSeparator.js.map +1 -1
  15. package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js +0 -2
  16. package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js.map +1 -1
  17. package/dist-cjs/button-bar/ButtonBar.js +20 -27
  18. package/dist-cjs/button-bar/ButtonBar.js.map +1 -1
  19. package/dist-cjs/button-bar/OrderedButton.js +16 -15
  20. package/dist-cjs/button-bar/OrderedButton.js.map +1 -1
  21. package/dist-cjs/button-bar/internal/ButtonBarContext.js +0 -2
  22. package/dist-cjs/button-bar/internal/ButtonBarContext.js.map +1 -1
  23. package/dist-cjs/button-bar/internal/DescendantContext.js +1 -6
  24. package/dist-cjs/button-bar/internal/DescendantContext.js.map +1 -1
  25. package/dist-cjs/button-bar/internal/useDescendant.js +0 -2
  26. package/dist-cjs/button-bar/internal/useDescendant.js.map +1 -1
  27. package/dist-cjs/button-bar/internal/useDescendants.js +0 -2
  28. package/dist-cjs/button-bar/internal/useDescendants.js.map +1 -1
  29. package/dist-cjs/calendar/Calendar.js +32 -28
  30. package/dist-cjs/calendar/Calendar.js.map +1 -1
  31. package/dist-cjs/calendar/CalendarGrid.css.js +6 -0
  32. package/dist-cjs/calendar/CalendarGrid.css.js.map +1 -0
  33. package/dist-cjs/calendar/CalendarGrid.js +107 -0
  34. package/dist-cjs/calendar/CalendarGrid.js.map +1 -0
  35. package/dist-cjs/calendar/CalendarNavigation.js +239 -214
  36. package/dist-cjs/calendar/CalendarNavigation.js.map +1 -1
  37. package/dist-cjs/calendar/CalendarWeekHeader.js +28 -17
  38. package/dist-cjs/calendar/CalendarWeekHeader.js.map +1 -1
  39. package/dist-cjs/calendar/internal/CalendarContext.js +6 -4
  40. package/dist-cjs/calendar/internal/CalendarContext.js.map +1 -1
  41. package/dist-cjs/calendar/internal/CalendarDay.js +49 -45
  42. package/dist-cjs/calendar/internal/CalendarDay.js.map +1 -1
  43. package/dist-cjs/calendar/internal/CalendarMonth.css.js +1 -1
  44. package/dist-cjs/calendar/internal/CalendarMonth.js +40 -39
  45. package/dist-cjs/calendar/internal/CalendarMonth.js.map +1 -1
  46. package/dist-cjs/calendar/internal/useFocusManagement.js +18 -20
  47. package/dist-cjs/calendar/internal/useFocusManagement.js.map +1 -1
  48. package/dist-cjs/calendar/internal/utils.js +33 -50
  49. package/dist-cjs/calendar/internal/utils.js.map +1 -1
  50. package/dist-cjs/calendar/useCalendar.js +48 -41
  51. package/dist-cjs/calendar/useCalendar.js.map +1 -1
  52. package/dist-cjs/calendar/useCalendarDay.js +15 -23
  53. package/dist-cjs/calendar/useCalendarDay.js.map +1 -1
  54. package/dist-cjs/calendar/useCalendarSelection.js +46 -37
  55. package/dist-cjs/calendar/useCalendarSelection.js.map +1 -1
  56. package/dist-cjs/carousel/Carousel.js +59 -56
  57. package/dist-cjs/carousel/Carousel.js.map +1 -1
  58. package/dist-cjs/carousel/CarouselSlide.js +35 -38
  59. package/dist-cjs/carousel/CarouselSlide.js.map +1 -1
  60. package/dist-cjs/cascading-menu/CascadingMenu.js +15 -15
  61. package/dist-cjs/cascading-menu/CascadingMenu.js.map +1 -1
  62. package/dist-cjs/cascading-menu/CascadingMenuItem.js +72 -61
  63. package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
  64. package/dist-cjs/cascading-menu/CascadingMenuList.js +50 -43
  65. package/dist-cjs/cascading-menu/CascadingMenuList.js.map +1 -1
  66. package/dist-cjs/cascading-menu/internal/CascadingMenuAction.js +0 -2
  67. package/dist-cjs/cascading-menu/internal/CascadingMenuAction.js.map +1 -1
  68. package/dist-cjs/cascading-menu/internal/keydownHandlers.js +0 -2
  69. package/dist-cjs/cascading-menu/internal/keydownHandlers.js.map +1 -1
  70. package/dist-cjs/cascading-menu/internal/menuPositioning.js +0 -2
  71. package/dist-cjs/cascading-menu/internal/menuPositioning.js.map +1 -1
  72. package/dist-cjs/cascading-menu/internal/stateUtils.js +1 -2
  73. package/dist-cjs/cascading-menu/internal/stateUtils.js.map +1 -1
  74. package/dist-cjs/cascading-menu/internal/useClickAway.js +4 -3
  75. package/dist-cjs/cascading-menu/internal/useClickAway.js.map +1 -1
  76. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js +0 -2
  77. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  78. package/dist-cjs/cascading-menu/internal/useMountedRef.js +0 -2
  79. package/dist-cjs/cascading-menu/internal/useMountedRef.js.map +1 -1
  80. package/dist-cjs/cascading-menu/internal/useMouseHandlers.js +2 -5
  81. package/dist-cjs/cascading-menu/internal/useMouseHandlers.js.map +1 -1
  82. package/dist-cjs/cascading-menu/internal/useRefsManager.js +0 -2
  83. package/dist-cjs/cascading-menu/internal/useRefsManager.js.map +1 -1
  84. package/dist-cjs/cascading-menu/internal/useStateReducer.js +0 -2
  85. package/dist-cjs/cascading-menu/internal/useStateReducer.js.map +1 -1
  86. package/dist-cjs/cascading-menu/stateChangeTypes.js +0 -2
  87. package/dist-cjs/cascading-menu/stateChangeTypes.js.map +1 -1
  88. package/dist-cjs/color-chooser/AlphaInputField.js +17 -15
  89. package/dist-cjs/color-chooser/AlphaInputField.js.map +1 -1
  90. package/dist-cjs/color-chooser/Color.js +4 -9
  91. package/dist-cjs/color-chooser/Color.js.map +1 -1
  92. package/dist-cjs/color-chooser/ColorChooser.js +58 -60
  93. package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
  94. package/dist-cjs/color-chooser/ColorHelpers.js +5 -11
  95. package/dist-cjs/color-chooser/ColorHelpers.js.map +1 -1
  96. package/dist-cjs/color-chooser/ColorPicker.js +33 -49
  97. package/dist-cjs/color-chooser/ColorPicker.js.map +1 -1
  98. package/dist-cjs/color-chooser/DictTabs.js +24 -23
  99. package/dist-cjs/color-chooser/DictTabs.js.map +1 -1
  100. package/dist-cjs/color-chooser/GetColorPalettes.js +1 -3
  101. package/dist-cjs/color-chooser/GetColorPalettes.js.map +1 -1
  102. package/dist-cjs/color-chooser/HexInput.js +9 -15
  103. package/dist-cjs/color-chooser/HexInput.js.map +1 -1
  104. package/dist-cjs/color-chooser/RGBAInput.js +24 -39
  105. package/dist-cjs/color-chooser/RGBAInput.js.map +1 -1
  106. package/dist-cjs/color-chooser/RGBAInputField.js +14 -12
  107. package/dist-cjs/color-chooser/RGBAInputField.js.map +1 -1
  108. package/dist-cjs/color-chooser/Swatch.js +19 -18
  109. package/dist-cjs/color-chooser/Swatch.js.map +1 -1
  110. package/dist-cjs/color-chooser/Swatches.js +27 -43
  111. package/dist-cjs/color-chooser/Swatches.js.map +1 -1
  112. package/dist-cjs/color-chooser/SwatchesPicker.js +26 -20
  113. package/dist-cjs/color-chooser/SwatchesPicker.js.map +1 -1
  114. package/dist-cjs/color-chooser/color-utils.js +0 -2
  115. package/dist-cjs/color-chooser/color-utils.js.map +1 -1
  116. package/dist-cjs/color-chooser/colorMap.js +1 -2
  117. package/dist-cjs/color-chooser/colorMap.js.map +1 -1
  118. package/dist-cjs/color-chooser/createTabsMapping.js +0 -2
  119. package/dist-cjs/color-chooser/createTabsMapping.js.map +1 -1
  120. package/dist-cjs/combo-box/ComboBox.js +29 -25
  121. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  122. package/dist-cjs/combo-box/useCombobox.js +16 -15
  123. package/dist-cjs/combo-box/useCombobox.js.map +1 -1
  124. package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js +37 -33
  125. package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  126. package/dist-cjs/combo-box-deprecated/filterHelpers.js +0 -2
  127. package/dist-cjs/combo-box-deprecated/filterHelpers.js.map +1 -1
  128. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js +37 -37
  129. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  130. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js +37 -37
  131. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  132. package/dist-cjs/combo-box-deprecated/internal/getAnnouncement.js +1 -3
  133. package/dist-cjs/combo-box-deprecated/internal/getAnnouncement.js.map +1 -1
  134. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js +0 -2
  135. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  136. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js +0 -2
  137. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  138. package/dist-cjs/combo-box-deprecated/internal/usePopperStatus.js +0 -2
  139. package/dist-cjs/combo-box-deprecated/internal/usePopperStatus.js.map +1 -1
  140. package/dist-cjs/common-hooks/calcPreferredHeight.js +2 -3
  141. package/dist-cjs/common-hooks/calcPreferredHeight.js.map +1 -1
  142. package/dist-cjs/common-hooks/collectionProvider.js +1 -6
  143. package/dist-cjs/common-hooks/collectionProvider.js.map +1 -1
  144. package/dist-cjs/common-hooks/itemToString.js +0 -2
  145. package/dist-cjs/common-hooks/itemToString.js.map +1 -1
  146. package/dist-cjs/common-hooks/keyUtils.js +0 -2
  147. package/dist-cjs/common-hooks/keyUtils.js.map +1 -1
  148. package/dist-cjs/common-hooks/list-dom-utils.js +0 -2
  149. package/dist-cjs/common-hooks/list-dom-utils.js.map +1 -1
  150. package/dist-cjs/common-hooks/selectionTypes.js +0 -2
  151. package/dist-cjs/common-hooks/selectionTypes.js.map +1 -1
  152. package/dist-cjs/common-hooks/useAutoSizer.js +0 -2
  153. package/dist-cjs/common-hooks/useAutoSizer.js.map +1 -1
  154. package/dist-cjs/common-hooks/useCollapsibleGroups.js +0 -2
  155. package/dist-cjs/common-hooks/useCollapsibleGroups.js.map +1 -1
  156. package/dist-cjs/common-hooks/useCollectionItems.js +21 -12
  157. package/dist-cjs/common-hooks/useCollectionItems.js.map +1 -1
  158. package/dist-cjs/common-hooks/useImperativeScrollingAPI.js +0 -2
  159. package/dist-cjs/common-hooks/useImperativeScrollingAPI.js.map +1 -1
  160. package/dist-cjs/common-hooks/useKeyboardNavigation.js +2 -3
  161. package/dist-cjs/common-hooks/useKeyboardNavigation.js.map +1 -1
  162. package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js +3 -2
  163. package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
  164. package/dist-cjs/common-hooks/useSelection.js +3 -7
  165. package/dist-cjs/common-hooks/useSelection.js.map +1 -1
  166. package/dist-cjs/common-hooks/useTypeahead.js +0 -2
  167. package/dist-cjs/common-hooks/useTypeahead.js.map +1 -1
  168. package/dist-cjs/common-hooks/useViewportTracking.js +0 -2
  169. package/dist-cjs/common-hooks/useViewportTracking.js.map +1 -1
  170. package/dist-cjs/common-hooks/utils/collection-item-utils.js +2 -4
  171. package/dist-cjs/common-hooks/utils/collection-item-utils.js.map +1 -1
  172. package/dist-cjs/common-hooks/utils/filter-utils.js +0 -2
  173. package/dist-cjs/common-hooks/utils/filter-utils.js.map +1 -1
  174. package/dist-cjs/common-hooks/utils/isSelected.js +0 -2
  175. package/dist-cjs/common-hooks/utils/isSelected.js.map +1 -1
  176. package/dist-cjs/contact-details/ContactAction.js +9 -13
  177. package/dist-cjs/contact-details/ContactAction.js.map +1 -1
  178. package/dist-cjs/contact-details/ContactActions.js +1 -8
  179. package/dist-cjs/contact-details/ContactActions.js.map +1 -1
  180. package/dist-cjs/contact-details/ContactAvatar.js +17 -16
  181. package/dist-cjs/contact-details/ContactAvatar.js.map +1 -1
  182. package/dist-cjs/contact-details/ContactDetails.js +6 -10
  183. package/dist-cjs/contact-details/ContactDetails.js.map +1 -1
  184. package/dist-cjs/contact-details/ContactFavoriteToggle.js +13 -12
  185. package/dist-cjs/contact-details/ContactFavoriteToggle.js.map +1 -1
  186. package/dist-cjs/contact-details/ContactMetadata.js +13 -13
  187. package/dist-cjs/contact-details/ContactMetadata.js.map +1 -1
  188. package/dist-cjs/contact-details/ContactMetadataItem.js +5 -23
  189. package/dist-cjs/contact-details/ContactMetadataItem.js.map +1 -1
  190. package/dist-cjs/contact-details/ContactPrimaryInfo.js +16 -15
  191. package/dist-cjs/contact-details/ContactPrimaryInfo.js.map +1 -1
  192. package/dist-cjs/contact-details/ContactSecondaryInfo.js +16 -17
  193. package/dist-cjs/contact-details/ContactSecondaryInfo.js.map +1 -1
  194. package/dist-cjs/contact-details/ContactTertiaryInfo.js +16 -17
  195. package/dist-cjs/contact-details/ContactTertiaryInfo.js.map +1 -1
  196. package/dist-cjs/contact-details/MailLinkComponent.js +1 -12
  197. package/dist-cjs/contact-details/MailLinkComponent.js.map +1 -1
  198. package/dist-cjs/contact-details/internal/ContactDetailsContext.js +0 -2
  199. package/dist-cjs/contact-details/internal/ContactDetailsContext.js.map +1 -1
  200. package/dist-cjs/contact-details/internal/FavoriteToggle.js +18 -17
  201. package/dist-cjs/contact-details/internal/FavoriteToggle.js.map +1 -1
  202. package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js +1 -11
  203. package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  204. package/dist-cjs/contact-details/internal/StarIcon.js +10 -14
  205. package/dist-cjs/contact-details/internal/StarIcon.js.map +1 -1
  206. package/dist-cjs/contact-details/internal/StarIconContainer.js +28 -24
  207. package/dist-cjs/contact-details/internal/StarIconContainer.js.map +1 -1
  208. package/dist-cjs/contact-details/internal/useComponentSize.js +0 -2
  209. package/dist-cjs/contact-details/internal/useComponentSize.js.map +1 -1
  210. package/dist-cjs/content-status/ContentStatus.js +16 -31
  211. package/dist-cjs/content-status/ContentStatus.js.map +1 -1
  212. package/dist-cjs/content-status/internal/StatusIndicator.js +30 -23
  213. package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
  214. package/dist-cjs/date-input/DateInput.css.js +1 -1
  215. package/dist-cjs/date-input/DateInputRange.js +186 -196
  216. package/dist-cjs/date-input/DateInputRange.js.map +1 -1
  217. package/dist-cjs/date-input/DateInputSingle.js +92 -107
  218. package/dist-cjs/date-input/DateInputSingle.js.map +1 -1
  219. package/dist-cjs/date-picker/DatePicker.js +15 -36
  220. package/dist-cjs/date-picker/DatePicker.js.map +1 -1
  221. package/dist-cjs/date-picker/DatePickerActions.js +16 -31
  222. package/dist-cjs/date-picker/DatePickerActions.js.map +1 -1
  223. package/dist-cjs/date-picker/DatePickerContext.js +6 -4
  224. package/dist-cjs/date-picker/DatePickerContext.js.map +1 -1
  225. package/dist-cjs/date-picker/DatePickerOverlay.js +19 -17
  226. package/dist-cjs/date-picker/DatePickerOverlay.js.map +1 -1
  227. package/dist-cjs/date-picker/DatePickerOverlayProvider.js +24 -16
  228. package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +1 -1
  229. package/dist-cjs/date-picker/DatePickerRangeInput.js +98 -46
  230. package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -1
  231. package/dist-cjs/date-picker/DatePickerRangePanel.js +68 -97
  232. package/dist-cjs/date-picker/DatePickerRangePanel.js.map +1 -1
  233. package/dist-cjs/date-picker/DatePickerSingleInput.js +121 -78
  234. package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -1
  235. package/dist-cjs/date-picker/DatePickerSinglePanel.js +35 -68
  236. package/dist-cjs/date-picker/DatePickerSinglePanel.js.map +1 -1
  237. package/dist-cjs/date-picker/DatePickerTrigger.js +32 -0
  238. package/dist-cjs/date-picker/DatePickerTrigger.js.map +1 -0
  239. package/dist-cjs/date-picker/useDatePicker.js +60 -112
  240. package/dist-cjs/date-picker/useDatePicker.js.map +1 -1
  241. package/dist-cjs/deck-item/DeckItem.js +21 -18
  242. package/dist-cjs/deck-item/DeckItem.js.map +1 -1
  243. package/dist-cjs/deck-layout/DeckLayout.js +34 -27
  244. package/dist-cjs/deck-layout/DeckLayout.js.map +1 -1
  245. package/dist-cjs/dialog/DialogHeader.css.js +6 -0
  246. package/dist-cjs/dialog/DialogHeader.css.js.map +1 -0
  247. package/dist-cjs/dialog/DialogHeader.js +63 -0
  248. package/dist-cjs/dialog/DialogHeader.js.map +1 -0
  249. package/dist-cjs/dropdown/Dropdown.js +28 -24
  250. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  251. package/dist-cjs/dropdown/DropdownBase.js +29 -29
  252. package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
  253. package/dist-cjs/dropdown/DropdownButton.js +40 -36
  254. package/dist-cjs/dropdown/DropdownButton.js.map +1 -1
  255. package/dist-cjs/dropdown/useClickAway.js +0 -2
  256. package/dist-cjs/dropdown/useClickAway.js.map +1 -1
  257. package/dist-cjs/dropdown/useDropdown.js +2 -4
  258. package/dist-cjs/dropdown/useDropdown.js.map +1 -1
  259. package/dist-cjs/dropdown/useDropdownBase.js +3 -5
  260. package/dist-cjs/dropdown/useDropdownBase.js.map +1 -1
  261. package/dist-cjs/editable-label/EditableLabel.js +23 -19
  262. package/dist-cjs/editable-label/EditableLabel.js.map +1 -1
  263. package/dist-cjs/form-field-context-legacy/FormFieldLegacyContext.js +0 -2
  264. package/dist-cjs/form-field-context-legacy/FormFieldLegacyContext.js.map +1 -1
  265. package/dist-cjs/form-field-context-legacy/useFormFieldLegacyProps.js +0 -2
  266. package/dist-cjs/form-field-context-legacy/useFormFieldLegacyProps.js.map +1 -1
  267. package/dist-cjs/form-field-legacy/FormActivationIndicator.js +29 -38
  268. package/dist-cjs/form-field-legacy/FormActivationIndicator.js.map +1 -1
  269. package/dist-cjs/form-field-legacy/FormFieldLegacy.js +53 -44
  270. package/dist-cjs/form-field-legacy/FormFieldLegacy.js.map +1 -1
  271. package/dist-cjs/form-field-legacy/FormHelperText.js +1 -7
  272. package/dist-cjs/form-field-legacy/FormHelperText.js.map +1 -1
  273. package/dist-cjs/form-field-legacy/FormLabel.js +34 -24
  274. package/dist-cjs/form-field-legacy/FormLabel.js.map +1 -1
  275. package/dist-cjs/form-field-legacy/NecessityIndicator.js +9 -8
  276. package/dist-cjs/form-field-legacy/NecessityIndicator.js.map +1 -1
  277. package/dist-cjs/form-field-legacy/StatusIndicator.js +22 -18
  278. package/dist-cjs/form-field-legacy/StatusIndicator.js.map +1 -1
  279. package/dist-cjs/form-field-legacy/constant.js +0 -2
  280. package/dist-cjs/form-field-legacy/constant.js.map +1 -1
  281. package/dist-cjs/form-group/FormGroup.js +8 -7
  282. package/dist-cjs/form-group/FormGroup.js.map +1 -1
  283. package/dist-cjs/formatted-input/FormattedInput.js +13 -12
  284. package/dist-cjs/formatted-input/FormattedInput.js.map +1 -1
  285. package/dist-cjs/formatted-input/internal/InputWithMask.js +13 -14
  286. package/dist-cjs/formatted-input/internal/InputWithMask.js.map +1 -1
  287. package/dist-cjs/index.js +33 -24
  288. package/dist-cjs/index.js.map +1 -1
  289. package/dist-cjs/input-legacy/InputLegacy.js +48 -47
  290. package/dist-cjs/input-legacy/InputLegacy.js.map +1 -1
  291. package/dist-cjs/input-legacy/StaticInputAdornment.js +1 -8
  292. package/dist-cjs/input-legacy/StaticInputAdornment.js.map +1 -1
  293. package/dist-cjs/input-legacy/useCursorOnFocus.js +0 -2
  294. package/dist-cjs/input-legacy/useCursorOnFocus.js.map +1 -1
  295. package/dist-cjs/layer-layout/LayerLayout.js +34 -30
  296. package/dist-cjs/layer-layout/LayerLayout.js.map +1 -1
  297. package/dist-cjs/list/Highlighter.js +9 -11
  298. package/dist-cjs/list/Highlighter.js.map +1 -1
  299. package/dist-cjs/list/List.js +61 -63
  300. package/dist-cjs/list/List.js.map +1 -1
  301. package/dist-cjs/list/ListItem.js +29 -28
  302. package/dist-cjs/list/ListItem.js.map +1 -1
  303. package/dist-cjs/list/ListItemGroup.js +0 -2
  304. package/dist-cjs/list/ListItemGroup.js.map +1 -1
  305. package/dist-cjs/list/ListItemHeader.js +0 -2
  306. package/dist-cjs/list/ListItemHeader.js.map +1 -1
  307. package/dist-cjs/list/VirtualizedList.js +52 -48
  308. package/dist-cjs/list/VirtualizedList.js.map +1 -1
  309. package/dist-cjs/list/keyset.js +0 -2
  310. package/dist-cjs/list/keyset.js.map +1 -1
  311. package/dist-cjs/list/useList.js +3 -2
  312. package/dist-cjs/list/useList.js.map +1 -1
  313. package/dist-cjs/list/useListHeight.js +4 -4
  314. package/dist-cjs/list/useListHeight.js.map +1 -1
  315. package/dist-cjs/list/useVirtualization.js +0 -2
  316. package/dist-cjs/list/useVirtualization.js.map +1 -1
  317. package/dist-cjs/list-deprecated/List.js +6 -14
  318. package/dist-cjs/list-deprecated/List.js.map +1 -1
  319. package/dist-cjs/list-deprecated/ListBase.js +99 -87
  320. package/dist-cjs/list-deprecated/ListBase.js.map +1 -1
  321. package/dist-cjs/list-deprecated/ListItem.js +1 -8
  322. package/dist-cjs/list-deprecated/ListItem.js.map +1 -1
  323. package/dist-cjs/list-deprecated/ListItemBase.js +10 -14
  324. package/dist-cjs/list-deprecated/ListItemBase.js.map +1 -1
  325. package/dist-cjs/list-deprecated/ListItemContext.js +0 -2
  326. package/dist-cjs/list-deprecated/ListItemContext.js.map +1 -1
  327. package/dist-cjs/list-deprecated/ListStateContext.js +0 -2
  328. package/dist-cjs/list-deprecated/ListStateContext.js.map +1 -1
  329. package/dist-cjs/list-deprecated/internal/DescendantContext.js +1 -6
  330. package/dist-cjs/list-deprecated/internal/DescendantContext.js.map +1 -1
  331. package/dist-cjs/list-deprecated/internal/Highlighter.js +4 -11
  332. package/dist-cjs/list-deprecated/internal/Highlighter.js.map +1 -1
  333. package/dist-cjs/list-deprecated/internal/calcPreferredListHeight.js +2 -3
  334. package/dist-cjs/list-deprecated/internal/calcPreferredListHeight.js.map +1 -1
  335. package/dist-cjs/list-deprecated/internal/helpers.js +0 -2
  336. package/dist-cjs/list-deprecated/internal/helpers.js.map +1 -1
  337. package/dist-cjs/list-deprecated/internal/scrollIntoView.js +0 -2
  338. package/dist-cjs/list-deprecated/internal/scrollIntoView.js.map +1 -1
  339. package/dist-cjs/list-deprecated/internal/useListAutoSizer.js +0 -2
  340. package/dist-cjs/list-deprecated/internal/useListAutoSizer.js.map +1 -1
  341. package/dist-cjs/list-deprecated/internal/useWidth.js +0 -2
  342. package/dist-cjs/list-deprecated/internal/useWidth.js.map +1 -1
  343. package/dist-cjs/list-deprecated/itemToString.js +0 -2
  344. package/dist-cjs/list-deprecated/itemToString.js.map +1 -1
  345. package/dist-cjs/list-deprecated/useList.js +7 -9
  346. package/dist-cjs/list-deprecated/useList.js.map +1 -1
  347. package/dist-cjs/list-deprecated/useListItem.js +5 -2
  348. package/dist-cjs/list-deprecated/useListItem.js.map +1 -1
  349. package/dist-cjs/list-deprecated/useTypeSelect.js +2 -2
  350. package/dist-cjs/list-deprecated/useTypeSelect.js.map +1 -1
  351. package/dist-cjs/list-next/ListItemNext.js +25 -25
  352. package/dist-cjs/list-next/ListItemNext.js.map +1 -1
  353. package/dist-cjs/list-next/ListNext.js +5 -7
  354. package/dist-cjs/list-next/ListNext.js.map +1 -1
  355. package/dist-cjs/list-next/ListNextContext.js +0 -2
  356. package/dist-cjs/list-next/ListNextContext.js.map +1 -1
  357. package/dist-cjs/list-next/useList.js +3 -6
  358. package/dist-cjs/list-next/useList.js.map +1 -1
  359. package/dist-cjs/localization-provider/LocalizationProvider.js +48 -0
  360. package/dist-cjs/localization-provider/LocalizationProvider.js.map +1 -0
  361. package/dist-cjs/logo/Logo.js +1 -7
  362. package/dist-cjs/logo/Logo.js.map +1 -1
  363. package/dist-cjs/logo/LogoImage.js +9 -8
  364. package/dist-cjs/logo/LogoImage.js.map +1 -1
  365. package/dist-cjs/logo/LogoSeparator.js +1 -7
  366. package/dist-cjs/logo/LogoSeparator.js.map +1 -1
  367. package/dist-cjs/menu-button/MenuButton.js +21 -17
  368. package/dist-cjs/menu-button/MenuButton.js.map +1 -1
  369. package/dist-cjs/menu-button/MenuButtonTrigger.js +21 -17
  370. package/dist-cjs/menu-button/MenuButtonTrigger.js.map +1 -1
  371. package/dist-cjs/metric/Metric.js +5 -7
  372. package/dist-cjs/metric/Metric.js.map +1 -1
  373. package/dist-cjs/metric/MetricContent.js +32 -30
  374. package/dist-cjs/metric/MetricContent.js.map +1 -1
  375. package/dist-cjs/metric/MetricHeader.js +20 -26
  376. package/dist-cjs/metric/MetricHeader.js.map +1 -1
  377. package/dist-cjs/metric/internal/MetricContext.js +0 -2
  378. package/dist-cjs/metric/internal/MetricContext.js.map +1 -1
  379. package/dist-cjs/overlay/OverlayHeader.css.js +6 -0
  380. package/dist-cjs/overlay/OverlayHeader.css.js.map +1 -0
  381. package/dist-cjs/overlay/OverlayHeader.js +35 -0
  382. package/dist-cjs/overlay/OverlayHeader.js.map +1 -0
  383. package/dist-cjs/portal/Portal.js +3 -10
  384. package/dist-cjs/portal/Portal.js.map +1 -1
  385. package/dist-cjs/query-input/QueryInput.js +21 -19
  386. package/dist-cjs/query-input/QueryInput.js.map +1 -1
  387. package/dist-cjs/query-input/internal/CategoryList.js +8 -17
  388. package/dist-cjs/query-input/internal/CategoryList.js.map +1 -1
  389. package/dist-cjs/query-input/internal/CategoryListContext.js +0 -2
  390. package/dist-cjs/query-input/internal/CategoryListContext.js.map +1 -1
  391. package/dist-cjs/query-input/internal/CategoryListItem.js +9 -32
  392. package/dist-cjs/query-input/internal/CategoryListItem.js.map +1 -1
  393. package/dist-cjs/query-input/internal/QueryInputBody.js +16 -24
  394. package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
  395. package/dist-cjs/query-input/internal/SearchList.js +21 -28
  396. package/dist-cjs/query-input/internal/SearchList.js.map +1 -1
  397. package/dist-cjs/query-input/internal/ValueList.js +18 -25
  398. package/dist-cjs/query-input/internal/ValueList.js.map +1 -1
  399. package/dist-cjs/query-input/internal/ValueSelector.js +42 -37
  400. package/dist-cjs/query-input/internal/ValueSelector.js.map +1 -1
  401. package/dist-cjs/query-input/internal/usePopperStatus.js +0 -2
  402. package/dist-cjs/query-input/internal/usePopperStatus.js.map +1 -1
  403. package/dist-cjs/query-input/useQueryInput.js +0 -2
  404. package/dist-cjs/query-input/useQueryInput.js.map +1 -1
  405. package/dist-cjs/responsive/OverflowReducer.js +7 -9
  406. package/dist-cjs/responsive/OverflowReducer.js.map +1 -1
  407. package/dist-cjs/responsive/overflowUtils.js +0 -2
  408. package/dist-cjs/responsive/overflowUtils.js.map +1 -1
  409. package/dist-cjs/responsive/useDynamicCollapse.js +0 -2
  410. package/dist-cjs/responsive/useDynamicCollapse.js.map +1 -1
  411. package/dist-cjs/responsive/useInstantCollapse.js +1 -4
  412. package/dist-cjs/responsive/useInstantCollapse.js.map +1 -1
  413. package/dist-cjs/responsive/useOverflow.js +0 -2
  414. package/dist-cjs/responsive/useOverflow.js.map +1 -1
  415. package/dist-cjs/responsive/useOverflowCollectionItems.js +1 -4
  416. package/dist-cjs/responsive/useOverflowCollectionItems.js.map +1 -1
  417. package/dist-cjs/responsive/useOverflowLayout.js +4 -7
  418. package/dist-cjs/responsive/useOverflowLayout.js.map +1 -1
  419. package/dist-cjs/responsive/useReclaimSpace.js +1 -4
  420. package/dist-cjs/responsive/useReclaimSpace.js.map +1 -1
  421. package/dist-cjs/responsive/useResizeObserver.js +0 -2
  422. package/dist-cjs/responsive/useResizeObserver.js.map +1 -1
  423. package/dist-cjs/responsive/useWidth.js +0 -2
  424. package/dist-cjs/responsive/useWidth.js.map +1 -1
  425. package/dist-cjs/responsive/utils.js +2 -10
  426. package/dist-cjs/responsive/utils.js.map +1 -1
  427. package/dist-cjs/search-input/SearchInput.js +27 -24
  428. package/dist-cjs/search-input/SearchInput.js.map +1 -1
  429. package/dist-cjs/skip-link/SkipLink.js +5 -6
  430. package/dist-cjs/skip-link/SkipLink.js.map +1 -1
  431. package/dist-cjs/skip-link/SkipLinks.js +1 -8
  432. package/dist-cjs/skip-link/SkipLinks.js.map +1 -1
  433. package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js +0 -2
  434. package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js.map +1 -1
  435. package/dist-cjs/slider/Slider.js +47 -41
  436. package/dist-cjs/slider/Slider.js.map +1 -1
  437. package/dist-cjs/slider/internal/SliderContext.js +0 -2
  438. package/dist-cjs/slider/internal/SliderContext.js.map +1 -1
  439. package/dist-cjs/slider/internal/SliderMarks.js +8 -10
  440. package/dist-cjs/slider/internal/SliderMarks.js.map +1 -1
  441. package/dist-cjs/slider/internal/SliderSelection.js +13 -12
  442. package/dist-cjs/slider/internal/SliderSelection.js.map +1 -1
  443. package/dist-cjs/slider/internal/SliderThumb.js +49 -45
  444. package/dist-cjs/slider/internal/SliderThumb.js.map +1 -1
  445. package/dist-cjs/slider/internal/SliderTrack.js +26 -24
  446. package/dist-cjs/slider/internal/SliderTrack.js.map +1 -1
  447. package/dist-cjs/slider/internal/useKeyDownThumb.js +1 -4
  448. package/dist-cjs/slider/internal/useKeyDownThumb.js.map +1 -1
  449. package/dist-cjs/slider/internal/utils.js +5 -12
  450. package/dist-cjs/slider/internal/utils.js.map +1 -1
  451. package/dist-cjs/static-list/StaticList.js +1 -8
  452. package/dist-cjs/static-list/StaticList.js.map +1 -1
  453. package/dist-cjs/static-list/StaticListItem.js +1 -8
  454. package/dist-cjs/static-list/StaticListItem.js.map +1 -1
  455. package/dist-cjs/static-list/StaticListItemContent.js +1 -8
  456. package/dist-cjs/static-list/StaticListItemContent.js.map +1 -1
  457. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js +1 -10
  458. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js.map +1 -1
  459. package/dist-cjs/stepped-tracker/SteppedTracker.js +6 -12
  460. package/dist-cjs/stepped-tracker/SteppedTracker.js.map +1 -1
  461. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js +2 -10
  462. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js.map +1 -1
  463. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js +1 -5
  464. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js.map +1 -1
  465. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +24 -31
  466. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
  467. package/dist-cjs/stepper-input/StepperInput.js +84 -89
  468. package/dist-cjs/stepper-input/StepperInput.js.map +1 -1
  469. package/dist-cjs/stepper-input/internal/useActivateWhileMouseDown.js +2 -6
  470. package/dist-cjs/stepper-input/internal/useActivateWhileMouseDown.js.map +1 -1
  471. package/dist-cjs/stepper-input/internal/useInterval.js +0 -2
  472. package/dist-cjs/stepper-input/internal/useInterval.js.map +1 -1
  473. package/dist-cjs/stepper-input/internal/utils.js +5 -12
  474. package/dist-cjs/stepper-input/internal/utils.js.map +1 -1
  475. package/dist-cjs/stepper-input/useStepperInput.js +6 -14
  476. package/dist-cjs/stepper-input/useStepperInput.js.map +1 -1
  477. package/dist-cjs/system-status/SystemStatus.css.js +1 -1
  478. package/dist-cjs/system-status/SystemStatus.js +13 -15
  479. package/dist-cjs/system-status/SystemStatus.js.map +1 -1
  480. package/dist-cjs/system-status/SystemStatusActions.js +1 -7
  481. package/dist-cjs/system-status/SystemStatusActions.js.map +1 -1
  482. package/dist-cjs/system-status/SystemStatusContent.js +1 -7
  483. package/dist-cjs/system-status/SystemStatusContent.js.map +1 -1
  484. package/dist-cjs/tabs/Tab.js +74 -57
  485. package/dist-cjs/tabs/Tab.js.map +1 -1
  486. package/dist-cjs/tabs/TabActivationIndicator.js +1 -10
  487. package/dist-cjs/tabs/TabActivationIndicator.js.map +1 -1
  488. package/dist-cjs/tabs/TabPanel.js +11 -10
  489. package/dist-cjs/tabs/TabPanel.js.map +1 -1
  490. package/dist-cjs/tabs/Tabs.js +21 -17
  491. package/dist-cjs/tabs/Tabs.js.map +1 -1
  492. package/dist-cjs/tabs/Tabstrip.js +86 -72
  493. package/dist-cjs/tabs/Tabstrip.js.map +1 -1
  494. package/dist-cjs/tabs/drag-drop/Draggable.js +5 -6
  495. package/dist-cjs/tabs/drag-drop/Draggable.js.map +1 -1
  496. package/dist-cjs/tabs/drag-drop/drag-utils.js +1 -4
  497. package/dist-cjs/tabs/drag-drop/drag-utils.js.map +1 -1
  498. package/dist-cjs/tabs/drag-drop/dragDropTypes.js +0 -2
  499. package/dist-cjs/tabs/drag-drop/dragDropTypes.js.map +1 -1
  500. package/dist-cjs/tabs/drag-drop/useDragDrop.js +0 -2
  501. package/dist-cjs/tabs/drag-drop/useDragDrop.js.map +1 -1
  502. package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js +9 -8
  503. package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
  504. package/dist-cjs/tabs/drag-drop/useDragSpacers.js +1 -2
  505. package/dist-cjs/tabs/drag-drop/useDragSpacers.js.map +1 -1
  506. package/dist-cjs/tabs/useActivationIndicator.js +0 -2
  507. package/dist-cjs/tabs/useActivationIndicator.js.map +1 -1
  508. package/dist-cjs/tabs/useEditableItem.js +0 -2
  509. package/dist-cjs/tabs/useEditableItem.js.map +1 -1
  510. package/dist-cjs/tabs/useItemsWithIds.js +1 -7
  511. package/dist-cjs/tabs/useItemsWithIds.js.map +1 -1
  512. package/dist-cjs/tabs/useKeyboardNavigation.js +0 -2
  513. package/dist-cjs/tabs/useKeyboardNavigation.js.map +1 -1
  514. package/dist-cjs/tabs/useSelection.js +1 -3
  515. package/dist-cjs/tabs/useSelection.js.map +1 -1
  516. package/dist-cjs/tabs/useTabs.js +3 -5
  517. package/dist-cjs/tabs/useTabs.js.map +1 -1
  518. package/dist-cjs/tabs/useTabstrip.js +3 -3
  519. package/dist-cjs/tabs/useTabstrip.js.map +1 -1
  520. package/dist-cjs/tabs-next/TabBar.css.js +6 -0
  521. package/dist-cjs/tabs-next/TabBar.css.js.map +1 -0
  522. package/dist-cjs/tabs-next/TabBar.js +41 -0
  523. package/dist-cjs/tabs-next/TabBar.js.map +1 -0
  524. package/dist-cjs/tabs-next/TabListNext.css.js +6 -0
  525. package/dist-cjs/tabs-next/TabListNext.css.js.map +1 -0
  526. package/dist-cjs/tabs-next/TabListNext.js +131 -0
  527. package/dist-cjs/tabs-next/TabListNext.js.map +1 -0
  528. package/dist-cjs/tabs-next/TabNext.css.js +1 -1
  529. package/dist-cjs/tabs-next/TabNext.js +74 -58
  530. package/dist-cjs/tabs-next/TabNext.js.map +1 -1
  531. package/dist-cjs/tabs-next/TabNextAction.js +35 -0
  532. package/dist-cjs/tabs-next/TabNextAction.js.map +1 -0
  533. package/dist-cjs/tabs-next/TabNextContext.js +15 -17
  534. package/dist-cjs/tabs-next/TabNextContext.js.map +1 -1
  535. package/dist-cjs/tabs-next/TabNextPanel.css.js +6 -0
  536. package/dist-cjs/tabs-next/TabNextPanel.css.js.map +1 -0
  537. package/dist-cjs/tabs-next/TabNextPanel.js +77 -0
  538. package/dist-cjs/tabs-next/TabNextPanel.js.map +1 -0
  539. package/dist-cjs/tabs-next/TabNextTrigger.css.js +6 -0
  540. package/dist-cjs/tabs-next/TabNextTrigger.css.js.map +1 -0
  541. package/dist-cjs/tabs-next/TabNextTrigger.js +77 -0
  542. package/dist-cjs/tabs-next/TabNextTrigger.js.map +1 -0
  543. package/dist-cjs/tabs-next/TabOverflowList.css.js +6 -0
  544. package/dist-cjs/tabs-next/TabOverflowList.css.js.map +1 -0
  545. package/dist-cjs/tabs-next/TabOverflowList.js +132 -0
  546. package/dist-cjs/tabs-next/TabOverflowList.js.map +1 -0
  547. package/dist-cjs/tabs-next/TabsNext.js +176 -0
  548. package/dist-cjs/tabs-next/TabsNext.js.map +1 -0
  549. package/dist-cjs/tabs-next/TabsNextContext.js +33 -0
  550. package/dist-cjs/tabs-next/TabsNextContext.js.map +1 -0
  551. package/dist-cjs/tabs-next/hooks/useCollection.js +91 -0
  552. package/dist-cjs/tabs-next/hooks/useCollection.js.map +1 -0
  553. package/dist-cjs/tabs-next/hooks/useFocusOutside.js +25 -0
  554. package/dist-cjs/tabs-next/hooks/useFocusOutside.js.map +1 -0
  555. package/dist-cjs/tabs-next/hooks/useOverflow.js +141 -0
  556. package/dist-cjs/tabs-next/hooks/useOverflow.js.map +1 -0
  557. package/dist-cjs/toast-group/ToastGroup.js +8 -7
  558. package/dist-cjs/toast-group/ToastGroup.js.map +1 -1
  559. package/dist-cjs/tokenized-input/TokenizedInput.js +9 -8
  560. package/dist-cjs/tokenized-input/TokenizedInput.js.map +1 -1
  561. package/dist-cjs/tokenized-input/TokenizedInputBase.js +105 -96
  562. package/dist-cjs/tokenized-input/TokenizedInputBase.js.map +1 -1
  563. package/dist-cjs/tokenized-input/internal/InputPill.js +24 -26
  564. package/dist-cjs/tokenized-input/internal/InputPill.js.map +1 -1
  565. package/dist-cjs/tokenized-input/internal/InputRuler.js +1 -7
  566. package/dist-cjs/tokenized-input/internal/InputRuler.js.map +1 -1
  567. package/dist-cjs/tokenized-input/internal/calcFirstHiddenIndex.js +0 -2
  568. package/dist-cjs/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
  569. package/dist-cjs/tokenized-input/internal/defaultItemToString.js +0 -2
  570. package/dist-cjs/tokenized-input/internal/defaultItemToString.js.map +1 -1
  571. package/dist-cjs/tokenized-input/internal/getCursorPosition.js +0 -2
  572. package/dist-cjs/tokenized-input/internal/getCursorPosition.js.map +1 -1
  573. package/dist-cjs/tokenized-input/internal/isPlainObject.js +0 -2
  574. package/dist-cjs/tokenized-input/internal/isPlainObject.js.map +1 -1
  575. package/dist-cjs/tokenized-input/internal/useResizeObserver.js +0 -2
  576. package/dist-cjs/tokenized-input/internal/useResizeObserver.js.map +1 -1
  577. package/dist-cjs/tokenized-input/internal/useWidth.js +0 -2
  578. package/dist-cjs/tokenized-input/internal/useWidth.js.map +1 -1
  579. package/dist-cjs/tokenized-input/useTokenizedInput.js +11 -7
  580. package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
  581. package/dist-cjs/tokenized-input-next/TokenizedInputNext.js +68 -58
  582. package/dist-cjs/tokenized-input-next/TokenizedInputNext.js.map +1 -1
  583. package/dist-cjs/tokenized-input-next/internal/InputPill.js +6 -12
  584. package/dist-cjs/tokenized-input-next/internal/InputPill.js.map +1 -1
  585. package/dist-cjs/tokenized-input-next/internal/calcFirstHiddenIndex.js +0 -2
  586. package/dist-cjs/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
  587. package/dist-cjs/tokenized-input-next/internal/useResizeObserver.js +0 -2
  588. package/dist-cjs/tokenized-input-next/internal/useResizeObserver.js.map +1 -1
  589. package/dist-cjs/tokenized-input-next/internal/useWidth.js +1 -3
  590. package/dist-cjs/tokenized-input-next/internal/useWidth.js.map +1 -1
  591. package/dist-cjs/tokenized-input-next/useTokenizedInputNext.js +9 -10
  592. package/dist-cjs/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
  593. package/dist-cjs/toolbar/Toolbar.js +43 -35
  594. package/dist-cjs/toolbar/Toolbar.js.map +1 -1
  595. package/dist-cjs/toolbar/ToolbarButton.js +10 -9
  596. package/dist-cjs/toolbar/ToolbarButton.js.map +1 -1
  597. package/dist-cjs/toolbar/Tooltray.js +23 -29
  598. package/dist-cjs/toolbar/Tooltray.js.map +1 -1
  599. package/dist-cjs/toolbar/internal/renderToolbarItems.js +7 -12
  600. package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
  601. package/dist-cjs/toolbar/internal/renderTrayTools.js +23 -18
  602. package/dist-cjs/toolbar/internal/renderTrayTools.js.map +1 -1
  603. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js +40 -43
  604. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  605. package/dist-cjs/toolbar/overflow-panel/OverflowSeparator.js +1 -6
  606. package/dist-cjs/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
  607. package/dist-cjs/toolbar/toolbar-field/ToolbarField.js +1 -6
  608. package/dist-cjs/toolbar/toolbar-field/ToolbarField.js.map +1 -1
  609. package/dist-cjs/toolbar/toolbar-field/useToolbarField.js +2 -4
  610. package/dist-cjs/toolbar/toolbar-field/useToolbarField.js.map +1 -1
  611. package/dist-cjs/tree/Tree.js +57 -48
  612. package/dist-cjs/tree/Tree.js.map +1 -1
  613. package/dist-cjs/tree/TreeNode.js +11 -25
  614. package/dist-cjs/tree/TreeNode.js.map +1 -1
  615. package/dist-cjs/tree/use-tree-keyboard-navigation.js +0 -2
  616. package/dist-cjs/tree/use-tree-keyboard-navigation.js.map +1 -1
  617. package/dist-cjs/tree/useTree.js +11 -6
  618. package/dist-cjs/tree/useTree.js.map +1 -1
  619. package/dist-cjs/utils/escapeRegExp.js +0 -2
  620. package/dist-cjs/utils/escapeRegExp.js.map +1 -1
  621. package/dist-cjs/utils/forwardCallbackProps.js +0 -2
  622. package/dist-cjs/utils/forwardCallbackProps.js.map +1 -1
  623. package/dist-cjs/utils/isEmail.js +0 -2
  624. package/dist-cjs/utils/isEmail.js.map +1 -1
  625. package/dist-cjs/utils/isPlainObject.js +0 -2
  626. package/dist-cjs/utils/isPlainObject.js.map +1 -1
  627. package/dist-cjs/utils/partition.js +0 -2
  628. package/dist-cjs/utils/partition.js.map +1 -1
  629. package/dist-cjs/utils/useClickOutside.js +1 -3
  630. package/dist-cjs/utils/useClickOutside.js.map +1 -1
  631. package/dist-cjs/utils/useEventCallback.js +4 -3
  632. package/dist-cjs/utils/useEventCallback.js.map +1 -1
  633. package/dist-cjs/utils/useIsViewportLargerThanBreakpoint.js +0 -2
  634. package/dist-cjs/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  635. package/dist-cjs/utils/useLayoutEffectOnce.js +0 -2
  636. package/dist-cjs/utils/useLayoutEffectOnce.js.map +1 -1
  637. package/dist-cjs/utils/useLayoutEffectSkipFirst.js +0 -2
  638. package/dist-cjs/utils/useLayoutEffectSkipFirst.js.map +1 -1
  639. package/dist-cjs/utils/useOverflowDetection.js +0 -2
  640. package/dist-cjs/utils/useOverflowDetection.js.map +1 -1
  641. package/dist-cjs/utils/useSlideSelection.js +0 -2
  642. package/dist-cjs/utils/useSlideSelection.js.map +1 -1
  643. package/dist-cjs/window/ElectronWindow.js +7 -21
  644. package/dist-cjs/window/ElectronWindow.js.map +1 -1
  645. package/dist-cjs/window/WindowContext.js +1 -7
  646. package/dist-cjs/window/WindowContext.js.map +1 -1
  647. package/dist-cjs/window/desktop-utils.js +0 -2
  648. package/dist-cjs/window/desktop-utils.js.map +1 -1
  649. package/dist-es/app-header/AppHeader.js +9 -6
  650. package/dist-es/app-header/AppHeader.js.map +1 -1
  651. package/dist-es/breadcrumbs/Breadcrumb.js +43 -41
  652. package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
  653. package/dist-es/breadcrumbs/Breadcrumbs.js +28 -31
  654. package/dist-es/breadcrumbs/Breadcrumbs.js.map +1 -1
  655. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js +19 -14
  656. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  657. package/dist-es/breadcrumbs/internal/BreadcrumbsContext.js.map +1 -1
  658. package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js +1 -3
  659. package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js.map +1 -1
  660. package/dist-es/breadcrumbs/internal/useFocusMenuRemount.js.map +1 -1
  661. package/dist-es/button-bar/ButtonBar.js +20 -25
  662. package/dist-es/button-bar/ButtonBar.js.map +1 -1
  663. package/dist-es/button-bar/OrderedButton.js +16 -13
  664. package/dist-es/button-bar/OrderedButton.js.map +1 -1
  665. package/dist-es/button-bar/internal/ButtonBarContext.js.map +1 -1
  666. package/dist-es/button-bar/internal/DescendantContext.js +1 -4
  667. package/dist-es/button-bar/internal/DescendantContext.js.map +1 -1
  668. package/dist-es/button-bar/internal/useDescendant.js.map +1 -1
  669. package/dist-es/button-bar/internal/useDescendants.js.map +1 -1
  670. package/dist-es/calendar/Calendar.js +32 -26
  671. package/dist-es/calendar/Calendar.js.map +1 -1
  672. package/dist-es/calendar/CalendarGrid.css.js +4 -0
  673. package/dist-es/calendar/CalendarGrid.css.js.map +1 -0
  674. package/dist-es/calendar/CalendarGrid.js +105 -0
  675. package/dist-es/calendar/CalendarGrid.js.map +1 -0
  676. package/dist-es/calendar/CalendarNavigation.js +240 -213
  677. package/dist-es/calendar/CalendarNavigation.js.map +1 -1
  678. package/dist-es/calendar/CalendarWeekHeader.js +29 -16
  679. package/dist-es/calendar/CalendarWeekHeader.js.map +1 -1
  680. package/dist-es/calendar/internal/CalendarContext.js +6 -2
  681. package/dist-es/calendar/internal/CalendarContext.js.map +1 -1
  682. package/dist-es/calendar/internal/CalendarDay.js +49 -43
  683. package/dist-es/calendar/internal/CalendarDay.js.map +1 -1
  684. package/dist-es/calendar/internal/CalendarMonth.css.js +1 -1
  685. package/dist-es/calendar/internal/CalendarMonth.js +41 -38
  686. package/dist-es/calendar/internal/CalendarMonth.js.map +1 -1
  687. package/dist-es/calendar/internal/useFocusManagement.js +15 -15
  688. package/dist-es/calendar/internal/useFocusManagement.js.map +1 -1
  689. package/dist-es/calendar/internal/utils.js +32 -45
  690. package/dist-es/calendar/internal/utils.js.map +1 -1
  691. package/dist-es/calendar/useCalendar.js +42 -33
  692. package/dist-es/calendar/useCalendar.js.map +1 -1
  693. package/dist-es/calendar/useCalendarDay.js +11 -17
  694. package/dist-es/calendar/useCalendarDay.js.map +1 -1
  695. package/dist-es/calendar/useCalendarSelection.js +42 -29
  696. package/dist-es/calendar/useCalendarSelection.js.map +1 -1
  697. package/dist-es/carousel/Carousel.js +59 -54
  698. package/dist-es/carousel/Carousel.js.map +1 -1
  699. package/dist-es/carousel/CarouselSlide.js +35 -36
  700. package/dist-es/carousel/CarouselSlide.js.map +1 -1
  701. package/dist-es/cascading-menu/CascadingMenu.js +15 -13
  702. package/dist-es/cascading-menu/CascadingMenu.js.map +1 -1
  703. package/dist-es/cascading-menu/CascadingMenuItem.js +72 -59
  704. package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
  705. package/dist-es/cascading-menu/CascadingMenuList.js +50 -41
  706. package/dist-es/cascading-menu/CascadingMenuList.js.map +1 -1
  707. package/dist-es/cascading-menu/internal/CascadingMenuAction.js.map +1 -1
  708. package/dist-es/cascading-menu/internal/keydownHandlers.js.map +1 -1
  709. package/dist-es/cascading-menu/internal/menuPositioning.js.map +1 -1
  710. package/dist-es/cascading-menu/internal/stateUtils.js +1 -0
  711. package/dist-es/cascading-menu/internal/stateUtils.js.map +1 -1
  712. package/dist-es/cascading-menu/internal/useClickAway.js +4 -1
  713. package/dist-es/cascading-menu/internal/useClickAway.js.map +1 -1
  714. package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  715. package/dist-es/cascading-menu/internal/useMountedRef.js.map +1 -1
  716. package/dist-es/cascading-menu/internal/useMouseHandlers.js +2 -3
  717. package/dist-es/cascading-menu/internal/useMouseHandlers.js.map +1 -1
  718. package/dist-es/cascading-menu/internal/useRefsManager.js.map +1 -1
  719. package/dist-es/cascading-menu/internal/useStateReducer.js.map +1 -1
  720. package/dist-es/cascading-menu/stateChangeTypes.js.map +1 -1
  721. package/dist-es/color-chooser/AlphaInputField.js +17 -13
  722. package/dist-es/color-chooser/AlphaInputField.js.map +1 -1
  723. package/dist-es/color-chooser/Color.js +1 -0
  724. package/dist-es/color-chooser/Color.js.map +1 -1
  725. package/dist-es/color-chooser/ColorChooser.js +58 -58
  726. package/dist-es/color-chooser/ColorChooser.js.map +1 -1
  727. package/dist-es/color-chooser/ColorHelpers.js +5 -9
  728. package/dist-es/color-chooser/ColorHelpers.js.map +1 -1
  729. package/dist-es/color-chooser/ColorPicker.js +33 -47
  730. package/dist-es/color-chooser/ColorPicker.js.map +1 -1
  731. package/dist-es/color-chooser/DictTabs.js +24 -21
  732. package/dist-es/color-chooser/DictTabs.js.map +1 -1
  733. package/dist-es/color-chooser/GetColorPalettes.js +1 -1
  734. package/dist-es/color-chooser/GetColorPalettes.js.map +1 -1
  735. package/dist-es/color-chooser/HexInput.js +9 -13
  736. package/dist-es/color-chooser/HexInput.js.map +1 -1
  737. package/dist-es/color-chooser/RGBAInput.js +24 -37
  738. package/dist-es/color-chooser/RGBAInput.js.map +1 -1
  739. package/dist-es/color-chooser/RGBAInputField.js +14 -10
  740. package/dist-es/color-chooser/RGBAInputField.js.map +1 -1
  741. package/dist-es/color-chooser/Swatch.js +19 -16
  742. package/dist-es/color-chooser/Swatch.js.map +1 -1
  743. package/dist-es/color-chooser/Swatches.js +27 -41
  744. package/dist-es/color-chooser/Swatches.js.map +1 -1
  745. package/dist-es/color-chooser/SwatchesPicker.js +26 -18
  746. package/dist-es/color-chooser/SwatchesPicker.js.map +1 -1
  747. package/dist-es/color-chooser/color-utils.js.map +1 -1
  748. package/dist-es/color-chooser/colorMap.js +1 -0
  749. package/dist-es/color-chooser/colorMap.js.map +1 -1
  750. package/dist-es/color-chooser/createTabsMapping.js.map +1 -1
  751. package/dist-es/combo-box/ComboBox.js +29 -23
  752. package/dist-es/combo-box/ComboBox.js.map +1 -1
  753. package/dist-es/combo-box/useCombobox.js +16 -13
  754. package/dist-es/combo-box/useCombobox.js.map +1 -1
  755. package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js +37 -31
  756. package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  757. package/dist-es/combo-box-deprecated/filterHelpers.js.map +1 -1
  758. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js +37 -35
  759. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  760. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js +37 -35
  761. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  762. package/dist-es/combo-box-deprecated/internal/getAnnouncement.js +1 -1
  763. package/dist-es/combo-box-deprecated/internal/getAnnouncement.js.map +1 -1
  764. package/dist-es/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  765. package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  766. package/dist-es/combo-box-deprecated/internal/usePopperStatus.js.map +1 -1
  767. package/dist-es/common-hooks/calcPreferredHeight.js +2 -1
  768. package/dist-es/common-hooks/calcPreferredHeight.js.map +1 -1
  769. package/dist-es/common-hooks/collectionProvider.js +1 -4
  770. package/dist-es/common-hooks/collectionProvider.js.map +1 -1
  771. package/dist-es/common-hooks/itemToString.js.map +1 -1
  772. package/dist-es/common-hooks/keyUtils.js.map +1 -1
  773. package/dist-es/common-hooks/list-dom-utils.js.map +1 -1
  774. package/dist-es/common-hooks/selectionTypes.js.map +1 -1
  775. package/dist-es/common-hooks/useAutoSizer.js.map +1 -1
  776. package/dist-es/common-hooks/useCollapsibleGroups.js.map +1 -1
  777. package/dist-es/common-hooks/useCollectionItems.js +21 -10
  778. package/dist-es/common-hooks/useCollectionItems.js.map +1 -1
  779. package/dist-es/common-hooks/useImperativeScrollingAPI.js.map +1 -1
  780. package/dist-es/common-hooks/useKeyboardNavigation.js +2 -1
  781. package/dist-es/common-hooks/useKeyboardNavigation.js.map +1 -1
  782. package/dist-es/common-hooks/useKeyboardNavigationPanel.js +3 -0
  783. package/dist-es/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
  784. package/dist-es/common-hooks/useSelection.js +3 -5
  785. package/dist-es/common-hooks/useSelection.js.map +1 -1
  786. package/dist-es/common-hooks/useTypeahead.js.map +1 -1
  787. package/dist-es/common-hooks/useViewportTracking.js.map +1 -1
  788. package/dist-es/common-hooks/utils/collection-item-utils.js +2 -2
  789. package/dist-es/common-hooks/utils/collection-item-utils.js.map +1 -1
  790. package/dist-es/common-hooks/utils/filter-utils.js.map +1 -1
  791. package/dist-es/common-hooks/utils/isSelected.js.map +1 -1
  792. package/dist-es/contact-details/ContactAction.js +9 -11
  793. package/dist-es/contact-details/ContactAction.js.map +1 -1
  794. package/dist-es/contact-details/ContactActions.js +1 -6
  795. package/dist-es/contact-details/ContactActions.js.map +1 -1
  796. package/dist-es/contact-details/ContactAvatar.js +17 -14
  797. package/dist-es/contact-details/ContactAvatar.js.map +1 -1
  798. package/dist-es/contact-details/ContactDetails.js +6 -8
  799. package/dist-es/contact-details/ContactDetails.js.map +1 -1
  800. package/dist-es/contact-details/ContactFavoriteToggle.js +13 -10
  801. package/dist-es/contact-details/ContactFavoriteToggle.js.map +1 -1
  802. package/dist-es/contact-details/ContactMetadata.js +13 -11
  803. package/dist-es/contact-details/ContactMetadata.js.map +1 -1
  804. package/dist-es/contact-details/ContactMetadataItem.js +5 -21
  805. package/dist-es/contact-details/ContactMetadataItem.js.map +1 -1
  806. package/dist-es/contact-details/ContactPrimaryInfo.js +16 -13
  807. package/dist-es/contact-details/ContactPrimaryInfo.js.map +1 -1
  808. package/dist-es/contact-details/ContactSecondaryInfo.js +16 -15
  809. package/dist-es/contact-details/ContactSecondaryInfo.js.map +1 -1
  810. package/dist-es/contact-details/ContactTertiaryInfo.js +16 -15
  811. package/dist-es/contact-details/ContactTertiaryInfo.js.map +1 -1
  812. package/dist-es/contact-details/MailLinkComponent.js +1 -10
  813. package/dist-es/contact-details/MailLinkComponent.js.map +1 -1
  814. package/dist-es/contact-details/internal/ContactDetailsContext.js.map +1 -1
  815. package/dist-es/contact-details/internal/FavoriteToggle.js +18 -15
  816. package/dist-es/contact-details/internal/FavoriteToggle.js.map +1 -1
  817. package/dist-es/contact-details/internal/FavoriteToggleWithTooltip.js +1 -9
  818. package/dist-es/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  819. package/dist-es/contact-details/internal/StarIcon.js +10 -12
  820. package/dist-es/contact-details/internal/StarIcon.js.map +1 -1
  821. package/dist-es/contact-details/internal/StarIconContainer.js +28 -22
  822. package/dist-es/contact-details/internal/StarIconContainer.js.map +1 -1
  823. package/dist-es/contact-details/internal/useComponentSize.js.map +1 -1
  824. package/dist-es/content-status/ContentStatus.js +16 -29
  825. package/dist-es/content-status/ContentStatus.js.map +1 -1
  826. package/dist-es/content-status/internal/StatusIndicator.js +30 -21
  827. package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
  828. package/dist-es/date-input/DateInput.css.js +1 -1
  829. package/dist-es/date-input/DateInputRange.js +185 -194
  830. package/dist-es/date-input/DateInputRange.js.map +1 -1
  831. package/dist-es/date-input/DateInputSingle.js +92 -105
  832. package/dist-es/date-input/DateInputSingle.js.map +1 -1
  833. package/dist-es/date-picker/DatePicker.js +15 -34
  834. package/dist-es/date-picker/DatePicker.js.map +1 -1
  835. package/dist-es/date-picker/DatePickerActions.js +16 -29
  836. package/dist-es/date-picker/DatePickerActions.js.map +1 -1
  837. package/dist-es/date-picker/DatePickerContext.js +6 -2
  838. package/dist-es/date-picker/DatePickerContext.js.map +1 -1
  839. package/dist-es/date-picker/DatePickerOverlay.js +19 -15
  840. package/dist-es/date-picker/DatePickerOverlay.js.map +1 -1
  841. package/dist-es/date-picker/DatePickerOverlayProvider.js +24 -14
  842. package/dist-es/date-picker/DatePickerOverlayProvider.js.map +1 -1
  843. package/dist-es/date-picker/DatePickerRangeInput.js +99 -46
  844. package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -1
  845. package/dist-es/date-picker/DatePickerRangePanel.js +67 -90
  846. package/dist-es/date-picker/DatePickerRangePanel.js.map +1 -1
  847. package/dist-es/date-picker/DatePickerSingleInput.js +122 -77
  848. package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -1
  849. package/dist-es/date-picker/DatePickerSinglePanel.js +35 -62
  850. package/dist-es/date-picker/DatePickerSinglePanel.js.map +1 -1
  851. package/dist-es/date-picker/DatePickerTrigger.js +30 -0
  852. package/dist-es/date-picker/DatePickerTrigger.js.map +1 -0
  853. package/dist-es/date-picker/useDatePicker.js +61 -111
  854. package/dist-es/date-picker/useDatePicker.js.map +1 -1
  855. package/dist-es/deck-item/DeckItem.js +21 -16
  856. package/dist-es/deck-item/DeckItem.js.map +1 -1
  857. package/dist-es/deck-layout/DeckLayout.js +34 -25
  858. package/dist-es/deck-layout/DeckLayout.js.map +1 -1
  859. package/dist-es/dialog/DialogHeader.css.js +4 -0
  860. package/dist-es/dialog/DialogHeader.css.js.map +1 -0
  861. package/dist-es/dialog/DialogHeader.js +61 -0
  862. package/dist-es/dialog/DialogHeader.js.map +1 -0
  863. package/dist-es/dropdown/Dropdown.js +28 -22
  864. package/dist-es/dropdown/Dropdown.js.map +1 -1
  865. package/dist-es/dropdown/DropdownBase.js +29 -27
  866. package/dist-es/dropdown/DropdownBase.js.map +1 -1
  867. package/dist-es/dropdown/DropdownButton.js +40 -34
  868. package/dist-es/dropdown/DropdownButton.js.map +1 -1
  869. package/dist-es/dropdown/useClickAway.js.map +1 -1
  870. package/dist-es/dropdown/useDropdown.js +2 -2
  871. package/dist-es/dropdown/useDropdown.js.map +1 -1
  872. package/dist-es/dropdown/useDropdownBase.js +3 -3
  873. package/dist-es/dropdown/useDropdownBase.js.map +1 -1
  874. package/dist-es/editable-label/EditableLabel.js +23 -17
  875. package/dist-es/editable-label/EditableLabel.js.map +1 -1
  876. package/dist-es/form-field-context-legacy/FormFieldLegacyContext.js.map +1 -1
  877. package/dist-es/form-field-context-legacy/useFormFieldLegacyProps.js.map +1 -1
  878. package/dist-es/form-field-legacy/FormActivationIndicator.js +29 -36
  879. package/dist-es/form-field-legacy/FormActivationIndicator.js.map +1 -1
  880. package/dist-es/form-field-legacy/FormFieldLegacy.js +53 -42
  881. package/dist-es/form-field-legacy/FormFieldLegacy.js.map +1 -1
  882. package/dist-es/form-field-legacy/FormHelperText.js +1 -5
  883. package/dist-es/form-field-legacy/FormHelperText.js.map +1 -1
  884. package/dist-es/form-field-legacy/FormLabel.js +34 -22
  885. package/dist-es/form-field-legacy/FormLabel.js.map +1 -1
  886. package/dist-es/form-field-legacy/NecessityIndicator.js +9 -6
  887. package/dist-es/form-field-legacy/NecessityIndicator.js.map +1 -1
  888. package/dist-es/form-field-legacy/StatusIndicator.js +22 -16
  889. package/dist-es/form-field-legacy/StatusIndicator.js.map +1 -1
  890. package/dist-es/form-group/FormGroup.js +8 -5
  891. package/dist-es/form-group/FormGroup.js.map +1 -1
  892. package/dist-es/formatted-input/FormattedInput.js +13 -10
  893. package/dist-es/formatted-input/FormattedInput.js.map +1 -1
  894. package/dist-es/formatted-input/internal/InputWithMask.js +13 -12
  895. package/dist-es/formatted-input/internal/InputWithMask.js.map +1 -1
  896. package/dist-es/index.js +15 -8
  897. package/dist-es/index.js.map +1 -1
  898. package/dist-es/input-legacy/InputLegacy.js +48 -45
  899. package/dist-es/input-legacy/InputLegacy.js.map +1 -1
  900. package/dist-es/input-legacy/StaticInputAdornment.js +1 -6
  901. package/dist-es/input-legacy/StaticInputAdornment.js.map +1 -1
  902. package/dist-es/input-legacy/useCursorOnFocus.js.map +1 -1
  903. package/dist-es/layer-layout/LayerLayout.js +34 -28
  904. package/dist-es/layer-layout/LayerLayout.js.map +1 -1
  905. package/dist-es/list/Highlighter.js +9 -9
  906. package/dist-es/list/Highlighter.js.map +1 -1
  907. package/dist-es/list/List.js +61 -61
  908. package/dist-es/list/List.js.map +1 -1
  909. package/dist-es/list/ListItem.js +29 -26
  910. package/dist-es/list/ListItem.js.map +1 -1
  911. package/dist-es/list/VirtualizedList.js +52 -46
  912. package/dist-es/list/VirtualizedList.js.map +1 -1
  913. package/dist-es/list/keyset.js.map +1 -1
  914. package/dist-es/list/useList.js +3 -0
  915. package/dist-es/list/useList.js.map +1 -1
  916. package/dist-es/list/useListHeight.js +4 -2
  917. package/dist-es/list/useListHeight.js.map +1 -1
  918. package/dist-es/list/useVirtualization.js.map +1 -1
  919. package/dist-es/list-deprecated/List.js +6 -12
  920. package/dist-es/list-deprecated/List.js.map +1 -1
  921. package/dist-es/list-deprecated/ListBase.js +99 -85
  922. package/dist-es/list-deprecated/ListBase.js.map +1 -1
  923. package/dist-es/list-deprecated/ListItem.js +1 -6
  924. package/dist-es/list-deprecated/ListItem.js.map +1 -1
  925. package/dist-es/list-deprecated/ListItemBase.js +10 -12
  926. package/dist-es/list-deprecated/ListItemBase.js.map +1 -1
  927. package/dist-es/list-deprecated/ListItemContext.js.map +1 -1
  928. package/dist-es/list-deprecated/ListStateContext.js.map +1 -1
  929. package/dist-es/list-deprecated/internal/DescendantContext.js +1 -4
  930. package/dist-es/list-deprecated/internal/DescendantContext.js.map +1 -1
  931. package/dist-es/list-deprecated/internal/Highlighter.js +4 -9
  932. package/dist-es/list-deprecated/internal/Highlighter.js.map +1 -1
  933. package/dist-es/list-deprecated/internal/calcPreferredListHeight.js +2 -1
  934. package/dist-es/list-deprecated/internal/calcPreferredListHeight.js.map +1 -1
  935. package/dist-es/list-deprecated/internal/scrollIntoView.js.map +1 -1
  936. package/dist-es/list-deprecated/internal/useListAutoSizer.js.map +1 -1
  937. package/dist-es/list-deprecated/internal/useWidth.js.map +1 -1
  938. package/dist-es/list-deprecated/itemToString.js.map +1 -1
  939. package/dist-es/list-deprecated/useList.js +7 -7
  940. package/dist-es/list-deprecated/useList.js.map +1 -1
  941. package/dist-es/list-deprecated/useListItem.js +5 -0
  942. package/dist-es/list-deprecated/useListItem.js.map +1 -1
  943. package/dist-es/list-deprecated/useTypeSelect.js +2 -0
  944. package/dist-es/list-deprecated/useTypeSelect.js.map +1 -1
  945. package/dist-es/list-next/ListItemNext.js +25 -23
  946. package/dist-es/list-next/ListItemNext.js.map +1 -1
  947. package/dist-es/list-next/ListNext.js +5 -5
  948. package/dist-es/list-next/ListNext.js.map +1 -1
  949. package/dist-es/list-next/ListNextContext.js.map +1 -1
  950. package/dist-es/list-next/useList.js +3 -4
  951. package/dist-es/list-next/useList.js.map +1 -1
  952. package/dist-es/localization-provider/LocalizationProvider.js +44 -0
  953. package/dist-es/localization-provider/LocalizationProvider.js.map +1 -0
  954. package/dist-es/logo/Logo.js +1 -5
  955. package/dist-es/logo/Logo.js.map +1 -1
  956. package/dist-es/logo/LogoImage.js +9 -6
  957. package/dist-es/logo/LogoImage.js.map +1 -1
  958. package/dist-es/logo/LogoSeparator.js +1 -5
  959. package/dist-es/logo/LogoSeparator.js.map +1 -1
  960. package/dist-es/menu-button/MenuButton.js +21 -15
  961. package/dist-es/menu-button/MenuButton.js.map +1 -1
  962. package/dist-es/menu-button/MenuButtonTrigger.js +21 -15
  963. package/dist-es/menu-button/MenuButtonTrigger.js.map +1 -1
  964. package/dist-es/metric/Metric.js +5 -5
  965. package/dist-es/metric/Metric.js.map +1 -1
  966. package/dist-es/metric/MetricContent.js +32 -28
  967. package/dist-es/metric/MetricContent.js.map +1 -1
  968. package/dist-es/metric/MetricHeader.js +20 -24
  969. package/dist-es/metric/MetricHeader.js.map +1 -1
  970. package/dist-es/metric/internal/MetricContext.js.map +1 -1
  971. package/dist-es/overlay/OverlayHeader.css.js +4 -0
  972. package/dist-es/overlay/OverlayHeader.css.js.map +1 -0
  973. package/dist-es/overlay/OverlayHeader.js +33 -0
  974. package/dist-es/overlay/OverlayHeader.js.map +1 -0
  975. package/dist-es/portal/Portal.js +3 -8
  976. package/dist-es/portal/Portal.js.map +1 -1
  977. package/dist-es/query-input/QueryInput.js +21 -17
  978. package/dist-es/query-input/QueryInput.js.map +1 -1
  979. package/dist-es/query-input/internal/CategoryList.js +8 -15
  980. package/dist-es/query-input/internal/CategoryList.js.map +1 -1
  981. package/dist-es/query-input/internal/CategoryListContext.js.map +1 -1
  982. package/dist-es/query-input/internal/CategoryListItem.js +9 -30
  983. package/dist-es/query-input/internal/CategoryListItem.js.map +1 -1
  984. package/dist-es/query-input/internal/QueryInputBody.js +16 -22
  985. package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
  986. package/dist-es/query-input/internal/SearchList.js +21 -26
  987. package/dist-es/query-input/internal/SearchList.js.map +1 -1
  988. package/dist-es/query-input/internal/ValueList.js +18 -23
  989. package/dist-es/query-input/internal/ValueList.js.map +1 -1
  990. package/dist-es/query-input/internal/ValueSelector.js +42 -35
  991. package/dist-es/query-input/internal/ValueSelector.js.map +1 -1
  992. package/dist-es/query-input/internal/usePopperStatus.js.map +1 -1
  993. package/dist-es/query-input/useQueryInput.js.map +1 -1
  994. package/dist-es/responsive/OverflowReducer.js +7 -7
  995. package/dist-es/responsive/OverflowReducer.js.map +1 -1
  996. package/dist-es/responsive/overflowUtils.js.map +1 -1
  997. package/dist-es/responsive/useDynamicCollapse.js.map +1 -1
  998. package/dist-es/responsive/useInstantCollapse.js +1 -2
  999. package/dist-es/responsive/useInstantCollapse.js.map +1 -1
  1000. package/dist-es/responsive/useOverflow.js.map +1 -1
  1001. package/dist-es/responsive/useOverflowCollectionItems.js +1 -2
  1002. package/dist-es/responsive/useOverflowCollectionItems.js.map +1 -1
  1003. package/dist-es/responsive/useOverflowLayout.js +4 -5
  1004. package/dist-es/responsive/useOverflowLayout.js.map +1 -1
  1005. package/dist-es/responsive/useReclaimSpace.js +1 -2
  1006. package/dist-es/responsive/useReclaimSpace.js.map +1 -1
  1007. package/dist-es/responsive/useResizeObserver.js.map +1 -1
  1008. package/dist-es/responsive/useWidth.js.map +1 -1
  1009. package/dist-es/responsive/utils.js +2 -8
  1010. package/dist-es/responsive/utils.js.map +1 -1
  1011. package/dist-es/search-input/SearchInput.js +27 -22
  1012. package/dist-es/search-input/SearchInput.js.map +1 -1
  1013. package/dist-es/skip-link/SkipLink.js +5 -4
  1014. package/dist-es/skip-link/SkipLink.js.map +1 -1
  1015. package/dist-es/skip-link/SkipLinks.js +1 -6
  1016. package/dist-es/skip-link/SkipLinks.js.map +1 -1
  1017. package/dist-es/skip-link/internal/useManageFocusOnTarget.js.map +1 -1
  1018. package/dist-es/slider/Slider.js +47 -39
  1019. package/dist-es/slider/Slider.js.map +1 -1
  1020. package/dist-es/slider/internal/SliderContext.js.map +1 -1
  1021. package/dist-es/slider/internal/SliderMarks.js +8 -8
  1022. package/dist-es/slider/internal/SliderMarks.js.map +1 -1
  1023. package/dist-es/slider/internal/SliderSelection.js +13 -10
  1024. package/dist-es/slider/internal/SliderSelection.js.map +1 -1
  1025. package/dist-es/slider/internal/SliderThumb.js +49 -43
  1026. package/dist-es/slider/internal/SliderThumb.js.map +1 -1
  1027. package/dist-es/slider/internal/SliderTrack.js +26 -22
  1028. package/dist-es/slider/internal/SliderTrack.js.map +1 -1
  1029. package/dist-es/slider/internal/useKeyDownThumb.js +1 -2
  1030. package/dist-es/slider/internal/useKeyDownThumb.js.map +1 -1
  1031. package/dist-es/slider/internal/utils.js +5 -10
  1032. package/dist-es/slider/internal/utils.js.map +1 -1
  1033. package/dist-es/static-list/StaticList.js +1 -6
  1034. package/dist-es/static-list/StaticList.js.map +1 -1
  1035. package/dist-es/static-list/StaticListItem.js +1 -6
  1036. package/dist-es/static-list/StaticListItem.js.map +1 -1
  1037. package/dist-es/static-list/StaticListItemContent.js +1 -6
  1038. package/dist-es/static-list/StaticListItemContent.js.map +1 -1
  1039. package/dist-es/stepped-tracker/StepLabel/StepLabel.js +1 -8
  1040. package/dist-es/stepped-tracker/StepLabel/StepLabel.js.map +1 -1
  1041. package/dist-es/stepped-tracker/SteppedTracker.js +6 -10
  1042. package/dist-es/stepped-tracker/SteppedTracker.js.map +1 -1
  1043. package/dist-es/stepped-tracker/SteppedTrackerContext.js +2 -8
  1044. package/dist-es/stepped-tracker/SteppedTrackerContext.js.map +1 -1
  1045. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js +1 -3
  1046. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js.map +1 -1
  1047. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +24 -29
  1048. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
  1049. package/dist-es/stepper-input/StepperInput.js +84 -87
  1050. package/dist-es/stepper-input/StepperInput.js.map +1 -1
  1051. package/dist-es/stepper-input/internal/useActivateWhileMouseDown.js +2 -4
  1052. package/dist-es/stepper-input/internal/useActivateWhileMouseDown.js.map +1 -1
  1053. package/dist-es/stepper-input/internal/useInterval.js.map +1 -1
  1054. package/dist-es/stepper-input/internal/utils.js +5 -10
  1055. package/dist-es/stepper-input/internal/utils.js.map +1 -1
  1056. package/dist-es/stepper-input/useStepperInput.js +6 -12
  1057. package/dist-es/stepper-input/useStepperInput.js.map +1 -1
  1058. package/dist-es/system-status/SystemStatus.css.js +1 -1
  1059. package/dist-es/system-status/SystemStatus.js +13 -13
  1060. package/dist-es/system-status/SystemStatus.js.map +1 -1
  1061. package/dist-es/system-status/SystemStatusActions.js +1 -5
  1062. package/dist-es/system-status/SystemStatusActions.js.map +1 -1
  1063. package/dist-es/system-status/SystemStatusContent.js +1 -5
  1064. package/dist-es/system-status/SystemStatusContent.js.map +1 -1
  1065. package/dist-es/tabs/Tab.js +74 -55
  1066. package/dist-es/tabs/Tab.js.map +1 -1
  1067. package/dist-es/tabs/TabActivationIndicator.js +1 -8
  1068. package/dist-es/tabs/TabActivationIndicator.js.map +1 -1
  1069. package/dist-es/tabs/TabPanel.js +11 -8
  1070. package/dist-es/tabs/TabPanel.js.map +1 -1
  1071. package/dist-es/tabs/Tabs.js +21 -15
  1072. package/dist-es/tabs/Tabs.js.map +1 -1
  1073. package/dist-es/tabs/Tabstrip.js +86 -70
  1074. package/dist-es/tabs/Tabstrip.js.map +1 -1
  1075. package/dist-es/tabs/drag-drop/Draggable.js +5 -4
  1076. package/dist-es/tabs/drag-drop/Draggable.js.map +1 -1
  1077. package/dist-es/tabs/drag-drop/drag-utils.js +1 -2
  1078. package/dist-es/tabs/drag-drop/drag-utils.js.map +1 -1
  1079. package/dist-es/tabs/drag-drop/useDragDrop.js.map +1 -1
  1080. package/dist-es/tabs/drag-drop/useDragDropNaturalMovement.js +9 -6
  1081. package/dist-es/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
  1082. package/dist-es/tabs/drag-drop/useDragSpacers.js +1 -0
  1083. package/dist-es/tabs/drag-drop/useDragSpacers.js.map +1 -1
  1084. package/dist-es/tabs/useActivationIndicator.js.map +1 -1
  1085. package/dist-es/tabs/useEditableItem.js.map +1 -1
  1086. package/dist-es/tabs/useItemsWithIds.js +1 -5
  1087. package/dist-es/tabs/useItemsWithIds.js.map +1 -1
  1088. package/dist-es/tabs/useKeyboardNavigation.js.map +1 -1
  1089. package/dist-es/tabs/useSelection.js +1 -1
  1090. package/dist-es/tabs/useSelection.js.map +1 -1
  1091. package/dist-es/tabs/useTabs.js +3 -3
  1092. package/dist-es/tabs/useTabs.js.map +1 -1
  1093. package/dist-es/tabs/useTabstrip.js +3 -1
  1094. package/dist-es/tabs/useTabstrip.js.map +1 -1
  1095. package/dist-es/tabs-next/TabBar.css.js +4 -0
  1096. package/dist-es/tabs-next/TabBar.css.js.map +1 -0
  1097. package/dist-es/tabs-next/TabBar.js +39 -0
  1098. package/dist-es/tabs-next/TabBar.js.map +1 -0
  1099. package/dist-es/tabs-next/TabListNext.css.js +4 -0
  1100. package/dist-es/tabs-next/TabListNext.css.js.map +1 -0
  1101. package/dist-es/tabs-next/TabListNext.js +129 -0
  1102. package/dist-es/tabs-next/TabListNext.js.map +1 -0
  1103. package/dist-es/tabs-next/TabNext.css.js +1 -1
  1104. package/dist-es/tabs-next/TabNext.js +77 -55
  1105. package/dist-es/tabs-next/TabNext.js.map +1 -1
  1106. package/dist-es/tabs-next/TabNextAction.js +33 -0
  1107. package/dist-es/tabs-next/TabNextAction.js.map +1 -0
  1108. package/dist-es/tabs-next/TabNextContext.js +14 -14
  1109. package/dist-es/tabs-next/TabNextContext.js.map +1 -1
  1110. package/dist-es/tabs-next/TabNextPanel.css.js +4 -0
  1111. package/dist-es/tabs-next/TabNextPanel.css.js.map +1 -0
  1112. package/dist-es/tabs-next/TabNextPanel.js +75 -0
  1113. package/dist-es/tabs-next/TabNextPanel.js.map +1 -0
  1114. package/dist-es/tabs-next/TabNextTrigger.css.js +4 -0
  1115. package/dist-es/tabs-next/TabNextTrigger.css.js.map +1 -0
  1116. package/dist-es/tabs-next/TabNextTrigger.js +75 -0
  1117. package/dist-es/tabs-next/TabNextTrigger.js.map +1 -0
  1118. package/dist-es/tabs-next/TabOverflowList.css.js +4 -0
  1119. package/dist-es/tabs-next/TabOverflowList.css.js.map +1 -0
  1120. package/dist-es/tabs-next/TabOverflowList.js +130 -0
  1121. package/dist-es/tabs-next/TabOverflowList.js.map +1 -0
  1122. package/dist-es/tabs-next/TabsNext.js +174 -0
  1123. package/dist-es/tabs-next/TabsNext.js.map +1 -0
  1124. package/dist-es/tabs-next/TabsNextContext.js +30 -0
  1125. package/dist-es/tabs-next/TabsNextContext.js.map +1 -0
  1126. package/dist-es/tabs-next/hooks/useCollection.js +89 -0
  1127. package/dist-es/tabs-next/hooks/useCollection.js.map +1 -0
  1128. package/dist-es/tabs-next/hooks/useFocusOutside.js +23 -0
  1129. package/dist-es/tabs-next/hooks/useFocusOutside.js.map +1 -0
  1130. package/dist-es/tabs-next/hooks/useOverflow.js +139 -0
  1131. package/dist-es/tabs-next/hooks/useOverflow.js.map +1 -0
  1132. package/dist-es/toast-group/ToastGroup.js +8 -5
  1133. package/dist-es/toast-group/ToastGroup.js.map +1 -1
  1134. package/dist-es/tokenized-input/TokenizedInput.js +9 -6
  1135. package/dist-es/tokenized-input/TokenizedInput.js.map +1 -1
  1136. package/dist-es/tokenized-input/TokenizedInputBase.js +104 -89
  1137. package/dist-es/tokenized-input/TokenizedInputBase.js.map +1 -1
  1138. package/dist-es/tokenized-input/internal/InputPill.js +24 -24
  1139. package/dist-es/tokenized-input/internal/InputPill.js.map +1 -1
  1140. package/dist-es/tokenized-input/internal/InputRuler.js +1 -5
  1141. package/dist-es/tokenized-input/internal/InputRuler.js.map +1 -1
  1142. package/dist-es/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
  1143. package/dist-es/tokenized-input/internal/defaultItemToString.js.map +1 -1
  1144. package/dist-es/tokenized-input/internal/getCursorPosition.js.map +1 -1
  1145. package/dist-es/tokenized-input/internal/useResizeObserver.js.map +1 -1
  1146. package/dist-es/tokenized-input/internal/useWidth.js.map +1 -1
  1147. package/dist-es/tokenized-input/useTokenizedInput.js +10 -0
  1148. package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
  1149. package/dist-es/tokenized-input-next/TokenizedInputNext.js +68 -56
  1150. package/dist-es/tokenized-input-next/TokenizedInputNext.js.map +1 -1
  1151. package/dist-es/tokenized-input-next/internal/InputPill.js +6 -10
  1152. package/dist-es/tokenized-input-next/internal/InputPill.js.map +1 -1
  1153. package/dist-es/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
  1154. package/dist-es/tokenized-input-next/internal/useResizeObserver.js.map +1 -1
  1155. package/dist-es/tokenized-input-next/internal/useWidth.js +1 -1
  1156. package/dist-es/tokenized-input-next/internal/useWidth.js.map +1 -1
  1157. package/dist-es/tokenized-input-next/useTokenizedInputNext.js +8 -3
  1158. package/dist-es/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
  1159. package/dist-es/toolbar/Toolbar.js +43 -33
  1160. package/dist-es/toolbar/Toolbar.js.map +1 -1
  1161. package/dist-es/toolbar/ToolbarButton.js +10 -7
  1162. package/dist-es/toolbar/ToolbarButton.js.map +1 -1
  1163. package/dist-es/toolbar/Tooltray.js +23 -27
  1164. package/dist-es/toolbar/Tooltray.js.map +1 -1
  1165. package/dist-es/toolbar/internal/renderToolbarItems.js +7 -10
  1166. package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
  1167. package/dist-es/toolbar/internal/renderTrayTools.js +23 -16
  1168. package/dist-es/toolbar/internal/renderTrayTools.js.map +1 -1
  1169. package/dist-es/toolbar/overflow-panel/OverflowPanel.js +40 -41
  1170. package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  1171. package/dist-es/toolbar/overflow-panel/OverflowSeparator.js +1 -4
  1172. package/dist-es/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
  1173. package/dist-es/toolbar/toolbar-field/ToolbarField.js +1 -4
  1174. package/dist-es/toolbar/toolbar-field/ToolbarField.js.map +1 -1
  1175. package/dist-es/toolbar/toolbar-field/useToolbarField.js +2 -2
  1176. package/dist-es/toolbar/toolbar-field/useToolbarField.js.map +1 -1
  1177. package/dist-es/tree/Tree.js +57 -46
  1178. package/dist-es/tree/Tree.js.map +1 -1
  1179. package/dist-es/tree/TreeNode.js +11 -23
  1180. package/dist-es/tree/TreeNode.js.map +1 -1
  1181. package/dist-es/tree/use-tree-keyboard-navigation.js.map +1 -1
  1182. package/dist-es/tree/useTree.js +11 -4
  1183. package/dist-es/tree/useTree.js.map +1 -1
  1184. package/dist-es/utils/escapeRegExp.js.map +1 -1
  1185. package/dist-es/utils/forwardCallbackProps.js.map +1 -1
  1186. package/dist-es/utils/isEmail.js.map +1 -1
  1187. package/dist-es/utils/partition.js.map +1 -1
  1188. package/dist-es/utils/useClickOutside.js +1 -1
  1189. package/dist-es/utils/useClickOutside.js.map +1 -1
  1190. package/dist-es/utils/useEventCallback.js +4 -1
  1191. package/dist-es/utils/useEventCallback.js.map +1 -1
  1192. package/dist-es/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  1193. package/dist-es/utils/useLayoutEffectOnce.js.map +1 -1
  1194. package/dist-es/utils/useLayoutEffectSkipFirst.js.map +1 -1
  1195. package/dist-es/utils/useOverflowDetection.js.map +1 -1
  1196. package/dist-es/utils/useSlideSelection.js.map +1 -1
  1197. package/dist-es/window/ElectronWindow.js +6 -14
  1198. package/dist-es/window/ElectronWindow.js.map +1 -1
  1199. package/dist-es/window/WindowContext.js +1 -5
  1200. package/dist-es/window/WindowContext.js.map +1 -1
  1201. package/dist-es/window/desktop-utils.js.map +1 -1
  1202. package/dist-types/calendar/Calendar.d.ts +11 -6
  1203. package/dist-types/calendar/CalendarGrid.d.ts +13 -0
  1204. package/dist-types/calendar/CalendarNavigation.d.ts +9 -11
  1205. package/dist-types/calendar/CalendarWeekHeader.d.ts +4 -3
  1206. package/dist-types/calendar/index.d.ts +1 -2
  1207. package/dist-types/calendar/internal/CalendarContext.d.ts +5 -6
  1208. package/dist-types/calendar/internal/CalendarDay.d.ts +6 -8
  1209. package/dist-types/calendar/internal/CalendarMonth.d.ts +5 -6
  1210. package/dist-types/calendar/internal/useFocusManagement.d.ts +3 -4
  1211. package/dist-types/calendar/internal/utils.d.ts +7 -11
  1212. package/dist-types/calendar/useCalendar.d.ts +207 -55
  1213. package/dist-types/calendar/useCalendarDay.d.ts +5 -7
  1214. package/dist-types/calendar/useCalendarSelection.d.ts +92 -58
  1215. package/dist-types/contact-details/internal/StarIcon.d.ts +1 -2
  1216. package/dist-types/contact-details/internal/StarIconContainer.d.ts +2 -2
  1217. package/dist-types/date-input/DateInputRange.d.ts +38 -56
  1218. package/dist-types/date-input/DateInputSingle.d.ts +32 -49
  1219. package/dist-types/date-input/index.d.ts +0 -1
  1220. package/dist-types/date-picker/DatePicker.d.ts +23 -5
  1221. package/dist-types/date-picker/DatePickerActions.d.ts +16 -15
  1222. package/dist-types/date-picker/DatePickerContext.d.ts +42 -59
  1223. package/dist-types/date-picker/DatePickerOverlayProvider.d.ts +10 -0
  1224. package/dist-types/date-picker/DatePickerRangeInput.d.ts +13 -3
  1225. package/dist-types/date-picker/DatePickerRangePanel.d.ts +17 -17
  1226. package/dist-types/date-picker/DatePickerSingleInput.d.ts +12 -3
  1227. package/dist-types/date-picker/DatePickerSinglePanel.d.ts +11 -11
  1228. package/dist-types/date-picker/DatePickerTrigger.d.ts +9 -0
  1229. package/dist-types/date-picker/index.d.ts +3 -2
  1230. package/dist-types/date-picker/useDatePicker.d.ts +52 -59
  1231. package/dist-types/dialog/DialogHeader.d.ts +28 -0
  1232. package/dist-types/dialog/index.d.ts +1 -0
  1233. package/dist-types/editable-label/EditableLabel.d.ts +1 -2
  1234. package/dist-types/index.d.ts +3 -0
  1235. package/dist-types/list-deprecated/internal/DescendantContext.d.ts +1 -2
  1236. package/dist-types/localization-provider/LocalizationProvider.d.ts +62 -0
  1237. package/dist-types/localization-provider/index.d.ts +1 -0
  1238. package/dist-types/overlay/OverlayHeader.d.ts +20 -0
  1239. package/dist-types/overlay/index.d.ts +1 -0
  1240. package/dist-types/responsive/overflowUtils.d.ts +1 -1
  1241. package/dist-types/tabs/drag-drop/drag-utils.d.ts +6 -6
  1242. package/dist-types/tabs-next/TabBar.d.ts +12 -0
  1243. package/dist-types/tabs-next/TabListNext.d.ts +12 -0
  1244. package/dist-types/tabs-next/TabNext.d.ts +9 -2
  1245. package/dist-types/tabs-next/TabNextAction.d.ts +4 -0
  1246. package/dist-types/tabs-next/TabNextContext.d.ts +9 -16
  1247. package/dist-types/tabs-next/TabNextPanel.d.ts +8 -0
  1248. package/dist-types/tabs-next/TabNextTrigger.d.ts +4 -0
  1249. package/dist-types/tabs-next/TabOverflowList.d.ts +11 -0
  1250. package/dist-types/tabs-next/TabsNext.d.ts +17 -0
  1251. package/dist-types/tabs-next/TabsNextContext.d.ts +21 -0
  1252. package/dist-types/tabs-next/hooks/useCollection.d.ts +18 -0
  1253. package/dist-types/tabs-next/hooks/useFocusOutside.d.ts +2 -0
  1254. package/dist-types/tabs-next/hooks/useOverflow.d.ts +11 -0
  1255. package/dist-types/tabs-next/index.d.ts +6 -1
  1256. package/package.json +18 -9
  1257. package/dist-cjs/calendar/CalendarDateGrid.css.js +0 -6
  1258. package/dist-cjs/calendar/CalendarDateGrid.css.js.map +0 -1
  1259. package/dist-cjs/calendar/CalendarDateGrid.js +0 -100
  1260. package/dist-cjs/calendar/CalendarDateGrid.js.map +0 -1
  1261. package/dist-cjs/calendar/formatDate.js +0 -56
  1262. package/dist-cjs/calendar/formatDate.js.map +0 -1
  1263. package/dist-cjs/date-input/utils.js +0 -65
  1264. package/dist-cjs/date-input/utils.js.map +0 -1
  1265. package/dist-cjs/tabs-next/OverflowMenu.js +0 -48
  1266. package/dist-cjs/tabs-next/OverflowMenu.js.map +0 -1
  1267. package/dist-cjs/tabs-next/TabstripNext.css.js +0 -6
  1268. package/dist-cjs/tabs-next/TabstripNext.css.js.map +0 -1
  1269. package/dist-cjs/tabs-next/TabstripNext.js +0 -193
  1270. package/dist-cjs/tabs-next/TabstripNext.js.map +0 -1
  1271. package/dist-es/calendar/CalendarDateGrid.css.js +0 -4
  1272. package/dist-es/calendar/CalendarDateGrid.css.js.map +0 -1
  1273. package/dist-es/calendar/CalendarDateGrid.js +0 -96
  1274. package/dist-es/calendar/CalendarDateGrid.js.map +0 -1
  1275. package/dist-es/calendar/formatDate.js +0 -51
  1276. package/dist-es/calendar/formatDate.js.map +0 -1
  1277. package/dist-es/date-input/utils.js +0 -57
  1278. package/dist-es/date-input/utils.js.map +0 -1
  1279. package/dist-es/tabs-next/OverflowMenu.js +0 -44
  1280. package/dist-es/tabs-next/OverflowMenu.js.map +0 -1
  1281. package/dist-es/tabs-next/TabstripNext.css.js +0 -4
  1282. package/dist-es/tabs-next/TabstripNext.css.js.map +0 -1
  1283. package/dist-es/tabs-next/TabstripNext.js +0 -185
  1284. package/dist-es/tabs-next/TabstripNext.js.map +0 -1
  1285. package/dist-types/calendar/CalendarDateGrid.d.ts +0 -10
  1286. package/dist-types/calendar/formatDate.d.ts +0 -14
  1287. package/dist-types/date-input/utils.d.ts +0 -43
  1288. package/dist-types/tabs-next/OverflowMenu.d.ts +0 -11
  1289. package/dist-types/tabs-next/TabstripNext.d.ts +0 -12
@@ -31,6 +31,7 @@ const CascadingMenu = forwardRef(
31
31
  tooltipLeaveDelay = 0,
32
32
  height,
33
33
  rootPlacement,
34
+ // Add this to offset x, y on popper open
34
35
  rootPlacementOffset,
35
36
  menuTriggerRef: anchorRefProp,
36
37
  open: openProp,
@@ -194,15 +195,16 @@ const CascadingMenu = forwardRef(
194
195
  setIsNavigatingWithKeyboard(false);
195
196
  }
196
197
  }, [openProp, rootPlacementOffset]);
197
- return Object.keys(menusDataById).length > 0 ? /* @__PURE__ */ jsxs(Fragment, {
198
- children: [
199
- clonedChildren || null,
200
- Object.values(state).map((menuState) => {
201
- const data = menusDataById[menuState.id];
202
- const isRoot = data.level === 0;
203
- const parentElement = isRoot ? getMenuTriggerRef() : refsManager.get(data.parentId);
204
- const isChildMenuOpen = !!state[data.level + 1];
205
- return /* @__PURE__ */ createElement(CascadingMenuList, {
198
+ return Object.keys(menusDataById).length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
199
+ clonedChildren || null,
200
+ Object.values(state).map((menuState) => {
201
+ const data = menusDataById[menuState.id];
202
+ const isRoot = data.level === 0;
203
+ const parentElement = isRoot ? getMenuTriggerRef() : refsManager.get(data.parentId);
204
+ const isChildMenuOpen = !!state[data.level + 1];
205
+ return /* @__PURE__ */ createElement(
206
+ CascadingMenuList,
207
+ {
206
208
  ...commonMenuProps,
207
209
  data,
208
210
  height,
@@ -216,10 +218,10 @@ const CascadingMenu = forwardRef(
216
218
  ref: isRoot ? ref : null,
217
219
  refsManager,
218
220
  rowHeight
219
- });
220
- })
221
- ]
222
- }) : null;
221
+ }
222
+ );
223
+ })
224
+ ] }) : null;
223
225
  }
224
226
  );
225
227
 
@@ -1 +1 @@
1
- {"version":3,"file":"CascadingMenu.js","sources":["../src/cascading-menu/CascadingMenu.tsx"],"sourcesContent":["import {\n getRefFromChildren,\n ownerWindow,\n useControlled,\n useDensity,\n useForkRef,\n usePrevious,\n} from \"@salt-ds/core\";\nimport {\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n cloneElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { useEventCallback } from \"../utils\";\n\nimport type { CascadingMenuProps, MenuDescriptor } from \"./CascadingMenuProps\";\n\nimport { CascadingMenuList } from \"./CascadingMenuList\";\nimport { CascadingMenuAction } from \"./internal/CascadingMenuAction\";\nimport { defaultGetScreenBounds } from \"./internal/menuPositioning\";\nimport { deriveFlatStateFromTree } from \"./internal/stateUtils\";\nimport { useClickAway } from \"./internal/useClickAway\";\nimport { useMenuTriggerHandlers } from \"./internal/useMenuTriggerHandlers\";\nimport { useRefsManager } from \"./internal/useRefsManager\";\nimport { useStateReducer } from \"./internal/useStateReducer\";\nimport { stateChangeTypes } from \"./stateChangeTypes\";\n\nconst defaultItemToString = (item: any) => item?.title || String(item);\n\nexport const CascadingMenu = forwardRef<HTMLDivElement, CascadingMenuProps>(\n function CascadingMenu(props, ref) {\n const {\n children,\n className,\n initialSource: initialSourceProp,\n itemToString = defaultItemToString,\n onClose,\n onItemClick,\n onOpen,\n maxWidth = 544,\n minWidth = 200,\n delay = 300,\n rowHeight,\n tooltipEnterDelay = 1500,\n tooltipLeaveDelay = 0,\n height,\n rootPlacement,\n // Add this to offset x, y on popper open\n rootPlacementOffset,\n menuTriggerRef: anchorRefProp,\n open: openProp,\n getScreenBounds = defaultGetScreenBounds,\n disableMouseOutInteractions,\n disableClickAway,\n containingDocument = globalThis.document,\n source: sourceProp,\n } = props;\n const density = useDensity();\n\n const refsManager = useRefsManager();\n const childrenRef = useRef<HTMLElement | null>(null);\n const getMenuTriggerRef = useCallback(\n (): HTMLElement | null => anchorRefProp || childrenRef.current,\n [anchorRefProp],\n );\n\n const [menuSource] = useControlled({\n controlled: sourceProp,\n default: initialSourceProp,\n name: \"CascadingMenu\",\n state: \"source\",\n });\n\n const [isNavigatingWithKeyboard, setIsNavigatingWithKeyboard] =\n useState(false);\n\n const menusDataById = useMemo(\n () => (menuSource ? deriveFlatStateFromTree(menuSource) : {}),\n [menuSource],\n );\n\n const rootMenuId = useMemo(\n () =>\n Object.keys(menusDataById).find((id) => menusDataById[id].level === 0),\n [menusDataById],\n );\n\n const stateReducer = useStateReducer(\n menusDataById,\n isNavigatingWithKeyboard,\n );\n const [state, dispatch] = useReducer(stateReducer, []);\n const rootMenuState = state[0];\n\n // Call open and close callbacks after rendering as we know for sure whether the cascading menu is open or closed\n const prevState = usePrevious(state, undefined, []);\n const prevRootMenuState = prevState?.[0];\n useEffect(() => {\n if (!!rootMenuState !== !!prevRootMenuState) {\n if (!rootMenuState) {\n onClose?.();\n } else if (rootMenuState) {\n onOpen?.();\n }\n }\n });\n\n // Controlled opening/closing of the menu\n const openCloseMenu = useCallback(\n (open: boolean) =>\n dispatch({\n type: open\n ? CascadingMenuAction.OPEN_MENU\n : CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.MOUSE_TOGGLE,\n targetId: rootMenuId!,\n }),\n [rootMenuId],\n );\n // do not re-render every time if prop does not change\n useEffect(() => {\n if (openProp !== undefined && openProp !== !!rootMenuState) {\n openCloseMenu(openProp);\n }\n });\n\n const clickAwayNodes = disableClickAway\n ? null\n : () =>\n [getMenuTriggerRef(), ...refsManager.values()].filter(\n (node) => node !== null,\n ) as HTMLElement[];\n useClickAway(\n clickAwayNodes,\n containingDocument,\n () => {\n dispatch({\n type: CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.CLICKED_AWAY,\n targetId: rootMenuId!,\n });\n },\n () => {\n setIsNavigatingWithKeyboard(false);\n },\n );\n\n const handleResize = useEventCallback(() => {\n if (rootMenuState) {\n dispatch({\n type: CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.ON_RESIZE,\n targetId: rootMenuId!,\n });\n }\n });\n\n useEffect(() => {\n const win = ownerWindow(getMenuTriggerRef());\n\n win.addEventListener(\"resize\", handleResize);\n return () => {\n win.removeEventListener(\"resize\", handleResize);\n };\n }, [getMenuTriggerRef, handleResize]);\n\n // close the menu on item click via mouse\n const onItemClickCallback = useCallback(\n (sourceItem: MenuDescriptor, event: KeyboardEvent | MouseEvent) => {\n onItemClick?.(sourceItem, event);\n\n if (!isNavigatingWithKeyboard) {\n dispatch({\n type: CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.ITEM_CLICKED,\n targetId: rootMenuId!,\n });\n }\n },\n [isNavigatingWithKeyboard, onItemClick, rootMenuId],\n );\n\n // Set up event handlers on menu trigger if passed\n const setMenuTriggerRef = useCallback((node: HTMLElement) => {\n childrenRef.current = node;\n }, []);\n const handleRef = useForkRef(\n getRefFromChildren(children),\n setMenuTriggerRef,\n );\n\n const [onMenuTriggerClick, onMenuTriggerKeydown] = useMenuTriggerHandlers({\n dispatch,\n children,\n setIsNavigatingWithKeyboard,\n openCloseMenu,\n rootMenuState,\n rootMenuId,\n menusDataById,\n });\n\n const cloneMenuChildren = (cloneChildren: ReactNode) => {\n if (isValidElement(cloneChildren)) {\n const childrenProps = {\n ...cloneChildren.props,\n };\n\n if (openProp === undefined) {\n childrenProps.onClick = onMenuTriggerClick;\n childrenProps.onKeyDown = onMenuTriggerKeydown;\n }\n\n return cloneElement(cloneChildren, {\n ref: handleRef,\n ...childrenProps,\n });\n }\n return null;\n };\n\n const clonedChildren = cloneMenuChildren(children);\n\n const commonMenuProps = {\n className,\n delay,\n itemToString,\n maxWidth,\n minWidth,\n onItemClick: onItemClickCallback,\n dispatch,\n isNavigatingWithKeyboard,\n setIsNavigatingWithKeyboard,\n menusDataById,\n tooltipEnterDelay,\n tooltipLeaveDelay,\n rootPlacement,\n rootPlacementOffset,\n getScreenBounds,\n disableMouseOutInteractions,\n };\n\n useEffect(() => {\n if (!openProp) {\n setIsNavigatingWithKeyboard(false);\n }\n }, [openProp, rootPlacementOffset]);\n\n return Object.keys(menusDataById).length > 0 ? (\n <>\n {clonedChildren || null}\n {Object.values(state).map((menuState) => {\n const data = menusDataById[menuState.id];\n\n const isRoot = data.level === 0;\n const parentElement = isRoot\n ? getMenuTriggerRef()\n : refsManager.get(data.parentId!);\n\n const isChildMenuOpen = !!state[data.level + 1];\n return (\n <CascadingMenuList\n {...commonMenuProps}\n data={data}\n height={height}\n highlightedItemIndex={menuState.highlightedItemIndex}\n isChildMenuOpen={isChildMenuOpen}\n isRoot={isRoot}\n key={`${density}${menuState.id}`}\n menuId={menuState.id}\n menuTriggerRef={getMenuTriggerRef()}\n parentElement={parentElement}\n ref={isRoot ? ref : null}\n refsManager={refsManager}\n rowHeight={rowHeight}\n />\n );\n })}\n </>\n ) : null;\n },\n);\n"],"names":["CascadingMenu"],"mappings":"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"}
1
+ {"version":3,"file":"CascadingMenu.js","sources":["../src/cascading-menu/CascadingMenu.tsx"],"sourcesContent":["import {\n getRefFromChildren,\n ownerWindow,\n useControlled,\n useDensity,\n useForkRef,\n usePrevious,\n} from \"@salt-ds/core\";\nimport {\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n cloneElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from \"react\";\nimport { useEventCallback } from \"../utils\";\n\nimport type { CascadingMenuProps, MenuDescriptor } from \"./CascadingMenuProps\";\n\nimport { CascadingMenuList } from \"./CascadingMenuList\";\nimport { CascadingMenuAction } from \"./internal/CascadingMenuAction\";\nimport { defaultGetScreenBounds } from \"./internal/menuPositioning\";\nimport { deriveFlatStateFromTree } from \"./internal/stateUtils\";\nimport { useClickAway } from \"./internal/useClickAway\";\nimport { useMenuTriggerHandlers } from \"./internal/useMenuTriggerHandlers\";\nimport { useRefsManager } from \"./internal/useRefsManager\";\nimport { useStateReducer } from \"./internal/useStateReducer\";\nimport { stateChangeTypes } from \"./stateChangeTypes\";\n\nconst defaultItemToString = (item: any) => item?.title || String(item);\n\nexport const CascadingMenu = forwardRef<HTMLDivElement, CascadingMenuProps>(\n function CascadingMenu(props, ref) {\n const {\n children,\n className,\n initialSource: initialSourceProp,\n itemToString = defaultItemToString,\n onClose,\n onItemClick,\n onOpen,\n maxWidth = 544,\n minWidth = 200,\n delay = 300,\n rowHeight,\n tooltipEnterDelay = 1500,\n tooltipLeaveDelay = 0,\n height,\n rootPlacement,\n // Add this to offset x, y on popper open\n rootPlacementOffset,\n menuTriggerRef: anchorRefProp,\n open: openProp,\n getScreenBounds = defaultGetScreenBounds,\n disableMouseOutInteractions,\n disableClickAway,\n containingDocument = globalThis.document,\n source: sourceProp,\n } = props;\n const density = useDensity();\n\n const refsManager = useRefsManager();\n const childrenRef = useRef<HTMLElement | null>(null);\n const getMenuTriggerRef = useCallback(\n (): HTMLElement | null => anchorRefProp || childrenRef.current,\n [anchorRefProp],\n );\n\n const [menuSource] = useControlled({\n controlled: sourceProp,\n default: initialSourceProp,\n name: \"CascadingMenu\",\n state: \"source\",\n });\n\n const [isNavigatingWithKeyboard, setIsNavigatingWithKeyboard] =\n useState(false);\n\n const menusDataById = useMemo(\n () => (menuSource ? deriveFlatStateFromTree(menuSource) : {}),\n [menuSource],\n );\n\n const rootMenuId = useMemo(\n () =>\n Object.keys(menusDataById).find((id) => menusDataById[id].level === 0),\n [menusDataById],\n );\n\n const stateReducer = useStateReducer(\n menusDataById,\n isNavigatingWithKeyboard,\n );\n const [state, dispatch] = useReducer(stateReducer, []);\n const rootMenuState = state[0];\n\n // Call open and close callbacks after rendering as we know for sure whether the cascading menu is open or closed\n const prevState = usePrevious(state, undefined, []);\n const prevRootMenuState = prevState?.[0];\n useEffect(() => {\n if (!!rootMenuState !== !!prevRootMenuState) {\n if (!rootMenuState) {\n onClose?.();\n } else if (rootMenuState) {\n onOpen?.();\n }\n }\n });\n\n // Controlled opening/closing of the menu\n const openCloseMenu = useCallback(\n (open: boolean) =>\n dispatch({\n type: open\n ? CascadingMenuAction.OPEN_MENU\n : CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.MOUSE_TOGGLE,\n targetId: rootMenuId!,\n }),\n [rootMenuId],\n );\n // do not re-render every time if prop does not change\n useEffect(() => {\n if (openProp !== undefined && openProp !== !!rootMenuState) {\n openCloseMenu(openProp);\n }\n });\n\n const clickAwayNodes = disableClickAway\n ? null\n : () =>\n [getMenuTriggerRef(), ...refsManager.values()].filter(\n (node) => node !== null,\n ) as HTMLElement[];\n useClickAway(\n clickAwayNodes,\n containingDocument,\n () => {\n dispatch({\n type: CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.CLICKED_AWAY,\n targetId: rootMenuId!,\n });\n },\n () => {\n setIsNavigatingWithKeyboard(false);\n },\n );\n\n const handleResize = useEventCallback(() => {\n if (rootMenuState) {\n dispatch({\n type: CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.ON_RESIZE,\n targetId: rootMenuId!,\n });\n }\n });\n\n useEffect(() => {\n const win = ownerWindow(getMenuTriggerRef());\n\n win.addEventListener(\"resize\", handleResize);\n return () => {\n win.removeEventListener(\"resize\", handleResize);\n };\n }, [getMenuTriggerRef, handleResize]);\n\n // close the menu on item click via mouse\n const onItemClickCallback = useCallback(\n (sourceItem: MenuDescriptor, event: KeyboardEvent | MouseEvent) => {\n onItemClick?.(sourceItem, event);\n\n if (!isNavigatingWithKeyboard) {\n dispatch({\n type: CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.ITEM_CLICKED,\n targetId: rootMenuId!,\n });\n }\n },\n [isNavigatingWithKeyboard, onItemClick, rootMenuId],\n );\n\n // Set up event handlers on menu trigger if passed\n const setMenuTriggerRef = useCallback((node: HTMLElement) => {\n childrenRef.current = node;\n }, []);\n const handleRef = useForkRef(\n getRefFromChildren(children),\n setMenuTriggerRef,\n );\n\n const [onMenuTriggerClick, onMenuTriggerKeydown] = useMenuTriggerHandlers({\n dispatch,\n children,\n setIsNavigatingWithKeyboard,\n openCloseMenu,\n rootMenuState,\n rootMenuId,\n menusDataById,\n });\n\n const cloneMenuChildren = (cloneChildren: ReactNode) => {\n if (isValidElement(cloneChildren)) {\n const childrenProps = {\n ...cloneChildren.props,\n };\n\n if (openProp === undefined) {\n childrenProps.onClick = onMenuTriggerClick;\n childrenProps.onKeyDown = onMenuTriggerKeydown;\n }\n\n return cloneElement(cloneChildren, {\n ref: handleRef,\n ...childrenProps,\n });\n }\n return null;\n };\n\n const clonedChildren = cloneMenuChildren(children);\n\n const commonMenuProps = {\n className,\n delay,\n itemToString,\n maxWidth,\n minWidth,\n onItemClick: onItemClickCallback,\n dispatch,\n isNavigatingWithKeyboard,\n setIsNavigatingWithKeyboard,\n menusDataById,\n tooltipEnterDelay,\n tooltipLeaveDelay,\n rootPlacement,\n rootPlacementOffset,\n getScreenBounds,\n disableMouseOutInteractions,\n };\n\n useEffect(() => {\n if (!openProp) {\n setIsNavigatingWithKeyboard(false);\n }\n }, [openProp, rootPlacementOffset]);\n\n return Object.keys(menusDataById).length > 0 ? (\n <>\n {clonedChildren || null}\n {Object.values(state).map((menuState) => {\n const data = menusDataById[menuState.id];\n\n const isRoot = data.level === 0;\n const parentElement = isRoot\n ? getMenuTriggerRef()\n : refsManager.get(data.parentId!);\n\n const isChildMenuOpen = !!state[data.level + 1];\n return (\n <CascadingMenuList\n {...commonMenuProps}\n data={data}\n height={height}\n highlightedItemIndex={menuState.highlightedItemIndex}\n isChildMenuOpen={isChildMenuOpen}\n isRoot={isRoot}\n key={`${density}${menuState.id}`}\n menuId={menuState.id}\n menuTriggerRef={getMenuTriggerRef()}\n parentElement={parentElement}\n ref={isRoot ? ref : null}\n refsManager={refsManager}\n rowHeight={rowHeight}\n />\n );\n })}\n </>\n ) : null;\n },\n);\n"],"names":["CascadingMenu"],"mappings":"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"}
@@ -17,11 +17,14 @@ const withBaseName = makePrefixer("saltMenuItem");
17
17
  const getIcon = (sourceItem, isDisabled = false) => {
18
18
  const CustomIcon = sourceItem.icon;
19
19
  if (CustomIcon) {
20
- return /* @__PURE__ */ jsx(CustomIcon, {
21
- className: clsx(withBaseName("menuItemStartAdornment"), {
22
- [withBaseName("menuItemDisabled")]: isDisabled
23
- })
24
- });
20
+ return /* @__PURE__ */ jsx(
21
+ CustomIcon,
22
+ {
23
+ className: clsx(withBaseName("menuItemStartAdornment"), {
24
+ [withBaseName("menuItemDisabled")]: isDisabled
25
+ })
26
+ }
27
+ );
25
28
  }
26
29
  return null;
27
30
  };
@@ -78,61 +81,71 @@ const DefaultMenuItem = forwardRef(
78
81
  };
79
82
  const icon = hasStartAdornment ? getIcon(sourceItem, isDisabled) : null;
80
83
  const tooltipTitle = sourceItem.tooltip || menuText;
81
- return /* @__PURE__ */ jsx(Tooltip, {
82
- disableFocusListener: true,
83
- disableHoverListener: true,
84
- enterDelay: tooltipEnterDelay,
85
- leaveDelay: tooltipLeaveDelay,
86
- placement: "top",
87
- disabled: !tooltipTitle || !hasTooltip || isChildMenuOpen,
88
- content: tooltipTitle,
89
- children: /* @__PURE__ */ jsxs(_ListItem, {
90
- ref,
91
- "aria-expanded": isChildMenuOpen || void 0,
92
- className: clsx(
93
- withBaseName(),
84
+ return /* @__PURE__ */ jsx(
85
+ Tooltip,
86
+ {
87
+ disableFocusListener: true,
88
+ disableHoverListener: true,
89
+ enterDelay: tooltipEnterDelay,
90
+ leaveDelay: tooltipLeaveDelay,
91
+ placement: "top",
92
+ disabled: !tooltipTitle || !hasTooltip || isChildMenuOpen,
93
+ content: tooltipTitle,
94
+ children: /* @__PURE__ */ jsxs(
95
+ _ListItem,
94
96
  {
95
- [withBaseName("menuItemDivider")]: divider,
96
- [withBaseName("menuItemBlurSelected")]: blurSelected,
97
- [withBaseName("menuItemSelected")]: !isDisabled && !hasSubMenu && isInteracted,
98
- ...interactionClasses,
99
- [withBaseName("menuItemWithScrollbar")]: hasScrollbar
100
- },
101
- className
102
- ),
103
- disabled: isDisabled,
104
- role: "menuitem",
105
- onClick: handleOnClick,
106
- item: sourceItem,
107
- ...restProps,
108
- children: [
109
- hasStartAdornment && /* @__PURE__ */ jsx("div", {
110
- className: withBaseName("menuItemStartAdornmentContainer"),
111
- children: icon
112
- }),
113
- /* @__PURE__ */ jsx("div", {
114
- className: clsx(withBaseName("menuItemText"), {
115
- [withBaseName("menuItemDisabled")]: isDisabled
116
- }),
117
- ref: menuTextRef,
118
- children: menuText
119
- }),
120
- hasEndAdornment && /* @__PURE__ */ jsx("div", {
121
- className: clsx(withBaseName("menuItemEndAdornmentContainer"), {
122
- [withBaseName("menuItemAdornmentHidden")]: !hasSubMenu
123
- }),
124
- children: /* @__PURE__ */ jsx(ExpandGroupIcon, {
125
- className: clsx(withBaseName("menuItemEndAdornment"), {
126
- [withBaseName("menuItemDisabled")]: isDisabled
127
- })
128
- })
129
- }),
130
- divider && /* @__PURE__ */ jsx("div", {
131
- role: "separator"
132
- })
133
- ]
134
- })
135
- });
97
+ ref,
98
+ "aria-expanded": isChildMenuOpen || void 0,
99
+ className: clsx(
100
+ withBaseName(),
101
+ {
102
+ [withBaseName("menuItemDivider")]: divider,
103
+ [withBaseName("menuItemBlurSelected")]: blurSelected,
104
+ [withBaseName("menuItemSelected")]: !isDisabled && !hasSubMenu && isInteracted,
105
+ ...interactionClasses,
106
+ [withBaseName("menuItemWithScrollbar")]: hasScrollbar
107
+ },
108
+ className
109
+ ),
110
+ disabled: isDisabled,
111
+ role: "menuitem",
112
+ onClick: handleOnClick,
113
+ item: sourceItem,
114
+ ...restProps,
115
+ children: [
116
+ hasStartAdornment && /* @__PURE__ */ jsx("div", { className: withBaseName("menuItemStartAdornmentContainer"), children: icon }),
117
+ /* @__PURE__ */ jsx(
118
+ "div",
119
+ {
120
+ className: clsx(withBaseName("menuItemText"), {
121
+ [withBaseName("menuItemDisabled")]: isDisabled
122
+ }),
123
+ ref: menuTextRef,
124
+ children: menuText
125
+ }
126
+ ),
127
+ hasEndAdornment && /* @__PURE__ */ jsx(
128
+ "div",
129
+ {
130
+ className: clsx(withBaseName("menuItemEndAdornmentContainer"), {
131
+ [withBaseName("menuItemAdornmentHidden")]: !hasSubMenu
132
+ }),
133
+ children: /* @__PURE__ */ jsx(
134
+ ExpandGroupIcon,
135
+ {
136
+ className: clsx(withBaseName("menuItemEndAdornment"), {
137
+ [withBaseName("menuItemDisabled")]: isDisabled
138
+ })
139
+ }
140
+ )
141
+ }
142
+ ),
143
+ divider && /* @__PURE__ */ jsx("div", { role: "separator" })
144
+ ]
145
+ }
146
+ )
147
+ }
148
+ );
136
149
  }
137
150
  );
138
151
 
@@ -1 +1 @@
1
- {"version":3,"file":"CascadingMenuItem.js","sources":["../src/cascading-menu/CascadingMenuItem.tsx"],"sourcesContent":["import { Tooltip, makePrefixer, useIcon } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type KeyboardEvent,\n type MouseEvent,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { ListItem, type ListItemProps } from \"../list-deprecated\";\nimport type { MenuDescriptor } from \"./CascadingMenuProps\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cascadingMenuItemCss from \"./CascadingMenuItem.css\";\n\nconst noop = () => undefined;\nconst withBaseName = makePrefixer(\"saltMenuItem\");\n\nconst getIcon = (sourceItem: MenuDescriptor, isDisabled = false) => {\n const CustomIcon = sourceItem.icon;\n if (CustomIcon) {\n return (\n <CustomIcon\n className={clsx(withBaseName(\"menuItemStartAdornment\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n />\n );\n }\n return null;\n};\n\nexport interface MenuItemProps extends ListItemProps<MenuDescriptor> {\n blurSelected: boolean;\n className?: string;\n hasEndAdornment: boolean;\n hasScrollbar: boolean;\n hasStartAdornment: boolean;\n hasSubMenu: boolean;\n isInteracted: boolean;\n isChildMenuOpen: boolean;\n isNavigatingWithKeyboard: boolean;\n itemToString: Required<ListItemProps<MenuDescriptor>>[\"itemToString\"];\n onItemClick?: (\n sourceItem: MenuDescriptor,\n event: MouseEvent | KeyboardEvent,\n ) => void;\n sourceItem: MenuDescriptor;\n tooltipEnterDelay: number;\n tooltipLeaveDelay: number;\n}\n\nexport const DefaultMenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n (props, ref) => {\n const {\n blurSelected,\n className,\n hasEndAdornment,\n hasScrollbar,\n hasStartAdornment,\n onItemClick,\n itemToString,\n isInteracted,\n isNavigatingWithKeyboard,\n isChildMenuOpen,\n hasSubMenu,\n sourceItem,\n tooltipEnterDelay,\n tooltipLeaveDelay,\n ...restProps\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cascading-menu-item\",\n css: cascadingMenuItemCss,\n window: targetWindow,\n });\n const { ExpandGroupIcon } = useIcon();\n const menuTextRef = useRef<HTMLDivElement>(null);\n const [hasTooltip, setHasTooltip] = useState(false);\n const menuText = itemToString(sourceItem);\n\n useEffect(() => {\n const element = menuTextRef.current;\n if (element) {\n if (element.offsetWidth < element.scrollWidth) {\n setHasTooltip(true);\n }\n }\n }, [menuText]);\n\n const isDisabled = sourceItem.disabled;\n const divider = sourceItem.divider;\n\n const onClick = isDisabled || hasSubMenu ? noop : onItemClick;\n\n const handleOnClick = (event: MouseEvent) => {\n if (!isDisabled && !hasSubMenu) {\n onClick?.(sourceItem, event);\n }\n };\n const interactionClasses = isNavigatingWithKeyboard\n ? {\n [withBaseName(\"menuItemKeyboardActive\")]:\n !isDisabled && isInteracted && !blurSelected,\n [withBaseName(\"menuItemKeyboardDisabled\")]:\n isDisabled && isInteracted,\n }\n : {\n [withBaseName(\"menuItemHover\")]: !isDisabled && !blurSelected,\n };\n\n const icon = hasStartAdornment ? getIcon(sourceItem, isDisabled) : null;\n const tooltipTitle = sourceItem.tooltip || menuText;\n\n return (\n <Tooltip\n disableFocusListener\n disableHoverListener\n enterDelay={tooltipEnterDelay}\n leaveDelay={tooltipLeaveDelay}\n placement=\"top\"\n disabled={!tooltipTitle || !hasTooltip || isChildMenuOpen}\n content={tooltipTitle}\n >\n <ListItem\n ref={ref}\n aria-expanded={isChildMenuOpen || undefined}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"menuItemDivider\")]: divider,\n [withBaseName(\"menuItemBlurSelected\")]: blurSelected,\n [withBaseName(\"menuItemSelected\")]:\n !isDisabled && !hasSubMenu && isInteracted,\n ...interactionClasses,\n [withBaseName(\"menuItemWithScrollbar\")]: hasScrollbar,\n },\n className,\n )}\n disabled={isDisabled}\n role=\"menuitem\"\n onClick={handleOnClick}\n item={sourceItem}\n // TODO highlightProps - see original code?\n {...restProps}\n >\n {hasStartAdornment && (\n <div className={withBaseName(\"menuItemStartAdornmentContainer\")}>\n {icon}\n </div>\n )}\n <div\n className={clsx(withBaseName(\"menuItemText\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n ref={menuTextRef}\n >\n {menuText}\n </div>\n {hasEndAdornment && (\n <div\n className={clsx(withBaseName(\"menuItemEndAdornmentContainer\"), {\n [withBaseName(\"menuItemAdornmentHidden\")]: !hasSubMenu,\n })}\n >\n <ExpandGroupIcon\n className={clsx(withBaseName(\"menuItemEndAdornment\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n />\n </div>\n )}\n {divider && <div role=\"separator\" />}\n </ListItem>\n </Tooltip>\n );\n },\n);\n"],"names":["cascadingMenuItemCss","ListItem"],"mappings":"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"}
1
+ {"version":3,"file":"CascadingMenuItem.js","sources":["../src/cascading-menu/CascadingMenuItem.tsx"],"sourcesContent":["import { Tooltip, makePrefixer, useIcon } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type KeyboardEvent,\n type MouseEvent,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { ListItem, type ListItemProps } from \"../list-deprecated\";\nimport type { MenuDescriptor } from \"./CascadingMenuProps\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cascadingMenuItemCss from \"./CascadingMenuItem.css\";\n\nconst noop = () => undefined;\nconst withBaseName = makePrefixer(\"saltMenuItem\");\n\nconst getIcon = (sourceItem: MenuDescriptor, isDisabled = false) => {\n const CustomIcon = sourceItem.icon;\n if (CustomIcon) {\n return (\n <CustomIcon\n className={clsx(withBaseName(\"menuItemStartAdornment\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n />\n );\n }\n return null;\n};\n\nexport interface MenuItemProps extends ListItemProps<MenuDescriptor> {\n blurSelected: boolean;\n className?: string;\n hasEndAdornment: boolean;\n hasScrollbar: boolean;\n hasStartAdornment: boolean;\n hasSubMenu: boolean;\n isInteracted: boolean;\n isChildMenuOpen: boolean;\n isNavigatingWithKeyboard: boolean;\n itemToString: Required<ListItemProps<MenuDescriptor>>[\"itemToString\"];\n onItemClick?: (\n sourceItem: MenuDescriptor,\n event: MouseEvent | KeyboardEvent,\n ) => void;\n sourceItem: MenuDescriptor;\n tooltipEnterDelay: number;\n tooltipLeaveDelay: number;\n}\n\nexport const DefaultMenuItem = forwardRef<HTMLDivElement, MenuItemProps>(\n (props, ref) => {\n const {\n blurSelected,\n className,\n hasEndAdornment,\n hasScrollbar,\n hasStartAdornment,\n onItemClick,\n itemToString,\n isInteracted,\n isNavigatingWithKeyboard,\n isChildMenuOpen,\n hasSubMenu,\n sourceItem,\n tooltipEnterDelay,\n tooltipLeaveDelay,\n ...restProps\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cascading-menu-item\",\n css: cascadingMenuItemCss,\n window: targetWindow,\n });\n const { ExpandGroupIcon } = useIcon();\n const menuTextRef = useRef<HTMLDivElement>(null);\n const [hasTooltip, setHasTooltip] = useState(false);\n const menuText = itemToString(sourceItem);\n\n useEffect(() => {\n const element = menuTextRef.current;\n if (element) {\n if (element.offsetWidth < element.scrollWidth) {\n setHasTooltip(true);\n }\n }\n }, [menuText]);\n\n const isDisabled = sourceItem.disabled;\n const divider = sourceItem.divider;\n\n const onClick = isDisabled || hasSubMenu ? noop : onItemClick;\n\n const handleOnClick = (event: MouseEvent) => {\n if (!isDisabled && !hasSubMenu) {\n onClick?.(sourceItem, event);\n }\n };\n const interactionClasses = isNavigatingWithKeyboard\n ? {\n [withBaseName(\"menuItemKeyboardActive\")]:\n !isDisabled && isInteracted && !blurSelected,\n [withBaseName(\"menuItemKeyboardDisabled\")]:\n isDisabled && isInteracted,\n }\n : {\n [withBaseName(\"menuItemHover\")]: !isDisabled && !blurSelected,\n };\n\n const icon = hasStartAdornment ? getIcon(sourceItem, isDisabled) : null;\n const tooltipTitle = sourceItem.tooltip || menuText;\n\n return (\n <Tooltip\n disableFocusListener\n disableHoverListener\n enterDelay={tooltipEnterDelay}\n leaveDelay={tooltipLeaveDelay}\n placement=\"top\"\n disabled={!tooltipTitle || !hasTooltip || isChildMenuOpen}\n content={tooltipTitle}\n >\n <ListItem\n ref={ref}\n aria-expanded={isChildMenuOpen || undefined}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"menuItemDivider\")]: divider,\n [withBaseName(\"menuItemBlurSelected\")]: blurSelected,\n [withBaseName(\"menuItemSelected\")]:\n !isDisabled && !hasSubMenu && isInteracted,\n ...interactionClasses,\n [withBaseName(\"menuItemWithScrollbar\")]: hasScrollbar,\n },\n className,\n )}\n disabled={isDisabled}\n role=\"menuitem\"\n onClick={handleOnClick}\n item={sourceItem}\n // TODO highlightProps - see original code?\n {...restProps}\n >\n {hasStartAdornment && (\n <div className={withBaseName(\"menuItemStartAdornmentContainer\")}>\n {icon}\n </div>\n )}\n <div\n className={clsx(withBaseName(\"menuItemText\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n ref={menuTextRef}\n >\n {menuText}\n </div>\n {hasEndAdornment && (\n <div\n className={clsx(withBaseName(\"menuItemEndAdornmentContainer\"), {\n [withBaseName(\"menuItemAdornmentHidden\")]: !hasSubMenu,\n })}\n >\n <ExpandGroupIcon\n className={clsx(withBaseName(\"menuItemEndAdornment\"), {\n [withBaseName(\"menuItemDisabled\")]: isDisabled,\n })}\n />\n </div>\n )}\n {divider && <div role=\"separator\" />}\n </ListItem>\n </Tooltip>\n );\n },\n);\n"],"names":["cascadingMenuItemCss","ListItem"],"mappings":"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"}
@@ -130,53 +130,62 @@ const CascadingMenuList = forwardRef(function CascadingMenuList2(props, ref) {
130
130
  if (parentElement === null) {
131
131
  return null;
132
132
  }
133
- return /* @__PURE__ */ jsx(Portal, {
134
- children: /* @__PURE__ */ jsx(Window, {
133
+ return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(
134
+ Window,
135
+ {
135
136
  className: `${baseClass}-popper`,
136
137
  id: menuId,
137
138
  style: {
138
- top: y != null ? y : 0,
139
- left: x != null ? x : 0,
139
+ top: y ?? 0,
140
+ left: x ?? 0,
140
141
  position: strategy
141
142
  },
142
143
  ref: floating,
143
- children: /* @__PURE__ */ jsx(List, {
144
- className: clsx(baseClass, className),
145
- height: menuContainerHeight,
146
- highlightedIndex: highlightedItemIndex === null ? -1 : highlightedItemIndex,
147
- id: menuId,
148
- itemHeight: rowHeight,
149
- itemToString,
150
- listRef: handleRef,
151
- maxWidth,
152
- minWidth,
153
- onFocus: onFocusHandler,
154
- onKeyDown: handleKeyDown,
155
- onMouseOut: disableMouseOutInteractions ? void 0 : handleMouseOut,
156
- role: "menu",
157
- width: "auto",
158
- children: data.menuItems.map((menuItem, idx) => {
159
- const isInteracted = highlightedItemIndex === idx;
160
- return /* @__PURE__ */ jsx(DefaultMenuItem, {
161
- blurSelected: !isMenuActive && isInteracted,
162
- hasEndAdornment,
163
- hasScrollbar,
164
- hasStartAdornment,
165
- hasSubMenu: hasSubMenu(menuItem),
166
- isChildMenuOpen,
167
- isInteracted,
168
- isNavigatingWithKeyboard,
169
- itemToString,
170
- onItemClick,
171
- onMouseMove: () => handleMouseMove(idx),
172
- sourceItem: menuItem,
173
- tooltipEnterDelay,
174
- tooltipLeaveDelay
175
- }, menuItem.id);
176
- })
177
- }, menuId)
178
- })
179
- });
144
+ children: /* @__PURE__ */ jsx(
145
+ List,
146
+ {
147
+ className: clsx(baseClass, className),
148
+ height: menuContainerHeight,
149
+ highlightedIndex: highlightedItemIndex === null ? -1 : highlightedItemIndex,
150
+ id: menuId,
151
+ itemHeight: rowHeight,
152
+ itemToString,
153
+ listRef: handleRef,
154
+ maxWidth,
155
+ minWidth,
156
+ onFocus: onFocusHandler,
157
+ onKeyDown: handleKeyDown,
158
+ onMouseOut: disableMouseOutInteractions ? void 0 : handleMouseOut,
159
+ role: "menu",
160
+ width: "auto",
161
+ children: data.menuItems.map((menuItem, idx) => {
162
+ const isInteracted = highlightedItemIndex === idx;
163
+ return /* @__PURE__ */ jsx(
164
+ DefaultMenuItem,
165
+ {
166
+ blurSelected: !isMenuActive && isInteracted,
167
+ hasEndAdornment,
168
+ hasScrollbar,
169
+ hasStartAdornment,
170
+ hasSubMenu: hasSubMenu(menuItem),
171
+ isChildMenuOpen,
172
+ isInteracted,
173
+ isNavigatingWithKeyboard,
174
+ itemToString,
175
+ onItemClick,
176
+ onMouseMove: () => handleMouseMove(idx),
177
+ sourceItem: menuItem,
178
+ tooltipEnterDelay,
179
+ tooltipLeaveDelay
180
+ },
181
+ menuItem.id
182
+ );
183
+ })
184
+ },
185
+ menuId
186
+ )
187
+ }
188
+ ) });
180
189
  });
181
190
 
182
191
  export { CascadingMenuList };
@@ -1 +1 @@
1
- {"version":3,"file":"CascadingMenuList.js","sources":["../src/cascading-menu/CascadingMenuList.tsx"],"sourcesContent":["import {\n type UseFloatingUIProps,\n useFloatingUI,\n useForkRef,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { forwardRef, useCallback, useEffect, useMemo, useState } from \"react\";\nimport { List, type ListProps } from \"../list-deprecated\";\nimport { Portal } from \"../portal\";\n\nimport { useWindow as usePortalWindow } from \"../window\";\nimport { DefaultMenuItem, type MenuItemProps } from \"./CascadingMenuItem\";\nimport { CascadingMenuAction } from \"./internal/CascadingMenuAction\";\nimport { getKeyDownHandlers } from \"./internal/keydownHandlers\";\nimport {\n getHeight,\n getMaxHeight,\n type screenBounds,\n} from \"./internal/menuPositioning\";\nimport { hasIcon, hasSubMenu, type menuState } from \"./internal/stateUtils\";\nimport { useMouseHandlers } from \"./internal/useMouseHandlers\";\nimport type { refsManager } from \"./internal/useRefsManager\";\nimport { stateChangeTypes } from \"./stateChangeTypes\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cascadingMenuListCss from \"./CascadingMenuList.css\";\n\nexport interface CascadingMenuListProps {\n className?: string;\n data: menuState;\n delay?: number;\n disableMouseOutInteractions?: boolean;\n // TODO any\n dispatch: (action: any) => void;\n getBoundingClientRect?: (element: HTMLElement) => DOMRect;\n getScreenBounds?: () => screenBounds;\n height?: number;\n highlightedItemIndex: number | null;\n isChildMenuOpen: boolean;\n itemToString: MenuItemProps[\"itemToString\"];\n isNavigatingWithKeyboard: boolean;\n isRoot: boolean;\n maxWidth?: ListProps[\"maxWidth\"];\n menuId: string;\n menuTriggerRef: HTMLElement | null;\n minWidth?: ListProps[\"minWidth\"];\n onItemClick?: MenuItemProps[\"onItemClick\"];\n parentElement?: HTMLElement | null;\n refsManager: refsManager;\n rootPlacement?: UseFloatingUIProps[\"placement\"];\n rootPlacementOffset?: string;\n rowHeight?: number;\n setIsNavigatingWithKeyboard: (value: boolean) => void;\n tooltipEnterDelay: number;\n tooltipLeaveDelay: number;\n}\n\nexport const CascadingMenuList = forwardRef<\n HTMLDivElement,\n CascadingMenuListProps\n>(function CascadingMenuList(props, ref) {\n const {\n className,\n maxWidth,\n minWidth,\n itemToString,\n onItemClick,\n refsManager,\n dispatch,\n rowHeight: rowHeightProp,\n isNavigatingWithKeyboard,\n data,\n tooltipEnterDelay,\n tooltipLeaveDelay,\n height: heightProp,\n isChildMenuOpen,\n isRoot,\n highlightedItemIndex,\n menuId,\n parentElement = null,\n getScreenBounds,\n disableMouseOutInteractions,\n rootPlacementOffset,\n rootPlacement = \"bottom-start\",\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cascading-menu-list\",\n css: cascadingMenuListCss,\n window: targetWindow,\n });\n\n const baseClass = \"saltCascadingMenuList\";\n\n const [menuRef, setInternalMenuRef] = useState<HTMLElement | null>(null);\n const setMenuRef = useCallback(\n (node: HTMLElement) => {\n refsManager.set(menuId, node);\n },\n [refsManager, menuId],\n );\n\n // TODO removed useCharacteristic here\n const sizeStackable = 36;\n const defaultRowHeight = sizeStackable;\n\n // TODO removed useCharacteristic here\n const spacing = 8;\n\n const isMenuActiveState = useState(true);\n const [isMenuActive, setIsMenuActive] = isMenuActiveState;\n const listRef = useForkRef<HTMLElement>(ref, setInternalMenuRef);\n const handleRef = useForkRef(setMenuRef, listRef);\n\n useEffect(() => {\n if (menuRef?.focus) {\n // timeout prevents scrolling issue by waiting a split second\n // and menu should be correctly positioned by then and\n // focusing popper content offscreen will not scroll page\n // it would be better to maybe use popper onUpdate callback\n // or some kind of polling mechanism to confirm placement is\n // correct before focus call\n const id = setTimeout(() => {\n menuRef.focus();\n });\n return () => {\n clearTimeout(id);\n };\n }\n }, [menuRef, rootPlacementOffset]);\n\n const handleKeyDown = getKeyDownHandlers(props, setIsMenuActive);\n\n const onFocusHandler = useCallback(() => {\n setIsMenuActive(true);\n // When navigating via keyboard on open highlight first time in the list\n if (isNavigatingWithKeyboard) {\n if (!highlightedItemIndex) {\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.KEYBOARD_NAV_AUTO_FOCUS,\n targetId: menuId,\n highlightedItemIndex: 0,\n });\n }\n }\n }, [\n setIsMenuActive,\n isNavigatingWithKeyboard,\n highlightedItemIndex,\n dispatch,\n menuId,\n ]);\n\n const [handleMouseMove, handleMouseOut] = useMouseHandlers(\n props,\n isMenuActiveState,\n menuRef,\n );\n\n const hasEndAdornment = useMemo(\n () => data.menuItems.some(hasSubMenu),\n [data],\n );\n const hasStartAdornment = useMemo(() => data.menuItems.some(hasIcon), [data]);\n const rowHeight = rowHeightProp != null ? rowHeightProp : defaultRowHeight;\n const maxHeight = getMaxHeight(heightProp, spacing, getScreenBounds);\n const calculatedMenuHeight = rowHeight * data.menuItems.length;\n const menuHeight = getHeight(heightProp, calculatedMenuHeight, maxHeight);\n const hasScrollbar = menuHeight >= maxHeight;\n\n // menu container size is 2px larger than the list to include the border\n const menuContainerHeight = menuHeight + 2;\n const Window = usePortalWindow();\n const { reference, floating, x, y, strategy } = useFloatingUI({\n placement: isRoot ? rootPlacement : \"right-start\",\n });\n useIsomorphicLayoutEffect(() => {\n if (parentElement) {\n reference(\n isRoot\n ? parentElement\n : parentElement.querySelector(\n `#${\n parentElement.getAttribute(\"aria-activedescendant\") as string\n }`,\n ),\n );\n }\n }, [reference, isRoot, parentElement]);\n\n if (parentElement === null) {\n return null;\n }\n\n return (\n <Portal>\n <Window\n className={`${baseClass}-popper`}\n id={menuId}\n style={{\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n }}\n ref={floating}\n >\n <List\n className={clsx(baseClass, className)}\n height={menuContainerHeight}\n highlightedIndex={\n highlightedItemIndex === null ? -1 : highlightedItemIndex\n }\n id={menuId}\n itemHeight={rowHeight}\n itemToString={itemToString}\n key={menuId}\n listRef={handleRef}\n maxWidth={maxWidth}\n minWidth={minWidth}\n onFocus={onFocusHandler}\n onKeyDown={handleKeyDown}\n onMouseOut={disableMouseOutInteractions ? undefined : handleMouseOut}\n role=\"menu\"\n width=\"auto\"\n >\n {data.menuItems.map((menuItem, idx) => {\n const isInteracted = highlightedItemIndex === idx;\n return (\n <DefaultMenuItem\n blurSelected={!isMenuActive && isInteracted}\n hasEndAdornment={hasEndAdornment}\n hasScrollbar={hasScrollbar}\n hasStartAdornment={hasStartAdornment}\n hasSubMenu={hasSubMenu(menuItem)}\n isChildMenuOpen={isChildMenuOpen}\n isInteracted={isInteracted}\n isNavigatingWithKeyboard={isNavigatingWithKeyboard}\n itemToString={itemToString}\n key={menuItem.id}\n onItemClick={onItemClick}\n onMouseMove={() => handleMouseMove(idx)}\n sourceItem={menuItem}\n tooltipEnterDelay={tooltipEnterDelay}\n tooltipLeaveDelay={tooltipLeaveDelay}\n />\n );\n })}\n </List>\n </Window>\n </Portal>\n );\n});\n"],"names":["CascadingMenuList","cascadingMenuListCss","usePortalWindow"],"mappings":"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"}
1
+ {"version":3,"file":"CascadingMenuList.js","sources":["../src/cascading-menu/CascadingMenuList.tsx"],"sourcesContent":["import {\n type UseFloatingUIProps,\n useFloatingUI,\n useForkRef,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { forwardRef, useCallback, useEffect, useMemo, useState } from \"react\";\nimport { List, type ListProps } from \"../list-deprecated\";\nimport { Portal } from \"../portal\";\n\nimport { useWindow as usePortalWindow } from \"../window\";\nimport { DefaultMenuItem, type MenuItemProps } from \"./CascadingMenuItem\";\nimport { CascadingMenuAction } from \"./internal/CascadingMenuAction\";\nimport { getKeyDownHandlers } from \"./internal/keydownHandlers\";\nimport {\n getHeight,\n getMaxHeight,\n type screenBounds,\n} from \"./internal/menuPositioning\";\nimport { hasIcon, hasSubMenu, type menuState } from \"./internal/stateUtils\";\nimport { useMouseHandlers } from \"./internal/useMouseHandlers\";\nimport type { refsManager } from \"./internal/useRefsManager\";\nimport { stateChangeTypes } from \"./stateChangeTypes\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cascadingMenuListCss from \"./CascadingMenuList.css\";\n\nexport interface CascadingMenuListProps {\n className?: string;\n data: menuState;\n delay?: number;\n disableMouseOutInteractions?: boolean;\n // TODO any\n dispatch: (action: any) => void;\n getBoundingClientRect?: (element: HTMLElement) => DOMRect;\n getScreenBounds?: () => screenBounds;\n height?: number;\n highlightedItemIndex: number | null;\n isChildMenuOpen: boolean;\n itemToString: MenuItemProps[\"itemToString\"];\n isNavigatingWithKeyboard: boolean;\n isRoot: boolean;\n maxWidth?: ListProps[\"maxWidth\"];\n menuId: string;\n menuTriggerRef: HTMLElement | null;\n minWidth?: ListProps[\"minWidth\"];\n onItemClick?: MenuItemProps[\"onItemClick\"];\n parentElement?: HTMLElement | null;\n refsManager: refsManager;\n rootPlacement?: UseFloatingUIProps[\"placement\"];\n rootPlacementOffset?: string;\n rowHeight?: number;\n setIsNavigatingWithKeyboard: (value: boolean) => void;\n tooltipEnterDelay: number;\n tooltipLeaveDelay: number;\n}\n\nexport const CascadingMenuList = forwardRef<\n HTMLDivElement,\n CascadingMenuListProps\n>(function CascadingMenuList(props, ref) {\n const {\n className,\n maxWidth,\n minWidth,\n itemToString,\n onItemClick,\n refsManager,\n dispatch,\n rowHeight: rowHeightProp,\n isNavigatingWithKeyboard,\n data,\n tooltipEnterDelay,\n tooltipLeaveDelay,\n height: heightProp,\n isChildMenuOpen,\n isRoot,\n highlightedItemIndex,\n menuId,\n parentElement = null,\n getScreenBounds,\n disableMouseOutInteractions,\n rootPlacementOffset,\n rootPlacement = \"bottom-start\",\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cascading-menu-list\",\n css: cascadingMenuListCss,\n window: targetWindow,\n });\n\n const baseClass = \"saltCascadingMenuList\";\n\n const [menuRef, setInternalMenuRef] = useState<HTMLElement | null>(null);\n const setMenuRef = useCallback(\n (node: HTMLElement) => {\n refsManager.set(menuId, node);\n },\n [refsManager, menuId],\n );\n\n // TODO removed useCharacteristic here\n const sizeStackable = 36;\n const defaultRowHeight = sizeStackable;\n\n // TODO removed useCharacteristic here\n const spacing = 8;\n\n const isMenuActiveState = useState(true);\n const [isMenuActive, setIsMenuActive] = isMenuActiveState;\n const listRef = useForkRef<HTMLElement>(ref, setInternalMenuRef);\n const handleRef = useForkRef(setMenuRef, listRef);\n\n useEffect(() => {\n if (menuRef?.focus) {\n // timeout prevents scrolling issue by waiting a split second\n // and menu should be correctly positioned by then and\n // focusing popper content offscreen will not scroll page\n // it would be better to maybe use popper onUpdate callback\n // or some kind of polling mechanism to confirm placement is\n // correct before focus call\n const id = setTimeout(() => {\n menuRef.focus();\n });\n return () => {\n clearTimeout(id);\n };\n }\n }, [menuRef, rootPlacementOffset]);\n\n const handleKeyDown = getKeyDownHandlers(props, setIsMenuActive);\n\n const onFocusHandler = useCallback(() => {\n setIsMenuActive(true);\n // When navigating via keyboard on open highlight first time in the list\n if (isNavigatingWithKeyboard) {\n if (!highlightedItemIndex) {\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.KEYBOARD_NAV_AUTO_FOCUS,\n targetId: menuId,\n highlightedItemIndex: 0,\n });\n }\n }\n }, [\n setIsMenuActive,\n isNavigatingWithKeyboard,\n highlightedItemIndex,\n dispatch,\n menuId,\n ]);\n\n const [handleMouseMove, handleMouseOut] = useMouseHandlers(\n props,\n isMenuActiveState,\n menuRef,\n );\n\n const hasEndAdornment = useMemo(\n () => data.menuItems.some(hasSubMenu),\n [data],\n );\n const hasStartAdornment = useMemo(() => data.menuItems.some(hasIcon), [data]);\n const rowHeight = rowHeightProp != null ? rowHeightProp : defaultRowHeight;\n const maxHeight = getMaxHeight(heightProp, spacing, getScreenBounds);\n const calculatedMenuHeight = rowHeight * data.menuItems.length;\n const menuHeight = getHeight(heightProp, calculatedMenuHeight, maxHeight);\n const hasScrollbar = menuHeight >= maxHeight;\n\n // menu container size is 2px larger than the list to include the border\n const menuContainerHeight = menuHeight + 2;\n const Window = usePortalWindow();\n const { reference, floating, x, y, strategy } = useFloatingUI({\n placement: isRoot ? rootPlacement : \"right-start\",\n });\n useIsomorphicLayoutEffect(() => {\n if (parentElement) {\n reference(\n isRoot\n ? parentElement\n : parentElement.querySelector(\n `#${\n parentElement.getAttribute(\"aria-activedescendant\") as string\n }`,\n ),\n );\n }\n }, [reference, isRoot, parentElement]);\n\n if (parentElement === null) {\n return null;\n }\n\n return (\n <Portal>\n <Window\n className={`${baseClass}-popper`}\n id={menuId}\n style={{\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n }}\n ref={floating}\n >\n <List\n className={clsx(baseClass, className)}\n height={menuContainerHeight}\n highlightedIndex={\n highlightedItemIndex === null ? -1 : highlightedItemIndex\n }\n id={menuId}\n itemHeight={rowHeight}\n itemToString={itemToString}\n key={menuId}\n listRef={handleRef}\n maxWidth={maxWidth}\n minWidth={minWidth}\n onFocus={onFocusHandler}\n onKeyDown={handleKeyDown}\n onMouseOut={disableMouseOutInteractions ? undefined : handleMouseOut}\n role=\"menu\"\n width=\"auto\"\n >\n {data.menuItems.map((menuItem, idx) => {\n const isInteracted = highlightedItemIndex === idx;\n return (\n <DefaultMenuItem\n blurSelected={!isMenuActive && isInteracted}\n hasEndAdornment={hasEndAdornment}\n hasScrollbar={hasScrollbar}\n hasStartAdornment={hasStartAdornment}\n hasSubMenu={hasSubMenu(menuItem)}\n isChildMenuOpen={isChildMenuOpen}\n isInteracted={isInteracted}\n isNavigatingWithKeyboard={isNavigatingWithKeyboard}\n itemToString={itemToString}\n key={menuItem.id}\n onItemClick={onItemClick}\n onMouseMove={() => handleMouseMove(idx)}\n sourceItem={menuItem}\n tooltipEnterDelay={tooltipEnterDelay}\n tooltipLeaveDelay={tooltipLeaveDelay}\n />\n );\n })}\n </List>\n </Window>\n </Portal>\n );\n});\n"],"names":["CascadingMenuList","cascadingMenuListCss","usePortalWindow"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CascadingMenuAction.js","sources":["../src/cascading-menu/internal/CascadingMenuAction.ts"],"sourcesContent":["import type { stateChangeCause } from \"../stateChangeTypes\";\n\nexport type menuActionType =\n | \"setCurrentInteractedItem\"\n | \"resetMenu\"\n | \"openMenu\"\n | \"closeMenu\"\n | \"closeCascadingMenu\"\n | \"setFlipped\";\n\nexport type menuAction = {\n type: menuActionType;\n cause: stateChangeCause;\n flipped?: boolean;\n highlightedItemIndex?: number;\n targetId: string;\n};\n\nexport const CascadingMenuAction: Record<string, menuActionType> = {\n SET_CURRENT_INTERACTED_ITEM: \"setCurrentInteractedItem\",\n RESET_MENU: \"resetMenu\",\n OPEN_MENU: \"openMenu\",\n CLOSE_MENU: \"closeMenu\",\n CLOSE_CASCADING_MENU: \"closeCascadingMenu\",\n SET_FLIPPED: \"setFlipped\",\n};\n"],"names":[],"mappings":"AAkBO,MAAM,mBAAsD,GAAA;AAAA,EACjE,2BAA6B,EAAA,0BAAA;AAAA,EAC7B,UAAY,EAAA,WAAA;AAAA,EACZ,SAAW,EAAA,UAAA;AAAA,EACX,UAAY,EAAA,WAAA;AAAA,EACZ,oBAAsB,EAAA,oBAAA;AAAA,EACtB,WAAa,EAAA,YAAA;AACf;;;;"}
1
+ {"version":3,"file":"CascadingMenuAction.js","sources":["../src/cascading-menu/internal/CascadingMenuAction.ts"],"sourcesContent":["import type { stateChangeCause } from \"../stateChangeTypes\";\n\nexport type menuActionType =\n | \"setCurrentInteractedItem\"\n | \"resetMenu\"\n | \"openMenu\"\n | \"closeMenu\"\n | \"closeCascadingMenu\"\n | \"setFlipped\";\n\nexport type menuAction = {\n type: menuActionType;\n cause: stateChangeCause;\n flipped?: boolean;\n highlightedItemIndex?: number;\n targetId: string;\n};\n\nexport const CascadingMenuAction: Record<string, menuActionType> = {\n SET_CURRENT_INTERACTED_ITEM: \"setCurrentInteractedItem\",\n RESET_MENU: \"resetMenu\",\n OPEN_MENU: \"openMenu\",\n CLOSE_MENU: \"closeMenu\",\n CLOSE_CASCADING_MENU: \"closeCascadingMenu\",\n SET_FLIPPED: \"setFlipped\",\n};\n"],"names":[],"mappings":"AAkBO,MAAM,mBAAsD,GAAA;AAAA,EACjE,2BAA6B,EAAA,0BAAA;AAAA,EAC7B,UAAY,EAAA,WAAA;AAAA,EACZ,SAAW,EAAA,UAAA;AAAA,EACX,UAAY,EAAA,WAAA;AAAA,EACZ,oBAAsB,EAAA,oBAAA;AAAA,EACtB,WAAa,EAAA;AACf;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"keydownHandlers.js","sources":["../src/cascading-menu/internal/keydownHandlers.ts"],"sourcesContent":["import type { Dispatch, KeyboardEvent, SetStateAction } from \"react\";\nimport type { CascadingMenuListProps } from \"../CascadingMenuList\";\nimport { stateChangeTypes } from \"../stateChangeTypes\";\nimport { CascadingMenuAction } from \"./CascadingMenuAction\";\nimport { hasSubMenu, isMenuItem } from \"./stateUtils\";\n\ninterface getKeyDownHandlersProps extends CascadingMenuListProps {\n keyDownHandlersOverride?: Record<string, (event: Event) => void>;\n}\n\nexport function getKeyDownHandlers(\n props: getKeyDownHandlersProps,\n setIsMenuActive: Dispatch<SetStateAction<boolean>>,\n) {\n const {\n keyDownHandlersOverride,\n onItemClick,\n dispatch,\n isNavigatingWithKeyboard,\n setIsNavigatingWithKeyboard,\n data,\n menuTriggerRef,\n highlightedItemIndex,\n menuId,\n parentElement,\n isRoot,\n } = props;\n\n const rowCount = data.menuItems.length;\n const isIndexDisabled = () =>\n highlightedItemIndex\n ? data.menuItems?.[highlightedItemIndex]?.disabled\n : false;\n\n const handlers: Record<string, (event: KeyboardEvent<HTMLElement>) => void> =\n {\n Enter(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n\n if (highlightedItemIndex === null || isIndexDisabled()) {\n return;\n }\n // If it is an actionable item -> execute action, close cascading menu and move focus to menu trigger\n const selectedItem = data.menuItems[highlightedItemIndex];\n const subMenuId = data.childMenus[highlightedItemIndex];\n if (isMenuItem(selectedItem)) {\n onItemClick?.(selectedItem, event);\n\n dispatch({\n type: CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_ENTER,\n targetId: menuId,\n });\n if (menuTriggerRef?.focus) {\n menuTriggerRef.focus();\n }\n } else if (hasSubMenu(selectedItem)) {\n setIsMenuActive(false);\n dispatch({\n type: CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_ENTER,\n targetId: subMenuId,\n });\n }\n },\n ArrowRight(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n\n // User is switching from mouse to keyboard interaction\n if (highlightedItemIndex === null && !isNavigatingWithKeyboard) {\n // Move focus to first item in the list\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_RIGHT,\n targetId: menuId,\n highlightedItemIndex: 0,\n });\n return;\n }\n\n if (highlightedItemIndex === null || isIndexDisabled()) {\n return;\n }\n\n const selectedItem = data.menuItems[highlightedItemIndex];\n const subMenuId = data.childMenus[highlightedItemIndex];\n if (hasSubMenu(selectedItem)) {\n setIsMenuActive(false);\n dispatch({\n type: CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_RIGHT,\n targetId: subMenuId,\n });\n }\n },\n \" \": (event: KeyboardEvent<HTMLElement>) => {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n\n if (highlightedItemIndex === null || isIndexDisabled()) {\n return;\n }\n\n const selectedItem = data.menuItems[highlightedItemIndex];\n const subMenuId = data.childMenus[highlightedItemIndex];\n if (isMenuItem(selectedItem)) {\n onItemClick?.(selectedItem, event);\n } else if (hasSubMenu(selectedItem)) {\n setIsMenuActive(false);\n dispatch({\n type: CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_SPACEBAR,\n targetId: subMenuId,\n });\n }\n },\n Tab() {\n // On tab close the cascading menu and focus the menu trigger so that focus event bubbling can either select\n // next element in tab order for Tab key or previous one for Tab + Shift key\n setIsNavigatingWithKeyboard(true);\n dispatch({\n type: CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_TAB,\n targetId: menuId,\n });\n if (menuTriggerRef?.focus) {\n menuTriggerRef.focus();\n }\n },\n ArrowLeft(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (parentElement && !isRoot) {\n parentElement.focus();\n dispatch({\n type: CascadingMenuAction.CLOSE_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_LEFT,\n targetId: menuId,\n });\n }\n },\n Escape(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n dispatch({\n type: CascadingMenuAction.CLOSE_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_ESCAPE,\n targetId: menuId,\n });\n\n if (parentElement) {\n parentElement.focus();\n }\n },\n ArrowDown(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n let indexAfterMovement =\n highlightedItemIndex === null ? 0 : highlightedItemIndex + 1;\n indexAfterMovement =\n indexAfterMovement > rowCount - 1 ? 0 : indexAfterMovement;\n\n // Move to next item or first item if at the end of the list\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_DOWN,\n targetId: menuId,\n highlightedItemIndex: indexAfterMovement,\n });\n },\n ArrowUp(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n let indexAfterMovement =\n highlightedItemIndex === null\n ? rowCount - 1\n : highlightedItemIndex - 1;\n indexAfterMovement =\n indexAfterMovement < 0 ? rowCount - 1 : indexAfterMovement;\n\n // Move to previous item or last item if at the start of the list\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_UP,\n targetId: menuId,\n highlightedItemIndex: indexAfterMovement,\n });\n },\n Home(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (highlightedItemIndex === 0) {\n return;\n }\n\n // Move focus to first item in the list\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_HOME,\n targetId: menuId,\n highlightedItemIndex: 0,\n });\n },\n\n End(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (highlightedItemIndex === rowCount - 1) {\n return;\n }\n\n // Move focus to last item in the list\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_ESCAPE,\n targetId: menuId,\n highlightedItemIndex: rowCount - 1,\n });\n },\n ...keyDownHandlersOverride,\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n handlers[event.key]?.(event);\n };\n\n return handleKeyDown;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keydownHandlers.js","sources":["../src/cascading-menu/internal/keydownHandlers.ts"],"sourcesContent":["import type { Dispatch, KeyboardEvent, SetStateAction } from \"react\";\nimport type { CascadingMenuListProps } from \"../CascadingMenuList\";\nimport { stateChangeTypes } from \"../stateChangeTypes\";\nimport { CascadingMenuAction } from \"./CascadingMenuAction\";\nimport { hasSubMenu, isMenuItem } from \"./stateUtils\";\n\ninterface getKeyDownHandlersProps extends CascadingMenuListProps {\n keyDownHandlersOverride?: Record<string, (event: Event) => void>;\n}\n\nexport function getKeyDownHandlers(\n props: getKeyDownHandlersProps,\n setIsMenuActive: Dispatch<SetStateAction<boolean>>,\n) {\n const {\n keyDownHandlersOverride,\n onItemClick,\n dispatch,\n isNavigatingWithKeyboard,\n setIsNavigatingWithKeyboard,\n data,\n menuTriggerRef,\n highlightedItemIndex,\n menuId,\n parentElement,\n isRoot,\n } = props;\n\n const rowCount = data.menuItems.length;\n const isIndexDisabled = () =>\n highlightedItemIndex\n ? data.menuItems?.[highlightedItemIndex]?.disabled\n : false;\n\n const handlers: Record<string, (event: KeyboardEvent<HTMLElement>) => void> =\n {\n Enter(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n\n if (highlightedItemIndex === null || isIndexDisabled()) {\n return;\n }\n // If it is an actionable item -> execute action, close cascading menu and move focus to menu trigger\n const selectedItem = data.menuItems[highlightedItemIndex];\n const subMenuId = data.childMenus[highlightedItemIndex];\n if (isMenuItem(selectedItem)) {\n onItemClick?.(selectedItem, event);\n\n dispatch({\n type: CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_ENTER,\n targetId: menuId,\n });\n if (menuTriggerRef?.focus) {\n menuTriggerRef.focus();\n }\n } else if (hasSubMenu(selectedItem)) {\n setIsMenuActive(false);\n dispatch({\n type: CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_ENTER,\n targetId: subMenuId,\n });\n }\n },\n ArrowRight(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n\n // User is switching from mouse to keyboard interaction\n if (highlightedItemIndex === null && !isNavigatingWithKeyboard) {\n // Move focus to first item in the list\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_RIGHT,\n targetId: menuId,\n highlightedItemIndex: 0,\n });\n return;\n }\n\n if (highlightedItemIndex === null || isIndexDisabled()) {\n return;\n }\n\n const selectedItem = data.menuItems[highlightedItemIndex];\n const subMenuId = data.childMenus[highlightedItemIndex];\n if (hasSubMenu(selectedItem)) {\n setIsMenuActive(false);\n dispatch({\n type: CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_RIGHT,\n targetId: subMenuId,\n });\n }\n },\n \" \": (event: KeyboardEvent<HTMLElement>) => {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n\n if (highlightedItemIndex === null || isIndexDisabled()) {\n return;\n }\n\n const selectedItem = data.menuItems[highlightedItemIndex];\n const subMenuId = data.childMenus[highlightedItemIndex];\n if (isMenuItem(selectedItem)) {\n onItemClick?.(selectedItem, event);\n } else if (hasSubMenu(selectedItem)) {\n setIsMenuActive(false);\n dispatch({\n type: CascadingMenuAction.OPEN_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_SPACEBAR,\n targetId: subMenuId,\n });\n }\n },\n Tab() {\n // On tab close the cascading menu and focus the menu trigger so that focus event bubbling can either select\n // next element in tab order for Tab key or previous one for Tab + Shift key\n setIsNavigatingWithKeyboard(true);\n dispatch({\n type: CascadingMenuAction.CLOSE_CASCADING_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_TAB,\n targetId: menuId,\n });\n if (menuTriggerRef?.focus) {\n menuTriggerRef.focus();\n }\n },\n ArrowLeft(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (parentElement && !isRoot) {\n parentElement.focus();\n dispatch({\n type: CascadingMenuAction.CLOSE_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_LEFT,\n targetId: menuId,\n });\n }\n },\n Escape(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n dispatch({\n type: CascadingMenuAction.CLOSE_MENU,\n cause: stateChangeTypes.ITEM_KEYDOWN_ESCAPE,\n targetId: menuId,\n });\n\n if (parentElement) {\n parentElement.focus();\n }\n },\n ArrowDown(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n let indexAfterMovement =\n highlightedItemIndex === null ? 0 : highlightedItemIndex + 1;\n indexAfterMovement =\n indexAfterMovement > rowCount - 1 ? 0 : indexAfterMovement;\n\n // Move to next item or first item if at the end of the list\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_DOWN,\n targetId: menuId,\n highlightedItemIndex: indexAfterMovement,\n });\n },\n ArrowUp(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n let indexAfterMovement =\n highlightedItemIndex === null\n ? rowCount - 1\n : highlightedItemIndex - 1;\n indexAfterMovement =\n indexAfterMovement < 0 ? rowCount - 1 : indexAfterMovement;\n\n // Move to previous item or last item if at the start of the list\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_ARROW_UP,\n targetId: menuId,\n highlightedItemIndex: indexAfterMovement,\n });\n },\n Home(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (highlightedItemIndex === 0) {\n return;\n }\n\n // Move focus to first item in the list\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_HOME,\n targetId: menuId,\n highlightedItemIndex: 0,\n });\n },\n\n End(event: KeyboardEvent<HTMLElement>) {\n event.preventDefault();\n setIsNavigatingWithKeyboard(true);\n if (highlightedItemIndex === rowCount - 1) {\n return;\n }\n\n // Move focus to last item in the list\n dispatch({\n type: CascadingMenuAction.SET_CURRENT_INTERACTED_ITEM,\n cause: stateChangeTypes.ITEM_KEYDOWN_ESCAPE,\n targetId: menuId,\n highlightedItemIndex: rowCount - 1,\n });\n },\n ...keyDownHandlersOverride,\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n handlers[event.key]?.(event);\n };\n\n return handleKeyDown;\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"menuPositioning.js","sources":["../src/cascading-menu/internal/menuPositioning.ts"],"sourcesContent":["export type screenBounds = {\n clientHeight: number;\n clientWidth: number;\n};\n\nexport function getMaxHeight(\n heightProp: number | undefined,\n menuMargin: number | undefined = 0,\n getScreenBounds: () => screenBounds = defaultGetScreenBounds,\n) {\n const { clientHeight } = getScreenBounds();\n\n let suggestedHeight = clientHeight - menuMargin;\n if (heightProp) {\n suggestedHeight = Math.min(heightProp, clientHeight) - menuMargin;\n }\n\n return Math.max(suggestedHeight, 0);\n}\n\nexport function getHeight(\n heightProp: number | undefined,\n calculatedMenuHeight: number,\n maxHeight: number,\n): number {\n if (heightProp) {\n return Math.min(heightProp, calculatedMenuHeight, maxHeight);\n }\n\n return Math.min(calculatedMenuHeight, maxHeight);\n}\n\nexport const defaultGetScreenBounds = (): screenBounds => {\n const { clientHeight, clientWidth } = document.documentElement;\n return { clientHeight, clientWidth };\n};\n"],"names":[],"mappings":"AAKO,SAAS,YACd,CAAA,UAAA,EACA,UAAiC,GAAA,CAAA,EACjC,kBAAsC,sBACtC,EAAA;AACA,EAAM,MAAA,EAAE,YAAa,EAAA,GAAI,eAAgB,EAAA,CAAA;AAEzC,EAAA,IAAI,kBAAkB,YAAe,GAAA,UAAA,CAAA;AACrC,EAAA,IAAI,UAAY,EAAA;AACd,IAAA,eAAA,GAAkB,IAAK,CAAA,GAAA,CAAI,UAAY,EAAA,YAAY,CAAI,GAAA,UAAA,CAAA;AAAA,GACzD;AAEA,EAAO,OAAA,IAAA,CAAK,GAAI,CAAA,eAAA,EAAiB,CAAC,CAAA,CAAA;AACpC,CAAA;AAEgB,SAAA,SAAA,CACd,UACA,EAAA,oBAAA,EACA,SACQ,EAAA;AACR,EAAA,IAAI,UAAY,EAAA;AACd,IAAA,OAAO,IAAK,CAAA,GAAA,CAAI,UAAY,EAAA,oBAAA,EAAsB,SAAS,CAAA,CAAA;AAAA,GAC7D;AAEA,EAAO,OAAA,IAAA,CAAK,GAAI,CAAA,oBAAA,EAAsB,SAAS,CAAA,CAAA;AACjD,CAAA;AAEO,MAAM,yBAAyB,MAAoB;AACxD,EAAA,MAAM,EAAE,YAAA,EAAc,WAAY,EAAA,GAAI,QAAS,CAAA,eAAA,CAAA;AAC/C,EAAO,OAAA,EAAE,cAAc,WAAY,EAAA,CAAA;AACrC;;;;"}
1
+ {"version":3,"file":"menuPositioning.js","sources":["../src/cascading-menu/internal/menuPositioning.ts"],"sourcesContent":["export type screenBounds = {\n clientHeight: number;\n clientWidth: number;\n};\n\nexport function getMaxHeight(\n heightProp: number | undefined,\n menuMargin: number | undefined = 0,\n getScreenBounds: () => screenBounds = defaultGetScreenBounds,\n) {\n const { clientHeight } = getScreenBounds();\n\n let suggestedHeight = clientHeight - menuMargin;\n if (heightProp) {\n suggestedHeight = Math.min(heightProp, clientHeight) - menuMargin;\n }\n\n return Math.max(suggestedHeight, 0);\n}\n\nexport function getHeight(\n heightProp: number | undefined,\n calculatedMenuHeight: number,\n maxHeight: number,\n): number {\n if (heightProp) {\n return Math.min(heightProp, calculatedMenuHeight, maxHeight);\n }\n\n return Math.min(calculatedMenuHeight, maxHeight);\n}\n\nexport const defaultGetScreenBounds = (): screenBounds => {\n const { clientHeight, clientWidth } = document.documentElement;\n return { clientHeight, clientWidth };\n};\n"],"names":[],"mappings":"AAKO,SAAS,YACd,CAAA,UAAA,EACA,UAAiC,GAAA,CAAA,EACjC,kBAAsC,sBACtC,EAAA;AACA,EAAM,MAAA,EAAE,YAAa,EAAA,GAAI,eAAgB,EAAA;AAEzC,EAAA,IAAI,kBAAkB,YAAe,GAAA,UAAA;AACrC,EAAA,IAAI,UAAY,EAAA;AACd,IAAA,eAAA,GAAkB,IAAK,CAAA,GAAA,CAAI,UAAY,EAAA,YAAY,CAAI,GAAA,UAAA;AAAA;AAGzD,EAAO,OAAA,IAAA,CAAK,GAAI,CAAA,eAAA,EAAiB,CAAC,CAAA;AACpC;AAEgB,SAAA,SAAA,CACd,UACA,EAAA,oBAAA,EACA,SACQ,EAAA;AACR,EAAA,IAAI,UAAY,EAAA;AACd,IAAA,OAAO,IAAK,CAAA,GAAA,CAAI,UAAY,EAAA,oBAAA,EAAsB,SAAS,CAAA;AAAA;AAG7D,EAAO,OAAA,IAAA,CAAK,GAAI,CAAA,oBAAA,EAAsB,SAAS,CAAA;AACjD;AAEO,MAAM,yBAAyB,MAAoB;AACxD,EAAA,MAAM,EAAE,YAAA,EAAc,WAAY,EAAA,GAAI,QAAS,CAAA,eAAA;AAC/C,EAAO,OAAA,EAAE,cAAc,WAAY,EAAA;AACrC;;;;"}
@@ -16,6 +16,7 @@ function deriveFlatStateFromTree(tree, parentId = null, level = 0, generatedId =
16
16
  }
17
17
  return menuStructure;
18
18
  },
19
+ // Initialize the structure with the root menu
19
20
  {
20
21
  [id]: {
21
22
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"stateUtils.js","sources":["../src/cascading-menu/internal/stateUtils.ts"],"sourcesContent":["import type { MenuDescriptor } from \"../CascadingMenuProps\";\n\nconst ID_SEPARATOR = \"-\";\n\nexport type menuState = {\n id: string;\n flipped?: boolean;\n highlightedItemIndex?: number;\n level: number;\n parentId: string | null;\n childMenus: {\n [key: number]: string;\n };\n menuItems: MenuDescriptor[];\n};\n\nexport type flattenedMenuState = {\n [key: string]: menuState;\n};\n\nexport function deriveFlatStateFromTree(\n tree: MenuDescriptor,\n parentId: string | null = null,\n level = 0,\n generatedId = \"salt-cascading-menu\",\n): flattenedMenuState {\n const { id = generatedId, menuItems = [] } = tree;\n return menuItems.reduce(\n (menuStructure, menuItem, index) => {\n if (hasSubMenu(menuItem)) {\n const generatedChildId = [generatedId, index].join(ID_SEPARATOR);\n menuStructure[id].childMenus[index] = menuItem.id || generatedChildId;\n\n const innerState = deriveFlatStateFromTree(\n menuItem,\n id,\n level + 1,\n generatedChildId,\n );\n // biome-ignore lint/performance/noAccumulatingSpread: reduce on object\n return { ...menuStructure, ...innerState };\n }\n return menuStructure;\n },\n // Initialize the structure with the root menu\n {\n [id]: {\n id,\n parentId,\n childMenus: {},\n menuItems: tree.menuItems,\n level,\n },\n } as flattenedMenuState,\n );\n}\n\nexport function hasSubMenu(item: MenuDescriptor) {\n return item != null && !!item.menuItems && item.menuItems.length > 0;\n}\n\nexport function isMenuItem(item: MenuDescriptor) {\n return item != null && !item.menuItems;\n}\n\nexport function hasIcon(item: MenuDescriptor) {\n return item != null && !!item.icon;\n}\n"],"names":[],"mappings":"AAEA,MAAM,YAAe,GAAA,GAAA,CAAA;AAkBd,SAAS,wBACd,IACA,EAAA,QAAA,GAA0B,MAC1B,KAAQ,GAAA,CAAA,EACR,cAAc,qBACM,EAAA;AACpB,EAAA,MAAM,EAAE,EAAK,GAAA,WAAA,EAAa,SAAY,GAAA,IAAO,GAAA,IAAA,CAAA;AAC7C,EAAA,OAAO,SAAU,CAAA,MAAA;AAAA,IACf,CAAC,aAAe,EAAA,QAAA,EAAU,KAAU,KAAA;AAClC,MAAI,IAAA,UAAA,CAAW,QAAQ,CAAG,EAAA;AACxB,QAAA,MAAM,mBAAmB,CAAC,WAAA,EAAa,KAAK,CAAA,CAAE,KAAK,YAAY,CAAA,CAAA;AAC/D,QAAA,aAAA,CAAc,EAAI,CAAA,CAAA,UAAA,CAAW,KAAS,CAAA,GAAA,QAAA,CAAS,EAAM,IAAA,gBAAA,CAAA;AAErD,QAAA,MAAM,UAAa,GAAA,uBAAA;AAAA,UACjB,QAAA;AAAA,UACA,EAAA;AAAA,UACA,KAAQ,GAAA,CAAA;AAAA,UACR,gBAAA;AAAA,SACF,CAAA;AAEA,QAAA,OAAO,EAAE,GAAG,aAAe,EAAA,GAAG,UAAW,EAAA,CAAA;AAAA,OAC3C;AACA,MAAO,OAAA,aAAA,CAAA;AAAA,KACT;AAAA,IAEA;AAAA,MACE,CAAC,EAAK,GAAA;AAAA,QACJ,EAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAY,EAAC;AAAA,QACb,WAAW,IAAK,CAAA,SAAA;AAAA,QAChB,KAAA;AAAA,OACF;AAAA,KACF;AAAA,GACF,CAAA;AACF,CAAA;AAEO,SAAS,WAAW,IAAsB,EAAA;AAC/C,EAAO,OAAA,IAAA,IAAQ,QAAQ,CAAC,CAAC,KAAK,SAAa,IAAA,IAAA,CAAK,UAAU,MAAS,GAAA,CAAA,CAAA;AACrE,CAAA;AAEO,SAAS,WAAW,IAAsB,EAAA;AAC/C,EAAO,OAAA,IAAA,IAAQ,IAAQ,IAAA,CAAC,IAAK,CAAA,SAAA,CAAA;AAC/B,CAAA;AAEO,SAAS,QAAQ,IAAsB,EAAA;AAC5C,EAAA,OAAO,IAAQ,IAAA,IAAA,IAAQ,CAAC,CAAC,IAAK,CAAA,IAAA,CAAA;AAChC;;;;"}
1
+ {"version":3,"file":"stateUtils.js","sources":["../src/cascading-menu/internal/stateUtils.ts"],"sourcesContent":["import type { MenuDescriptor } from \"../CascadingMenuProps\";\n\nconst ID_SEPARATOR = \"-\";\n\nexport type menuState = {\n id: string;\n flipped?: boolean;\n highlightedItemIndex?: number;\n level: number;\n parentId: string | null;\n childMenus: {\n [key: number]: string;\n };\n menuItems: MenuDescriptor[];\n};\n\nexport type flattenedMenuState = {\n [key: string]: menuState;\n};\n\nexport function deriveFlatStateFromTree(\n tree: MenuDescriptor,\n parentId: string | null = null,\n level = 0,\n generatedId = \"salt-cascading-menu\",\n): flattenedMenuState {\n const { id = generatedId, menuItems = [] } = tree;\n return menuItems.reduce(\n (menuStructure, menuItem, index) => {\n if (hasSubMenu(menuItem)) {\n const generatedChildId = [generatedId, index].join(ID_SEPARATOR);\n menuStructure[id].childMenus[index] = menuItem.id || generatedChildId;\n\n const innerState = deriveFlatStateFromTree(\n menuItem,\n id,\n level + 1,\n generatedChildId,\n );\n // biome-ignore lint/performance/noAccumulatingSpread: reduce on object\n return { ...menuStructure, ...innerState };\n }\n return menuStructure;\n },\n // Initialize the structure with the root menu\n {\n [id]: {\n id,\n parentId,\n childMenus: {},\n menuItems: tree.menuItems,\n level,\n },\n } as flattenedMenuState,\n );\n}\n\nexport function hasSubMenu(item: MenuDescriptor) {\n return item != null && !!item.menuItems && item.menuItems.length > 0;\n}\n\nexport function isMenuItem(item: MenuDescriptor) {\n return item != null && !item.menuItems;\n}\n\nexport function hasIcon(item: MenuDescriptor) {\n return item != null && !!item.icon;\n}\n"],"names":[],"mappings":"AAEA,MAAM,YAAe,GAAA,GAAA;AAkBd,SAAS,wBACd,IACA,EAAA,QAAA,GAA0B,MAC1B,KAAQ,GAAA,CAAA,EACR,cAAc,qBACM,EAAA;AACpB,EAAA,MAAM,EAAE,EAAK,GAAA,WAAA,EAAa,SAAY,GAAA,IAAO,GAAA,IAAA;AAC7C,EAAA,OAAO,SAAU,CAAA,MAAA;AAAA,IACf,CAAC,aAAe,EAAA,QAAA,EAAU,KAAU,KAAA;AAClC,MAAI,IAAA,UAAA,CAAW,QAAQ,CAAG,EAAA;AACxB,QAAA,MAAM,mBAAmB,CAAC,WAAA,EAAa,KAAK,CAAA,CAAE,KAAK,YAAY,CAAA;AAC/D,QAAA,aAAA,CAAc,EAAE,CAAE,CAAA,UAAA,CAAW,KAAK,CAAA,GAAI,SAAS,EAAM,IAAA,gBAAA;AAErD,QAAA,MAAM,UAAa,GAAA,uBAAA;AAAA,UACjB,QAAA;AAAA,UACA,EAAA;AAAA,UACA,KAAQ,GAAA,CAAA;AAAA,UACR;AAAA,SACF;AAEA,QAAA,OAAO,EAAE,GAAG,aAAe,EAAA,GAAG,UAAW,EAAA;AAAA;AAE3C,MAAO,OAAA,aAAA;AAAA,KACT;AAAA;AAAA,IAEA;AAAA,MACE,CAAC,EAAE,GAAG;AAAA,QACJ,EAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAY,EAAC;AAAA,QACb,WAAW,IAAK,CAAA,SAAA;AAAA,QAChB;AAAA;AACF;AACF,GACF;AACF;AAEO,SAAS,WAAW,IAAsB,EAAA;AAC/C,EAAO,OAAA,IAAA,IAAQ,QAAQ,CAAC,CAAC,KAAK,SAAa,IAAA,IAAA,CAAK,UAAU,MAAS,GAAA,CAAA;AACrE;AAEO,SAAS,WAAW,IAAsB,EAAA;AAC/C,EAAO,OAAA,IAAA,IAAQ,IAAQ,IAAA,CAAC,IAAK,CAAA,SAAA;AAC/B;AAEO,SAAS,QAAQ,IAAsB,EAAA;AAC5C,EAAA,OAAO,IAAQ,IAAA,IAAA,IAAQ,CAAC,CAAC,IAAK,CAAA,IAAA;AAChC;;;;"}