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

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 (1216) hide show
  1. package/CHANGELOG.md +1895 -0
  2. package/css/salt-lab.css +211 -51
  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 +20 -16
  30. package/dist-cjs/calendar/Calendar.js.map +1 -1
  31. package/dist-cjs/calendar/CalendarDateGrid.js +34 -29
  32. package/dist-cjs/calendar/CalendarDateGrid.js.map +1 -1
  33. package/dist-cjs/calendar/CalendarNavigation.js +103 -96
  34. package/dist-cjs/calendar/CalendarNavigation.js.map +1 -1
  35. package/dist-cjs/calendar/CalendarWeekHeader.js +18 -13
  36. package/dist-cjs/calendar/CalendarWeekHeader.js.map +1 -1
  37. package/dist-cjs/calendar/formatDate.js +3 -8
  38. package/dist-cjs/calendar/formatDate.js.map +1 -1
  39. package/dist-cjs/calendar/internal/CalendarContext.js +0 -2
  40. package/dist-cjs/calendar/internal/CalendarContext.js.map +1 -1
  41. package/dist-cjs/calendar/internal/CalendarDay.js +48 -41
  42. package/dist-cjs/calendar/internal/CalendarDay.js.map +1 -1
  43. package/dist-cjs/calendar/internal/CalendarMonth.js +28 -20
  44. package/dist-cjs/calendar/internal/CalendarMonth.js.map +1 -1
  45. package/dist-cjs/calendar/internal/useFocusManagement.js +0 -2
  46. package/dist-cjs/calendar/internal/useFocusManagement.js.map +1 -1
  47. package/dist-cjs/calendar/internal/utils.js +0 -2
  48. package/dist-cjs/calendar/internal/utils.js.map +1 -1
  49. package/dist-cjs/calendar/useCalendar.js +3 -4
  50. package/dist-cjs/calendar/useCalendar.js.map +1 -1
  51. package/dist-cjs/calendar/useCalendarDay.js +0 -2
  52. package/dist-cjs/calendar/useCalendarDay.js.map +1 -1
  53. package/dist-cjs/calendar/useCalendarSelection.js +2 -2
  54. package/dist-cjs/calendar/useCalendarSelection.js.map +1 -1
  55. package/dist-cjs/carousel/Carousel.js +59 -56
  56. package/dist-cjs/carousel/Carousel.js.map +1 -1
  57. package/dist-cjs/carousel/CarouselSlide.js +35 -38
  58. package/dist-cjs/carousel/CarouselSlide.js.map +1 -1
  59. package/dist-cjs/cascading-menu/CascadingMenu.js +15 -15
  60. package/dist-cjs/cascading-menu/CascadingMenu.js.map +1 -1
  61. package/dist-cjs/cascading-menu/CascadingMenuItem.js +72 -61
  62. package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
  63. package/dist-cjs/cascading-menu/CascadingMenuList.js +50 -43
  64. package/dist-cjs/cascading-menu/CascadingMenuList.js.map +1 -1
  65. package/dist-cjs/cascading-menu/internal/CascadingMenuAction.js +0 -2
  66. package/dist-cjs/cascading-menu/internal/CascadingMenuAction.js.map +1 -1
  67. package/dist-cjs/cascading-menu/internal/keydownHandlers.js +0 -2
  68. package/dist-cjs/cascading-menu/internal/keydownHandlers.js.map +1 -1
  69. package/dist-cjs/cascading-menu/internal/menuPositioning.js +0 -2
  70. package/dist-cjs/cascading-menu/internal/menuPositioning.js.map +1 -1
  71. package/dist-cjs/cascading-menu/internal/stateUtils.js +1 -2
  72. package/dist-cjs/cascading-menu/internal/stateUtils.js.map +1 -1
  73. package/dist-cjs/cascading-menu/internal/useClickAway.js +4 -3
  74. package/dist-cjs/cascading-menu/internal/useClickAway.js.map +1 -1
  75. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js +0 -2
  76. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  77. package/dist-cjs/cascading-menu/internal/useMountedRef.js +0 -2
  78. package/dist-cjs/cascading-menu/internal/useMountedRef.js.map +1 -1
  79. package/dist-cjs/cascading-menu/internal/useMouseHandlers.js +2 -5
  80. package/dist-cjs/cascading-menu/internal/useMouseHandlers.js.map +1 -1
  81. package/dist-cjs/cascading-menu/internal/useRefsManager.js +0 -2
  82. package/dist-cjs/cascading-menu/internal/useRefsManager.js.map +1 -1
  83. package/dist-cjs/cascading-menu/internal/useStateReducer.js +0 -2
  84. package/dist-cjs/cascading-menu/internal/useStateReducer.js.map +1 -1
  85. package/dist-cjs/cascading-menu/stateChangeTypes.js +0 -2
  86. package/dist-cjs/cascading-menu/stateChangeTypes.js.map +1 -1
  87. package/dist-cjs/color-chooser/AlphaInputField.js +17 -15
  88. package/dist-cjs/color-chooser/AlphaInputField.js.map +1 -1
  89. package/dist-cjs/color-chooser/Color.js +4 -9
  90. package/dist-cjs/color-chooser/Color.js.map +1 -1
  91. package/dist-cjs/color-chooser/ColorChooser.js +58 -60
  92. package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
  93. package/dist-cjs/color-chooser/ColorHelpers.js +5 -11
  94. package/dist-cjs/color-chooser/ColorHelpers.js.map +1 -1
  95. package/dist-cjs/color-chooser/ColorPicker.js +33 -49
  96. package/dist-cjs/color-chooser/ColorPicker.js.map +1 -1
  97. package/dist-cjs/color-chooser/DictTabs.js +24 -23
  98. package/dist-cjs/color-chooser/DictTabs.js.map +1 -1
  99. package/dist-cjs/color-chooser/GetColorPalettes.js +1 -3
  100. package/dist-cjs/color-chooser/GetColorPalettes.js.map +1 -1
  101. package/dist-cjs/color-chooser/HexInput.js +9 -15
  102. package/dist-cjs/color-chooser/HexInput.js.map +1 -1
  103. package/dist-cjs/color-chooser/RGBAInput.js +24 -39
  104. package/dist-cjs/color-chooser/RGBAInput.js.map +1 -1
  105. package/dist-cjs/color-chooser/RGBAInputField.js +14 -12
  106. package/dist-cjs/color-chooser/RGBAInputField.js.map +1 -1
  107. package/dist-cjs/color-chooser/Swatch.js +19 -18
  108. package/dist-cjs/color-chooser/Swatch.js.map +1 -1
  109. package/dist-cjs/color-chooser/Swatches.js +27 -43
  110. package/dist-cjs/color-chooser/Swatches.js.map +1 -1
  111. package/dist-cjs/color-chooser/SwatchesPicker.js +26 -20
  112. package/dist-cjs/color-chooser/SwatchesPicker.js.map +1 -1
  113. package/dist-cjs/color-chooser/color-utils.js +0 -2
  114. package/dist-cjs/color-chooser/color-utils.js.map +1 -1
  115. package/dist-cjs/color-chooser/colorMap.js +1 -2
  116. package/dist-cjs/color-chooser/colorMap.js.map +1 -1
  117. package/dist-cjs/color-chooser/createTabsMapping.js +0 -2
  118. package/dist-cjs/color-chooser/createTabsMapping.js.map +1 -1
  119. package/dist-cjs/combo-box/ComboBox.js +29 -25
  120. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  121. package/dist-cjs/combo-box/useCombobox.js +16 -15
  122. package/dist-cjs/combo-box/useCombobox.js.map +1 -1
  123. package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js +37 -33
  124. package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  125. package/dist-cjs/combo-box-deprecated/filterHelpers.js +0 -2
  126. package/dist-cjs/combo-box-deprecated/filterHelpers.js.map +1 -1
  127. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js +37 -37
  128. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  129. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js +37 -37
  130. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  131. package/dist-cjs/combo-box-deprecated/internal/getAnnouncement.js +1 -3
  132. package/dist-cjs/combo-box-deprecated/internal/getAnnouncement.js.map +1 -1
  133. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js +0 -2
  134. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  135. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js +0 -2
  136. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  137. package/dist-cjs/combo-box-deprecated/internal/usePopperStatus.js +0 -2
  138. package/dist-cjs/combo-box-deprecated/internal/usePopperStatus.js.map +1 -1
  139. package/dist-cjs/common-hooks/calcPreferredHeight.js +2 -3
  140. package/dist-cjs/common-hooks/calcPreferredHeight.js.map +1 -1
  141. package/dist-cjs/common-hooks/collectionProvider.js +1 -6
  142. package/dist-cjs/common-hooks/collectionProvider.js.map +1 -1
  143. package/dist-cjs/common-hooks/itemToString.js +0 -2
  144. package/dist-cjs/common-hooks/itemToString.js.map +1 -1
  145. package/dist-cjs/common-hooks/keyUtils.js +0 -2
  146. package/dist-cjs/common-hooks/keyUtils.js.map +1 -1
  147. package/dist-cjs/common-hooks/list-dom-utils.js +0 -2
  148. package/dist-cjs/common-hooks/list-dom-utils.js.map +1 -1
  149. package/dist-cjs/common-hooks/selectionTypes.js +0 -2
  150. package/dist-cjs/common-hooks/selectionTypes.js.map +1 -1
  151. package/dist-cjs/common-hooks/useAutoSizer.js +0 -2
  152. package/dist-cjs/common-hooks/useAutoSizer.js.map +1 -1
  153. package/dist-cjs/common-hooks/useCollapsibleGroups.js +0 -2
  154. package/dist-cjs/common-hooks/useCollapsibleGroups.js.map +1 -1
  155. package/dist-cjs/common-hooks/useCollectionItems.js +21 -12
  156. package/dist-cjs/common-hooks/useCollectionItems.js.map +1 -1
  157. package/dist-cjs/common-hooks/useImperativeScrollingAPI.js +0 -2
  158. package/dist-cjs/common-hooks/useImperativeScrollingAPI.js.map +1 -1
  159. package/dist-cjs/common-hooks/useKeyboardNavigation.js +2 -3
  160. package/dist-cjs/common-hooks/useKeyboardNavigation.js.map +1 -1
  161. package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js +3 -2
  162. package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
  163. package/dist-cjs/common-hooks/useSelection.js +3 -7
  164. package/dist-cjs/common-hooks/useSelection.js.map +1 -1
  165. package/dist-cjs/common-hooks/useTypeahead.js +0 -2
  166. package/dist-cjs/common-hooks/useTypeahead.js.map +1 -1
  167. package/dist-cjs/common-hooks/useViewportTracking.js +0 -2
  168. package/dist-cjs/common-hooks/useViewportTracking.js.map +1 -1
  169. package/dist-cjs/common-hooks/utils/collection-item-utils.js +2 -4
  170. package/dist-cjs/common-hooks/utils/collection-item-utils.js.map +1 -1
  171. package/dist-cjs/common-hooks/utils/filter-utils.js +0 -2
  172. package/dist-cjs/common-hooks/utils/filter-utils.js.map +1 -1
  173. package/dist-cjs/common-hooks/utils/isSelected.js +0 -2
  174. package/dist-cjs/common-hooks/utils/isSelected.js.map +1 -1
  175. package/dist-cjs/contact-details/ContactAction.js +9 -13
  176. package/dist-cjs/contact-details/ContactAction.js.map +1 -1
  177. package/dist-cjs/contact-details/ContactActions.js +1 -8
  178. package/dist-cjs/contact-details/ContactActions.js.map +1 -1
  179. package/dist-cjs/contact-details/ContactAvatar.js +17 -16
  180. package/dist-cjs/contact-details/ContactAvatar.js.map +1 -1
  181. package/dist-cjs/contact-details/ContactDetails.js +6 -10
  182. package/dist-cjs/contact-details/ContactDetails.js.map +1 -1
  183. package/dist-cjs/contact-details/ContactFavoriteToggle.js +13 -12
  184. package/dist-cjs/contact-details/ContactFavoriteToggle.js.map +1 -1
  185. package/dist-cjs/contact-details/ContactMetadata.js +13 -13
  186. package/dist-cjs/contact-details/ContactMetadata.js.map +1 -1
  187. package/dist-cjs/contact-details/ContactMetadataItem.js +5 -23
  188. package/dist-cjs/contact-details/ContactMetadataItem.js.map +1 -1
  189. package/dist-cjs/contact-details/ContactPrimaryInfo.js +16 -15
  190. package/dist-cjs/contact-details/ContactPrimaryInfo.js.map +1 -1
  191. package/dist-cjs/contact-details/ContactSecondaryInfo.js +16 -17
  192. package/dist-cjs/contact-details/ContactSecondaryInfo.js.map +1 -1
  193. package/dist-cjs/contact-details/ContactTertiaryInfo.js +16 -17
  194. package/dist-cjs/contact-details/ContactTertiaryInfo.js.map +1 -1
  195. package/dist-cjs/contact-details/MailLinkComponent.js +1 -12
  196. package/dist-cjs/contact-details/MailLinkComponent.js.map +1 -1
  197. package/dist-cjs/contact-details/internal/ContactDetailsContext.js +0 -2
  198. package/dist-cjs/contact-details/internal/ContactDetailsContext.js.map +1 -1
  199. package/dist-cjs/contact-details/internal/FavoriteToggle.js +18 -17
  200. package/dist-cjs/contact-details/internal/FavoriteToggle.js.map +1 -1
  201. package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js +1 -11
  202. package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  203. package/dist-cjs/contact-details/internal/StarIcon.js +10 -14
  204. package/dist-cjs/contact-details/internal/StarIcon.js.map +1 -1
  205. package/dist-cjs/contact-details/internal/StarIconContainer.js +28 -24
  206. package/dist-cjs/contact-details/internal/StarIconContainer.js.map +1 -1
  207. package/dist-cjs/contact-details/internal/useComponentSize.js +0 -2
  208. package/dist-cjs/contact-details/internal/useComponentSize.js.map +1 -1
  209. package/dist-cjs/content-status/ContentStatus.js +16 -31
  210. package/dist-cjs/content-status/ContentStatus.js.map +1 -1
  211. package/dist-cjs/content-status/internal/StatusIndicator.js +30 -23
  212. package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
  213. package/dist-cjs/date-input/DateInputRange.js +91 -96
  214. package/dist-cjs/date-input/DateInputRange.js.map +1 -1
  215. package/dist-cjs/date-input/DateInputSingle.js +55 -58
  216. package/dist-cjs/date-input/DateInputSingle.js.map +1 -1
  217. package/dist-cjs/date-input/utils.js +0 -2
  218. package/dist-cjs/date-input/utils.js.map +1 -1
  219. package/dist-cjs/date-picker/DatePicker.js +3 -26
  220. package/dist-cjs/date-picker/DatePicker.js.map +1 -1
  221. package/dist-cjs/date-picker/DatePickerActions.js +13 -23
  222. package/dist-cjs/date-picker/DatePickerActions.js.map +1 -1
  223. package/dist-cjs/date-picker/DatePickerContext.js +0 -2
  224. package/dist-cjs/date-picker/DatePickerContext.js.map +1 -1
  225. package/dist-cjs/date-picker/DatePickerOverlay.js +18 -17
  226. package/dist-cjs/date-picker/DatePickerOverlay.js.map +1 -1
  227. package/dist-cjs/date-picker/DatePickerOverlayProvider.js +3 -8
  228. package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +1 -1
  229. package/dist-cjs/date-picker/DatePickerRangeInput.js +29 -25
  230. package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -1
  231. package/dist-cjs/date-picker/DatePickerRangePanel.js +25 -59
  232. package/dist-cjs/date-picker/DatePickerRangePanel.js.map +1 -1
  233. package/dist-cjs/date-picker/DatePickerSingleInput.js +32 -28
  234. package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -1
  235. package/dist-cjs/date-picker/DatePickerSinglePanel.js +19 -49
  236. package/dist-cjs/date-picker/DatePickerSinglePanel.js.map +1 -1
  237. package/dist-cjs/date-picker/useDatePicker.js +2 -4
  238. package/dist-cjs/date-picker/useDatePicker.js.map +1 -1
  239. package/dist-cjs/deck-item/DeckItem.js +21 -18
  240. package/dist-cjs/deck-item/DeckItem.js.map +1 -1
  241. package/dist-cjs/deck-layout/DeckLayout.js +34 -27
  242. package/dist-cjs/deck-layout/DeckLayout.js.map +1 -1
  243. package/dist-cjs/dialog/DialogHeader.css.js +6 -0
  244. package/dist-cjs/dialog/DialogHeader.css.js.map +1 -0
  245. package/dist-cjs/dialog/DialogHeader.js +63 -0
  246. package/dist-cjs/dialog/DialogHeader.js.map +1 -0
  247. package/dist-cjs/dropdown/Dropdown.js +28 -24
  248. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  249. package/dist-cjs/dropdown/DropdownBase.js +29 -29
  250. package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
  251. package/dist-cjs/dropdown/DropdownButton.js +40 -36
  252. package/dist-cjs/dropdown/DropdownButton.js.map +1 -1
  253. package/dist-cjs/dropdown/useClickAway.js +0 -2
  254. package/dist-cjs/dropdown/useClickAway.js.map +1 -1
  255. package/dist-cjs/dropdown/useDropdown.js +2 -4
  256. package/dist-cjs/dropdown/useDropdown.js.map +1 -1
  257. package/dist-cjs/dropdown/useDropdownBase.js +3 -5
  258. package/dist-cjs/dropdown/useDropdownBase.js.map +1 -1
  259. package/dist-cjs/editable-label/EditableLabel.js +23 -19
  260. package/dist-cjs/editable-label/EditableLabel.js.map +1 -1
  261. package/dist-cjs/form-field-context-legacy/FormFieldLegacyContext.js +0 -2
  262. package/dist-cjs/form-field-context-legacy/FormFieldLegacyContext.js.map +1 -1
  263. package/dist-cjs/form-field-context-legacy/useFormFieldLegacyProps.js +0 -2
  264. package/dist-cjs/form-field-context-legacy/useFormFieldLegacyProps.js.map +1 -1
  265. package/dist-cjs/form-field-legacy/FormActivationIndicator.js +29 -38
  266. package/dist-cjs/form-field-legacy/FormActivationIndicator.js.map +1 -1
  267. package/dist-cjs/form-field-legacy/FormFieldLegacy.js +53 -44
  268. package/dist-cjs/form-field-legacy/FormFieldLegacy.js.map +1 -1
  269. package/dist-cjs/form-field-legacy/FormHelperText.js +1 -7
  270. package/dist-cjs/form-field-legacy/FormHelperText.js.map +1 -1
  271. package/dist-cjs/form-field-legacy/FormLabel.js +34 -24
  272. package/dist-cjs/form-field-legacy/FormLabel.js.map +1 -1
  273. package/dist-cjs/form-field-legacy/NecessityIndicator.js +9 -8
  274. package/dist-cjs/form-field-legacy/NecessityIndicator.js.map +1 -1
  275. package/dist-cjs/form-field-legacy/StatusIndicator.js +22 -18
  276. package/dist-cjs/form-field-legacy/StatusIndicator.js.map +1 -1
  277. package/dist-cjs/form-field-legacy/constant.js +0 -2
  278. package/dist-cjs/form-field-legacy/constant.js.map +1 -1
  279. package/dist-cjs/form-group/FormGroup.js +8 -7
  280. package/dist-cjs/form-group/FormGroup.js.map +1 -1
  281. package/dist-cjs/formatted-input/FormattedInput.js +13 -12
  282. package/dist-cjs/formatted-input/FormattedInput.js.map +1 -1
  283. package/dist-cjs/formatted-input/internal/InputWithMask.js +13 -14
  284. package/dist-cjs/formatted-input/internal/InputWithMask.js.map +1 -1
  285. package/dist-cjs/index.js +14 -4
  286. package/dist-cjs/index.js.map +1 -1
  287. package/dist-cjs/input-legacy/InputLegacy.js +48 -47
  288. package/dist-cjs/input-legacy/InputLegacy.js.map +1 -1
  289. package/dist-cjs/input-legacy/StaticInputAdornment.js +1 -8
  290. package/dist-cjs/input-legacy/StaticInputAdornment.js.map +1 -1
  291. package/dist-cjs/input-legacy/useCursorOnFocus.js +0 -2
  292. package/dist-cjs/input-legacy/useCursorOnFocus.js.map +1 -1
  293. package/dist-cjs/layer-layout/LayerLayout.js +34 -30
  294. package/dist-cjs/layer-layout/LayerLayout.js.map +1 -1
  295. package/dist-cjs/list/Highlighter.js +9 -11
  296. package/dist-cjs/list/Highlighter.js.map +1 -1
  297. package/dist-cjs/list/List.js +61 -63
  298. package/dist-cjs/list/List.js.map +1 -1
  299. package/dist-cjs/list/ListItem.js +29 -28
  300. package/dist-cjs/list/ListItem.js.map +1 -1
  301. package/dist-cjs/list/ListItemGroup.js +0 -2
  302. package/dist-cjs/list/ListItemGroup.js.map +1 -1
  303. package/dist-cjs/list/ListItemHeader.js +0 -2
  304. package/dist-cjs/list/ListItemHeader.js.map +1 -1
  305. package/dist-cjs/list/VirtualizedList.js +52 -48
  306. package/dist-cjs/list/VirtualizedList.js.map +1 -1
  307. package/dist-cjs/list/keyset.js +0 -2
  308. package/dist-cjs/list/keyset.js.map +1 -1
  309. package/dist-cjs/list/useList.js +3 -2
  310. package/dist-cjs/list/useList.js.map +1 -1
  311. package/dist-cjs/list/useListHeight.js +4 -4
  312. package/dist-cjs/list/useListHeight.js.map +1 -1
  313. package/dist-cjs/list/useVirtualization.js +0 -2
  314. package/dist-cjs/list/useVirtualization.js.map +1 -1
  315. package/dist-cjs/list-deprecated/List.js +6 -14
  316. package/dist-cjs/list-deprecated/List.js.map +1 -1
  317. package/dist-cjs/list-deprecated/ListBase.js +99 -87
  318. package/dist-cjs/list-deprecated/ListBase.js.map +1 -1
  319. package/dist-cjs/list-deprecated/ListItem.js +1 -8
  320. package/dist-cjs/list-deprecated/ListItem.js.map +1 -1
  321. package/dist-cjs/list-deprecated/ListItemBase.js +10 -14
  322. package/dist-cjs/list-deprecated/ListItemBase.js.map +1 -1
  323. package/dist-cjs/list-deprecated/ListItemContext.js +0 -2
  324. package/dist-cjs/list-deprecated/ListItemContext.js.map +1 -1
  325. package/dist-cjs/list-deprecated/ListStateContext.js +0 -2
  326. package/dist-cjs/list-deprecated/ListStateContext.js.map +1 -1
  327. package/dist-cjs/list-deprecated/internal/DescendantContext.js +1 -6
  328. package/dist-cjs/list-deprecated/internal/DescendantContext.js.map +1 -1
  329. package/dist-cjs/list-deprecated/internal/Highlighter.js +4 -11
  330. package/dist-cjs/list-deprecated/internal/Highlighter.js.map +1 -1
  331. package/dist-cjs/list-deprecated/internal/calcPreferredListHeight.js +2 -3
  332. package/dist-cjs/list-deprecated/internal/calcPreferredListHeight.js.map +1 -1
  333. package/dist-cjs/list-deprecated/internal/helpers.js +0 -2
  334. package/dist-cjs/list-deprecated/internal/helpers.js.map +1 -1
  335. package/dist-cjs/list-deprecated/internal/scrollIntoView.js +0 -2
  336. package/dist-cjs/list-deprecated/internal/scrollIntoView.js.map +1 -1
  337. package/dist-cjs/list-deprecated/internal/useListAutoSizer.js +0 -2
  338. package/dist-cjs/list-deprecated/internal/useListAutoSizer.js.map +1 -1
  339. package/dist-cjs/list-deprecated/internal/useWidth.js +0 -2
  340. package/dist-cjs/list-deprecated/internal/useWidth.js.map +1 -1
  341. package/dist-cjs/list-deprecated/itemToString.js +0 -2
  342. package/dist-cjs/list-deprecated/itemToString.js.map +1 -1
  343. package/dist-cjs/list-deprecated/useList.js +7 -9
  344. package/dist-cjs/list-deprecated/useList.js.map +1 -1
  345. package/dist-cjs/list-deprecated/useListItem.js +5 -2
  346. package/dist-cjs/list-deprecated/useListItem.js.map +1 -1
  347. package/dist-cjs/list-deprecated/useTypeSelect.js +2 -2
  348. package/dist-cjs/list-deprecated/useTypeSelect.js.map +1 -1
  349. package/dist-cjs/list-next/ListItemNext.js +25 -25
  350. package/dist-cjs/list-next/ListItemNext.js.map +1 -1
  351. package/dist-cjs/list-next/ListNext.js +5 -7
  352. package/dist-cjs/list-next/ListNext.js.map +1 -1
  353. package/dist-cjs/list-next/ListNextContext.js +0 -2
  354. package/dist-cjs/list-next/ListNextContext.js.map +1 -1
  355. package/dist-cjs/list-next/useList.js +3 -6
  356. package/dist-cjs/list-next/useList.js.map +1 -1
  357. package/dist-cjs/logo/Logo.js +1 -7
  358. package/dist-cjs/logo/Logo.js.map +1 -1
  359. package/dist-cjs/logo/LogoImage.js +9 -8
  360. package/dist-cjs/logo/LogoImage.js.map +1 -1
  361. package/dist-cjs/logo/LogoSeparator.js +1 -7
  362. package/dist-cjs/logo/LogoSeparator.js.map +1 -1
  363. package/dist-cjs/menu-button/MenuButton.js +21 -17
  364. package/dist-cjs/menu-button/MenuButton.js.map +1 -1
  365. package/dist-cjs/menu-button/MenuButtonTrigger.js +21 -17
  366. package/dist-cjs/menu-button/MenuButtonTrigger.js.map +1 -1
  367. package/dist-cjs/metric/Metric.js +5 -7
  368. package/dist-cjs/metric/Metric.js.map +1 -1
  369. package/dist-cjs/metric/MetricContent.js +32 -30
  370. package/dist-cjs/metric/MetricContent.js.map +1 -1
  371. package/dist-cjs/metric/MetricHeader.js +20 -26
  372. package/dist-cjs/metric/MetricHeader.js.map +1 -1
  373. package/dist-cjs/metric/internal/MetricContext.js +0 -2
  374. package/dist-cjs/metric/internal/MetricContext.js.map +1 -1
  375. package/dist-cjs/portal/Portal.js +3 -10
  376. package/dist-cjs/portal/Portal.js.map +1 -1
  377. package/dist-cjs/query-input/QueryInput.js +21 -19
  378. package/dist-cjs/query-input/QueryInput.js.map +1 -1
  379. package/dist-cjs/query-input/internal/CategoryList.js +8 -17
  380. package/dist-cjs/query-input/internal/CategoryList.js.map +1 -1
  381. package/dist-cjs/query-input/internal/CategoryListContext.js +0 -2
  382. package/dist-cjs/query-input/internal/CategoryListContext.js.map +1 -1
  383. package/dist-cjs/query-input/internal/CategoryListItem.js +9 -32
  384. package/dist-cjs/query-input/internal/CategoryListItem.js.map +1 -1
  385. package/dist-cjs/query-input/internal/QueryInputBody.js +16 -24
  386. package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
  387. package/dist-cjs/query-input/internal/SearchList.js +21 -28
  388. package/dist-cjs/query-input/internal/SearchList.js.map +1 -1
  389. package/dist-cjs/query-input/internal/ValueList.js +18 -25
  390. package/dist-cjs/query-input/internal/ValueList.js.map +1 -1
  391. package/dist-cjs/query-input/internal/ValueSelector.js +42 -37
  392. package/dist-cjs/query-input/internal/ValueSelector.js.map +1 -1
  393. package/dist-cjs/query-input/internal/usePopperStatus.js +0 -2
  394. package/dist-cjs/query-input/internal/usePopperStatus.js.map +1 -1
  395. package/dist-cjs/query-input/useQueryInput.js +0 -2
  396. package/dist-cjs/query-input/useQueryInput.js.map +1 -1
  397. package/dist-cjs/responsive/OverflowReducer.js +7 -9
  398. package/dist-cjs/responsive/OverflowReducer.js.map +1 -1
  399. package/dist-cjs/responsive/overflowUtils.js +0 -2
  400. package/dist-cjs/responsive/overflowUtils.js.map +1 -1
  401. package/dist-cjs/responsive/useDynamicCollapse.js +0 -2
  402. package/dist-cjs/responsive/useDynamicCollapse.js.map +1 -1
  403. package/dist-cjs/responsive/useInstantCollapse.js +1 -4
  404. package/dist-cjs/responsive/useInstantCollapse.js.map +1 -1
  405. package/dist-cjs/responsive/useOverflow.js +0 -2
  406. package/dist-cjs/responsive/useOverflow.js.map +1 -1
  407. package/dist-cjs/responsive/useOverflowCollectionItems.js +1 -4
  408. package/dist-cjs/responsive/useOverflowCollectionItems.js.map +1 -1
  409. package/dist-cjs/responsive/useOverflowLayout.js +4 -7
  410. package/dist-cjs/responsive/useOverflowLayout.js.map +1 -1
  411. package/dist-cjs/responsive/useReclaimSpace.js +1 -4
  412. package/dist-cjs/responsive/useReclaimSpace.js.map +1 -1
  413. package/dist-cjs/responsive/useResizeObserver.js +0 -2
  414. package/dist-cjs/responsive/useResizeObserver.js.map +1 -1
  415. package/dist-cjs/responsive/useWidth.js +0 -2
  416. package/dist-cjs/responsive/useWidth.js.map +1 -1
  417. package/dist-cjs/responsive/utils.js +2 -10
  418. package/dist-cjs/responsive/utils.js.map +1 -1
  419. package/dist-cjs/search-input/SearchInput.js +27 -24
  420. package/dist-cjs/search-input/SearchInput.js.map +1 -1
  421. package/dist-cjs/skip-link/SkipLink.js +5 -6
  422. package/dist-cjs/skip-link/SkipLink.js.map +1 -1
  423. package/dist-cjs/skip-link/SkipLinks.js +1 -8
  424. package/dist-cjs/skip-link/SkipLinks.js.map +1 -1
  425. package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js +0 -2
  426. package/dist-cjs/skip-link/internal/useManageFocusOnTarget.js.map +1 -1
  427. package/dist-cjs/slider/Slider.js +47 -41
  428. package/dist-cjs/slider/Slider.js.map +1 -1
  429. package/dist-cjs/slider/internal/SliderContext.js +0 -2
  430. package/dist-cjs/slider/internal/SliderContext.js.map +1 -1
  431. package/dist-cjs/slider/internal/SliderMarks.js +8 -10
  432. package/dist-cjs/slider/internal/SliderMarks.js.map +1 -1
  433. package/dist-cjs/slider/internal/SliderSelection.js +13 -12
  434. package/dist-cjs/slider/internal/SliderSelection.js.map +1 -1
  435. package/dist-cjs/slider/internal/SliderThumb.js +49 -45
  436. package/dist-cjs/slider/internal/SliderThumb.js.map +1 -1
  437. package/dist-cjs/slider/internal/SliderTrack.js +26 -24
  438. package/dist-cjs/slider/internal/SliderTrack.js.map +1 -1
  439. package/dist-cjs/slider/internal/useKeyDownThumb.js +1 -4
  440. package/dist-cjs/slider/internal/useKeyDownThumb.js.map +1 -1
  441. package/dist-cjs/slider/internal/utils.js +5 -12
  442. package/dist-cjs/slider/internal/utils.js.map +1 -1
  443. package/dist-cjs/static-list/StaticList.js +1 -8
  444. package/dist-cjs/static-list/StaticList.js.map +1 -1
  445. package/dist-cjs/static-list/StaticListItem.js +1 -8
  446. package/dist-cjs/static-list/StaticListItem.js.map +1 -1
  447. package/dist-cjs/static-list/StaticListItemContent.js +1 -8
  448. package/dist-cjs/static-list/StaticListItemContent.js.map +1 -1
  449. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js +1 -10
  450. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js.map +1 -1
  451. package/dist-cjs/stepped-tracker/SteppedTracker.js +6 -12
  452. package/dist-cjs/stepped-tracker/SteppedTracker.js.map +1 -1
  453. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js +2 -10
  454. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js.map +1 -1
  455. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js +1 -5
  456. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js.map +1 -1
  457. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +24 -31
  458. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
  459. package/dist-cjs/stepper-input/StepperInput.js +84 -89
  460. package/dist-cjs/stepper-input/StepperInput.js.map +1 -1
  461. package/dist-cjs/stepper-input/internal/useActivateWhileMouseDown.js +2 -6
  462. package/dist-cjs/stepper-input/internal/useActivateWhileMouseDown.js.map +1 -1
  463. package/dist-cjs/stepper-input/internal/useInterval.js +0 -2
  464. package/dist-cjs/stepper-input/internal/useInterval.js.map +1 -1
  465. package/dist-cjs/stepper-input/internal/utils.js +5 -12
  466. package/dist-cjs/stepper-input/internal/utils.js.map +1 -1
  467. package/dist-cjs/stepper-input/useStepperInput.js +6 -14
  468. package/dist-cjs/stepper-input/useStepperInput.js.map +1 -1
  469. package/dist-cjs/system-status/SystemStatus.js +13 -15
  470. package/dist-cjs/system-status/SystemStatus.js.map +1 -1
  471. package/dist-cjs/system-status/SystemStatusActions.js +1 -7
  472. package/dist-cjs/system-status/SystemStatusActions.js.map +1 -1
  473. package/dist-cjs/system-status/SystemStatusContent.js +1 -7
  474. package/dist-cjs/system-status/SystemStatusContent.js.map +1 -1
  475. package/dist-cjs/tabs/Tab.js +74 -57
  476. package/dist-cjs/tabs/Tab.js.map +1 -1
  477. package/dist-cjs/tabs/TabActivationIndicator.js +1 -10
  478. package/dist-cjs/tabs/TabActivationIndicator.js.map +1 -1
  479. package/dist-cjs/tabs/TabPanel.js +11 -10
  480. package/dist-cjs/tabs/TabPanel.js.map +1 -1
  481. package/dist-cjs/tabs/Tabs.js +21 -17
  482. package/dist-cjs/tabs/Tabs.js.map +1 -1
  483. package/dist-cjs/tabs/Tabstrip.js +86 -72
  484. package/dist-cjs/tabs/Tabstrip.js.map +1 -1
  485. package/dist-cjs/tabs/drag-drop/Draggable.js +5 -6
  486. package/dist-cjs/tabs/drag-drop/Draggable.js.map +1 -1
  487. package/dist-cjs/tabs/drag-drop/drag-utils.js +1 -4
  488. package/dist-cjs/tabs/drag-drop/drag-utils.js.map +1 -1
  489. package/dist-cjs/tabs/drag-drop/dragDropTypes.js +0 -2
  490. package/dist-cjs/tabs/drag-drop/dragDropTypes.js.map +1 -1
  491. package/dist-cjs/tabs/drag-drop/useDragDrop.js +0 -2
  492. package/dist-cjs/tabs/drag-drop/useDragDrop.js.map +1 -1
  493. package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js +9 -8
  494. package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
  495. package/dist-cjs/tabs/drag-drop/useDragSpacers.js +1 -2
  496. package/dist-cjs/tabs/drag-drop/useDragSpacers.js.map +1 -1
  497. package/dist-cjs/tabs/useActivationIndicator.js +0 -2
  498. package/dist-cjs/tabs/useActivationIndicator.js.map +1 -1
  499. package/dist-cjs/tabs/useEditableItem.js +0 -2
  500. package/dist-cjs/tabs/useEditableItem.js.map +1 -1
  501. package/dist-cjs/tabs/useItemsWithIds.js +1 -7
  502. package/dist-cjs/tabs/useItemsWithIds.js.map +1 -1
  503. package/dist-cjs/tabs/useKeyboardNavigation.js +0 -2
  504. package/dist-cjs/tabs/useKeyboardNavigation.js.map +1 -1
  505. package/dist-cjs/tabs/useSelection.js +1 -3
  506. package/dist-cjs/tabs/useSelection.js.map +1 -1
  507. package/dist-cjs/tabs/useTabs.js +3 -5
  508. package/dist-cjs/tabs/useTabs.js.map +1 -1
  509. package/dist-cjs/tabs/useTabstrip.js +3 -3
  510. package/dist-cjs/tabs/useTabstrip.js.map +1 -1
  511. package/dist-cjs/tabs-next/TabBar.css.js +6 -0
  512. package/dist-cjs/tabs-next/TabBar.css.js.map +1 -0
  513. package/dist-cjs/tabs-next/TabBar.js +41 -0
  514. package/dist-cjs/tabs-next/TabBar.js.map +1 -0
  515. package/dist-cjs/tabs-next/TabListNext.css.js +6 -0
  516. package/dist-cjs/tabs-next/TabListNext.css.js.map +1 -0
  517. package/dist-cjs/tabs-next/TabListNext.js +127 -0
  518. package/dist-cjs/tabs-next/TabListNext.js.map +1 -0
  519. package/dist-cjs/tabs-next/TabNext.css.js +1 -1
  520. package/dist-cjs/tabs-next/TabNext.js +74 -58
  521. package/dist-cjs/tabs-next/TabNext.js.map +1 -1
  522. package/dist-cjs/tabs-next/TabNextAction.js +35 -0
  523. package/dist-cjs/tabs-next/TabNextAction.js.map +1 -0
  524. package/dist-cjs/tabs-next/TabNextContext.js +15 -17
  525. package/dist-cjs/tabs-next/TabNextContext.js.map +1 -1
  526. package/dist-cjs/tabs-next/TabNextPanel.css.js +6 -0
  527. package/dist-cjs/tabs-next/TabNextPanel.css.js.map +1 -0
  528. package/dist-cjs/tabs-next/TabNextPanel.js +77 -0
  529. package/dist-cjs/tabs-next/TabNextPanel.js.map +1 -0
  530. package/dist-cjs/tabs-next/TabNextTrigger.css.js +6 -0
  531. package/dist-cjs/tabs-next/TabNextTrigger.css.js.map +1 -0
  532. package/dist-cjs/tabs-next/TabNextTrigger.js +77 -0
  533. package/dist-cjs/tabs-next/TabNextTrigger.js.map +1 -0
  534. package/dist-cjs/tabs-next/TabOverflowList.css.js +6 -0
  535. package/dist-cjs/tabs-next/TabOverflowList.css.js.map +1 -0
  536. package/dist-cjs/tabs-next/TabOverflowList.js +132 -0
  537. package/dist-cjs/tabs-next/TabOverflowList.js.map +1 -0
  538. package/dist-cjs/tabs-next/TabsNext.js +176 -0
  539. package/dist-cjs/tabs-next/TabsNext.js.map +1 -0
  540. package/dist-cjs/tabs-next/TabsNextContext.js +33 -0
  541. package/dist-cjs/tabs-next/TabsNextContext.js.map +1 -0
  542. package/dist-cjs/tabs-next/hooks/useCollection.js +91 -0
  543. package/dist-cjs/tabs-next/hooks/useCollection.js.map +1 -0
  544. package/dist-cjs/tabs-next/hooks/useFocusOutside.js +25 -0
  545. package/dist-cjs/tabs-next/hooks/useFocusOutside.js.map +1 -0
  546. package/dist-cjs/tabs-next/hooks/useOverflow.js +141 -0
  547. package/dist-cjs/tabs-next/hooks/useOverflow.js.map +1 -0
  548. package/dist-cjs/toast-group/ToastGroup.js +8 -7
  549. package/dist-cjs/toast-group/ToastGroup.js.map +1 -1
  550. package/dist-cjs/tokenized-input/TokenizedInput.js +9 -8
  551. package/dist-cjs/tokenized-input/TokenizedInput.js.map +1 -1
  552. package/dist-cjs/tokenized-input/TokenizedInputBase.js +105 -96
  553. package/dist-cjs/tokenized-input/TokenizedInputBase.js.map +1 -1
  554. package/dist-cjs/tokenized-input/internal/InputPill.js +24 -26
  555. package/dist-cjs/tokenized-input/internal/InputPill.js.map +1 -1
  556. package/dist-cjs/tokenized-input/internal/InputRuler.js +1 -7
  557. package/dist-cjs/tokenized-input/internal/InputRuler.js.map +1 -1
  558. package/dist-cjs/tokenized-input/internal/calcFirstHiddenIndex.js +0 -2
  559. package/dist-cjs/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
  560. package/dist-cjs/tokenized-input/internal/defaultItemToString.js +0 -2
  561. package/dist-cjs/tokenized-input/internal/defaultItemToString.js.map +1 -1
  562. package/dist-cjs/tokenized-input/internal/getCursorPosition.js +0 -2
  563. package/dist-cjs/tokenized-input/internal/getCursorPosition.js.map +1 -1
  564. package/dist-cjs/tokenized-input/internal/isPlainObject.js +0 -2
  565. package/dist-cjs/tokenized-input/internal/isPlainObject.js.map +1 -1
  566. package/dist-cjs/tokenized-input/internal/useResizeObserver.js +0 -2
  567. package/dist-cjs/tokenized-input/internal/useResizeObserver.js.map +1 -1
  568. package/dist-cjs/tokenized-input/internal/useWidth.js +0 -2
  569. package/dist-cjs/tokenized-input/internal/useWidth.js.map +1 -1
  570. package/dist-cjs/tokenized-input/useTokenizedInput.js +11 -7
  571. package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
  572. package/dist-cjs/tokenized-input-next/TokenizedInputNext.js +68 -58
  573. package/dist-cjs/tokenized-input-next/TokenizedInputNext.js.map +1 -1
  574. package/dist-cjs/tokenized-input-next/internal/InputPill.js +6 -12
  575. package/dist-cjs/tokenized-input-next/internal/InputPill.js.map +1 -1
  576. package/dist-cjs/tokenized-input-next/internal/calcFirstHiddenIndex.js +0 -2
  577. package/dist-cjs/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
  578. package/dist-cjs/tokenized-input-next/internal/useResizeObserver.js +0 -2
  579. package/dist-cjs/tokenized-input-next/internal/useResizeObserver.js.map +1 -1
  580. package/dist-cjs/tokenized-input-next/internal/useWidth.js +1 -3
  581. package/dist-cjs/tokenized-input-next/internal/useWidth.js.map +1 -1
  582. package/dist-cjs/tokenized-input-next/useTokenizedInputNext.js +9 -10
  583. package/dist-cjs/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
  584. package/dist-cjs/toolbar/Toolbar.js +43 -35
  585. package/dist-cjs/toolbar/Toolbar.js.map +1 -1
  586. package/dist-cjs/toolbar/ToolbarButton.js +10 -9
  587. package/dist-cjs/toolbar/ToolbarButton.js.map +1 -1
  588. package/dist-cjs/toolbar/Tooltray.js +23 -29
  589. package/dist-cjs/toolbar/Tooltray.js.map +1 -1
  590. package/dist-cjs/toolbar/internal/renderToolbarItems.js +7 -12
  591. package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
  592. package/dist-cjs/toolbar/internal/renderTrayTools.js +23 -18
  593. package/dist-cjs/toolbar/internal/renderTrayTools.js.map +1 -1
  594. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js +40 -43
  595. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  596. package/dist-cjs/toolbar/overflow-panel/OverflowSeparator.js +1 -6
  597. package/dist-cjs/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
  598. package/dist-cjs/toolbar/toolbar-field/ToolbarField.js +1 -6
  599. package/dist-cjs/toolbar/toolbar-field/ToolbarField.js.map +1 -1
  600. package/dist-cjs/toolbar/toolbar-field/useToolbarField.js +2 -4
  601. package/dist-cjs/toolbar/toolbar-field/useToolbarField.js.map +1 -1
  602. package/dist-cjs/tree/Tree.js +57 -48
  603. package/dist-cjs/tree/Tree.js.map +1 -1
  604. package/dist-cjs/tree/TreeNode.js +11 -25
  605. package/dist-cjs/tree/TreeNode.js.map +1 -1
  606. package/dist-cjs/tree/use-tree-keyboard-navigation.js +0 -2
  607. package/dist-cjs/tree/use-tree-keyboard-navigation.js.map +1 -1
  608. package/dist-cjs/tree/useTree.js +11 -6
  609. package/dist-cjs/tree/useTree.js.map +1 -1
  610. package/dist-cjs/utils/escapeRegExp.js +0 -2
  611. package/dist-cjs/utils/escapeRegExp.js.map +1 -1
  612. package/dist-cjs/utils/forwardCallbackProps.js +0 -2
  613. package/dist-cjs/utils/forwardCallbackProps.js.map +1 -1
  614. package/dist-cjs/utils/isEmail.js +0 -2
  615. package/dist-cjs/utils/isEmail.js.map +1 -1
  616. package/dist-cjs/utils/isPlainObject.js +0 -2
  617. package/dist-cjs/utils/isPlainObject.js.map +1 -1
  618. package/dist-cjs/utils/partition.js +0 -2
  619. package/dist-cjs/utils/partition.js.map +1 -1
  620. package/dist-cjs/utils/useClickOutside.js +1 -3
  621. package/dist-cjs/utils/useClickOutside.js.map +1 -1
  622. package/dist-cjs/utils/useEventCallback.js +4 -3
  623. package/dist-cjs/utils/useEventCallback.js.map +1 -1
  624. package/dist-cjs/utils/useIsViewportLargerThanBreakpoint.js +0 -2
  625. package/dist-cjs/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  626. package/dist-cjs/utils/useLayoutEffectOnce.js +0 -2
  627. package/dist-cjs/utils/useLayoutEffectOnce.js.map +1 -1
  628. package/dist-cjs/utils/useLayoutEffectSkipFirst.js +0 -2
  629. package/dist-cjs/utils/useLayoutEffectSkipFirst.js.map +1 -1
  630. package/dist-cjs/utils/useOverflowDetection.js +0 -2
  631. package/dist-cjs/utils/useOverflowDetection.js.map +1 -1
  632. package/dist-cjs/utils/useSlideSelection.js +0 -2
  633. package/dist-cjs/utils/useSlideSelection.js.map +1 -1
  634. package/dist-cjs/window/ElectronWindow.js +7 -21
  635. package/dist-cjs/window/ElectronWindow.js.map +1 -1
  636. package/dist-cjs/window/WindowContext.js +1 -7
  637. package/dist-cjs/window/WindowContext.js.map +1 -1
  638. package/dist-cjs/window/desktop-utils.js +0 -2
  639. package/dist-cjs/window/desktop-utils.js.map +1 -1
  640. package/dist-es/app-header/AppHeader.js +9 -6
  641. package/dist-es/app-header/AppHeader.js.map +1 -1
  642. package/dist-es/breadcrumbs/Breadcrumb.js +43 -41
  643. package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
  644. package/dist-es/breadcrumbs/Breadcrumbs.js +28 -31
  645. package/dist-es/breadcrumbs/Breadcrumbs.js.map +1 -1
  646. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js +19 -14
  647. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  648. package/dist-es/breadcrumbs/internal/BreadcrumbsContext.js.map +1 -1
  649. package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js +1 -3
  650. package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js.map +1 -1
  651. package/dist-es/breadcrumbs/internal/useFocusMenuRemount.js.map +1 -1
  652. package/dist-es/button-bar/ButtonBar.js +20 -25
  653. package/dist-es/button-bar/ButtonBar.js.map +1 -1
  654. package/dist-es/button-bar/OrderedButton.js +16 -13
  655. package/dist-es/button-bar/OrderedButton.js.map +1 -1
  656. package/dist-es/button-bar/internal/ButtonBarContext.js.map +1 -1
  657. package/dist-es/button-bar/internal/DescendantContext.js +1 -4
  658. package/dist-es/button-bar/internal/DescendantContext.js.map +1 -1
  659. package/dist-es/button-bar/internal/useDescendant.js.map +1 -1
  660. package/dist-es/button-bar/internal/useDescendants.js.map +1 -1
  661. package/dist-es/calendar/Calendar.js +20 -14
  662. package/dist-es/calendar/Calendar.js.map +1 -1
  663. package/dist-es/calendar/CalendarDateGrid.js +34 -27
  664. package/dist-es/calendar/CalendarDateGrid.js.map +1 -1
  665. package/dist-es/calendar/CalendarNavigation.js +103 -94
  666. package/dist-es/calendar/CalendarNavigation.js.map +1 -1
  667. package/dist-es/calendar/CalendarWeekHeader.js +18 -11
  668. package/dist-es/calendar/CalendarWeekHeader.js.map +1 -1
  669. package/dist-es/calendar/formatDate.js +3 -6
  670. package/dist-es/calendar/formatDate.js.map +1 -1
  671. package/dist-es/calendar/internal/CalendarContext.js.map +1 -1
  672. package/dist-es/calendar/internal/CalendarDay.js +48 -39
  673. package/dist-es/calendar/internal/CalendarDay.js.map +1 -1
  674. package/dist-es/calendar/internal/CalendarMonth.js +28 -18
  675. package/dist-es/calendar/internal/CalendarMonth.js.map +1 -1
  676. package/dist-es/calendar/internal/useFocusManagement.js.map +1 -1
  677. package/dist-es/calendar/internal/utils.js.map +1 -1
  678. package/dist-es/calendar/useCalendar.js +3 -2
  679. package/dist-es/calendar/useCalendar.js.map +1 -1
  680. package/dist-es/calendar/useCalendarDay.js.map +1 -1
  681. package/dist-es/calendar/useCalendarSelection.js +2 -0
  682. package/dist-es/calendar/useCalendarSelection.js.map +1 -1
  683. package/dist-es/carousel/Carousel.js +59 -54
  684. package/dist-es/carousel/Carousel.js.map +1 -1
  685. package/dist-es/carousel/CarouselSlide.js +35 -36
  686. package/dist-es/carousel/CarouselSlide.js.map +1 -1
  687. package/dist-es/cascading-menu/CascadingMenu.js +15 -13
  688. package/dist-es/cascading-menu/CascadingMenu.js.map +1 -1
  689. package/dist-es/cascading-menu/CascadingMenuItem.js +72 -59
  690. package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
  691. package/dist-es/cascading-menu/CascadingMenuList.js +50 -41
  692. package/dist-es/cascading-menu/CascadingMenuList.js.map +1 -1
  693. package/dist-es/cascading-menu/internal/CascadingMenuAction.js.map +1 -1
  694. package/dist-es/cascading-menu/internal/keydownHandlers.js.map +1 -1
  695. package/dist-es/cascading-menu/internal/menuPositioning.js.map +1 -1
  696. package/dist-es/cascading-menu/internal/stateUtils.js +1 -0
  697. package/dist-es/cascading-menu/internal/stateUtils.js.map +1 -1
  698. package/dist-es/cascading-menu/internal/useClickAway.js +4 -1
  699. package/dist-es/cascading-menu/internal/useClickAway.js.map +1 -1
  700. package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  701. package/dist-es/cascading-menu/internal/useMountedRef.js.map +1 -1
  702. package/dist-es/cascading-menu/internal/useMouseHandlers.js +2 -3
  703. package/dist-es/cascading-menu/internal/useMouseHandlers.js.map +1 -1
  704. package/dist-es/cascading-menu/internal/useRefsManager.js.map +1 -1
  705. package/dist-es/cascading-menu/internal/useStateReducer.js.map +1 -1
  706. package/dist-es/cascading-menu/stateChangeTypes.js.map +1 -1
  707. package/dist-es/color-chooser/AlphaInputField.js +17 -13
  708. package/dist-es/color-chooser/AlphaInputField.js.map +1 -1
  709. package/dist-es/color-chooser/Color.js +1 -0
  710. package/dist-es/color-chooser/Color.js.map +1 -1
  711. package/dist-es/color-chooser/ColorChooser.js +58 -58
  712. package/dist-es/color-chooser/ColorChooser.js.map +1 -1
  713. package/dist-es/color-chooser/ColorHelpers.js +5 -9
  714. package/dist-es/color-chooser/ColorHelpers.js.map +1 -1
  715. package/dist-es/color-chooser/ColorPicker.js +33 -47
  716. package/dist-es/color-chooser/ColorPicker.js.map +1 -1
  717. package/dist-es/color-chooser/DictTabs.js +24 -21
  718. package/dist-es/color-chooser/DictTabs.js.map +1 -1
  719. package/dist-es/color-chooser/GetColorPalettes.js +1 -1
  720. package/dist-es/color-chooser/GetColorPalettes.js.map +1 -1
  721. package/dist-es/color-chooser/HexInput.js +9 -13
  722. package/dist-es/color-chooser/HexInput.js.map +1 -1
  723. package/dist-es/color-chooser/RGBAInput.js +24 -37
  724. package/dist-es/color-chooser/RGBAInput.js.map +1 -1
  725. package/dist-es/color-chooser/RGBAInputField.js +14 -10
  726. package/dist-es/color-chooser/RGBAInputField.js.map +1 -1
  727. package/dist-es/color-chooser/Swatch.js +19 -16
  728. package/dist-es/color-chooser/Swatch.js.map +1 -1
  729. package/dist-es/color-chooser/Swatches.js +27 -41
  730. package/dist-es/color-chooser/Swatches.js.map +1 -1
  731. package/dist-es/color-chooser/SwatchesPicker.js +26 -18
  732. package/dist-es/color-chooser/SwatchesPicker.js.map +1 -1
  733. package/dist-es/color-chooser/color-utils.js.map +1 -1
  734. package/dist-es/color-chooser/colorMap.js +1 -0
  735. package/dist-es/color-chooser/colorMap.js.map +1 -1
  736. package/dist-es/color-chooser/createTabsMapping.js.map +1 -1
  737. package/dist-es/combo-box/ComboBox.js +29 -23
  738. package/dist-es/combo-box/ComboBox.js.map +1 -1
  739. package/dist-es/combo-box/useCombobox.js +16 -13
  740. package/dist-es/combo-box/useCombobox.js.map +1 -1
  741. package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js +37 -31
  742. package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  743. package/dist-es/combo-box-deprecated/filterHelpers.js.map +1 -1
  744. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js +37 -35
  745. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  746. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js +37 -35
  747. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  748. package/dist-es/combo-box-deprecated/internal/getAnnouncement.js +1 -1
  749. package/dist-es/combo-box-deprecated/internal/getAnnouncement.js.map +1 -1
  750. package/dist-es/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  751. package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  752. package/dist-es/combo-box-deprecated/internal/usePopperStatus.js.map +1 -1
  753. package/dist-es/common-hooks/calcPreferredHeight.js +2 -1
  754. package/dist-es/common-hooks/calcPreferredHeight.js.map +1 -1
  755. package/dist-es/common-hooks/collectionProvider.js +1 -4
  756. package/dist-es/common-hooks/collectionProvider.js.map +1 -1
  757. package/dist-es/common-hooks/itemToString.js.map +1 -1
  758. package/dist-es/common-hooks/keyUtils.js.map +1 -1
  759. package/dist-es/common-hooks/list-dom-utils.js.map +1 -1
  760. package/dist-es/common-hooks/selectionTypes.js.map +1 -1
  761. package/dist-es/common-hooks/useAutoSizer.js.map +1 -1
  762. package/dist-es/common-hooks/useCollapsibleGroups.js.map +1 -1
  763. package/dist-es/common-hooks/useCollectionItems.js +21 -10
  764. package/dist-es/common-hooks/useCollectionItems.js.map +1 -1
  765. package/dist-es/common-hooks/useImperativeScrollingAPI.js.map +1 -1
  766. package/dist-es/common-hooks/useKeyboardNavigation.js +2 -1
  767. package/dist-es/common-hooks/useKeyboardNavigation.js.map +1 -1
  768. package/dist-es/common-hooks/useKeyboardNavigationPanel.js +3 -0
  769. package/dist-es/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
  770. package/dist-es/common-hooks/useSelection.js +3 -5
  771. package/dist-es/common-hooks/useSelection.js.map +1 -1
  772. package/dist-es/common-hooks/useTypeahead.js.map +1 -1
  773. package/dist-es/common-hooks/useViewportTracking.js.map +1 -1
  774. package/dist-es/common-hooks/utils/collection-item-utils.js +2 -2
  775. package/dist-es/common-hooks/utils/collection-item-utils.js.map +1 -1
  776. package/dist-es/common-hooks/utils/filter-utils.js.map +1 -1
  777. package/dist-es/common-hooks/utils/isSelected.js.map +1 -1
  778. package/dist-es/contact-details/ContactAction.js +9 -11
  779. package/dist-es/contact-details/ContactAction.js.map +1 -1
  780. package/dist-es/contact-details/ContactActions.js +1 -6
  781. package/dist-es/contact-details/ContactActions.js.map +1 -1
  782. package/dist-es/contact-details/ContactAvatar.js +17 -14
  783. package/dist-es/contact-details/ContactAvatar.js.map +1 -1
  784. package/dist-es/contact-details/ContactDetails.js +6 -8
  785. package/dist-es/contact-details/ContactDetails.js.map +1 -1
  786. package/dist-es/contact-details/ContactFavoriteToggle.js +13 -10
  787. package/dist-es/contact-details/ContactFavoriteToggle.js.map +1 -1
  788. package/dist-es/contact-details/ContactMetadata.js +13 -11
  789. package/dist-es/contact-details/ContactMetadata.js.map +1 -1
  790. package/dist-es/contact-details/ContactMetadataItem.js +5 -21
  791. package/dist-es/contact-details/ContactMetadataItem.js.map +1 -1
  792. package/dist-es/contact-details/ContactPrimaryInfo.js +16 -13
  793. package/dist-es/contact-details/ContactPrimaryInfo.js.map +1 -1
  794. package/dist-es/contact-details/ContactSecondaryInfo.js +16 -15
  795. package/dist-es/contact-details/ContactSecondaryInfo.js.map +1 -1
  796. package/dist-es/contact-details/ContactTertiaryInfo.js +16 -15
  797. package/dist-es/contact-details/ContactTertiaryInfo.js.map +1 -1
  798. package/dist-es/contact-details/MailLinkComponent.js +1 -10
  799. package/dist-es/contact-details/MailLinkComponent.js.map +1 -1
  800. package/dist-es/contact-details/internal/ContactDetailsContext.js.map +1 -1
  801. package/dist-es/contact-details/internal/FavoriteToggle.js +18 -15
  802. package/dist-es/contact-details/internal/FavoriteToggle.js.map +1 -1
  803. package/dist-es/contact-details/internal/FavoriteToggleWithTooltip.js +1 -9
  804. package/dist-es/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  805. package/dist-es/contact-details/internal/StarIcon.js +10 -12
  806. package/dist-es/contact-details/internal/StarIcon.js.map +1 -1
  807. package/dist-es/contact-details/internal/StarIconContainer.js +28 -22
  808. package/dist-es/contact-details/internal/StarIconContainer.js.map +1 -1
  809. package/dist-es/contact-details/internal/useComponentSize.js.map +1 -1
  810. package/dist-es/content-status/ContentStatus.js +16 -29
  811. package/dist-es/content-status/ContentStatus.js.map +1 -1
  812. package/dist-es/content-status/internal/StatusIndicator.js +30 -21
  813. package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
  814. package/dist-es/date-input/DateInputRange.js +91 -94
  815. package/dist-es/date-input/DateInputRange.js.map +1 -1
  816. package/dist-es/date-input/DateInputSingle.js +55 -56
  817. package/dist-es/date-input/DateInputSingle.js.map +1 -1
  818. package/dist-es/date-input/utils.js.map +1 -1
  819. package/dist-es/date-picker/DatePicker.js +3 -24
  820. package/dist-es/date-picker/DatePicker.js.map +1 -1
  821. package/dist-es/date-picker/DatePickerActions.js +13 -21
  822. package/dist-es/date-picker/DatePickerActions.js.map +1 -1
  823. package/dist-es/date-picker/DatePickerContext.js.map +1 -1
  824. package/dist-es/date-picker/DatePickerOverlay.js +18 -15
  825. package/dist-es/date-picker/DatePickerOverlay.js.map +1 -1
  826. package/dist-es/date-picker/DatePickerOverlayProvider.js +3 -6
  827. package/dist-es/date-picker/DatePickerOverlayProvider.js.map +1 -1
  828. package/dist-es/date-picker/DatePickerRangeInput.js +29 -23
  829. package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -1
  830. package/dist-es/date-picker/DatePickerRangePanel.js +25 -53
  831. package/dist-es/date-picker/DatePickerRangePanel.js.map +1 -1
  832. package/dist-es/date-picker/DatePickerSingleInput.js +32 -26
  833. package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -1
  834. package/dist-es/date-picker/DatePickerSinglePanel.js +19 -43
  835. package/dist-es/date-picker/DatePickerSinglePanel.js.map +1 -1
  836. package/dist-es/date-picker/useDatePicker.js +2 -2
  837. package/dist-es/date-picker/useDatePicker.js.map +1 -1
  838. package/dist-es/deck-item/DeckItem.js +21 -16
  839. package/dist-es/deck-item/DeckItem.js.map +1 -1
  840. package/dist-es/deck-layout/DeckLayout.js +34 -25
  841. package/dist-es/deck-layout/DeckLayout.js.map +1 -1
  842. package/dist-es/dialog/DialogHeader.css.js +4 -0
  843. package/dist-es/dialog/DialogHeader.css.js.map +1 -0
  844. package/dist-es/dialog/DialogHeader.js +61 -0
  845. package/dist-es/dialog/DialogHeader.js.map +1 -0
  846. package/dist-es/dropdown/Dropdown.js +28 -22
  847. package/dist-es/dropdown/Dropdown.js.map +1 -1
  848. package/dist-es/dropdown/DropdownBase.js +29 -27
  849. package/dist-es/dropdown/DropdownBase.js.map +1 -1
  850. package/dist-es/dropdown/DropdownButton.js +40 -34
  851. package/dist-es/dropdown/DropdownButton.js.map +1 -1
  852. package/dist-es/dropdown/useClickAway.js.map +1 -1
  853. package/dist-es/dropdown/useDropdown.js +2 -2
  854. package/dist-es/dropdown/useDropdown.js.map +1 -1
  855. package/dist-es/dropdown/useDropdownBase.js +3 -3
  856. package/dist-es/dropdown/useDropdownBase.js.map +1 -1
  857. package/dist-es/editable-label/EditableLabel.js +23 -17
  858. package/dist-es/editable-label/EditableLabel.js.map +1 -1
  859. package/dist-es/form-field-context-legacy/FormFieldLegacyContext.js.map +1 -1
  860. package/dist-es/form-field-context-legacy/useFormFieldLegacyProps.js.map +1 -1
  861. package/dist-es/form-field-legacy/FormActivationIndicator.js +29 -36
  862. package/dist-es/form-field-legacy/FormActivationIndicator.js.map +1 -1
  863. package/dist-es/form-field-legacy/FormFieldLegacy.js +53 -42
  864. package/dist-es/form-field-legacy/FormFieldLegacy.js.map +1 -1
  865. package/dist-es/form-field-legacy/FormHelperText.js +1 -5
  866. package/dist-es/form-field-legacy/FormHelperText.js.map +1 -1
  867. package/dist-es/form-field-legacy/FormLabel.js +34 -22
  868. package/dist-es/form-field-legacy/FormLabel.js.map +1 -1
  869. package/dist-es/form-field-legacy/NecessityIndicator.js +9 -6
  870. package/dist-es/form-field-legacy/NecessityIndicator.js.map +1 -1
  871. package/dist-es/form-field-legacy/StatusIndicator.js +22 -16
  872. package/dist-es/form-field-legacy/StatusIndicator.js.map +1 -1
  873. package/dist-es/form-group/FormGroup.js +8 -5
  874. package/dist-es/form-group/FormGroup.js.map +1 -1
  875. package/dist-es/formatted-input/FormattedInput.js +13 -10
  876. package/dist-es/formatted-input/FormattedInput.js.map +1 -1
  877. package/dist-es/formatted-input/internal/InputWithMask.js +13 -12
  878. package/dist-es/formatted-input/internal/InputWithMask.js.map +1 -1
  879. package/dist-es/index.js +7 -1
  880. package/dist-es/index.js.map +1 -1
  881. package/dist-es/input-legacy/InputLegacy.js +48 -45
  882. package/dist-es/input-legacy/InputLegacy.js.map +1 -1
  883. package/dist-es/input-legacy/StaticInputAdornment.js +1 -6
  884. package/dist-es/input-legacy/StaticInputAdornment.js.map +1 -1
  885. package/dist-es/input-legacy/useCursorOnFocus.js.map +1 -1
  886. package/dist-es/layer-layout/LayerLayout.js +34 -28
  887. package/dist-es/layer-layout/LayerLayout.js.map +1 -1
  888. package/dist-es/list/Highlighter.js +9 -9
  889. package/dist-es/list/Highlighter.js.map +1 -1
  890. package/dist-es/list/List.js +61 -61
  891. package/dist-es/list/List.js.map +1 -1
  892. package/dist-es/list/ListItem.js +29 -26
  893. package/dist-es/list/ListItem.js.map +1 -1
  894. package/dist-es/list/VirtualizedList.js +52 -46
  895. package/dist-es/list/VirtualizedList.js.map +1 -1
  896. package/dist-es/list/keyset.js.map +1 -1
  897. package/dist-es/list/useList.js +3 -0
  898. package/dist-es/list/useList.js.map +1 -1
  899. package/dist-es/list/useListHeight.js +4 -2
  900. package/dist-es/list/useListHeight.js.map +1 -1
  901. package/dist-es/list/useVirtualization.js.map +1 -1
  902. package/dist-es/list-deprecated/List.js +6 -12
  903. package/dist-es/list-deprecated/List.js.map +1 -1
  904. package/dist-es/list-deprecated/ListBase.js +99 -85
  905. package/dist-es/list-deprecated/ListBase.js.map +1 -1
  906. package/dist-es/list-deprecated/ListItem.js +1 -6
  907. package/dist-es/list-deprecated/ListItem.js.map +1 -1
  908. package/dist-es/list-deprecated/ListItemBase.js +10 -12
  909. package/dist-es/list-deprecated/ListItemBase.js.map +1 -1
  910. package/dist-es/list-deprecated/ListItemContext.js.map +1 -1
  911. package/dist-es/list-deprecated/ListStateContext.js.map +1 -1
  912. package/dist-es/list-deprecated/internal/DescendantContext.js +1 -4
  913. package/dist-es/list-deprecated/internal/DescendantContext.js.map +1 -1
  914. package/dist-es/list-deprecated/internal/Highlighter.js +4 -9
  915. package/dist-es/list-deprecated/internal/Highlighter.js.map +1 -1
  916. package/dist-es/list-deprecated/internal/calcPreferredListHeight.js +2 -1
  917. package/dist-es/list-deprecated/internal/calcPreferredListHeight.js.map +1 -1
  918. package/dist-es/list-deprecated/internal/scrollIntoView.js.map +1 -1
  919. package/dist-es/list-deprecated/internal/useListAutoSizer.js.map +1 -1
  920. package/dist-es/list-deprecated/internal/useWidth.js.map +1 -1
  921. package/dist-es/list-deprecated/itemToString.js.map +1 -1
  922. package/dist-es/list-deprecated/useList.js +7 -7
  923. package/dist-es/list-deprecated/useList.js.map +1 -1
  924. package/dist-es/list-deprecated/useListItem.js +5 -0
  925. package/dist-es/list-deprecated/useListItem.js.map +1 -1
  926. package/dist-es/list-deprecated/useTypeSelect.js +2 -0
  927. package/dist-es/list-deprecated/useTypeSelect.js.map +1 -1
  928. package/dist-es/list-next/ListItemNext.js +25 -23
  929. package/dist-es/list-next/ListItemNext.js.map +1 -1
  930. package/dist-es/list-next/ListNext.js +5 -5
  931. package/dist-es/list-next/ListNext.js.map +1 -1
  932. package/dist-es/list-next/ListNextContext.js.map +1 -1
  933. package/dist-es/list-next/useList.js +3 -4
  934. package/dist-es/list-next/useList.js.map +1 -1
  935. package/dist-es/logo/Logo.js +1 -5
  936. package/dist-es/logo/Logo.js.map +1 -1
  937. package/dist-es/logo/LogoImage.js +9 -6
  938. package/dist-es/logo/LogoImage.js.map +1 -1
  939. package/dist-es/logo/LogoSeparator.js +1 -5
  940. package/dist-es/logo/LogoSeparator.js.map +1 -1
  941. package/dist-es/menu-button/MenuButton.js +21 -15
  942. package/dist-es/menu-button/MenuButton.js.map +1 -1
  943. package/dist-es/menu-button/MenuButtonTrigger.js +21 -15
  944. package/dist-es/menu-button/MenuButtonTrigger.js.map +1 -1
  945. package/dist-es/metric/Metric.js +5 -5
  946. package/dist-es/metric/Metric.js.map +1 -1
  947. package/dist-es/metric/MetricContent.js +32 -28
  948. package/dist-es/metric/MetricContent.js.map +1 -1
  949. package/dist-es/metric/MetricHeader.js +20 -24
  950. package/dist-es/metric/MetricHeader.js.map +1 -1
  951. package/dist-es/metric/internal/MetricContext.js.map +1 -1
  952. package/dist-es/portal/Portal.js +3 -8
  953. package/dist-es/portal/Portal.js.map +1 -1
  954. package/dist-es/query-input/QueryInput.js +21 -17
  955. package/dist-es/query-input/QueryInput.js.map +1 -1
  956. package/dist-es/query-input/internal/CategoryList.js +8 -15
  957. package/dist-es/query-input/internal/CategoryList.js.map +1 -1
  958. package/dist-es/query-input/internal/CategoryListContext.js.map +1 -1
  959. package/dist-es/query-input/internal/CategoryListItem.js +9 -30
  960. package/dist-es/query-input/internal/CategoryListItem.js.map +1 -1
  961. package/dist-es/query-input/internal/QueryInputBody.js +16 -22
  962. package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
  963. package/dist-es/query-input/internal/SearchList.js +21 -26
  964. package/dist-es/query-input/internal/SearchList.js.map +1 -1
  965. package/dist-es/query-input/internal/ValueList.js +18 -23
  966. package/dist-es/query-input/internal/ValueList.js.map +1 -1
  967. package/dist-es/query-input/internal/ValueSelector.js +42 -35
  968. package/dist-es/query-input/internal/ValueSelector.js.map +1 -1
  969. package/dist-es/query-input/internal/usePopperStatus.js.map +1 -1
  970. package/dist-es/query-input/useQueryInput.js.map +1 -1
  971. package/dist-es/responsive/OverflowReducer.js +7 -7
  972. package/dist-es/responsive/OverflowReducer.js.map +1 -1
  973. package/dist-es/responsive/overflowUtils.js.map +1 -1
  974. package/dist-es/responsive/useDynamicCollapse.js.map +1 -1
  975. package/dist-es/responsive/useInstantCollapse.js +1 -2
  976. package/dist-es/responsive/useInstantCollapse.js.map +1 -1
  977. package/dist-es/responsive/useOverflow.js.map +1 -1
  978. package/dist-es/responsive/useOverflowCollectionItems.js +1 -2
  979. package/dist-es/responsive/useOverflowCollectionItems.js.map +1 -1
  980. package/dist-es/responsive/useOverflowLayout.js +4 -5
  981. package/dist-es/responsive/useOverflowLayout.js.map +1 -1
  982. package/dist-es/responsive/useReclaimSpace.js +1 -2
  983. package/dist-es/responsive/useReclaimSpace.js.map +1 -1
  984. package/dist-es/responsive/useResizeObserver.js.map +1 -1
  985. package/dist-es/responsive/useWidth.js.map +1 -1
  986. package/dist-es/responsive/utils.js +2 -8
  987. package/dist-es/responsive/utils.js.map +1 -1
  988. package/dist-es/search-input/SearchInput.js +27 -22
  989. package/dist-es/search-input/SearchInput.js.map +1 -1
  990. package/dist-es/skip-link/SkipLink.js +5 -4
  991. package/dist-es/skip-link/SkipLink.js.map +1 -1
  992. package/dist-es/skip-link/SkipLinks.js +1 -6
  993. package/dist-es/skip-link/SkipLinks.js.map +1 -1
  994. package/dist-es/skip-link/internal/useManageFocusOnTarget.js.map +1 -1
  995. package/dist-es/slider/Slider.js +47 -39
  996. package/dist-es/slider/Slider.js.map +1 -1
  997. package/dist-es/slider/internal/SliderContext.js.map +1 -1
  998. package/dist-es/slider/internal/SliderMarks.js +8 -8
  999. package/dist-es/slider/internal/SliderMarks.js.map +1 -1
  1000. package/dist-es/slider/internal/SliderSelection.js +13 -10
  1001. package/dist-es/slider/internal/SliderSelection.js.map +1 -1
  1002. package/dist-es/slider/internal/SliderThumb.js +49 -43
  1003. package/dist-es/slider/internal/SliderThumb.js.map +1 -1
  1004. package/dist-es/slider/internal/SliderTrack.js +26 -22
  1005. package/dist-es/slider/internal/SliderTrack.js.map +1 -1
  1006. package/dist-es/slider/internal/useKeyDownThumb.js +1 -2
  1007. package/dist-es/slider/internal/useKeyDownThumb.js.map +1 -1
  1008. package/dist-es/slider/internal/utils.js +5 -10
  1009. package/dist-es/slider/internal/utils.js.map +1 -1
  1010. package/dist-es/static-list/StaticList.js +1 -6
  1011. package/dist-es/static-list/StaticList.js.map +1 -1
  1012. package/dist-es/static-list/StaticListItem.js +1 -6
  1013. package/dist-es/static-list/StaticListItem.js.map +1 -1
  1014. package/dist-es/static-list/StaticListItemContent.js +1 -6
  1015. package/dist-es/static-list/StaticListItemContent.js.map +1 -1
  1016. package/dist-es/stepped-tracker/StepLabel/StepLabel.js +1 -8
  1017. package/dist-es/stepped-tracker/StepLabel/StepLabel.js.map +1 -1
  1018. package/dist-es/stepped-tracker/SteppedTracker.js +6 -10
  1019. package/dist-es/stepped-tracker/SteppedTracker.js.map +1 -1
  1020. package/dist-es/stepped-tracker/SteppedTrackerContext.js +2 -8
  1021. package/dist-es/stepped-tracker/SteppedTrackerContext.js.map +1 -1
  1022. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js +1 -3
  1023. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js.map +1 -1
  1024. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +24 -29
  1025. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
  1026. package/dist-es/stepper-input/StepperInput.js +84 -87
  1027. package/dist-es/stepper-input/StepperInput.js.map +1 -1
  1028. package/dist-es/stepper-input/internal/useActivateWhileMouseDown.js +2 -4
  1029. package/dist-es/stepper-input/internal/useActivateWhileMouseDown.js.map +1 -1
  1030. package/dist-es/stepper-input/internal/useInterval.js.map +1 -1
  1031. package/dist-es/stepper-input/internal/utils.js +5 -10
  1032. package/dist-es/stepper-input/internal/utils.js.map +1 -1
  1033. package/dist-es/stepper-input/useStepperInput.js +6 -12
  1034. package/dist-es/stepper-input/useStepperInput.js.map +1 -1
  1035. package/dist-es/system-status/SystemStatus.js +13 -13
  1036. package/dist-es/system-status/SystemStatus.js.map +1 -1
  1037. package/dist-es/system-status/SystemStatusActions.js +1 -5
  1038. package/dist-es/system-status/SystemStatusActions.js.map +1 -1
  1039. package/dist-es/system-status/SystemStatusContent.js +1 -5
  1040. package/dist-es/system-status/SystemStatusContent.js.map +1 -1
  1041. package/dist-es/tabs/Tab.js +74 -55
  1042. package/dist-es/tabs/Tab.js.map +1 -1
  1043. package/dist-es/tabs/TabActivationIndicator.js +1 -8
  1044. package/dist-es/tabs/TabActivationIndicator.js.map +1 -1
  1045. package/dist-es/tabs/TabPanel.js +11 -8
  1046. package/dist-es/tabs/TabPanel.js.map +1 -1
  1047. package/dist-es/tabs/Tabs.js +21 -15
  1048. package/dist-es/tabs/Tabs.js.map +1 -1
  1049. package/dist-es/tabs/Tabstrip.js +86 -70
  1050. package/dist-es/tabs/Tabstrip.js.map +1 -1
  1051. package/dist-es/tabs/drag-drop/Draggable.js +5 -4
  1052. package/dist-es/tabs/drag-drop/Draggable.js.map +1 -1
  1053. package/dist-es/tabs/drag-drop/drag-utils.js +1 -2
  1054. package/dist-es/tabs/drag-drop/drag-utils.js.map +1 -1
  1055. package/dist-es/tabs/drag-drop/useDragDrop.js.map +1 -1
  1056. package/dist-es/tabs/drag-drop/useDragDropNaturalMovement.js +9 -6
  1057. package/dist-es/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
  1058. package/dist-es/tabs/drag-drop/useDragSpacers.js +1 -0
  1059. package/dist-es/tabs/drag-drop/useDragSpacers.js.map +1 -1
  1060. package/dist-es/tabs/useActivationIndicator.js.map +1 -1
  1061. package/dist-es/tabs/useEditableItem.js.map +1 -1
  1062. package/dist-es/tabs/useItemsWithIds.js +1 -5
  1063. package/dist-es/tabs/useItemsWithIds.js.map +1 -1
  1064. package/dist-es/tabs/useKeyboardNavigation.js.map +1 -1
  1065. package/dist-es/tabs/useSelection.js +1 -1
  1066. package/dist-es/tabs/useSelection.js.map +1 -1
  1067. package/dist-es/tabs/useTabs.js +3 -3
  1068. package/dist-es/tabs/useTabs.js.map +1 -1
  1069. package/dist-es/tabs/useTabstrip.js +3 -1
  1070. package/dist-es/tabs/useTabstrip.js.map +1 -1
  1071. package/dist-es/tabs-next/TabBar.css.js +4 -0
  1072. package/dist-es/tabs-next/TabBar.css.js.map +1 -0
  1073. package/dist-es/tabs-next/TabBar.js +39 -0
  1074. package/dist-es/tabs-next/TabBar.js.map +1 -0
  1075. package/dist-es/tabs-next/TabListNext.css.js +4 -0
  1076. package/dist-es/tabs-next/TabListNext.css.js.map +1 -0
  1077. package/dist-es/tabs-next/TabListNext.js +125 -0
  1078. package/dist-es/tabs-next/TabListNext.js.map +1 -0
  1079. package/dist-es/tabs-next/TabNext.css.js +1 -1
  1080. package/dist-es/tabs-next/TabNext.js +77 -55
  1081. package/dist-es/tabs-next/TabNext.js.map +1 -1
  1082. package/dist-es/tabs-next/TabNextAction.js +33 -0
  1083. package/dist-es/tabs-next/TabNextAction.js.map +1 -0
  1084. package/dist-es/tabs-next/TabNextContext.js +14 -14
  1085. package/dist-es/tabs-next/TabNextContext.js.map +1 -1
  1086. package/dist-es/tabs-next/TabNextPanel.css.js +4 -0
  1087. package/dist-es/tabs-next/TabNextPanel.css.js.map +1 -0
  1088. package/dist-es/tabs-next/TabNextPanel.js +75 -0
  1089. package/dist-es/tabs-next/TabNextPanel.js.map +1 -0
  1090. package/dist-es/tabs-next/TabNextTrigger.css.js +4 -0
  1091. package/dist-es/tabs-next/TabNextTrigger.css.js.map +1 -0
  1092. package/dist-es/tabs-next/TabNextTrigger.js +75 -0
  1093. package/dist-es/tabs-next/TabNextTrigger.js.map +1 -0
  1094. package/dist-es/tabs-next/TabOverflowList.css.js +4 -0
  1095. package/dist-es/tabs-next/TabOverflowList.css.js.map +1 -0
  1096. package/dist-es/tabs-next/TabOverflowList.js +130 -0
  1097. package/dist-es/tabs-next/TabOverflowList.js.map +1 -0
  1098. package/dist-es/tabs-next/TabsNext.js +174 -0
  1099. package/dist-es/tabs-next/TabsNext.js.map +1 -0
  1100. package/dist-es/tabs-next/TabsNextContext.js +30 -0
  1101. package/dist-es/tabs-next/TabsNextContext.js.map +1 -0
  1102. package/dist-es/tabs-next/hooks/useCollection.js +89 -0
  1103. package/dist-es/tabs-next/hooks/useCollection.js.map +1 -0
  1104. package/dist-es/tabs-next/hooks/useFocusOutside.js +23 -0
  1105. package/dist-es/tabs-next/hooks/useFocusOutside.js.map +1 -0
  1106. package/dist-es/tabs-next/hooks/useOverflow.js +139 -0
  1107. package/dist-es/tabs-next/hooks/useOverflow.js.map +1 -0
  1108. package/dist-es/toast-group/ToastGroup.js +8 -5
  1109. package/dist-es/toast-group/ToastGroup.js.map +1 -1
  1110. package/dist-es/tokenized-input/TokenizedInput.js +9 -6
  1111. package/dist-es/tokenized-input/TokenizedInput.js.map +1 -1
  1112. package/dist-es/tokenized-input/TokenizedInputBase.js +104 -89
  1113. package/dist-es/tokenized-input/TokenizedInputBase.js.map +1 -1
  1114. package/dist-es/tokenized-input/internal/InputPill.js +24 -24
  1115. package/dist-es/tokenized-input/internal/InputPill.js.map +1 -1
  1116. package/dist-es/tokenized-input/internal/InputRuler.js +1 -5
  1117. package/dist-es/tokenized-input/internal/InputRuler.js.map +1 -1
  1118. package/dist-es/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
  1119. package/dist-es/tokenized-input/internal/defaultItemToString.js.map +1 -1
  1120. package/dist-es/tokenized-input/internal/getCursorPosition.js.map +1 -1
  1121. package/dist-es/tokenized-input/internal/useResizeObserver.js.map +1 -1
  1122. package/dist-es/tokenized-input/internal/useWidth.js.map +1 -1
  1123. package/dist-es/tokenized-input/useTokenizedInput.js +10 -0
  1124. package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
  1125. package/dist-es/tokenized-input-next/TokenizedInputNext.js +68 -56
  1126. package/dist-es/tokenized-input-next/TokenizedInputNext.js.map +1 -1
  1127. package/dist-es/tokenized-input-next/internal/InputPill.js +6 -10
  1128. package/dist-es/tokenized-input-next/internal/InputPill.js.map +1 -1
  1129. package/dist-es/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
  1130. package/dist-es/tokenized-input-next/internal/useResizeObserver.js.map +1 -1
  1131. package/dist-es/tokenized-input-next/internal/useWidth.js +1 -1
  1132. package/dist-es/tokenized-input-next/internal/useWidth.js.map +1 -1
  1133. package/dist-es/tokenized-input-next/useTokenizedInputNext.js +8 -3
  1134. package/dist-es/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
  1135. package/dist-es/toolbar/Toolbar.js +43 -33
  1136. package/dist-es/toolbar/Toolbar.js.map +1 -1
  1137. package/dist-es/toolbar/ToolbarButton.js +10 -7
  1138. package/dist-es/toolbar/ToolbarButton.js.map +1 -1
  1139. package/dist-es/toolbar/Tooltray.js +23 -27
  1140. package/dist-es/toolbar/Tooltray.js.map +1 -1
  1141. package/dist-es/toolbar/internal/renderToolbarItems.js +7 -10
  1142. package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
  1143. package/dist-es/toolbar/internal/renderTrayTools.js +23 -16
  1144. package/dist-es/toolbar/internal/renderTrayTools.js.map +1 -1
  1145. package/dist-es/toolbar/overflow-panel/OverflowPanel.js +40 -41
  1146. package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  1147. package/dist-es/toolbar/overflow-panel/OverflowSeparator.js +1 -4
  1148. package/dist-es/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
  1149. package/dist-es/toolbar/toolbar-field/ToolbarField.js +1 -4
  1150. package/dist-es/toolbar/toolbar-field/ToolbarField.js.map +1 -1
  1151. package/dist-es/toolbar/toolbar-field/useToolbarField.js +2 -2
  1152. package/dist-es/toolbar/toolbar-field/useToolbarField.js.map +1 -1
  1153. package/dist-es/tree/Tree.js +57 -46
  1154. package/dist-es/tree/Tree.js.map +1 -1
  1155. package/dist-es/tree/TreeNode.js +11 -23
  1156. package/dist-es/tree/TreeNode.js.map +1 -1
  1157. package/dist-es/tree/use-tree-keyboard-navigation.js.map +1 -1
  1158. package/dist-es/tree/useTree.js +11 -4
  1159. package/dist-es/tree/useTree.js.map +1 -1
  1160. package/dist-es/utils/escapeRegExp.js.map +1 -1
  1161. package/dist-es/utils/forwardCallbackProps.js.map +1 -1
  1162. package/dist-es/utils/isEmail.js.map +1 -1
  1163. package/dist-es/utils/partition.js.map +1 -1
  1164. package/dist-es/utils/useClickOutside.js +1 -1
  1165. package/dist-es/utils/useClickOutside.js.map +1 -1
  1166. package/dist-es/utils/useEventCallback.js +4 -1
  1167. package/dist-es/utils/useEventCallback.js.map +1 -1
  1168. package/dist-es/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  1169. package/dist-es/utils/useLayoutEffectOnce.js.map +1 -1
  1170. package/dist-es/utils/useLayoutEffectSkipFirst.js.map +1 -1
  1171. package/dist-es/utils/useOverflowDetection.js.map +1 -1
  1172. package/dist-es/utils/useSlideSelection.js.map +1 -1
  1173. package/dist-es/window/ElectronWindow.js +6 -14
  1174. package/dist-es/window/ElectronWindow.js.map +1 -1
  1175. package/dist-es/window/WindowContext.js +1 -5
  1176. package/dist-es/window/WindowContext.js.map +1 -1
  1177. package/dist-es/window/desktop-utils.js.map +1 -1
  1178. package/dist-types/contact-details/internal/StarIcon.d.ts +1 -2
  1179. package/dist-types/contact-details/internal/StarIconContainer.d.ts +2 -2
  1180. package/dist-types/date-picker/DatePickerActions.d.ts +3 -3
  1181. package/dist-types/dialog/DialogHeader.d.ts +28 -0
  1182. package/dist-types/dialog/index.d.ts +1 -0
  1183. package/dist-types/editable-label/EditableLabel.d.ts +1 -2
  1184. package/dist-types/index.d.ts +1 -0
  1185. package/dist-types/list-deprecated/internal/DescendantContext.d.ts +1 -2
  1186. package/dist-types/responsive/overflowUtils.d.ts +1 -1
  1187. package/dist-types/tabs/drag-drop/drag-utils.d.ts +6 -6
  1188. package/dist-types/tabs-next/TabBar.d.ts +12 -0
  1189. package/dist-types/tabs-next/TabListNext.d.ts +12 -0
  1190. package/dist-types/tabs-next/TabNext.d.ts +9 -2
  1191. package/dist-types/tabs-next/TabNextAction.d.ts +4 -0
  1192. package/dist-types/tabs-next/TabNextContext.d.ts +9 -16
  1193. package/dist-types/tabs-next/TabNextPanel.d.ts +8 -0
  1194. package/dist-types/tabs-next/TabNextTrigger.d.ts +4 -0
  1195. package/dist-types/tabs-next/TabOverflowList.d.ts +11 -0
  1196. package/dist-types/tabs-next/TabsNext.d.ts +17 -0
  1197. package/dist-types/tabs-next/TabsNextContext.d.ts +21 -0
  1198. package/dist-types/tabs-next/hooks/useCollection.d.ts +18 -0
  1199. package/dist-types/tabs-next/hooks/useFocusOutside.d.ts +2 -0
  1200. package/dist-types/tabs-next/hooks/useOverflow.d.ts +11 -0
  1201. package/dist-types/tabs-next/index.d.ts +6 -1
  1202. package/package.json +9 -8
  1203. package/dist-cjs/tabs-next/OverflowMenu.js +0 -48
  1204. package/dist-cjs/tabs-next/OverflowMenu.js.map +0 -1
  1205. package/dist-cjs/tabs-next/TabstripNext.css.js +0 -6
  1206. package/dist-cjs/tabs-next/TabstripNext.css.js.map +0 -1
  1207. package/dist-cjs/tabs-next/TabstripNext.js +0 -193
  1208. package/dist-cjs/tabs-next/TabstripNext.js.map +0 -1
  1209. package/dist-es/tabs-next/OverflowMenu.js +0 -44
  1210. package/dist-es/tabs-next/OverflowMenu.js.map +0 -1
  1211. package/dist-es/tabs-next/TabstripNext.css.js +0 -4
  1212. package/dist-es/tabs-next/TabstripNext.css.js.map +0 -1
  1213. package/dist-es/tabs-next/TabstripNext.js +0 -185
  1214. package/dist-es/tabs-next/TabstripNext.js.map +0 -1
  1215. package/dist-types/tabs-next/OverflowMenu.d.ts +0 -11
  1216. package/dist-types/tabs-next/TabstripNext.d.ts +0 -12
@@ -24,15 +24,10 @@ function ValueList(props) {
24
24
  const handleSelect = (_, value) => {
25
25
  onValueToggle(category, value);
26
26
  };
27
- const items = category ? category.values.map((value) => /* @__PURE__ */ jsx(ListItem, {
28
- item: value,
29
- children: value
30
- }, value)) : [];
31
- return /* @__PURE__ */ jsx("div", {
32
- className: withBaseName(),
33
- tabIndex: 0,
34
- "data-testid": "value-list",
35
- children: /* @__PURE__ */ jsxs(List, {
27
+ const items = category ? category.values.map((value) => /* @__PURE__ */ jsx(ListItem, { item: value, children: value }, value)) : [];
28
+ return /* @__PURE__ */ jsx("div", { className: withBaseName(), tabIndex: 0, "data-testid": "value-list", children: /* @__PURE__ */ jsxs(
29
+ List,
30
+ {
36
31
  borderless: true,
37
32
  checkable: false,
38
33
  highlightedIndex: highlightedValueIndex,
@@ -42,22 +37,22 @@ function ValueList(props) {
42
37
  selected: selectedValues,
43
38
  width: rootWidth,
44
39
  children: [
45
- /* @__PURE__ */ jsxs(ListItem, {
46
- className: withBaseName("back"),
47
- onClick: onBack,
48
- selectable: false,
49
- children: [
50
- /* @__PURE__ */ jsx(PreviousIcon, {}),
51
- /* @__PURE__ */ jsx("div", {
52
- className: withBaseName("category"),
53
- children: category ? category.name : ""
54
- })
55
- ]
56
- }),
40
+ /* @__PURE__ */ jsxs(
41
+ ListItem,
42
+ {
43
+ className: withBaseName("back"),
44
+ onClick: onBack,
45
+ selectable: false,
46
+ children: [
47
+ /* @__PURE__ */ jsx(PreviousIcon, {}),
48
+ /* @__PURE__ */ jsx("div", { className: withBaseName("category"), children: category ? category.name : "" })
49
+ ]
50
+ }
51
+ ),
57
52
  items
58
53
  ]
59
- })
60
- });
54
+ }
55
+ ) });
61
56
  }
62
57
 
63
58
  export { ValueList };
@@ -1 +1 @@
1
- {"version":3,"file":"ValueList.js","sources":["../src/query-input/internal/ValueList.tsx"],"sourcesContent":["import { makePrefixer, useIcon } from \"@salt-ds/core\";\nimport type { Dispatch, ReactElement, SetStateAction } from \"react\";\nimport type { SelectHandler } from \"../../common-hooks\";\nimport { List, ListItem } from \"../../list\";\nimport type { QueryInputCategory } from \"../queryInputTypes\";\n\nconst withBaseName = makePrefixer(\"saltQueryInputValueList\");\n\nexport interface ValueListProps {\n category: QueryInputCategory | null;\n rootWidth: number;\n onBack: () => void;\n selectedValues: string[];\n onValueToggle: (category: QueryInputCategory, value: string) => void;\n highlightedValueIndex?: number;\n setHighlightedValueIndex: Dispatch<SetStateAction<number>>;\n}\n\nexport function ValueList(props: ValueListProps) {\n const {\n category,\n rootWidth,\n onBack,\n selectedValues,\n onValueToggle,\n highlightedValueIndex,\n setHighlightedValueIndex,\n } = props;\n const { PreviousIcon } = useIcon();\n\n const handleSelect: SelectHandler = (_, value: string) => {\n onValueToggle(category!, value);\n };\n\n const items: ReactElement[] = category\n ? category.values.map((value) => (\n <ListItem key={value} item={value}>\n {value}\n </ListItem>\n ))\n : [];\n\n return (\n <div className={withBaseName()} tabIndex={0} data-testid=\"value-list\">\n <List\n borderless={true}\n checkable={false}\n highlightedIndex={highlightedValueIndex}\n onHighlight={setHighlightedValueIndex}\n onSelect={handleSelect}\n selectionStrategy=\"multiple\"\n selected={selectedValues}\n width={rootWidth}\n >\n <ListItem\n className={withBaseName(\"back\")}\n onClick={onBack}\n selectable={false}\n >\n <PreviousIcon />\n <div className={withBaseName(\"category\")}>\n {category ? category.name : \"\"}\n </div>\n </ListItem>\n {items}\n </List>\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAMA,MAAM,YAAA,GAAe,aAAa,yBAAyB,CAAA,CAAA;AAYpD,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAA;AAAA,IACA,aAAA;AAAA,IACA,qBAAA;AAAA,IACA,wBAAA;AAAA,GACE,GAAA,KAAA,CAAA;AACJ,EAAM,MAAA,EAAE,YAAa,EAAA,GAAI,OAAQ,EAAA,CAAA;AAEjC,EAAM,MAAA,YAAA,GAA8B,CAAC,CAAA,EAAG,KAAkB,KAAA;AACxD,IAAA,aAAA,CAAc,UAAW,KAAK,CAAA,CAAA;AAAA,GAChC,CAAA;AAEA,EAAA,MAAM,QAAwB,QAC1B,GAAA,QAAA,CAAS,OAAO,GAAI,CAAA,CAAC,0BAClB,GAAA,CAAA,QAAA,EAAA;AAAA,IAAqB,IAAM,EAAA,KAAA;AAAA,IACzB,QAAA,EAAA,KAAA;AAAA,GADY,EAAA,KAEf,CACD,CAAA,GACD,EAAC,CAAA;AAEL,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IAAI,WAAW,YAAa,EAAA;AAAA,IAAG,QAAU,EAAA,CAAA;AAAA,IAAG,aAAY,EAAA,YAAA;AAAA,IACvD,QAAC,kBAAA,IAAA,CAAA,IAAA,EAAA;AAAA,MACC,UAAY,EAAA,IAAA;AAAA,MACZ,SAAW,EAAA,KAAA;AAAA,MACX,gBAAkB,EAAA,qBAAA;AAAA,MAClB,WAAa,EAAA,wBAAA;AAAA,MACb,QAAU,EAAA,YAAA;AAAA,MACV,iBAAkB,EAAA,UAAA;AAAA,MAClB,QAAU,EAAA,cAAA;AAAA,MACV,KAAO,EAAA,SAAA;AAAA,MAEP,QAAA,EAAA;AAAA,wBAAC,IAAA,CAAA,QAAA,EAAA;AAAA,UACC,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,UAC9B,OAAS,EAAA,MAAA;AAAA,UACT,UAAY,EAAA,KAAA;AAAA,UAEZ,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,YAAa,EAAA,EAAA,CAAA;AAAA,4BACb,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,UAAU,CAAA;AAAA,cACpC,QAAA,EAAA,QAAA,GAAW,SAAS,IAAO,GAAA,EAAA;AAAA,aAC9B,CAAA;AAAA,WAAA;AAAA,SACF,CAAA;AAAA,QACC,KAAA;AAAA,OAAA;AAAA,KACH,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ValueList.js","sources":["../src/query-input/internal/ValueList.tsx"],"sourcesContent":["import { makePrefixer, useIcon } from \"@salt-ds/core\";\nimport type { Dispatch, ReactElement, SetStateAction } from \"react\";\nimport type { SelectHandler } from \"../../common-hooks\";\nimport { List, ListItem } from \"../../list\";\nimport type { QueryInputCategory } from \"../queryInputTypes\";\n\nconst withBaseName = makePrefixer(\"saltQueryInputValueList\");\n\nexport interface ValueListProps {\n category: QueryInputCategory | null;\n rootWidth: number;\n onBack: () => void;\n selectedValues: string[];\n onValueToggle: (category: QueryInputCategory, value: string) => void;\n highlightedValueIndex?: number;\n setHighlightedValueIndex: Dispatch<SetStateAction<number>>;\n}\n\nexport function ValueList(props: ValueListProps) {\n const {\n category,\n rootWidth,\n onBack,\n selectedValues,\n onValueToggle,\n highlightedValueIndex,\n setHighlightedValueIndex,\n } = props;\n const { PreviousIcon } = useIcon();\n\n const handleSelect: SelectHandler = (_, value: string) => {\n onValueToggle(category!, value);\n };\n\n const items: ReactElement[] = category\n ? category.values.map((value) => (\n <ListItem key={value} item={value}>\n {value}\n </ListItem>\n ))\n : [];\n\n return (\n <div className={withBaseName()} tabIndex={0} data-testid=\"value-list\">\n <List\n borderless={true}\n checkable={false}\n highlightedIndex={highlightedValueIndex}\n onHighlight={setHighlightedValueIndex}\n onSelect={handleSelect}\n selectionStrategy=\"multiple\"\n selected={selectedValues}\n width={rootWidth}\n >\n <ListItem\n className={withBaseName(\"back\")}\n onClick={onBack}\n selectable={false}\n >\n <PreviousIcon />\n <div className={withBaseName(\"category\")}>\n {category ? category.name : \"\"}\n </div>\n </ListItem>\n {items}\n </List>\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAMA,MAAM,YAAA,GAAe,aAAa,yBAAyB,CAAA;AAYpD,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAA;AAAA,IACA,aAAA;AAAA,IACA,qBAAA;AAAA,IACA;AAAA,GACE,GAAA,KAAA;AACJ,EAAM,MAAA,EAAE,YAAa,EAAA,GAAI,OAAQ,EAAA;AAEjC,EAAM,MAAA,YAAA,GAA8B,CAAC,CAAA,EAAG,KAAkB,KAAA;AACxD,IAAA,aAAA,CAAc,UAAW,KAAK,CAAA;AAAA,GAChC;AAEA,EAAA,MAAM,KAAwB,GAAA,QAAA,GAC1B,QAAS,CAAA,MAAA,CAAO,IAAI,CAAC,KAAA,qBAClB,GAAA,CAAA,QAAA,EAAA,EAAqB,MAAM,KACzB,EAAA,QAAA,EAAA,KAAA,EAAA,EADY,KAEf,CACD,IACD,EAAC;AAEL,EACE,uBAAA,GAAA,CAAC,SAAI,SAAW,EAAA,YAAA,IAAgB,QAAU,EAAA,CAAA,EAAG,eAAY,YACvD,EAAA,QAAA,kBAAA,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA,IAAA;AAAA,MACZ,SAAW,EAAA,KAAA;AAAA,MACX,gBAAkB,EAAA,qBAAA;AAAA,MAClB,WAAa,EAAA,wBAAA;AAAA,MACb,QAAU,EAAA,YAAA;AAAA,MACV,iBAAkB,EAAA,UAAA;AAAA,MAClB,QAAU,EAAA,cAAA;AAAA,MACV,KAAO,EAAA,SAAA;AAAA,MAEP,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,YAC9B,OAAS,EAAA,MAAA;AAAA,YACT,UAAY,EAAA,KAAA;AAAA,YAEZ,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,YAAa,EAAA,EAAA,CAAA;AAAA,8BACd,GAAA,CAAC,SAAI,SAAW,EAAA,YAAA,CAAa,UAAU,CACpC,EAAA,QAAA,EAAA,QAAA,GAAW,QAAS,CAAA,IAAA,GAAO,EAC9B,EAAA;AAAA;AAAA;AAAA,SACF;AAAA,QACC;AAAA;AAAA;AAAA,GAEL,EAAA,CAAA;AAEJ;;;;"}
@@ -41,34 +41,43 @@ function ValueSelector(props) {
41
41
  };
42
42
  const renderContent = () => {
43
43
  if (inputValue) {
44
- return /* @__PURE__ */ jsx(SearchList, {
45
- inputValue,
46
- selectedItems,
47
- onChange: onSearchListChange,
48
- rootWidth: width,
49
- highlightedIndex,
50
- visibleCategories,
51
- setHighlightedIndex
52
- });
44
+ return /* @__PURE__ */ jsx(
45
+ SearchList,
46
+ {
47
+ inputValue,
48
+ selectedItems,
49
+ onChange: onSearchListChange,
50
+ rootWidth: width,
51
+ highlightedIndex,
52
+ visibleCategories,
53
+ setHighlightedIndex
54
+ }
55
+ );
53
56
  }
54
57
  if (!selectedCategory) {
55
- return /* @__PURE__ */ jsx(CategoryList, {
56
- categories,
57
- rootWidth: width,
58
- onCategorySelect: onSelectedCategoryChange,
59
- highlightedCategoryIndex,
60
- setHighlightedCategoryIndex
61
- });
58
+ return /* @__PURE__ */ jsx(
59
+ CategoryList,
60
+ {
61
+ categories,
62
+ rootWidth: width,
63
+ onCategorySelect: onSelectedCategoryChange,
64
+ highlightedCategoryIndex,
65
+ setHighlightedCategoryIndex
66
+ }
67
+ );
62
68
  }
63
- return /* @__PURE__ */ jsx(ValueList, {
64
- category: selectedCategory,
65
- rootWidth: width,
66
- onBack: onBackToCategories,
67
- selectedValues: selectedCategoryValues,
68
- onValueToggle,
69
- highlightedValueIndex,
70
- setHighlightedValueIndex
71
- });
69
+ return /* @__PURE__ */ jsx(
70
+ ValueList,
71
+ {
72
+ category: selectedCategory,
73
+ rootWidth: width,
74
+ onBack: onBackToCategories,
75
+ selectedValues: selectedCategoryValues,
76
+ onValueToggle,
77
+ highlightedValueIndex,
78
+ setHighlightedValueIndex
79
+ }
80
+ );
72
81
  };
73
82
  const Window = useWindow();
74
83
  const { reference, floating, x, y, strategy } = useFloatingUI({
@@ -83,20 +92,18 @@ function ValueSelector(props) {
83
92
  if (!isOpen) {
84
93
  return null;
85
94
  }
86
- return /* @__PURE__ */ jsx(Portal, {
87
- children: /* @__PURE__ */ jsx(Window, {
95
+ return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(
96
+ Window,
97
+ {
88
98
  style: {
89
- top: y != null ? y : 0,
90
- left: x != null ? x : 0,
99
+ top: y ?? 0,
100
+ left: x ?? 0,
91
101
  position: strategy
92
102
  },
93
103
  ref: handleRef,
94
- children: /* @__PURE__ */ jsx("div", {
95
- className: withBaseName("content"),
96
- children: renderContent()
97
- })
98
- })
99
- });
104
+ children: /* @__PURE__ */ jsx("div", { className: withBaseName("content"), children: renderContent() })
105
+ }
106
+ ) });
100
107
  }
101
108
 
102
109
  export { ValueSelector };
@@ -1 +1 @@
1
- {"version":3,"file":"ValueSelector.js","sources":["../src/query-input/internal/ValueSelector.tsx"],"sourcesContent":["import {\n makePrefixer,\n useFloatingUI,\n useForkRef,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { type Dispatch, type Ref, type SetStateAction, useMemo } from \"react\";\nimport { Portal } from \"../../portal\";\nimport { useWindow } from \"../../window\";\nimport type { QueryInputCategory, QueryInputItem } from \"../queryInputTypes\";\nimport { CategoryList } from \"./CategoryList\";\nimport { SearchList } from \"./SearchList\";\nimport { ValueList } from \"./ValueList\";\n\nconst withBaseName = makePrefixer(\"saltQueryInputValueSelector\");\n\nexport interface ValueSelectorProps {\n isOpen: boolean;\n anchorElement: HTMLElement | null;\n popperRef: Ref<HTMLDivElement>;\n\n inputValue?: string;\n categories: QueryInputCategory[];\n selectedCategory: QueryInputCategory | null;\n onSelectedCategoryChange: (category: QueryInputCategory | null) => void;\n\n width: number;\n selectedItems: QueryInputItem[];\n onValueToggle: (category: QueryInputCategory, value: string) => void;\n onSearchListChange: (items: QueryInputItem[]) => void;\n\n highlightedIndex?: number;\n visibleCategories: QueryInputCategory[];\n\n highlightedCategoryIndex?: number;\n highlightedValueIndex?: number;\n setHighlightedIndex: Dispatch<SetStateAction<number>>;\n setHighlightedCategoryIndex: Dispatch<SetStateAction<number>>;\n setHighlightedValueIndex: Dispatch<SetStateAction<number>>;\n}\n\nexport function ValueSelector(props: ValueSelectorProps) {\n const {\n isOpen,\n inputValue,\n anchorElement,\n popperRef,\n categories,\n selectedCategory,\n onSelectedCategoryChange,\n width,\n selectedItems,\n onValueToggle,\n highlightedIndex,\n visibleCategories,\n highlightedCategoryIndex,\n highlightedValueIndex,\n onSearchListChange,\n setHighlightedValueIndex,\n setHighlightedCategoryIndex,\n setHighlightedIndex,\n } = props;\n\n const selectedCategoryValues = useMemo(() => {\n if (!selectedCategory) {\n return [];\n }\n return selectedItems\n .filter((item) => item.category === selectedCategory.name)\n .map(({ value }) => value);\n }, [selectedCategory, selectedItems]);\n\n const onBackToCategories = () => {\n onSelectedCategoryChange(null);\n };\n\n const renderContent = () => {\n if (inputValue) {\n return (\n <SearchList\n inputValue={inputValue}\n selectedItems={selectedItems}\n onChange={onSearchListChange}\n rootWidth={width}\n highlightedIndex={highlightedIndex}\n visibleCategories={visibleCategories}\n setHighlightedIndex={setHighlightedIndex}\n />\n );\n }\n\n if (!selectedCategory) {\n return (\n <CategoryList\n categories={categories}\n rootWidth={width}\n onCategorySelect={onSelectedCategoryChange}\n highlightedCategoryIndex={highlightedCategoryIndex}\n setHighlightedCategoryIndex={setHighlightedCategoryIndex}\n />\n );\n }\n\n return (\n <ValueList\n category={selectedCategory}\n rootWidth={width}\n onBack={onBackToCategories}\n selectedValues={selectedCategoryValues}\n onValueToggle={onValueToggle}\n highlightedValueIndex={highlightedValueIndex}\n setHighlightedValueIndex={setHighlightedValueIndex}\n />\n );\n };\n\n const Window = useWindow();\n const { reference, floating, x, y, strategy } = useFloatingUI({\n placement: \"bottom\",\n });\n const handleRef = useForkRef<HTMLDivElement>(floating, popperRef);\n useIsomorphicLayoutEffect(() => {\n if (anchorElement) {\n reference(anchorElement);\n }\n }, [reference, anchorElement]);\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <Portal>\n <Window\n style={{\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n }}\n ref={handleRef}\n >\n <div className={withBaseName(\"content\")}>{renderContent()}</div>\n </Window>\n </Portal>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValueSelector.js","sources":["../src/query-input/internal/ValueSelector.tsx"],"sourcesContent":["import {\n makePrefixer,\n useFloatingUI,\n useForkRef,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { type Dispatch, type Ref, type SetStateAction, useMemo } from \"react\";\nimport { Portal } from \"../../portal\";\nimport { useWindow } from \"../../window\";\nimport type { QueryInputCategory, QueryInputItem } from \"../queryInputTypes\";\nimport { CategoryList } from \"./CategoryList\";\nimport { SearchList } from \"./SearchList\";\nimport { ValueList } from \"./ValueList\";\n\nconst withBaseName = makePrefixer(\"saltQueryInputValueSelector\");\n\nexport interface ValueSelectorProps {\n isOpen: boolean;\n anchorElement: HTMLElement | null;\n popperRef: Ref<HTMLDivElement>;\n\n inputValue?: string;\n categories: QueryInputCategory[];\n selectedCategory: QueryInputCategory | null;\n onSelectedCategoryChange: (category: QueryInputCategory | null) => void;\n\n width: number;\n selectedItems: QueryInputItem[];\n onValueToggle: (category: QueryInputCategory, value: string) => void;\n onSearchListChange: (items: QueryInputItem[]) => void;\n\n highlightedIndex?: number;\n visibleCategories: QueryInputCategory[];\n\n highlightedCategoryIndex?: number;\n highlightedValueIndex?: number;\n setHighlightedIndex: Dispatch<SetStateAction<number>>;\n setHighlightedCategoryIndex: Dispatch<SetStateAction<number>>;\n setHighlightedValueIndex: Dispatch<SetStateAction<number>>;\n}\n\nexport function ValueSelector(props: ValueSelectorProps) {\n const {\n isOpen,\n inputValue,\n anchorElement,\n popperRef,\n categories,\n selectedCategory,\n onSelectedCategoryChange,\n width,\n selectedItems,\n onValueToggle,\n highlightedIndex,\n visibleCategories,\n highlightedCategoryIndex,\n highlightedValueIndex,\n onSearchListChange,\n setHighlightedValueIndex,\n setHighlightedCategoryIndex,\n setHighlightedIndex,\n } = props;\n\n const selectedCategoryValues = useMemo(() => {\n if (!selectedCategory) {\n return [];\n }\n return selectedItems\n .filter((item) => item.category === selectedCategory.name)\n .map(({ value }) => value);\n }, [selectedCategory, selectedItems]);\n\n const onBackToCategories = () => {\n onSelectedCategoryChange(null);\n };\n\n const renderContent = () => {\n if (inputValue) {\n return (\n <SearchList\n inputValue={inputValue}\n selectedItems={selectedItems}\n onChange={onSearchListChange}\n rootWidth={width}\n highlightedIndex={highlightedIndex}\n visibleCategories={visibleCategories}\n setHighlightedIndex={setHighlightedIndex}\n />\n );\n }\n\n if (!selectedCategory) {\n return (\n <CategoryList\n categories={categories}\n rootWidth={width}\n onCategorySelect={onSelectedCategoryChange}\n highlightedCategoryIndex={highlightedCategoryIndex}\n setHighlightedCategoryIndex={setHighlightedCategoryIndex}\n />\n );\n }\n\n return (\n <ValueList\n category={selectedCategory}\n rootWidth={width}\n onBack={onBackToCategories}\n selectedValues={selectedCategoryValues}\n onValueToggle={onValueToggle}\n highlightedValueIndex={highlightedValueIndex}\n setHighlightedValueIndex={setHighlightedValueIndex}\n />\n );\n };\n\n const Window = useWindow();\n const { reference, floating, x, y, strategy } = useFloatingUI({\n placement: \"bottom\",\n });\n const handleRef = useForkRef<HTMLDivElement>(floating, popperRef);\n useIsomorphicLayoutEffect(() => {\n if (anchorElement) {\n reference(anchorElement);\n }\n }, [reference, anchorElement]);\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <Portal>\n <Window\n style={{\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n }}\n ref={handleRef}\n >\n <div className={withBaseName(\"content\")}>{renderContent()}</div>\n </Window>\n </Portal>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePopperStatus.js","sources":["../src/query-input/internal/usePopperStatus.ts"],"sourcesContent":["import { type FocusEvent, type KeyboardEvent, useState } from \"react\";\n\nexport interface UsePopperStatusProps {\n initialOpen?: boolean;\n autoClose?: boolean;\n}\n\nexport function usePopperStatus(props: UsePopperStatusProps) {\n const { initialOpen, autoClose } = props;\n const [isOpen, setIsOpen] = useState<boolean>(!!initialOpen);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.altKey && [\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n setIsOpen((x) => !x);\n } else if (\n !isOpen &&\n [\"Alt\", \"Tab\", \"Escape\", \"Control\", \"Shift\", \"Meta\"].includes(event.key)\n ) {\n setIsOpen(true);\n } else if (isOpen && event.key === \"Escape\") {\n setIsOpen(false);\n } else if (isOpen && autoClose && event.key === \"Enter\") {\n setIsOpen(false);\n }\n };\n\n const onFocus = (event: FocusEvent) => {\n setIsOpen(true);\n };\n\n const onBlur = (event: FocusEvent) => {\n setIsOpen(false);\n };\n\n const onChange = () => {\n if (autoClose) {\n setIsOpen(false);\n }\n };\n\n const onClick = () => {\n if (!isOpen) {\n setIsOpen(true);\n }\n };\n\n return {\n isOpen,\n onKeyDown,\n onFocus,\n onBlur,\n onChange,\n onClick,\n };\n}\n"],"names":[],"mappings":";;AAOO,SAAS,gBAAgB,KAA6B,EAAA;AAC3D,EAAM,MAAA,EAAE,WAAa,EAAA,SAAA,EAAc,GAAA,KAAA,CAAA;AACnC,EAAA,MAAM,CAAC,MAAQ,EAAA,SAAS,IAAI,QAAkB,CAAA,CAAC,CAAC,WAAW,CAAA,CAAA;AAE3D,EAAM,MAAA,SAAA,GAAY,CAAC,KAAyB,KAAA;AAC1C,IAAI,IAAA,KAAA,CAAM,UAAU,CAAC,SAAA,EAAW,WAAW,CAAE,CAAA,QAAA,CAAS,KAAM,CAAA,GAAG,CAAG,EAAA;AAChE,MAAU,SAAA,CAAA,CAAC,CAAM,KAAA,CAAC,CAAC,CAAA,CAAA;AAAA,KAEnB,MAAA,IAAA,CAAC,MACD,IAAA,CAAC,OAAO,KAAO,EAAA,QAAA,EAAU,SAAW,EAAA,OAAA,EAAS,MAAM,CAAA,CAAE,QAAS,CAAA,KAAA,CAAM,GAAG,CACvE,EAAA;AACA,MAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AAAA,KACL,MAAA,IAAA,MAAA,IAAU,KAAM,CAAA,GAAA,KAAQ,QAAU,EAAA;AAC3C,MAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAAA,KACN,MAAA,IAAA,MAAA,IAAU,SAAa,IAAA,KAAA,CAAM,QAAQ,OAAS,EAAA;AACvD,MAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAAA,KACjB;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,OAAA,GAAU,CAAC,KAAsB,KAAA;AACrC,IAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AAAA,GAChB,CAAA;AAEA,EAAM,MAAA,MAAA,GAAS,CAAC,KAAsB,KAAA;AACpC,IAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAAA,GACjB,CAAA;AAEA,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,IAAI,SAAW,EAAA;AACb,MAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AAAA,KACjB;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AAAA,KAChB;AAAA,GACF,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,MAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,GACF,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"usePopperStatus.js","sources":["../src/query-input/internal/usePopperStatus.ts"],"sourcesContent":["import { type FocusEvent, type KeyboardEvent, useState } from \"react\";\n\nexport interface UsePopperStatusProps {\n initialOpen?: boolean;\n autoClose?: boolean;\n}\n\nexport function usePopperStatus(props: UsePopperStatusProps) {\n const { initialOpen, autoClose } = props;\n const [isOpen, setIsOpen] = useState<boolean>(!!initialOpen);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.altKey && [\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n setIsOpen((x) => !x);\n } else if (\n !isOpen &&\n [\"Alt\", \"Tab\", \"Escape\", \"Control\", \"Shift\", \"Meta\"].includes(event.key)\n ) {\n setIsOpen(true);\n } else if (isOpen && event.key === \"Escape\") {\n setIsOpen(false);\n } else if (isOpen && autoClose && event.key === \"Enter\") {\n setIsOpen(false);\n }\n };\n\n const onFocus = (event: FocusEvent) => {\n setIsOpen(true);\n };\n\n const onBlur = (event: FocusEvent) => {\n setIsOpen(false);\n };\n\n const onChange = () => {\n if (autoClose) {\n setIsOpen(false);\n }\n };\n\n const onClick = () => {\n if (!isOpen) {\n setIsOpen(true);\n }\n };\n\n return {\n isOpen,\n onKeyDown,\n onFocus,\n onBlur,\n onChange,\n onClick,\n };\n}\n"],"names":[],"mappings":";;AAOO,SAAS,gBAAgB,KAA6B,EAAA;AAC3D,EAAM,MAAA,EAAE,WAAa,EAAA,SAAA,EAAc,GAAA,KAAA;AACnC,EAAA,MAAM,CAAC,MAAQ,EAAA,SAAS,IAAI,QAAkB,CAAA,CAAC,CAAC,WAAW,CAAA;AAE3D,EAAM,MAAA,SAAA,GAAY,CAAC,KAAyB,KAAA;AAC1C,IAAI,IAAA,KAAA,CAAM,UAAU,CAAC,SAAA,EAAW,WAAW,CAAE,CAAA,QAAA,CAAS,KAAM,CAAA,GAAG,CAAG,EAAA;AAChE,MAAU,SAAA,CAAA,CAAC,CAAM,KAAA,CAAC,CAAC,CAAA;AAAA,KAEnB,MAAA,IAAA,CAAC,MACD,IAAA,CAAC,OAAO,KAAO,EAAA,QAAA,EAAU,SAAW,EAAA,OAAA,EAAS,MAAM,CAAA,CAAE,QAAS,CAAA,KAAA,CAAM,GAAG,CACvE,EAAA;AACA,MAAA,SAAA,CAAU,IAAI,CAAA;AAAA,KACL,MAAA,IAAA,MAAA,IAAU,KAAM,CAAA,GAAA,KAAQ,QAAU,EAAA;AAC3C,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,KACN,MAAA,IAAA,MAAA,IAAU,SAAa,IAAA,KAAA,CAAM,QAAQ,OAAS,EAAA;AACvD,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA;AACjB,GACF;AAEA,EAAM,MAAA,OAAA,GAAU,CAAC,KAAsB,KAAA;AACrC,IAAA,SAAA,CAAU,IAAI,CAAA;AAAA,GAChB;AAEA,EAAM,MAAA,MAAA,GAAS,CAAC,KAAsB,KAAA;AACpC,IAAA,SAAA,CAAU,KAAK,CAAA;AAAA,GACjB;AAEA,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,IAAI,SAAW,EAAA;AACb,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA;AACjB,GACF;AAEA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAA,SAAA,CAAU,IAAI,CAAA;AAAA;AAChB,GACF;AAEA,EAAO,OAAA;AAAA,IACL,MAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useQueryInput.js","sources":["../src/query-input/useQueryInput.ts"],"sourcesContent":["import { useControlled, useForkRef } from \"@salt-ds/core\";\nimport {\n type ChangeEventHandler,\n type FocusEventHandler,\n type ForwardedRef,\n type KeyboardEventHandler,\n type Ref,\n type RefObject,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useWidth } from \"../responsive\";\nimport type { QueryInputProps } from \"./QueryInput\";\nimport type { QueryInputBodyProps } from \"./internal/QueryInputBody\";\nimport type { ValueSelectorProps } from \"./internal/ValueSelector\";\nimport { usePopperStatus } from \"./internal/usePopperStatus\";\nimport type { QueryInputCategory, QueryInputItem } from \"./queryInputTypes\";\n\nexport type BooleanOperator = \"or\" | \"and\";\n\nexport interface UseQueryInputResult {\n queryInputProps: {\n onFocus: FocusEventHandler<HTMLDivElement>;\n onBlur: FocusEventHandler<HTMLDivElement>;\n };\n queryInputBodyRef: Ref<HTMLDivElement>;\n queryInputBodyProps: QueryInputBodyProps;\n valueSelectorProps: ValueSelectorProps;\n}\n\nexport function useQueryInput(\n props: QueryInputProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n): UseQueryInputResult {\n const bodyRef = useRef<HTMLDivElement>(null);\n const popperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [widthBodyRef, bodyWidth] = useWidth<HTMLDivElement>(true);\n\n const forkedRef1 = useForkRef<HTMLDivElement>(\n forwardedRef,\n bodyRef,\n ) as RefObject<HTMLDivElement>;\n const queryInputBodyRef = useForkRef<HTMLDivElement>(\n forkedRef1,\n widthBodyRef,\n );\n\n const [selectedItems, setSelectedItems] = useControlled({\n controlled: props.selectedItems,\n default: props.defaultSelectedItems || [],\n name: \"QueryInput\",\n state: \"selectedItems\",\n });\n\n const [booleanOperator, setBooleanOperator] = useControlled({\n controlled: props.booleanOperator,\n default: props.defaultBooleanOperator || \"and\",\n name: \"QueryInput\",\n state: \"booleanOperator\",\n });\n\n const popperStatus = usePopperStatus({\n initialOpen: false,\n autoClose: props.autoClose,\n });\n\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n const [highlightedCategoryIndex, setHighlightedCategoryIndex] = useState(0);\n const [highlightedValueIndex, setHighlightedValueIndex] = useState(0);\n const [selectedCategory, setSelectedCategory] =\n useState<QueryInputCategory | null>(null);\n const searchListIndexPositions = useRef<Array<QueryInputCategory | string>>(\n [],\n );\n\n const onInputFocus: FocusEventHandler<HTMLInputElement> = (event) => {\n popperStatus.onFocus(event);\n setIsFocused(true);\n };\n\n const onInputBlur: FocusEventHandler<HTMLInputElement> = (event) => {\n if (!inputRef.current) {\n return;\n }\n const relatedTarget = event.relatedTarget as Node | null;\n const isBodyFocused = bodyRef.current === relatedTarget;\n if (isBodyFocused) {\n inputRef.current.focus();\n return;\n }\n const isFocusWithinBody = bodyRef.current?.contains(relatedTarget);\n if (isFocusWithinBody) {\n return;\n }\n const isFocusWithinPopper = popperRef.current?.contains(relatedTarget);\n if (isFocusWithinPopper) {\n inputRef.current.focus();\n return;\n }\n setIsFocused(false);\n popperStatus.onBlur(event);\n };\n\n const onFocus: FocusEventHandler<HTMLDivElement> = (event) => {\n setIsFocused(true);\n popperStatus.onFocus(event);\n };\n\n const onBlur: FocusEventHandler<HTMLDivElement> = (event) => {\n const relatedTarget = event.relatedTarget as Node | null;\n const isBodyFocused = bodyRef.current === relatedTarget;\n if (isBodyFocused) {\n return;\n }\n const isFocusWithinBody = bodyRef.current?.contains(relatedTarget);\n if (isFocusWithinBody) {\n return;\n }\n const isFocusWithinPopper = popperRef.current?.contains(relatedTarget);\n if (isFocusWithinPopper) {\n return;\n }\n setIsFocused(false);\n popperStatus.onBlur(event);\n };\n\n const onSelectedItemsChange = (newItems: QueryInputItem[] | undefined) => {\n const newItem = newItems?.find(\n (item) => item.category == null && item.value === inputValue,\n );\n if (newItem) {\n setInputValue(\"\");\n }\n setSelectedItems(newItems || []);\n if (props.onChange) {\n props.onChange(newItems || []);\n }\n popperStatus.onChange();\n };\n\n const onBooleanOperatorChange = (operator: BooleanOperator) => {\n setBooleanOperator(operator);\n if (props.onBooleanOperatorChange) {\n props.onBooleanOperatorChange(operator);\n }\n };\n\n const onSelectedCategoryChange = (category: QueryInputCategory | null) => {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n setSelectedCategory(category);\n };\n\n const [inputValue, setInputValue] = useState<string>(\"\");\n\n const searchListItems = useMemo(() => {\n const [searchListItems, indexPositions] = filterCategories(\n props.categories,\n inputValue,\n );\n searchListIndexPositions.current = indexPositions;\n return searchListItems;\n }, [props.categories, inputValue]);\n\n const onInputChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const newInputValue = event.target.value;\n setInputValue(newInputValue);\n // If we have search results, the first index position will be a header\n setHighlightedIndex(searchListIndexPositions.current.length === 0 ? 0 : 1);\n };\n\n const searchListItemCount = useMemo(() => {\n return searchListItems.reduce(\n (acc, category) => acc + category.values.length,\n 0,\n );\n }, [searchListItems]);\n\n const onInputClear = () => {\n onSelectedItemsChange([]);\n };\n\n const onInputClick = () => {\n popperStatus.onClick();\n };\n\n const newItemFromSelected = (): QueryInputItem | undefined => {\n const i = highlightedIndex;\n for (const category of searchListItems) {\n if (i < category.values.length) {\n const value = category.values[i];\n return {\n category: category.name,\n value,\n };\n }\n }\n };\n\n const { displayedItemCount = 10 } = props;\n\n const onSearchListKeyDown = (key: string) => {\n switch (key) {\n case \"Home\":\n setHighlightedIndex(0);\n return;\n case \"End\":\n setHighlightedIndex(searchListItemCount);\n return;\n case \"ArrowUp\":\n setHighlightedIndex((i) =>\n prevSearchItemIndex(i, searchListIndexPositions.current),\n );\n return;\n case \"ArrowDown\":\n // setHighlightedIndex((i) => Math.min(searchListItemCount, i + 1));\n setHighlightedIndex((i) =>\n nextSearchItemIndex(i, searchListIndexPositions.current),\n );\n return;\n case \"PageDown\":\n setHighlightedIndex((i) =>\n Math.min(searchListItemCount, i + displayedItemCount),\n );\n return;\n case \"PageUp\":\n setHighlightedIndex((i) => Math.max(0, i - displayedItemCount));\n return;\n case \"Enter\":\n if (highlightedIndex === searchListItemCount) {\n const newItems = [\n ...selectedItems,\n { category: null, value: inputValue },\n ];\n onSelectedItemsChange(newItems);\n } else {\n if (highlightedIndex >= 0 && highlightedIndex < searchListItemCount) {\n const newItem = newItemFromSelected();\n if (newItem) {\n const newItems = [...selectedItems, newItem];\n onSelectedItemsChange(newItems);\n }\n }\n setInputValue(\"\");\n }\n return;\n default:\n return;\n }\n };\n\n const onCategoryListKeyDown = (key: string) => {\n switch (key) {\n case \"Home\":\n setHighlightedCategoryIndex(0);\n return;\n case \"End\":\n setHighlightedCategoryIndex(props.categories.length - 1);\n return;\n case \"ArrowUp\":\n setHighlightedCategoryIndex((i) => Math.max(0, i - 1));\n return;\n case \"ArrowDown\":\n setHighlightedCategoryIndex((i) =>\n Math.min(props.categories.length - 1, i + 1),\n );\n return;\n case \"PageUp\":\n setHighlightedCategoryIndex((i) => Math.max(0, i - displayedItemCount));\n return;\n case \"PageDown\":\n setHighlightedCategoryIndex((i) =>\n Math.min(props.categories.length - 1, i + displayedItemCount),\n );\n return;\n case \"Enter\":\n if (\n highlightedCategoryIndex >= 0 &&\n highlightedCategoryIndex < props.categories.length\n ) {\n const category = props.categories[highlightedCategoryIndex];\n setSelectedCategory(category);\n }\n return;\n case \"ArrowRight\":\n if (\n highlightedCategoryIndex >= 0 &&\n highlightedCategoryIndex < props.categories.length\n ) {\n const category = props.categories[highlightedCategoryIndex];\n setSelectedCategory(category);\n }\n return;\n default:\n return;\n }\n };\n\n const onValueListKeyDown = (key: string) => {\n switch (key) {\n case \"Home\":\n setHighlightedValueIndex(0);\n return;\n case \"End\":\n if (selectedCategory != null) {\n setHighlightedValueIndex(selectedCategory.values.length);\n }\n return;\n case \"ArrowUp\":\n setHighlightedValueIndex((i) => Math.max(0, i - 1));\n return;\n case \"ArrowDown\":\n setHighlightedValueIndex((i) => {\n if (selectedCategory != null) {\n return Math.min(selectedCategory.values.length, i + 1);\n }\n return i;\n });\n return;\n case \"PageUp\":\n setHighlightedValueIndex((i) => Math.max(0, i - displayedItemCount));\n return;\n case \"PageDown\":\n setHighlightedValueIndex((i) => {\n if (selectedCategory != null) {\n return Math.min(\n selectedCategory.values.length,\n i + displayedItemCount,\n );\n }\n return i;\n });\n return;\n case \"Enter\":\n if (highlightedValueIndex === 0 || selectedCategory == null) {\n setSelectedCategory(null);\n } else {\n const value = selectedCategory.values[highlightedValueIndex - 1];\n const newItems = selectedItems.filter(\n (item) =>\n !(\n item.category === selectedCategory.name && item.value === value\n ),\n );\n if (newItems.length === selectedItems.length) {\n newItems.push({ category: selectedCategory.name, value });\n }\n onSelectedItemsChange(newItems);\n }\n return;\n case \"ArrowLeft\":\n setSelectedCategory(null);\n return;\n default:\n return;\n }\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n popperStatus.onKeyDown(event);\n let key = event.key;\n if (event.key === \" \" && event.ctrlKey) {\n key = \"Enter\";\n }\n const isSearchListActive = inputValue !== \"\";\n const isCategoryListActive = !isSearchListActive && !selectedCategory;\n const isValueListActive = !isSearchListActive && !isCategoryListActive;\n if (isSearchListActive) {\n onSearchListKeyDown(key);\n } else if (isCategoryListActive) {\n onCategoryListKeyDown(key);\n } else {\n onValueListKeyDown(key);\n }\n switch (event.key) {\n case \"ArrowUp\":\n case \"ArrowDown\":\n case \"Enter\":\n event.preventDefault();\n break;\n case \"ArrowLeft\":\n if (isValueListActive) {\n event.preventDefault();\n }\n break;\n case \"ArrowRight\":\n if (isCategoryListActive) {\n event.preventDefault();\n }\n break;\n case \"Escape\":\n setInputValue(\"\");\n }\n };\n\n const onValueToggle = (category: QueryInputCategory, value: string) => {\n const newItems = selectedItems.filter(\n (item) => !(item.category === category.name && item.value === value),\n );\n if (newItems.length === selectedItems.length) {\n newItems.push({ category: category.name, value });\n }\n onSelectedItemsChange(newItems);\n };\n\n return {\n queryInputBodyRef,\n queryInputProps: {\n onFocus,\n onBlur,\n },\n queryInputBodyProps: {\n inputRef: inputRef,\n disabled: props.disabled,\n selectedItems,\n onFocus,\n onBlur,\n onInputClick,\n onInputFocus,\n onInputBlur,\n onInputClear,\n inputValue,\n onInputChange,\n onSelectedItemsChange,\n onKeyDown,\n isFocused,\n booleanOperator,\n onBooleanOperatorChange,\n },\n valueSelectorProps: {\n isOpen: popperStatus.isOpen,\n categories: props.categories,\n selectedCategory,\n selectedItems,\n onValueToggle,\n onSearchListChange: onSelectedItemsChange,\n anchorElement: bodyRef.current,\n width: bodyWidth,\n onSelectedCategoryChange,\n popperRef,\n inputValue,\n highlightedIndex,\n visibleCategories: searchListItems,\n highlightedCategoryIndex,\n highlightedValueIndex,\n setHighlightedCategoryIndex,\n setHighlightedValueIndex,\n setHighlightedIndex,\n },\n };\n}\n\nfunction filterCategories(\n categories: QueryInputCategory[],\n inputValue?: string,\n): [QueryInputCategory[], Array<QueryInputCategory | string>] {\n // Note: if there is no input value, this List would not be display\n if (!inputValue) {\n return [categories, []];\n }\n const query = inputValue.toUpperCase();\n const visibleCategories: QueryInputCategory[] = [];\n const indexPositions: Array<QueryInputCategory | string> = [];\n for (const c of categories) {\n const values = c.values.filter((v) => v.toUpperCase().includes(query));\n if (values.length > 0) {\n const queryInputCategory = {\n name: c.name,\n values,\n };\n visibleCategories.push(queryInputCategory);\n indexPositions.push(queryInputCategory, ...values);\n }\n }\n return [visibleCategories, indexPositions];\n}\n\nfunction nextSearchItemIndex(\n index: number,\n indexPositions: Array<QueryInputCategory | string>,\n) {\n const nextIndex = index + 1;\n // Note: allow 1 for the extra ListItem we append to end of List\n if (nextIndex === indexPositions.length + 1) {\n return index;\n }\n if (nextIndex === indexPositions.length) {\n return nextIndex;\n }\n if (typeof indexPositions[nextIndex] === \"string\") {\n return nextIndex;\n }\n return nextIndex + 1;\n}\n\nfunction prevSearchItemIndex(\n index: number,\n indexPositions: Array<QueryInputCategory | string>,\n) {\n const nextIndex = index - 1;\n if (nextIndex === 0) {\n return index;\n }\n if (typeof indexPositions[nextIndex] === \"string\") {\n return nextIndex;\n }\n return nextIndex - 1;\n}\n"],"names":["searchListItems"],"mappings":"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"}
1
+ {"version":3,"file":"useQueryInput.js","sources":["../src/query-input/useQueryInput.ts"],"sourcesContent":["import { useControlled, useForkRef } from \"@salt-ds/core\";\nimport {\n type ChangeEventHandler,\n type FocusEventHandler,\n type ForwardedRef,\n type KeyboardEventHandler,\n type Ref,\n type RefObject,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useWidth } from \"../responsive\";\nimport type { QueryInputProps } from \"./QueryInput\";\nimport type { QueryInputBodyProps } from \"./internal/QueryInputBody\";\nimport type { ValueSelectorProps } from \"./internal/ValueSelector\";\nimport { usePopperStatus } from \"./internal/usePopperStatus\";\nimport type { QueryInputCategory, QueryInputItem } from \"./queryInputTypes\";\n\nexport type BooleanOperator = \"or\" | \"and\";\n\nexport interface UseQueryInputResult {\n queryInputProps: {\n onFocus: FocusEventHandler<HTMLDivElement>;\n onBlur: FocusEventHandler<HTMLDivElement>;\n };\n queryInputBodyRef: Ref<HTMLDivElement>;\n queryInputBodyProps: QueryInputBodyProps;\n valueSelectorProps: ValueSelectorProps;\n}\n\nexport function useQueryInput(\n props: QueryInputProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n): UseQueryInputResult {\n const bodyRef = useRef<HTMLDivElement>(null);\n const popperRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const [widthBodyRef, bodyWidth] = useWidth<HTMLDivElement>(true);\n\n const forkedRef1 = useForkRef<HTMLDivElement>(\n forwardedRef,\n bodyRef,\n ) as RefObject<HTMLDivElement>;\n const queryInputBodyRef = useForkRef<HTMLDivElement>(\n forkedRef1,\n widthBodyRef,\n );\n\n const [selectedItems, setSelectedItems] = useControlled({\n controlled: props.selectedItems,\n default: props.defaultSelectedItems || [],\n name: \"QueryInput\",\n state: \"selectedItems\",\n });\n\n const [booleanOperator, setBooleanOperator] = useControlled({\n controlled: props.booleanOperator,\n default: props.defaultBooleanOperator || \"and\",\n name: \"QueryInput\",\n state: \"booleanOperator\",\n });\n\n const popperStatus = usePopperStatus({\n initialOpen: false,\n autoClose: props.autoClose,\n });\n\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n const [highlightedCategoryIndex, setHighlightedCategoryIndex] = useState(0);\n const [highlightedValueIndex, setHighlightedValueIndex] = useState(0);\n const [selectedCategory, setSelectedCategory] =\n useState<QueryInputCategory | null>(null);\n const searchListIndexPositions = useRef<Array<QueryInputCategory | string>>(\n [],\n );\n\n const onInputFocus: FocusEventHandler<HTMLInputElement> = (event) => {\n popperStatus.onFocus(event);\n setIsFocused(true);\n };\n\n const onInputBlur: FocusEventHandler<HTMLInputElement> = (event) => {\n if (!inputRef.current) {\n return;\n }\n const relatedTarget = event.relatedTarget as Node | null;\n const isBodyFocused = bodyRef.current === relatedTarget;\n if (isBodyFocused) {\n inputRef.current.focus();\n return;\n }\n const isFocusWithinBody = bodyRef.current?.contains(relatedTarget);\n if (isFocusWithinBody) {\n return;\n }\n const isFocusWithinPopper = popperRef.current?.contains(relatedTarget);\n if (isFocusWithinPopper) {\n inputRef.current.focus();\n return;\n }\n setIsFocused(false);\n popperStatus.onBlur(event);\n };\n\n const onFocus: FocusEventHandler<HTMLDivElement> = (event) => {\n setIsFocused(true);\n popperStatus.onFocus(event);\n };\n\n const onBlur: FocusEventHandler<HTMLDivElement> = (event) => {\n const relatedTarget = event.relatedTarget as Node | null;\n const isBodyFocused = bodyRef.current === relatedTarget;\n if (isBodyFocused) {\n return;\n }\n const isFocusWithinBody = bodyRef.current?.contains(relatedTarget);\n if (isFocusWithinBody) {\n return;\n }\n const isFocusWithinPopper = popperRef.current?.contains(relatedTarget);\n if (isFocusWithinPopper) {\n return;\n }\n setIsFocused(false);\n popperStatus.onBlur(event);\n };\n\n const onSelectedItemsChange = (newItems: QueryInputItem[] | undefined) => {\n const newItem = newItems?.find(\n (item) => item.category == null && item.value === inputValue,\n );\n if (newItem) {\n setInputValue(\"\");\n }\n setSelectedItems(newItems || []);\n if (props.onChange) {\n props.onChange(newItems || []);\n }\n popperStatus.onChange();\n };\n\n const onBooleanOperatorChange = (operator: BooleanOperator) => {\n setBooleanOperator(operator);\n if (props.onBooleanOperatorChange) {\n props.onBooleanOperatorChange(operator);\n }\n };\n\n const onSelectedCategoryChange = (category: QueryInputCategory | null) => {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n setSelectedCategory(category);\n };\n\n const [inputValue, setInputValue] = useState<string>(\"\");\n\n const searchListItems = useMemo(() => {\n const [searchListItems, indexPositions] = filterCategories(\n props.categories,\n inputValue,\n );\n searchListIndexPositions.current = indexPositions;\n return searchListItems;\n }, [props.categories, inputValue]);\n\n const onInputChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const newInputValue = event.target.value;\n setInputValue(newInputValue);\n // If we have search results, the first index position will be a header\n setHighlightedIndex(searchListIndexPositions.current.length === 0 ? 0 : 1);\n };\n\n const searchListItemCount = useMemo(() => {\n return searchListItems.reduce(\n (acc, category) => acc + category.values.length,\n 0,\n );\n }, [searchListItems]);\n\n const onInputClear = () => {\n onSelectedItemsChange([]);\n };\n\n const onInputClick = () => {\n popperStatus.onClick();\n };\n\n const newItemFromSelected = (): QueryInputItem | undefined => {\n const i = highlightedIndex;\n for (const category of searchListItems) {\n if (i < category.values.length) {\n const value = category.values[i];\n return {\n category: category.name,\n value,\n };\n }\n }\n };\n\n const { displayedItemCount = 10 } = props;\n\n const onSearchListKeyDown = (key: string) => {\n switch (key) {\n case \"Home\":\n setHighlightedIndex(0);\n return;\n case \"End\":\n setHighlightedIndex(searchListItemCount);\n return;\n case \"ArrowUp\":\n setHighlightedIndex((i) =>\n prevSearchItemIndex(i, searchListIndexPositions.current),\n );\n return;\n case \"ArrowDown\":\n // setHighlightedIndex((i) => Math.min(searchListItemCount, i + 1));\n setHighlightedIndex((i) =>\n nextSearchItemIndex(i, searchListIndexPositions.current),\n );\n return;\n case \"PageDown\":\n setHighlightedIndex((i) =>\n Math.min(searchListItemCount, i + displayedItemCount),\n );\n return;\n case \"PageUp\":\n setHighlightedIndex((i) => Math.max(0, i - displayedItemCount));\n return;\n case \"Enter\":\n if (highlightedIndex === searchListItemCount) {\n const newItems = [\n ...selectedItems,\n { category: null, value: inputValue },\n ];\n onSelectedItemsChange(newItems);\n } else {\n if (highlightedIndex >= 0 && highlightedIndex < searchListItemCount) {\n const newItem = newItemFromSelected();\n if (newItem) {\n const newItems = [...selectedItems, newItem];\n onSelectedItemsChange(newItems);\n }\n }\n setInputValue(\"\");\n }\n return;\n default:\n return;\n }\n };\n\n const onCategoryListKeyDown = (key: string) => {\n switch (key) {\n case \"Home\":\n setHighlightedCategoryIndex(0);\n return;\n case \"End\":\n setHighlightedCategoryIndex(props.categories.length - 1);\n return;\n case \"ArrowUp\":\n setHighlightedCategoryIndex((i) => Math.max(0, i - 1));\n return;\n case \"ArrowDown\":\n setHighlightedCategoryIndex((i) =>\n Math.min(props.categories.length - 1, i + 1),\n );\n return;\n case \"PageUp\":\n setHighlightedCategoryIndex((i) => Math.max(0, i - displayedItemCount));\n return;\n case \"PageDown\":\n setHighlightedCategoryIndex((i) =>\n Math.min(props.categories.length - 1, i + displayedItemCount),\n );\n return;\n case \"Enter\":\n if (\n highlightedCategoryIndex >= 0 &&\n highlightedCategoryIndex < props.categories.length\n ) {\n const category = props.categories[highlightedCategoryIndex];\n setSelectedCategory(category);\n }\n return;\n case \"ArrowRight\":\n if (\n highlightedCategoryIndex >= 0 &&\n highlightedCategoryIndex < props.categories.length\n ) {\n const category = props.categories[highlightedCategoryIndex];\n setSelectedCategory(category);\n }\n return;\n default:\n return;\n }\n };\n\n const onValueListKeyDown = (key: string) => {\n switch (key) {\n case \"Home\":\n setHighlightedValueIndex(0);\n return;\n case \"End\":\n if (selectedCategory != null) {\n setHighlightedValueIndex(selectedCategory.values.length);\n }\n return;\n case \"ArrowUp\":\n setHighlightedValueIndex((i) => Math.max(0, i - 1));\n return;\n case \"ArrowDown\":\n setHighlightedValueIndex((i) => {\n if (selectedCategory != null) {\n return Math.min(selectedCategory.values.length, i + 1);\n }\n return i;\n });\n return;\n case \"PageUp\":\n setHighlightedValueIndex((i) => Math.max(0, i - displayedItemCount));\n return;\n case \"PageDown\":\n setHighlightedValueIndex((i) => {\n if (selectedCategory != null) {\n return Math.min(\n selectedCategory.values.length,\n i + displayedItemCount,\n );\n }\n return i;\n });\n return;\n case \"Enter\":\n if (highlightedValueIndex === 0 || selectedCategory == null) {\n setSelectedCategory(null);\n } else {\n const value = selectedCategory.values[highlightedValueIndex - 1];\n const newItems = selectedItems.filter(\n (item) =>\n !(\n item.category === selectedCategory.name && item.value === value\n ),\n );\n if (newItems.length === selectedItems.length) {\n newItems.push({ category: selectedCategory.name, value });\n }\n onSelectedItemsChange(newItems);\n }\n return;\n case \"ArrowLeft\":\n setSelectedCategory(null);\n return;\n default:\n return;\n }\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n popperStatus.onKeyDown(event);\n let key = event.key;\n if (event.key === \" \" && event.ctrlKey) {\n key = \"Enter\";\n }\n const isSearchListActive = inputValue !== \"\";\n const isCategoryListActive = !isSearchListActive && !selectedCategory;\n const isValueListActive = !isSearchListActive && !isCategoryListActive;\n if (isSearchListActive) {\n onSearchListKeyDown(key);\n } else if (isCategoryListActive) {\n onCategoryListKeyDown(key);\n } else {\n onValueListKeyDown(key);\n }\n switch (event.key) {\n case \"ArrowUp\":\n case \"ArrowDown\":\n case \"Enter\":\n event.preventDefault();\n break;\n case \"ArrowLeft\":\n if (isValueListActive) {\n event.preventDefault();\n }\n break;\n case \"ArrowRight\":\n if (isCategoryListActive) {\n event.preventDefault();\n }\n break;\n case \"Escape\":\n setInputValue(\"\");\n }\n };\n\n const onValueToggle = (category: QueryInputCategory, value: string) => {\n const newItems = selectedItems.filter(\n (item) => !(item.category === category.name && item.value === value),\n );\n if (newItems.length === selectedItems.length) {\n newItems.push({ category: category.name, value });\n }\n onSelectedItemsChange(newItems);\n };\n\n return {\n queryInputBodyRef,\n queryInputProps: {\n onFocus,\n onBlur,\n },\n queryInputBodyProps: {\n inputRef: inputRef,\n disabled: props.disabled,\n selectedItems,\n onFocus,\n onBlur,\n onInputClick,\n onInputFocus,\n onInputBlur,\n onInputClear,\n inputValue,\n onInputChange,\n onSelectedItemsChange,\n onKeyDown,\n isFocused,\n booleanOperator,\n onBooleanOperatorChange,\n },\n valueSelectorProps: {\n isOpen: popperStatus.isOpen,\n categories: props.categories,\n selectedCategory,\n selectedItems,\n onValueToggle,\n onSearchListChange: onSelectedItemsChange,\n anchorElement: bodyRef.current,\n width: bodyWidth,\n onSelectedCategoryChange,\n popperRef,\n inputValue,\n highlightedIndex,\n visibleCategories: searchListItems,\n highlightedCategoryIndex,\n highlightedValueIndex,\n setHighlightedCategoryIndex,\n setHighlightedValueIndex,\n setHighlightedIndex,\n },\n };\n}\n\nfunction filterCategories(\n categories: QueryInputCategory[],\n inputValue?: string,\n): [QueryInputCategory[], Array<QueryInputCategory | string>] {\n // Note: if there is no input value, this List would not be display\n if (!inputValue) {\n return [categories, []];\n }\n const query = inputValue.toUpperCase();\n const visibleCategories: QueryInputCategory[] = [];\n const indexPositions: Array<QueryInputCategory | string> = [];\n for (const c of categories) {\n const values = c.values.filter((v) => v.toUpperCase().includes(query));\n if (values.length > 0) {\n const queryInputCategory = {\n name: c.name,\n values,\n };\n visibleCategories.push(queryInputCategory);\n indexPositions.push(queryInputCategory, ...values);\n }\n }\n return [visibleCategories, indexPositions];\n}\n\nfunction nextSearchItemIndex(\n index: number,\n indexPositions: Array<QueryInputCategory | string>,\n) {\n const nextIndex = index + 1;\n // Note: allow 1 for the extra ListItem we append to end of List\n if (nextIndex === indexPositions.length + 1) {\n return index;\n }\n if (nextIndex === indexPositions.length) {\n return nextIndex;\n }\n if (typeof indexPositions[nextIndex] === \"string\") {\n return nextIndex;\n }\n return nextIndex + 1;\n}\n\nfunction prevSearchItemIndex(\n index: number,\n indexPositions: Array<QueryInputCategory | string>,\n) {\n const nextIndex = index - 1;\n if (nextIndex === 0) {\n return index;\n }\n if (typeof indexPositions[nextIndex] === \"string\") {\n return nextIndex;\n }\n return nextIndex - 1;\n}\n"],"names":["searchListItems"],"mappings":"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"}
@@ -11,14 +11,15 @@ const mapReactElementChildren = (children, fn) => {
11
11
  return childElements;
12
12
  };
13
13
  const sourceItem = (item, id, index, options) => {
14
- var _a, _b, _c, _d;
15
- const priority = (_c = (_b = (_a = options == null ? void 0 : options.getPriority) == null ? void 0 : _a.call(options, item, index)) != null ? _b : item.priority) != null ? _c : DEFAULT_PRIORITY;
14
+ var _a;
15
+ const priority = ((_a = options == null ? void 0 : options.getPriority) == null ? void 0 : _a.call(options, item, index)) ?? item.priority ?? DEFAULT_PRIORITY;
16
16
  return {
17
+ //TODO editable closeable configurable via item
17
18
  closeable: item.closeable || (options == null ? void 0 : options.closeable),
18
19
  editable: options == null ? void 0 : options.editable,
19
20
  element: null,
20
21
  fullSize: null,
21
- id: (_d = item.id) != null ? _d : id,
22
+ id: item.id ?? id,
22
23
  index,
23
24
  label: item.label,
24
25
  position: item.position,
@@ -56,12 +57,12 @@ const childItem = (child, id, index, options) => {
56
57
  editable: editable ? true : options == null ? void 0 : options.editable,
57
58
  disabled,
58
59
  fullSize: null,
59
- id: idProp != null ? idProp : id,
60
+ id: idProp ?? id,
60
61
  index,
61
62
  element: child,
62
63
  label,
63
64
  position: dataPosition,
64
- priority: priority != null ? priority : Number.parseInt(dataPriority),
65
+ priority: priority ?? Number.parseInt(dataPriority),
65
66
  size: 0,
66
67
  source: null,
67
68
  type: "child"
@@ -204,10 +205,9 @@ const addOverflowIndicator = (items, { overflowItem }) => {
204
205
  return items;
205
206
  };
206
207
  const overflowReducer = (state, action) => {
207
- var _a;
208
208
  switch (action.type) {
209
209
  case "init":
210
- return (_a = action.overflowItems) != null ? _a : state;
210
+ return action.overflowItems ?? state;
211
211
  case "add-overflow-indicator":
212
212
  return addOverflowIndicator(state, action);
213
213
  case "update-items":
@@ -1 +1 @@
1
- {"version":3,"file":"OverflowReducer.js","sources":["../src/responsive/OverflowReducer.ts"],"sourcesContent":["/**\n * This reducer manages a collection of items that represent the content of an overflowable container.\n * The items are mostly content configured by the caller of the container, either data passed though\n * the source prop or as child elements. We also support 'injected' items. These allow for additional UI\n * controls to be inserted into the container, eg an 'Add Item' button.\n */\nimport {\n Children,\n type ReactElement,\n type ReactNode,\n type Reducer,\n isValidElement,\n} from \"react\";\n\nimport type {\n InjectedChildItem,\n InjectedSourceItem,\n OverflowCollectionOptions,\n OverflowItem,\n OverflowItems,\n OverflowSource,\n} from \"./overflowTypes\";\n\ninterface InitAction {\n type: \"init\";\n overflowItems?: OverflowItem[];\n}\n\ninterface SourceAction {\n type: \"add-source-item\";\n idRoot: string;\n source: any;\n}\ninterface AddChildAction {\n type: \"add-child-item\";\n idRoot: string;\n indexPosition?: number;\n element: ReactElement;\n}\ninterface RemoveItemAction {\n type: \"remove-item\";\n indexPosition: number;\n}\n\ninterface MultiItemAction {\n type: \"update-items\" | \"update-items-remove-overflow-indicator\";\n overflowItems: Partial<Omit<OverflowItem, \"id\">> & Pick<OverflowItem, \"id\">[];\n}\ninterface SingleItemAction {\n type:\n | \"add-overflow-indicator\"\n | \"replace-item\"\n | \"collapsing-item\"\n | \"uncollapse-dynamic-item\"\n | \"collapse-instant-item\";\n\n overflowItem: OverflowItem;\n}\n\ninterface CombinedItemAction {\n type: \"update-items-add-overflow-indicator\";\n overflowItem: OverflowItem<any>;\n overflowItems: OverflowItem[];\n}\n\ninterface EmptyPayloadAction {\n type: \"restore-collapsing-item\";\n}\ninterface DynamicCollapseAction extends Omit<SingleItemAction, \"type\"> {\n type: \"collapse-dynamic-item\";\n collapsedSize: number;\n minSize: number;\n}\n\nexport type OverflowAction =\n | AddChildAction\n | CombinedItemAction\n | DynamicCollapseAction\n | EmptyPayloadAction\n | InitAction\n | MultiItemAction\n | RemoveItemAction\n | SingleItemAction\n | SourceAction;\n\nconst DEFAULT_PRIORITY = 3;\n\nconst mapReactElementChildren = (\n children: ReactNode,\n fn: (el: ReactElement, index: number) => OverflowItem,\n): OverflowItem[] => {\n const childElements: OverflowItem[] = [];\n Children.forEach(children, (child, i) => {\n if (isValidElement(child)) {\n childElements.push(fn(child, i));\n }\n });\n return childElements;\n};\n\nconst sourceItem = (\n item: OverflowSource,\n id: string,\n index: number,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"source\"> => {\n const priority =\n options?.getPriority?.(item, index) ?? item.priority ?? DEFAULT_PRIORITY;\n\n return {\n //TODO editable closeable configurable via item\n closeable: item.closeable || options?.closeable,\n editable: options?.editable,\n element: null,\n fullSize: null,\n id: item.id ?? id,\n index,\n label: item.label,\n position: item.position,\n priority,\n size: 0,\n source: item,\n type: \"source\",\n };\n};\n\nconst createSourceItems = (\n source: any,\n idRoot: string,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"source\">[] | undefined => {\n if (Array.isArray(source)) {\n return source.map((item, index) => {\n const priority = options?.getPriority?.(source, index);\n return sourceItem(item, `${idRoot}-${index}`, index, options);\n });\n }\n};\n\ntype OverflowChild = {\n closeable?: boolean;\n disabled?: boolean;\n id?: string;\n label?: string;\n \"data-collapsible\"?: boolean;\n \"data-editable\"?: boolean;\n \"data-position\"?: number;\n \"data-priority\"?: string;\n};\n\nconst childItem = (\n child: ReactElement,\n id: string,\n index: number,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"child\"> => {\n const {\n closeable,\n disabled,\n id: idProp,\n label,\n \"data-collapsible\": collapsible,\n \"data-editable\": editable,\n \"data-position\": dataPosition,\n \"data-priority\": dataPriority = \"2\",\n } = child.props as OverflowChild;\n\n const priority = options?.getPriority?.(child, index);\n\n return {\n closeable: closeable || options?.closeable,\n collapsible,\n editable: editable ? true : options?.editable,\n disabled,\n fullSize: null,\n id: idProp ?? id,\n index,\n element: child,\n label,\n position: dataPosition,\n priority: priority ?? Number.parseInt(dataPriority),\n size: 0,\n source: null,\n type: \"child\",\n } as OverflowItem;\n};\n\nconst createChildItems = (\n children: ReactNode,\n idRoot: string,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"child\">[] | undefined => {\n if (children) {\n return mapReactElementChildren(children, (child, index) => {\n const id = `${idRoot}-${index}`;\n return childItem(child, id, index, options);\n });\n }\n};\n\nconst createInjectedContent = (\n items: Array<InjectedSourceItem | InjectedChildItem>,\n idRoot: string,\n startIndex: number,\n): OverflowItem<\"source\" | \"child\">[] => {\n return items.map((item, i) => {\n const index = startIndex + i;\n const id = `${idRoot}-${index}`;\n const { source } = item as InjectedSourceItem;\n if (source) {\n const injectedItem = sourceItem(source, id, index);\n injectedItem.isInjectedItem = true;\n return injectedItem;\n }\n const { element } = item as InjectedChildItem;\n const injectedItem = childItem(element, id, index);\n injectedItem.isInjectedItem = true;\n return injectedItem;\n });\n};\n\nexport type OverflowReducer = Reducer<OverflowItems, OverflowAction>;\n\nconst defaultOptions = {};\n\nexport type OverflowReducerInitialisationProps = {\n children?: ReactNode;\n source?: OverflowSource[];\n injectedItems?: any[];\n idRoot: string;\n options?: OverflowCollectionOptions;\n};\n\nexport const reducerInitialiser: (\n props: OverflowReducerInitialisationProps,\n) => OverflowItems = ({\n children,\n source,\n injectedItems = [],\n idRoot,\n options = defaultOptions,\n}) => {\n const providedContent: OverflowItems =\n createChildItems(children, idRoot, options) ||\n createSourceItems(source, idRoot, options) ||\n [];\n const injectedContent = createInjectedContent(\n injectedItems,\n idRoot,\n providedContent.length,\n );\n return providedContent.concat(injectedContent);\n};\n\nconst collapsingItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsing: true,\n }\n : item,\n );\n\nconst uncollapseDynamicItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsed: false,\n collapsing: true,\n size: item.fullSize as number,\n fullSize: null,\n }\n : item,\n );\n\nconst collapseInstantItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsed: true,\n }\n : item,\n );\n\nconst replaceItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item.index === overflowItem?.index ? overflowItem : item,\n );\n\nconst updateItems = (\n items: OverflowItem[],\n { overflowItems = [] }: MultiItemAction,\n) => {\n return items.map((item) => {\n const targetItem = overflowItems.find((i) => i.id === item.id);\n return targetItem ? { ...item, ...targetItem } : item;\n });\n};\n\nconst restoreCollapsingItem = (items: OverflowItem[]) => {\n const collapsingItem = items.find(\n ({ collapsible, collapsing }) => collapsible === \"dynamic\" && collapsing,\n );\n const collapsedItem = items.find(\n ({ collapsible, collapsed }) => collapsible === \"dynamic\" && collapsed,\n );\n return items.map((item) => {\n if (item === collapsingItem) {\n return {\n ...item,\n collapsing: false,\n };\n }\n if (item === collapsedItem) {\n return {\n ...item,\n collapsed: false,\n collapsing: true,\n };\n }\n return item;\n });\n};\n\nconst collapseDynamicItem = (\n items: OverflowItem[],\n { overflowItem, collapsedSize = 0, minSize = 0 }: DynamicCollapseAction,\n) => {\n const remainingUncollpasedItems = items.filter(\n (i) => i.collapsible === \"dynamic\" && !i.collapsed && i !== overflowItem,\n );\n const lastUncollapsedItem = remainingUncollpasedItems.pop();\n\n return items.map((item) => {\n if (item === overflowItem) {\n return {\n ...item,\n collapsing: false,\n collapsed: true,\n fullSize: item.size,\n minSize,\n size: collapsedSize,\n };\n }\n if (item === lastUncollapsedItem) {\n return {\n ...item,\n collapsing: true,\n };\n }\n return item;\n });\n};\n\nconst addSourceItem = (\n items: OverflowItem<any>[],\n { idRoot, source }: SourceAction,\n): OverflowItem[] => {\n const index = items.length;\n return items.concat(sourceItem(source, `${idRoot}-${index}`, index));\n};\n\nconst removeItem = (\n items: OverflowItem<any>[],\n { indexPosition }: RemoveItemAction,\n): OverflowItem[] => {\n return items.slice(0, indexPosition).concat(items.slice(indexPosition + 1));\n};\n\nconst addOverflowIndicator = (\n items: OverflowItem<any>[],\n { overflowItem }: SingleItemAction,\n) => {\n // Guard against accidental duplicate overflowIndicator\n if (!items.find((i) => i.isOverflowIndicator)) {\n if (items.find((i) => i.label === \"Add Tab\")) {\n const [addTab] = items.slice(-1);\n return items\n .slice(0, -1)\n .concat({ ...overflowItem, index: addTab.index })\n .concat({ ...addTab, index: overflowItem.index });\n }\n return items.concat(overflowItem);\n }\n return items;\n};\n\nexport const overflowReducer: OverflowReducer = (state, action) => {\n switch (action.type) {\n case \"init\":\n return action.overflowItems ?? state;\n case \"add-overflow-indicator\":\n return addOverflowIndicator(state, action);\n\n case \"update-items\":\n return updateItems(state, action);\n\n case \"replace-item\":\n return replaceItem(state, action);\n\n case \"update-items-add-overflow-indicator\":\n return addOverflowIndicator(\n updateItems(state, {\n type: \"update-items\",\n overflowItems: action.overflowItems,\n }),\n { type: \"add-overflow-indicator\", overflowItem: action.overflowItem },\n );\n\n case \"update-items-remove-overflow-indicator\":\n return updateItems(state, {\n type: \"update-items\",\n overflowItems: action.overflowItems,\n }).filter((item) => !item.isOverflowIndicator);\n\n case \"collapsing-item\":\n return collapsingItem(state, action);\n\n case \"collapse-dynamic-item\":\n return collapseDynamicItem(state, action);\n\n case \"uncollapse-dynamic-item\":\n return uncollapseDynamicItem(state, action);\n\n case \"restore-collapsing-item\":\n return restoreCollapsingItem(state);\n\n case \"collapse-instant-item\":\n return collapseInstantItem(state, action);\n\n case \"add-source-item\":\n return addSourceItem(state, action);\n\n case \"remove-item\":\n return removeItem(state, action);\n\n default:\n return state;\n }\n};\n"],"names":["injectedItem","collapsingItem"],"mappings":"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"}
1
+ {"version":3,"file":"OverflowReducer.js","sources":["../src/responsive/OverflowReducer.ts"],"sourcesContent":["/**\n * This reducer manages a collection of items that represent the content of an overflowable container.\n * The items are mostly content configured by the caller of the container, either data passed though\n * the source prop or as child elements. We also support 'injected' items. These allow for additional UI\n * controls to be inserted into the container, eg an 'Add Item' button.\n */\nimport {\n Children,\n type ReactElement,\n type ReactNode,\n type Reducer,\n isValidElement,\n} from \"react\";\n\nimport type {\n InjectedChildItem,\n InjectedSourceItem,\n OverflowCollectionOptions,\n OverflowItem,\n OverflowItems,\n OverflowSource,\n} from \"./overflowTypes\";\n\ninterface InitAction {\n type: \"init\";\n overflowItems?: OverflowItem[];\n}\n\ninterface SourceAction {\n type: \"add-source-item\";\n idRoot: string;\n source: any;\n}\ninterface AddChildAction {\n type: \"add-child-item\";\n idRoot: string;\n indexPosition?: number;\n element: ReactElement;\n}\ninterface RemoveItemAction {\n type: \"remove-item\";\n indexPosition: number;\n}\n\ninterface MultiItemAction {\n type: \"update-items\" | \"update-items-remove-overflow-indicator\";\n overflowItems: Partial<Omit<OverflowItem, \"id\">> & Pick<OverflowItem, \"id\">[];\n}\ninterface SingleItemAction {\n type:\n | \"add-overflow-indicator\"\n | \"replace-item\"\n | \"collapsing-item\"\n | \"uncollapse-dynamic-item\"\n | \"collapse-instant-item\";\n\n overflowItem: OverflowItem;\n}\n\ninterface CombinedItemAction {\n type: \"update-items-add-overflow-indicator\";\n overflowItem: OverflowItem<any>;\n overflowItems: OverflowItem[];\n}\n\ninterface EmptyPayloadAction {\n type: \"restore-collapsing-item\";\n}\ninterface DynamicCollapseAction extends Omit<SingleItemAction, \"type\"> {\n type: \"collapse-dynamic-item\";\n collapsedSize: number;\n minSize: number;\n}\n\nexport type OverflowAction =\n | AddChildAction\n | CombinedItemAction\n | DynamicCollapseAction\n | EmptyPayloadAction\n | InitAction\n | MultiItemAction\n | RemoveItemAction\n | SingleItemAction\n | SourceAction;\n\nconst DEFAULT_PRIORITY = 3;\n\nconst mapReactElementChildren = (\n children: ReactNode,\n fn: (el: ReactElement, index: number) => OverflowItem,\n): OverflowItem[] => {\n const childElements: OverflowItem[] = [];\n Children.forEach(children, (child, i) => {\n if (isValidElement(child)) {\n childElements.push(fn(child, i));\n }\n });\n return childElements;\n};\n\nconst sourceItem = (\n item: OverflowSource,\n id: string,\n index: number,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"source\"> => {\n const priority =\n options?.getPriority?.(item, index) ?? item.priority ?? DEFAULT_PRIORITY;\n\n return {\n //TODO editable closeable configurable via item\n closeable: item.closeable || options?.closeable,\n editable: options?.editable,\n element: null,\n fullSize: null,\n id: item.id ?? id,\n index,\n label: item.label,\n position: item.position,\n priority,\n size: 0,\n source: item,\n type: \"source\",\n };\n};\n\nconst createSourceItems = (\n source: any,\n idRoot: string,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"source\">[] | undefined => {\n if (Array.isArray(source)) {\n return source.map((item, index) => {\n const priority = options?.getPriority?.(source, index);\n return sourceItem(item, `${idRoot}-${index}`, index, options);\n });\n }\n};\n\ntype OverflowChild = {\n closeable?: boolean;\n disabled?: boolean;\n id?: string;\n label?: string;\n \"data-collapsible\"?: boolean;\n \"data-editable\"?: boolean;\n \"data-position\"?: number;\n \"data-priority\"?: string;\n};\n\nconst childItem = (\n child: ReactElement,\n id: string,\n index: number,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"child\"> => {\n const {\n closeable,\n disabled,\n id: idProp,\n label,\n \"data-collapsible\": collapsible,\n \"data-editable\": editable,\n \"data-position\": dataPosition,\n \"data-priority\": dataPriority = \"2\",\n } = child.props as OverflowChild;\n\n const priority = options?.getPriority?.(child, index);\n\n return {\n closeable: closeable || options?.closeable,\n collapsible,\n editable: editable ? true : options?.editable,\n disabled,\n fullSize: null,\n id: idProp ?? id,\n index,\n element: child,\n label,\n position: dataPosition,\n priority: priority ?? Number.parseInt(dataPriority),\n size: 0,\n source: null,\n type: \"child\",\n } as OverflowItem;\n};\n\nconst createChildItems = (\n children: ReactNode,\n idRoot: string,\n options?: OverflowCollectionOptions,\n): OverflowItem<\"child\">[] | undefined => {\n if (children) {\n return mapReactElementChildren(children, (child, index) => {\n const id = `${idRoot}-${index}`;\n return childItem(child, id, index, options);\n });\n }\n};\n\nconst createInjectedContent = (\n items: Array<InjectedSourceItem | InjectedChildItem>,\n idRoot: string,\n startIndex: number,\n): OverflowItem<\"source\" | \"child\">[] => {\n return items.map((item, i) => {\n const index = startIndex + i;\n const id = `${idRoot}-${index}`;\n const { source } = item as InjectedSourceItem;\n if (source) {\n const injectedItem = sourceItem(source, id, index);\n injectedItem.isInjectedItem = true;\n return injectedItem;\n }\n const { element } = item as InjectedChildItem;\n const injectedItem = childItem(element, id, index);\n injectedItem.isInjectedItem = true;\n return injectedItem;\n });\n};\n\nexport type OverflowReducer = Reducer<OverflowItems, OverflowAction>;\n\nconst defaultOptions = {};\n\nexport type OverflowReducerInitialisationProps = {\n children?: ReactNode;\n source?: OverflowSource[];\n injectedItems?: any[];\n idRoot: string;\n options?: OverflowCollectionOptions;\n};\n\nexport const reducerInitialiser: (\n props: OverflowReducerInitialisationProps,\n) => OverflowItems = ({\n children,\n source,\n injectedItems = [],\n idRoot,\n options = defaultOptions,\n}) => {\n const providedContent: OverflowItems =\n createChildItems(children, idRoot, options) ||\n createSourceItems(source, idRoot, options) ||\n [];\n const injectedContent = createInjectedContent(\n injectedItems,\n idRoot,\n providedContent.length,\n );\n return providedContent.concat(injectedContent);\n};\n\nconst collapsingItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsing: true,\n }\n : item,\n );\n\nconst uncollapseDynamicItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsed: false,\n collapsing: true,\n size: item.fullSize as number,\n fullSize: null,\n }\n : item,\n );\n\nconst collapseInstantItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item === overflowItem\n ? {\n ...item,\n collapsed: true,\n }\n : item,\n );\n\nconst replaceItem = (\n items: OverflowItem[],\n { overflowItem }: SingleItemAction,\n) =>\n items.map((item) =>\n item.index === overflowItem?.index ? overflowItem : item,\n );\n\nconst updateItems = (\n items: OverflowItem[],\n { overflowItems = [] }: MultiItemAction,\n) => {\n return items.map((item) => {\n const targetItem = overflowItems.find((i) => i.id === item.id);\n return targetItem ? { ...item, ...targetItem } : item;\n });\n};\n\nconst restoreCollapsingItem = (items: OverflowItem[]) => {\n const collapsingItem = items.find(\n ({ collapsible, collapsing }) => collapsible === \"dynamic\" && collapsing,\n );\n const collapsedItem = items.find(\n ({ collapsible, collapsed }) => collapsible === \"dynamic\" && collapsed,\n );\n return items.map((item) => {\n if (item === collapsingItem) {\n return {\n ...item,\n collapsing: false,\n };\n }\n if (item === collapsedItem) {\n return {\n ...item,\n collapsed: false,\n collapsing: true,\n };\n }\n return item;\n });\n};\n\nconst collapseDynamicItem = (\n items: OverflowItem[],\n { overflowItem, collapsedSize = 0, minSize = 0 }: DynamicCollapseAction,\n) => {\n const remainingUncollpasedItems = items.filter(\n (i) => i.collapsible === \"dynamic\" && !i.collapsed && i !== overflowItem,\n );\n const lastUncollapsedItem = remainingUncollpasedItems.pop();\n\n return items.map((item) => {\n if (item === overflowItem) {\n return {\n ...item,\n collapsing: false,\n collapsed: true,\n fullSize: item.size,\n minSize,\n size: collapsedSize,\n };\n }\n if (item === lastUncollapsedItem) {\n return {\n ...item,\n collapsing: true,\n };\n }\n return item;\n });\n};\n\nconst addSourceItem = (\n items: OverflowItem<any>[],\n { idRoot, source }: SourceAction,\n): OverflowItem[] => {\n const index = items.length;\n return items.concat(sourceItem(source, `${idRoot}-${index}`, index));\n};\n\nconst removeItem = (\n items: OverflowItem<any>[],\n { indexPosition }: RemoveItemAction,\n): OverflowItem[] => {\n return items.slice(0, indexPosition).concat(items.slice(indexPosition + 1));\n};\n\nconst addOverflowIndicator = (\n items: OverflowItem<any>[],\n { overflowItem }: SingleItemAction,\n) => {\n // Guard against accidental duplicate overflowIndicator\n if (!items.find((i) => i.isOverflowIndicator)) {\n if (items.find((i) => i.label === \"Add Tab\")) {\n const [addTab] = items.slice(-1);\n return items\n .slice(0, -1)\n .concat({ ...overflowItem, index: addTab.index })\n .concat({ ...addTab, index: overflowItem.index });\n }\n return items.concat(overflowItem);\n }\n return items;\n};\n\nexport const overflowReducer: OverflowReducer = (state, action) => {\n switch (action.type) {\n case \"init\":\n return action.overflowItems ?? state;\n case \"add-overflow-indicator\":\n return addOverflowIndicator(state, action);\n\n case \"update-items\":\n return updateItems(state, action);\n\n case \"replace-item\":\n return replaceItem(state, action);\n\n case \"update-items-add-overflow-indicator\":\n return addOverflowIndicator(\n updateItems(state, {\n type: \"update-items\",\n overflowItems: action.overflowItems,\n }),\n { type: \"add-overflow-indicator\", overflowItem: action.overflowItem },\n );\n\n case \"update-items-remove-overflow-indicator\":\n return updateItems(state, {\n type: \"update-items\",\n overflowItems: action.overflowItems,\n }).filter((item) => !item.isOverflowIndicator);\n\n case \"collapsing-item\":\n return collapsingItem(state, action);\n\n case \"collapse-dynamic-item\":\n return collapseDynamicItem(state, action);\n\n case \"uncollapse-dynamic-item\":\n return uncollapseDynamicItem(state, action);\n\n case \"restore-collapsing-item\":\n return restoreCollapsingItem(state);\n\n case \"collapse-instant-item\":\n return collapseInstantItem(state, action);\n\n case \"add-source-item\":\n return addSourceItem(state, action);\n\n case \"remove-item\":\n return removeItem(state, action);\n\n default:\n return state;\n }\n};\n"],"names":["injectedItem","collapsingItem"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"overflowUtils.js","sources":["../src/responsive/overflowUtils.tsx"],"sourcesContent":["import {\n type ElementRef,\n type OverflowItem,\n collapsibleType,\n type orientationType,\n} from \"./overflowTypes\";\n\nexport const DropdownPlaceholder = () => null;\nexport const getDropdownPlaceholder = () => <DropdownPlaceholder />;\n\nexport type heightOrWidth = \"width\" | \"height\";\nexport const NO_DATA = {};\nconst LEFT_RIGHT = [\"left\", \"right\"];\nconst TOP_BOTTOM = [\"top\", \"bottom\"];\n\nexport const allExceptOverflowIndicator = (sum: number, m: OverflowItem) =>\n sum + (m.isOverflowIndicator ? 0 : m.size);\n\nexport const isCollapsed = (item: OverflowItem): boolean =>\n item.collapsed === true;\nexport const isCollapsing = (item: OverflowItem): boolean =>\n item.collapsing === true;\nexport const isCollapsedOrCollapsing = (item: OverflowItem): boolean =>\n isCollapsed(item) || isCollapsing(item);\nexport const isOverflowed = (item: OverflowItem): boolean =>\n item.overflowed === true;\nexport const notOverflowed = (item: OverflowItem): boolean =>\n !isOverflowed(item);\n\nexport const isCollapsible = (item: OverflowItem) =>\n item.collapsible === \"instant\" || item.collapsible === \"dynamic\";\n\nexport const getIsOverflowed = (managedItems: OverflowItem[]) =>\n managedItems.some(isOverflowed);\n\nexport const measureContainer = (\n ref: ElementRef,\n orientation: orientationType = \"horizontal\",\n): {\n innerContainerSize: number;\n rootContainerDepth: number;\n innerContainerDepth: number;\n} => {\n const innerElement = ref.current as HTMLElement;\n const container = innerElement.parentElement;\n if (container) {\n const { width: innerWidth, height: innerHeight } =\n innerElement.getBoundingClientRect();\n const { width, height } = container.getBoundingClientRect();\n if (orientation === \"horizontal\") {\n return {\n innerContainerSize: innerWidth,\n rootContainerDepth: height,\n innerContainerDepth: innerHeight,\n };\n }\n return {\n innerContainerSize: innerHeight,\n rootContainerDepth: width,\n innerContainerDepth: innerWidth,\n };\n }\n throw Error(\"measureContainer, innerContainer has no parent element\");\n};\n\nconst isContainerOverflowing = (\n containerDepth: number,\n parentContainerDepth: number,\n innerElement: HTMLElement,\n orientation: orientationType,\n) => {\n const isHorizontal = orientation === \"horizontal\";\n // If true, this is a reliable indication of content wrapping, but the containerDepth\n // is not always correct\n if (containerDepth > parentContainerDepth) {\n return true;\n }\n // ... hence - expensive, but catches those situations where the containerDepth is wrong\n const { bottom, right } = innerElement.getBoundingClientRect();\n const maxPos = Array.from(innerElement.childNodes).reduce<number>(\n (maxVal, child) => {\n const rect = (child as HTMLElement).getBoundingClientRect();\n return Math.max(isHorizontal ? rect.bottom : rect.right, maxVal);\n },\n isHorizontal ? bottom : right,\n );\n return isHorizontal ? maxPos > bottom : maxPos > right;\n};\n\nexport const measureContainerOverflow = (\n ref: ElementRef,\n orientation: orientationType = \"horizontal\",\n): {\n isOverflowing: boolean;\n innerContainerSize: number;\n rootContainerDepth: number;\n} => {\n const { innerContainerDepth, innerContainerSize, rootContainerDepth } =\n measureContainer(ref, orientation);\n const innerElement = ref.current as HTMLElement;\n const isOverflowing = isContainerOverflowing(\n innerContainerDepth,\n rootContainerDepth,\n innerElement,\n orientation,\n );\n\n return { isOverflowing, innerContainerSize, rootContainerDepth };\n};\n\n/**\n * Compute element size including margin.\n * Exclude margin where this has been applied for alignment, via margin: auto\n * which can be identified by the data-pad-end, data-pad-start attributes.\n **/\nexport function measureElementSize(\n element: HTMLElement,\n dimension: heightOrWidth = \"width\",\n includeAutoMargin = false,\n): number {\n const { [dimension]: size } = element.getBoundingClientRect();\n const { padEnd = false, padStart = false } = element.dataset;\n const style = getComputedStyle(element);\n const [start, end] = dimension === \"width\" ? LEFT_RIGHT : TOP_BOTTOM;\n const marginStart =\n padStart && !includeAutoMargin\n ? 0\n : Number.parseInt(style.getPropertyValue(`margin-${start}`), 10);\n const marginEnd =\n padEnd && !includeAutoMargin\n ? 0\n : Number.parseInt(style.getPropertyValue(`margin-${end}`), 10);\n\n let minWidth = size;\n const flexShrink = Number.parseInt(style.getPropertyValue(\"flex-shrink\"), 10);\n if (flexShrink > 0) {\n const flexBasis = Number.parseInt(style.getPropertyValue(\"flex-basis\"), 10);\n // TODO should we consider percentage values ?\n // TODO are we still using flexBasis ?\n if (!Number.isNaN(flexBasis) && flexBasis > 0) {\n minWidth = flexBasis;\n }\n }\n\n return marginStart + minWidth + marginEnd;\n}\n\nexport const byDescendingPriority = (m1: OverflowItem, m2: OverflowItem) => {\n let result = m1.priority - m2.priority;\n if (result === 0) {\n result = m1.index - m2.index;\n }\n return result;\n};\n\n// Helper function to try and determine the display label for an overflow item\n// Currently, Tab uses data-text, so this works for any Tab. Need to decide\n// whether this is appropriate for other components.\n// Note: Tab uses data-text for another reason, it is not implemented there just to\n// support this function.\n// There may be an aria attribute we should use instead\n// function getElementText(element: HTMLElement) {\n// if (element.dataset.text) {\n// return element.dataset.text;\n// }\n// const textNode = element.querySelector(\"[data-text]\") as HTMLElement;\n// if (textNode) {\n// return textNode.dataset.text;\n// }\n// return \"\";\n// }\n// const asCollapsibleType = (value?: string): collapsibleType | undefined =>\n// value === \"instant\" || value == \"dynamic\"\n// ? (value as collapsibleType)\n// : undefined;\n\nexport const getOverflowIndicator = (managedItems: OverflowItem[]) =>\n managedItems.find((item) => item.isOverflowIndicator);\n\n// TODO whats the right way to deduce the label. AccessibleText added\n// to eg delete button makes innerText unreliable.\n// const getLabelForElement = (element: HTMLElement) =>\n// element.title || getElementText(element) || element.innerText;\n\nconst getPriority = (item: OverflowItem) => item.priority;\n\nexport const popNextItemByPriority = (\n items: OverflowItem[],\n): OverflowItem | null => {\n const maxPriority = Math.max(...items.map(getPriority));\n for (let i = items.length - 1; i >= 0; i--) {\n if (!items[i].isOverflowIndicator && items[i].priority === maxPriority) {\n return items.splice(i, 1)[0];\n }\n }\n return null;\n};\n\nexport const measureOverflowItems = (\n items: OverflowItem[],\n dimension: heightOrWidth,\n): OverflowItem[] => {\n const measurements = items.map(({ id }) => {\n const childElement = document.getElementById(id);\n const size = childElement ? measureElementSize(childElement, dimension) : 0;\n return size;\n });\n\n if (measurements.some((size, i) => size !== items[i].size)) {\n return items.map((item, i) =>\n item.size === measurements[i]\n ? item\n : {\n ...item,\n size: measurements[i],\n },\n );\n }\n return items;\n};\n\nexport const addAll = (sum: number, m: OverflowItem): number => sum + m.size;\n\nexport const getElementForItem = (ref: ElementRef, item: OverflowItem) =>\n ref.current!.querySelector(\n `:scope > [data-index='${item.index}']`,\n ) as HTMLElement;\n\ntype dimension = \"left\" | \"right\" | \"top\" | \"bottom\";\n\nexport const getRuntimePadding = (\n el: HTMLElement,\n ...dimensions: dimension[]\n): number[] => {\n const targetStyle = getComputedStyle(el);\n return dimensions.map((dimension) =>\n Number.parseInt(targetStyle.getPropertyValue(`padding-${dimension}`), 10),\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overflowUtils.js","sources":["../src/responsive/overflowUtils.tsx"],"sourcesContent":["import type {\n ElementRef,\n OverflowItem,\n orientationType,\n} from \"./overflowTypes\";\n\nexport const DropdownPlaceholder = () => null;\nexport const getDropdownPlaceholder = () => <DropdownPlaceholder />;\n\nexport type heightOrWidth = \"width\" | \"height\";\nexport const NO_DATA = {};\nconst LEFT_RIGHT = [\"left\", \"right\"];\nconst TOP_BOTTOM = [\"top\", \"bottom\"];\n\nexport const allExceptOverflowIndicator = (sum: number, m: OverflowItem) =>\n sum + (m.isOverflowIndicator ? 0 : m.size);\n\nexport const isCollapsed = (item: OverflowItem): boolean =>\n item.collapsed === true;\nexport const isCollapsing = (item: OverflowItem): boolean =>\n item.collapsing === true;\nexport const isCollapsedOrCollapsing = (item: OverflowItem): boolean =>\n isCollapsed(item) || isCollapsing(item);\nexport const isOverflowed = (item: OverflowItem): boolean =>\n item.overflowed === true;\nexport const notOverflowed = (item: OverflowItem): boolean =>\n !isOverflowed(item);\n\nexport const isCollapsible = (item: OverflowItem) =>\n item.collapsible === \"instant\" || item.collapsible === \"dynamic\";\n\nexport const getIsOverflowed = (managedItems: OverflowItem[]) =>\n managedItems.some(isOverflowed);\n\nexport const measureContainer = (\n ref: ElementRef,\n orientation: orientationType = \"horizontal\",\n): {\n innerContainerSize: number;\n rootContainerDepth: number;\n innerContainerDepth: number;\n} => {\n const innerElement = ref.current as HTMLElement;\n const container = innerElement.parentElement;\n if (container) {\n const { width: innerWidth, height: innerHeight } =\n innerElement.getBoundingClientRect();\n const { width, height } = container.getBoundingClientRect();\n if (orientation === \"horizontal\") {\n return {\n innerContainerSize: innerWidth,\n rootContainerDepth: height,\n innerContainerDepth: innerHeight,\n };\n }\n return {\n innerContainerSize: innerHeight,\n rootContainerDepth: width,\n innerContainerDepth: innerWidth,\n };\n }\n throw Error(\"measureContainer, innerContainer has no parent element\");\n};\n\nconst isContainerOverflowing = (\n containerDepth: number,\n parentContainerDepth: number,\n innerElement: HTMLElement,\n orientation: orientationType,\n) => {\n const isHorizontal = orientation === \"horizontal\";\n // If true, this is a reliable indication of content wrapping, but the containerDepth\n // is not always correct\n if (containerDepth > parentContainerDepth) {\n return true;\n }\n // ... hence - expensive, but catches those situations where the containerDepth is wrong\n const { bottom, right } = innerElement.getBoundingClientRect();\n const maxPos = Array.from(innerElement.childNodes).reduce<number>(\n (maxVal, child) => {\n const rect = (child as HTMLElement).getBoundingClientRect();\n return Math.max(isHorizontal ? rect.bottom : rect.right, maxVal);\n },\n isHorizontal ? bottom : right,\n );\n return isHorizontal ? maxPos > bottom : maxPos > right;\n};\n\nexport const measureContainerOverflow = (\n ref: ElementRef,\n orientation: orientationType = \"horizontal\",\n): {\n isOverflowing: boolean;\n innerContainerSize: number;\n rootContainerDepth: number;\n} => {\n const { innerContainerDepth, innerContainerSize, rootContainerDepth } =\n measureContainer(ref, orientation);\n const innerElement = ref.current as HTMLElement;\n const isOverflowing = isContainerOverflowing(\n innerContainerDepth,\n rootContainerDepth,\n innerElement,\n orientation,\n );\n\n return { isOverflowing, innerContainerSize, rootContainerDepth };\n};\n\n/**\n * Compute element size including margin.\n * Exclude margin where this has been applied for alignment, via margin: auto\n * which can be identified by the data-pad-end, data-pad-start attributes.\n **/\nexport function measureElementSize(\n element: HTMLElement,\n dimension: heightOrWidth = \"width\",\n includeAutoMargin = false,\n): number {\n const { [dimension]: size } = element.getBoundingClientRect();\n const { padEnd = false, padStart = false } = element.dataset;\n const style = getComputedStyle(element);\n const [start, end] = dimension === \"width\" ? LEFT_RIGHT : TOP_BOTTOM;\n const marginStart =\n padStart && !includeAutoMargin\n ? 0\n : Number.parseInt(style.getPropertyValue(`margin-${start}`), 10);\n const marginEnd =\n padEnd && !includeAutoMargin\n ? 0\n : Number.parseInt(style.getPropertyValue(`margin-${end}`), 10);\n\n let minWidth = size;\n const flexShrink = Number.parseInt(style.getPropertyValue(\"flex-shrink\"), 10);\n if (flexShrink > 0) {\n const flexBasis = Number.parseInt(style.getPropertyValue(\"flex-basis\"), 10);\n // TODO should we consider percentage values ?\n // TODO are we still using flexBasis ?\n if (!Number.isNaN(flexBasis) && flexBasis > 0) {\n minWidth = flexBasis;\n }\n }\n\n return marginStart + minWidth + marginEnd;\n}\n\nexport const byDescendingPriority = (m1: OverflowItem, m2: OverflowItem) => {\n let result = m1.priority - m2.priority;\n if (result === 0) {\n result = m1.index - m2.index;\n }\n return result;\n};\n\n// Helper function to try and determine the display label for an overflow item\n// Currently, Tab uses data-text, so this works for any Tab. Need to decide\n// whether this is appropriate for other components.\n// Note: Tab uses data-text for another reason, it is not implemented there just to\n// support this function.\n// There may be an aria attribute we should use instead\n// function getElementText(element: HTMLElement) {\n// if (element.dataset.text) {\n// return element.dataset.text;\n// }\n// const textNode = element.querySelector(\"[data-text]\") as HTMLElement;\n// if (textNode) {\n// return textNode.dataset.text;\n// }\n// return \"\";\n// }\n// const asCollapsibleType = (value?: string): collapsibleType | undefined =>\n// value === \"instant\" || value == \"dynamic\"\n// ? (value as collapsibleType)\n// : undefined;\n\nexport const getOverflowIndicator = (managedItems: OverflowItem[]) =>\n managedItems.find((item) => item.isOverflowIndicator);\n\n// TODO whats the right way to deduce the label. AccessibleText added\n// to eg delete button makes innerText unreliable.\n// const getLabelForElement = (element: HTMLElement) =>\n// element.title || getElementText(element) || element.innerText;\n\nconst getPriority = (item: OverflowItem) => item.priority;\n\nexport const popNextItemByPriority = (\n items: OverflowItem[],\n): OverflowItem | null => {\n const maxPriority = Math.max(...items.map(getPriority));\n for (let i = items.length - 1; i >= 0; i--) {\n if (!items[i].isOverflowIndicator && items[i].priority === maxPriority) {\n return items.splice(i, 1)[0];\n }\n }\n return null;\n};\n\nexport const measureOverflowItems = (\n items: OverflowItem[],\n dimension: heightOrWidth,\n): OverflowItem[] => {\n const measurements = items.map(({ id }) => {\n const childElement = document.getElementById(id);\n const size = childElement ? measureElementSize(childElement, dimension) : 0;\n return size;\n });\n\n if (measurements.some((size, i) => size !== items[i].size)) {\n return items.map((item, i) =>\n item.size === measurements[i]\n ? item\n : {\n ...item,\n size: measurements[i],\n },\n );\n }\n return items;\n};\n\nexport const addAll = (sum: number, m: OverflowItem): number => sum + m.size;\n\nexport const getElementForItem = (ref: ElementRef, item: OverflowItem) =>\n ref.current!.querySelector(\n `:scope > [data-index='${item.index}']`,\n ) as HTMLElement;\n\ntype dimension = \"left\" | \"right\" | \"top\" | \"bottom\";\n\nexport const getRuntimePadding = (\n el: HTMLElement,\n ...dimensions: dimension[]\n): number[] => {\n const targetStyle = getComputedStyle(el);\n return dimensions.map((dimension) =>\n Number.parseInt(targetStyle.getPropertyValue(`padding-${dimension}`), 10),\n );\n};\n"],"names":[],"mappings":"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"}