@salt-ds/lab 1.0.0-alpha.0 → 1.0.0-alpha.2

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 (785) hide show
  1. package/dist-cjs/packages/lab/src/accordion/Accordion.js +2 -6
  2. package/dist-cjs/packages/lab/src/accordion/Accordion.js.map +1 -1
  3. package/dist-cjs/packages/lab/src/accordion/AccordionDetails.js +3 -7
  4. package/dist-cjs/packages/lab/src/accordion/AccordionDetails.js.map +1 -1
  5. package/dist-cjs/packages/lab/src/accordion/AccordionSection.js +3 -6
  6. package/dist-cjs/packages/lab/src/accordion/AccordionSection.js.map +1 -1
  7. package/dist-cjs/packages/lab/src/accordion/AccordionSummary.js +2 -6
  8. package/dist-cjs/packages/lab/src/accordion/AccordionSummary.js.map +1 -1
  9. package/dist-cjs/packages/lab/src/app-header/AppHeader.js +3 -6
  10. package/dist-cjs/packages/lab/src/app-header/AppHeader.js.map +1 -1
  11. package/dist-cjs/packages/lab/src/avatar/Avatar.js +2 -6
  12. package/dist-cjs/packages/lab/src/avatar/Avatar.js.map +1 -1
  13. package/dist-cjs/packages/lab/src/badge/Badge.js +4 -8
  14. package/dist-cjs/packages/lab/src/badge/Badge.js.map +1 -1
  15. package/dist-cjs/packages/lab/src/banner/Banner.js +5 -9
  16. package/dist-cjs/packages/lab/src/banner/Banner.js.map +1 -1
  17. package/dist-cjs/packages/lab/src/breadcrumbs/Breadcrumb.js +4 -8
  18. package/dist-cjs/packages/lab/src/breadcrumbs/Breadcrumb.js.map +1 -1
  19. package/dist-cjs/packages/lab/src/breadcrumbs/Breadcrumbs.js +3 -4
  20. package/dist-cjs/packages/lab/src/breadcrumbs/Breadcrumbs.js.map +1 -1
  21. package/dist-cjs/packages/lab/src/button-bar/ButtonBar.js +2 -6
  22. package/dist-cjs/packages/lab/src/button-bar/ButtonBar.js.map +1 -1
  23. package/dist-cjs/packages/lab/src/button-bar/OrderedButton.js +3 -6
  24. package/dist-cjs/packages/lab/src/button-bar/OrderedButton.js.map +1 -1
  25. package/dist-cjs/packages/lab/src/calendar/Calendar.js +2 -6
  26. package/dist-cjs/packages/lab/src/calendar/Calendar.js.map +1 -1
  27. package/dist-cjs/packages/lab/src/calendar/internal/CalendarDay.js +34 -54
  28. package/dist-cjs/packages/lab/src/calendar/internal/CalendarDay.js.map +1 -1
  29. package/dist-cjs/packages/lab/src/calendar/internal/CalendarMonth.js +2 -6
  30. package/dist-cjs/packages/lab/src/calendar/internal/CalendarMonth.js.map +1 -1
  31. package/dist-cjs/packages/lab/src/calendar/internal/CalendarNavigation.js +38 -72
  32. package/dist-cjs/packages/lab/src/calendar/internal/CalendarNavigation.js.map +1 -1
  33. package/dist-cjs/packages/lab/src/calendar/internal/CalendarWeekHeader.js +2 -6
  34. package/dist-cjs/packages/lab/src/calendar/internal/CalendarWeekHeader.js.map +1 -1
  35. package/dist-cjs/packages/lab/src/calendar/useSelection.js +3 -6
  36. package/dist-cjs/packages/lab/src/calendar/useSelection.js.map +1 -1
  37. package/dist-cjs/packages/lab/src/carousel/Carousel.js +3 -6
  38. package/dist-cjs/packages/lab/src/carousel/Carousel.js.map +1 -1
  39. package/dist-cjs/packages/lab/src/carousel/CarouselSlide.js +4 -8
  40. package/dist-cjs/packages/lab/src/carousel/CarouselSlide.js.map +1 -1
  41. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenu.js +2 -1
  42. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenu.js.map +1 -1
  43. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuItem.js +48 -69
  44. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuItem.js.map +1 -1
  45. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuList.js +5 -9
  46. package/dist-cjs/packages/lab/src/cascading-menu/CascadingMenuList.js.map +1 -1
  47. package/dist-cjs/packages/lab/src/cascading-menu/internal/useClickAway.js +1 -0
  48. package/dist-cjs/packages/lab/src/cascading-menu/internal/useClickAway.js.map +1 -1
  49. package/dist-cjs/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js +1 -0
  50. package/dist-cjs/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  51. package/dist-cjs/packages/lab/src/checkbox/Checkbox.js +2 -6
  52. package/dist-cjs/packages/lab/src/checkbox/Checkbox.js.map +1 -1
  53. package/dist-cjs/packages/lab/src/checkbox/CheckboxBase.js +2 -6
  54. package/dist-cjs/packages/lab/src/checkbox/CheckboxBase.js.map +1 -1
  55. package/dist-cjs/packages/lab/src/checkbox/CheckboxGroup.js +2 -6
  56. package/dist-cjs/packages/lab/src/checkbox/CheckboxGroup.js.map +1 -1
  57. package/dist-cjs/packages/lab/src/checkbox/CheckboxIcon.js +4 -8
  58. package/dist-cjs/packages/lab/src/checkbox/CheckboxIcon.js.map +1 -1
  59. package/dist-cjs/packages/lab/src/color-chooser/AlphaInputField.js +2 -6
  60. package/dist-cjs/packages/lab/src/color-chooser/AlphaInputField.js.map +1 -1
  61. package/dist-cjs/packages/lab/src/color-chooser/ColorChooser.js +7 -11
  62. package/dist-cjs/packages/lab/src/color-chooser/ColorChooser.js.map +1 -1
  63. package/dist-cjs/packages/lab/src/color-chooser/ColorPicker.js +7 -11
  64. package/dist-cjs/packages/lab/src/color-chooser/ColorPicker.js.map +1 -1
  65. package/dist-cjs/packages/lab/src/color-chooser/DictTabs.js +3 -7
  66. package/dist-cjs/packages/lab/src/color-chooser/DictTabs.js.map +1 -1
  67. package/dist-cjs/packages/lab/src/color-chooser/HexInput.js +4 -8
  68. package/dist-cjs/packages/lab/src/color-chooser/HexInput.js.map +1 -1
  69. package/dist-cjs/packages/lab/src/color-chooser/RGBAInput.js +5 -9
  70. package/dist-cjs/packages/lab/src/color-chooser/RGBAInput.js.map +1 -1
  71. package/dist-cjs/packages/lab/src/color-chooser/Swatch.js +2 -6
  72. package/dist-cjs/packages/lab/src/color-chooser/Swatch.js.map +1 -1
  73. package/dist-cjs/packages/lab/src/color-chooser/Swatches.js +6 -10
  74. package/dist-cjs/packages/lab/src/color-chooser/Swatches.js.map +1 -1
  75. package/dist-cjs/packages/lab/src/combo-box/ComboBox.js +1 -0
  76. package/dist-cjs/packages/lab/src/combo-box/ComboBox.js.map +1 -1
  77. package/dist-cjs/packages/lab/src/combo-box/useCombobox.js +1 -0
  78. package/dist-cjs/packages/lab/src/combo-box/useCombobox.js.map +1 -1
  79. package/dist-cjs/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js +3 -7
  80. package/dist-cjs/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  81. package/dist-cjs/packages/lab/src/combo-box-deprecated/filterHelpers.js +1 -0
  82. package/dist-cjs/packages/lab/src/combo-box-deprecated/filterHelpers.js.map +1 -1
  83. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js +21 -39
  84. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  85. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js +28 -49
  86. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  87. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useComboBox.js +1 -0
  88. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  89. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js +1 -0
  90. package/dist-cjs/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  91. package/dist-cjs/packages/lab/src/common-hooks/useAutoSizer.js +3 -2
  92. package/dist-cjs/packages/lab/src/common-hooks/useAutoSizer.js.map +1 -1
  93. package/dist-cjs/packages/lab/src/common-hooks/useViewportTracking.js +3 -2
  94. package/dist-cjs/packages/lab/src/common-hooks/useViewportTracking.js.map +1 -1
  95. package/dist-cjs/packages/lab/src/common-hooks/utils/filter-utils.js +1 -0
  96. package/dist-cjs/packages/lab/src/common-hooks/utils/filter-utils.js.map +1 -1
  97. package/dist-cjs/packages/lab/src/contact-details/ContactAction.js +8 -23
  98. package/dist-cjs/packages/lab/src/contact-details/ContactAction.js.map +1 -1
  99. package/dist-cjs/packages/lab/src/contact-details/ContactAvatar.js +2 -6
  100. package/dist-cjs/packages/lab/src/contact-details/ContactAvatar.js.map +1 -1
  101. package/dist-cjs/packages/lab/src/contact-details/ContactDetails.js +2 -6
  102. package/dist-cjs/packages/lab/src/contact-details/ContactDetails.js.map +1 -1
  103. package/dist-cjs/packages/lab/src/contact-details/ContactFavoriteToggle.js.map +1 -1
  104. package/dist-cjs/packages/lab/src/contact-details/ContactMetadata.js +2 -6
  105. package/dist-cjs/packages/lab/src/contact-details/ContactMetadata.js.map +1 -1
  106. package/dist-cjs/packages/lab/src/contact-details/ContactPrimaryInfo.js +2 -6
  107. package/dist-cjs/packages/lab/src/contact-details/ContactPrimaryInfo.js.map +1 -1
  108. package/dist-cjs/packages/lab/src/contact-details/ContactSecondaryInfo.js +2 -6
  109. package/dist-cjs/packages/lab/src/contact-details/ContactSecondaryInfo.js.map +1 -1
  110. package/dist-cjs/packages/lab/src/contact-details/ContactTertiaryInfo.js +2 -6
  111. package/dist-cjs/packages/lab/src/contact-details/ContactTertiaryInfo.js.map +1 -1
  112. package/dist-cjs/packages/lab/src/contact-details/MailLinkComponent.js +1 -0
  113. package/dist-cjs/packages/lab/src/contact-details/MailLinkComponent.js.map +1 -1
  114. package/dist-cjs/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js +8 -19
  115. package/dist-cjs/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  116. package/dist-cjs/packages/lab/src/contact-details/internal/StarIconContainer.js +3 -7
  117. package/dist-cjs/packages/lab/src/contact-details/internal/StarIconContainer.js.map +1 -1
  118. package/dist-cjs/packages/lab/src/content-status/ContentStatus.js +6 -10
  119. package/dist-cjs/packages/lab/src/content-status/ContentStatus.js.map +1 -1
  120. package/dist-cjs/packages/lab/src/content-status/internal/StatusIndicator.js +4 -9
  121. package/dist-cjs/packages/lab/src/content-status/internal/StatusIndicator.js.map +1 -1
  122. package/dist-cjs/packages/lab/src/control-label/ControlLabel.js +2 -6
  123. package/dist-cjs/packages/lab/src/control-label/ControlLabel.js.map +1 -1
  124. package/dist-cjs/packages/lab/src/deck-item/DeckItem.js +2 -6
  125. package/dist-cjs/packages/lab/src/deck-item/DeckItem.js.map +1 -1
  126. package/dist-cjs/packages/lab/src/deck-layout/DeckLayout.js +4 -7
  127. package/dist-cjs/packages/lab/src/deck-layout/DeckLayout.js.map +1 -1
  128. package/dist-cjs/packages/lab/src/dialog/Dialog.js +2 -6
  129. package/dist-cjs/packages/lab/src/dialog/Dialog.js.map +1 -1
  130. package/dist-cjs/packages/lab/src/dialog/DialogActions.js +2 -6
  131. package/dist-cjs/packages/lab/src/dialog/DialogActions.js.map +1 -1
  132. package/dist-cjs/packages/lab/src/dialog/DialogContent.js +2 -6
  133. package/dist-cjs/packages/lab/src/dialog/DialogContent.js.map +1 -1
  134. package/dist-cjs/packages/lab/src/dialog/DialogTitle.js +2 -6
  135. package/dist-cjs/packages/lab/src/dialog/DialogTitle.js.map +1 -1
  136. package/dist-cjs/packages/lab/src/dropdown/Dropdown.js +1 -0
  137. package/dist-cjs/packages/lab/src/dropdown/Dropdown.js.map +1 -1
  138. package/dist-cjs/packages/lab/src/dropdown/DropdownBase.js +10 -14
  139. package/dist-cjs/packages/lab/src/dropdown/DropdownBase.js.map +1 -1
  140. package/dist-cjs/packages/lab/src/dropdown/DropdownButton.js +2 -6
  141. package/dist-cjs/packages/lab/src/dropdown/DropdownButton.js.map +1 -1
  142. package/dist-cjs/packages/lab/src/dropdown/useDropdown.js +1 -0
  143. package/dist-cjs/packages/lab/src/dropdown/useDropdown.js.map +1 -1
  144. package/dist-cjs/packages/lab/src/dropdown/useDropdownBase.js +1 -0
  145. package/dist-cjs/packages/lab/src/dropdown/useDropdownBase.js.map +1 -1
  146. package/dist-cjs/packages/lab/src/editable-label/EditableLabel.js +2 -6
  147. package/dist-cjs/packages/lab/src/editable-label/EditableLabel.js.map +1 -1
  148. package/dist-cjs/packages/lab/src/file-drop-zone/FileDropZone.js +2 -6
  149. package/dist-cjs/packages/lab/src/file-drop-zone/FileDropZone.js.map +1 -1
  150. package/dist-cjs/packages/lab/src/form-field/FormField.js +61 -78
  151. package/dist-cjs/packages/lab/src/form-field/FormField.js.map +1 -1
  152. package/dist-cjs/packages/lab/src/form-field/FormLabel.js +2 -6
  153. package/dist-cjs/packages/lab/src/form-field/FormLabel.js.map +1 -1
  154. package/dist-cjs/packages/lab/src/form-field/StatusIndicator.js +18 -35
  155. package/dist-cjs/packages/lab/src/form-field/StatusIndicator.js.map +1 -1
  156. package/dist-cjs/packages/lab/src/form-group/FormGroup.js +2 -6
  157. package/dist-cjs/packages/lab/src/form-group/FormGroup.js.map +1 -1
  158. package/dist-cjs/packages/lab/src/formatted-input/FormattedInput.js +2 -6
  159. package/dist-cjs/packages/lab/src/formatted-input/FormattedInput.js.map +1 -1
  160. package/dist-cjs/packages/lab/src/formatted-input/internal/InputWithMask.js +2 -6
  161. package/dist-cjs/packages/lab/src/formatted-input/internal/InputWithMask.js.map +1 -1
  162. package/dist-cjs/packages/lab/src/index.js +3 -19
  163. package/dist-cjs/packages/lab/src/index.js.map +1 -1
  164. package/dist-cjs/packages/lab/src/input/Input.js +4 -8
  165. package/dist-cjs/packages/lab/src/input/Input.js.map +1 -1
  166. package/dist-cjs/packages/lab/src/input/StaticInputAdornment.js +2 -6
  167. package/dist-cjs/packages/lab/src/input/StaticInputAdornment.js.map +1 -1
  168. package/dist-cjs/packages/lab/src/layer-layout/LayerLayout.js +6 -9
  169. package/dist-cjs/packages/lab/src/layer-layout/LayerLayout.js.map +1 -1
  170. package/dist-cjs/packages/lab/src/list/Highlighter.js +1 -0
  171. package/dist-cjs/packages/lab/src/list/Highlighter.js.map +1 -1
  172. package/dist-cjs/packages/lab/src/list/List.js +5 -8
  173. package/dist-cjs/packages/lab/src/list/List.js.map +1 -1
  174. package/dist-cjs/packages/lab/src/list/ListItem.js +3 -7
  175. package/dist-cjs/packages/lab/src/list/ListItem.js.map +1 -1
  176. package/dist-cjs/packages/lab/src/list/VirtualizedList.js +4 -7
  177. package/dist-cjs/packages/lab/src/list/VirtualizedList.js.map +1 -1
  178. package/dist-cjs/packages/lab/src/list/useList.js +2 -1
  179. package/dist-cjs/packages/lab/src/list/useList.js.map +1 -1
  180. package/dist-cjs/packages/lab/src/list/useListHeight.js +1 -0
  181. package/dist-cjs/packages/lab/src/list/useListHeight.js.map +1 -1
  182. package/dist-cjs/packages/lab/src/list/useVirtualization.js +2 -1
  183. package/dist-cjs/packages/lab/src/list/useVirtualization.js.map +1 -1
  184. package/dist-cjs/packages/lab/src/list-deprecated/List.js +5 -26
  185. package/dist-cjs/packages/lab/src/list-deprecated/List.js.map +1 -1
  186. package/dist-cjs/packages/lab/src/list-deprecated/ListBase.js +3 -7
  187. package/dist-cjs/packages/lab/src/list-deprecated/ListBase.js.map +1 -1
  188. package/dist-cjs/packages/lab/src/list-deprecated/ListItemBase.js +29 -63
  189. package/dist-cjs/packages/lab/src/list-deprecated/ListItemBase.js.map +1 -1
  190. package/dist-cjs/packages/lab/src/list-deprecated/internal/Highlighter.js +1 -0
  191. package/dist-cjs/packages/lab/src/list-deprecated/internal/Highlighter.js.map +1 -1
  192. package/dist-cjs/packages/lab/src/list-deprecated/useTypeSelect.js +1 -0
  193. package/dist-cjs/packages/lab/src/list-deprecated/useTypeSelect.js.map +1 -1
  194. package/dist-cjs/packages/lab/src/logo/Logo.js +5 -9
  195. package/dist-cjs/packages/lab/src/logo/Logo.js.map +1 -1
  196. package/dist-cjs/packages/lab/src/menu-button/MenuButtonTrigger.js +2 -6
  197. package/dist-cjs/packages/lab/src/menu-button/MenuButtonTrigger.js.map +1 -1
  198. package/dist-cjs/packages/lab/src/metric/Metric.js +2 -6
  199. package/dist-cjs/packages/lab/src/metric/Metric.js.map +1 -1
  200. package/dist-cjs/packages/lab/src/metric/MetricContent.js +2 -6
  201. package/dist-cjs/packages/lab/src/metric/MetricContent.js.map +1 -1
  202. package/dist-cjs/packages/lab/src/metric/MetricHeader.js +2 -6
  203. package/dist-cjs/packages/lab/src/metric/MetricHeader.js.map +1 -1
  204. package/dist-cjs/packages/lab/src/overlay/Overlay.js +4 -8
  205. package/dist-cjs/packages/lab/src/overlay/Overlay.js.map +1 -1
  206. package/dist-cjs/packages/lab/src/overlay/useOverlay.js +11 -12
  207. package/dist-cjs/packages/lab/src/overlay/useOverlay.js.map +1 -1
  208. package/dist-cjs/packages/lab/src/pagination/ArrowButton.js +2 -6
  209. package/dist-cjs/packages/lab/src/pagination/ArrowButton.js.map +1 -1
  210. package/dist-cjs/packages/lab/src/pagination/CompactInput.js +3 -7
  211. package/dist-cjs/packages/lab/src/pagination/CompactInput.js.map +1 -1
  212. package/dist-cjs/packages/lab/src/pagination/GoToInput.js +3 -7
  213. package/dist-cjs/packages/lab/src/pagination/GoToInput.js.map +1 -1
  214. package/dist-cjs/packages/lab/src/pagination/PageButton.js +2 -6
  215. package/dist-cjs/packages/lab/src/pagination/PageButton.js.map +1 -1
  216. package/dist-cjs/packages/lab/src/pagination/Pagination.js +2 -6
  217. package/dist-cjs/packages/lab/src/pagination/Pagination.js.map +1 -1
  218. package/dist-cjs/packages/lab/src/pagination/Paginator.js +2 -6
  219. package/dist-cjs/packages/lab/src/pagination/Paginator.js.map +1 -1
  220. package/dist-cjs/packages/lab/src/parent-child-item/ParentChildItem.js +2 -6
  221. package/dist-cjs/packages/lab/src/parent-child-item/ParentChildItem.js.map +1 -1
  222. package/dist-cjs/packages/lab/src/parent-child-layout/ParentChildLayout.js +3 -6
  223. package/dist-cjs/packages/lab/src/parent-child-layout/ParentChildLayout.js.map +1 -1
  224. package/dist-cjs/packages/lab/src/pill/ClosablePill.js +2 -6
  225. package/dist-cjs/packages/lab/src/pill/ClosablePill.js.map +1 -1
  226. package/dist-cjs/packages/lab/src/pill/PillBase.js +42 -62
  227. package/dist-cjs/packages/lab/src/pill/PillBase.js.map +1 -1
  228. package/dist-cjs/packages/lab/src/pill/SelectablePill.js +2 -6
  229. package/dist-cjs/packages/lab/src/pill/SelectablePill.js.map +1 -1
  230. package/dist-cjs/packages/lab/src/pill/internal/DeleteButton.js +2 -6
  231. package/dist-cjs/packages/lab/src/pill/internal/DeleteButton.js.map +1 -1
  232. package/dist-cjs/packages/lab/src/pill/internal/DivButton.js +2 -6
  233. package/dist-cjs/packages/lab/src/pill/internal/DivButton.js.map +1 -1
  234. package/dist-cjs/packages/lab/src/progress/CircularProgress/CircularProgress.js +4 -8
  235. package/dist-cjs/packages/lab/src/progress/CircularProgress/CircularProgress.js.map +1 -1
  236. package/dist-cjs/packages/lab/src/progress/LinearProgress/LinearProgress.js +5 -9
  237. package/dist-cjs/packages/lab/src/progress/LinearProgress/LinearProgress.js.map +1 -1
  238. package/dist-cjs/packages/lab/src/query-input/QueryInput.js +2 -6
  239. package/dist-cjs/packages/lab/src/query-input/QueryInput.js.map +1 -1
  240. package/dist-cjs/packages/lab/src/query-input/internal/CategoryList.js +1 -0
  241. package/dist-cjs/packages/lab/src/query-input/internal/CategoryList.js.map +1 -1
  242. package/dist-cjs/packages/lab/src/query-input/internal/CategoryListItem.js +1 -0
  243. package/dist-cjs/packages/lab/src/query-input/internal/CategoryListItem.js.map +1 -1
  244. package/dist-cjs/packages/lab/src/query-input/internal/QueryInputBody.js +1 -0
  245. package/dist-cjs/packages/lab/src/query-input/internal/QueryInputBody.js.map +1 -1
  246. package/dist-cjs/packages/lab/src/query-input/internal/SearchList.js +1 -0
  247. package/dist-cjs/packages/lab/src/query-input/internal/SearchList.js.map +1 -1
  248. package/dist-cjs/packages/lab/src/query-input/internal/ValueList.js +1 -0
  249. package/dist-cjs/packages/lab/src/query-input/internal/ValueList.js.map +1 -1
  250. package/dist-cjs/packages/lab/src/query-input/internal/ValueSelector.js +2 -3
  251. package/dist-cjs/packages/lab/src/query-input/internal/ValueSelector.js.map +1 -1
  252. package/dist-cjs/packages/lab/src/query-input/useQueryInput.js +1 -0
  253. package/dist-cjs/packages/lab/src/query-input/useQueryInput.js.map +1 -1
  254. package/dist-cjs/packages/lab/src/radio-button/RadioButton.js +3 -7
  255. package/dist-cjs/packages/lab/src/radio-button/RadioButton.js.map +1 -1
  256. package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.js +2 -6
  257. package/dist-cjs/packages/lab/src/radio-button/RadioButtonBase.js.map +1 -1
  258. package/dist-cjs/packages/lab/src/radio-button/RadioButtonGroup.js +3 -7
  259. package/dist-cjs/packages/lab/src/radio-button/RadioButtonGroup.js.map +1 -1
  260. package/dist-cjs/packages/lab/src/radio-button/RadioButtonIcon.js +2 -6
  261. package/dist-cjs/packages/lab/src/radio-button/RadioButtonIcon.js.map +1 -1
  262. package/dist-cjs/packages/lab/src/responsive/useOverflow.js +1 -0
  263. package/dist-cjs/packages/lab/src/responsive/useOverflow.js.map +1 -1
  264. package/dist-cjs/packages/lab/src/responsive/useResizeObserver.js +6 -3
  265. package/dist-cjs/packages/lab/src/responsive/useResizeObserver.js.map +1 -1
  266. package/dist-cjs/packages/lab/src/scrim/Scrim.js +2 -3
  267. package/dist-cjs/packages/lab/src/scrim/Scrim.js.map +1 -1
  268. package/dist-cjs/packages/lab/src/search-input/SearchInput.js +3 -7
  269. package/dist-cjs/packages/lab/src/search-input/SearchInput.js.map +1 -1
  270. package/dist-cjs/packages/lab/src/skip-link/SkipLink.js +3 -7
  271. package/dist-cjs/packages/lab/src/skip-link/SkipLink.js.map +1 -1
  272. package/dist-cjs/packages/lab/src/skip-link/SkipLinks.js +2 -6
  273. package/dist-cjs/packages/lab/src/skip-link/SkipLinks.js.map +1 -1
  274. package/dist-cjs/packages/lab/src/slider/Slider.js +2 -6
  275. package/dist-cjs/packages/lab/src/slider/Slider.js.map +1 -1
  276. package/dist-cjs/packages/lab/src/slider/internal/SliderHandle.js +18 -31
  277. package/dist-cjs/packages/lab/src/slider/internal/SliderHandle.js.map +1 -1
  278. package/dist-cjs/packages/lab/src/slider/internal/SliderRailMarks.js +2 -6
  279. package/dist-cjs/packages/lab/src/slider/internal/SliderRailMarks.js.map +1 -1
  280. package/dist-cjs/packages/lab/src/stepper-input/StepperInput.js +5 -9
  281. package/dist-cjs/packages/lab/src/stepper-input/StepperInput.js.map +1 -1
  282. package/dist-cjs/packages/lab/src/switch/Switch.js +4 -8
  283. package/dist-cjs/packages/lab/src/switch/Switch.js.map +1 -1
  284. package/dist-cjs/packages/lab/src/tabs/Tab.js +2 -6
  285. package/dist-cjs/packages/lab/src/tabs/Tab.js.map +1 -1
  286. package/dist-cjs/packages/lab/src/tabs/TabPanel.js +2 -6
  287. package/dist-cjs/packages/lab/src/tabs/TabPanel.js.map +1 -1
  288. package/dist-cjs/packages/lab/src/tabs/Tabs.js +2 -6
  289. package/dist-cjs/packages/lab/src/tabs/Tabs.js.map +1 -1
  290. package/dist-cjs/packages/lab/src/tabs/Tabstrip.js +37 -48
  291. package/dist-cjs/packages/lab/src/tabs/Tabstrip.js.map +1 -1
  292. package/dist-cjs/packages/lab/src/tabs/drag-drop/Draggable.js +2 -6
  293. package/dist-cjs/packages/lab/src/tabs/drag-drop/Draggable.js.map +1 -1
  294. package/dist-cjs/packages/lab/src/tabs/useActivationIndicator.js +1 -0
  295. package/dist-cjs/packages/lab/src/tabs/useActivationIndicator.js.map +1 -1
  296. package/dist-cjs/packages/lab/src/tabs/useKeyboardNavigation.js +1 -0
  297. package/dist-cjs/packages/lab/src/tabs/useKeyboardNavigation.js.map +1 -1
  298. package/dist-cjs/packages/lab/src/toggle-button/ToggleButton.js +8 -32
  299. package/dist-cjs/packages/lab/src/toggle-button/ToggleButton.js.map +1 -1
  300. package/dist-cjs/packages/lab/src/toggle-button/ToggleButtonGroup.js +2 -6
  301. package/dist-cjs/packages/lab/src/toggle-button/ToggleButtonGroup.js.map +1 -1
  302. package/dist-cjs/packages/lab/src/tokenized-input/TokenizedInput.js.map +1 -1
  303. package/dist-cjs/packages/lab/src/tokenized-input/TokenizedInputBase.js +7 -12
  304. package/dist-cjs/packages/lab/src/tokenized-input/TokenizedInputBase.js.map +1 -1
  305. package/dist-cjs/packages/lab/src/tokenized-input/internal/InputPill.js +2 -6
  306. package/dist-cjs/packages/lab/src/tokenized-input/internal/InputPill.js.map +1 -1
  307. package/dist-cjs/packages/lab/src/tokenized-input/useTokenizedInput.js +1 -0
  308. package/dist-cjs/packages/lab/src/tokenized-input/useTokenizedInput.js.map +1 -1
  309. package/dist-cjs/packages/lab/src/toolbar/Toolbar.js +5 -8
  310. package/dist-cjs/packages/lab/src/toolbar/Toolbar.js.map +1 -1
  311. package/dist-cjs/packages/lab/src/toolbar/Tooltray.js +4 -8
  312. package/dist-cjs/packages/lab/src/toolbar/Tooltray.js.map +1 -1
  313. package/dist-cjs/packages/lab/src/toolbar/internal/renderToolbarItems.js +1 -0
  314. package/dist-cjs/packages/lab/src/toolbar/internal/renderToolbarItems.js.map +1 -1
  315. package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js +3 -3
  316. package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  317. package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowSeparator.js +2 -6
  318. package/dist-cjs/packages/lab/src/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
  319. package/dist-cjs/packages/lab/src/toolbar/toolbar-field/useToolbarField.js +3 -7
  320. package/dist-cjs/packages/lab/src/toolbar/toolbar-field/useToolbarField.js.map +1 -1
  321. package/dist-cjs/packages/lab/src/tree/Tree.js +5 -8
  322. package/dist-cjs/packages/lab/src/tree/Tree.js.map +1 -1
  323. package/dist-cjs/packages/lab/src/tree/TreeNode.js +2 -6
  324. package/dist-cjs/packages/lab/src/tree/TreeNode.js.map +1 -1
  325. package/dist-cjs/packages/lab/src/tree/useTree.js +2 -1
  326. package/dist-cjs/packages/lab/src/tree/useTree.js.map +1 -1
  327. package/dist-cjs/packages/lab/src/utils/useFloatingUI.js +38 -0
  328. package/dist-cjs/packages/lab/src/utils/useFloatingUI.js.map +1 -0
  329. package/dist-cjs/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js +1 -2
  330. package/dist-cjs/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  331. package/dist-es/packages/lab/src/accordion/Accordion.js +2 -2
  332. package/dist-es/packages/lab/src/accordion/Accordion.js.map +1 -1
  333. package/dist-es/packages/lab/src/accordion/AccordionDetails.js +3 -3
  334. package/dist-es/packages/lab/src/accordion/AccordionDetails.js.map +1 -1
  335. package/dist-es/packages/lab/src/accordion/AccordionSection.js +3 -2
  336. package/dist-es/packages/lab/src/accordion/AccordionSection.js.map +1 -1
  337. package/dist-es/packages/lab/src/accordion/AccordionSummary.js +2 -2
  338. package/dist-es/packages/lab/src/accordion/AccordionSummary.js.map +1 -1
  339. package/dist-es/packages/lab/src/app-header/AppHeader.js +3 -2
  340. package/dist-es/packages/lab/src/app-header/AppHeader.js.map +1 -1
  341. package/dist-es/packages/lab/src/avatar/Avatar.js +2 -2
  342. package/dist-es/packages/lab/src/avatar/Avatar.js.map +1 -1
  343. package/dist-es/packages/lab/src/badge/Badge.js +4 -4
  344. package/dist-es/packages/lab/src/badge/Badge.js.map +1 -1
  345. package/dist-es/packages/lab/src/banner/Banner.js +5 -5
  346. package/dist-es/packages/lab/src/banner/Banner.js.map +1 -1
  347. package/dist-es/packages/lab/src/breadcrumbs/Breadcrumb.js +4 -4
  348. package/dist-es/packages/lab/src/breadcrumbs/Breadcrumb.js.map +1 -1
  349. package/dist-es/packages/lab/src/breadcrumbs/Breadcrumbs.js +3 -3
  350. package/dist-es/packages/lab/src/breadcrumbs/Breadcrumbs.js.map +1 -1
  351. package/dist-es/packages/lab/src/button-bar/ButtonBar.js +2 -2
  352. package/dist-es/packages/lab/src/button-bar/ButtonBar.js.map +1 -1
  353. package/dist-es/packages/lab/src/button-bar/OrderedButton.js +3 -2
  354. package/dist-es/packages/lab/src/button-bar/OrderedButton.js.map +1 -1
  355. package/dist-es/packages/lab/src/calendar/Calendar.js +2 -2
  356. package/dist-es/packages/lab/src/calendar/Calendar.js.map +1 -1
  357. package/dist-es/packages/lab/src/calendar/internal/CalendarDay.js +36 -52
  358. package/dist-es/packages/lab/src/calendar/internal/CalendarDay.js.map +1 -1
  359. package/dist-es/packages/lab/src/calendar/internal/CalendarMonth.js +2 -2
  360. package/dist-es/packages/lab/src/calendar/internal/CalendarMonth.js.map +1 -1
  361. package/dist-es/packages/lab/src/calendar/internal/CalendarNavigation.js +39 -69
  362. package/dist-es/packages/lab/src/calendar/internal/CalendarNavigation.js.map +1 -1
  363. package/dist-es/packages/lab/src/calendar/internal/CalendarWeekHeader.js +2 -2
  364. package/dist-es/packages/lab/src/calendar/internal/CalendarWeekHeader.js.map +1 -1
  365. package/dist-es/packages/lab/src/calendar/useSelection.js +3 -2
  366. package/dist-es/packages/lab/src/calendar/useSelection.js.map +1 -1
  367. package/dist-es/packages/lab/src/carousel/Carousel.js +3 -2
  368. package/dist-es/packages/lab/src/carousel/Carousel.js.map +1 -1
  369. package/dist-es/packages/lab/src/carousel/CarouselSlide.js +4 -4
  370. package/dist-es/packages/lab/src/carousel/CarouselSlide.js.map +1 -1
  371. package/dist-es/packages/lab/src/cascading-menu/CascadingMenu.js +2 -1
  372. package/dist-es/packages/lab/src/cascading-menu/CascadingMenu.js.map +1 -1
  373. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuItem.js +50 -67
  374. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuItem.js.map +1 -1
  375. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuList.js +5 -5
  376. package/dist-es/packages/lab/src/cascading-menu/CascadingMenuList.js.map +1 -1
  377. package/dist-es/packages/lab/src/cascading-menu/internal/useClickAway.js +1 -0
  378. package/dist-es/packages/lab/src/cascading-menu/internal/useClickAway.js.map +1 -1
  379. package/dist-es/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js +1 -0
  380. package/dist-es/packages/lab/src/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  381. package/dist-es/packages/lab/src/checkbox/Checkbox.js +2 -2
  382. package/dist-es/packages/lab/src/checkbox/Checkbox.js.map +1 -1
  383. package/dist-es/packages/lab/src/checkbox/CheckboxBase.js +2 -2
  384. package/dist-es/packages/lab/src/checkbox/CheckboxBase.js.map +1 -1
  385. package/dist-es/packages/lab/src/checkbox/CheckboxGroup.js +2 -2
  386. package/dist-es/packages/lab/src/checkbox/CheckboxGroup.js.map +1 -1
  387. package/dist-es/packages/lab/src/checkbox/CheckboxIcon.js +4 -4
  388. package/dist-es/packages/lab/src/checkbox/CheckboxIcon.js.map +1 -1
  389. package/dist-es/packages/lab/src/color-chooser/AlphaInputField.js +2 -2
  390. package/dist-es/packages/lab/src/color-chooser/AlphaInputField.js.map +1 -1
  391. package/dist-es/packages/lab/src/color-chooser/ColorChooser.js +7 -7
  392. package/dist-es/packages/lab/src/color-chooser/ColorChooser.js.map +1 -1
  393. package/dist-es/packages/lab/src/color-chooser/ColorPicker.js +7 -7
  394. package/dist-es/packages/lab/src/color-chooser/ColorPicker.js.map +1 -1
  395. package/dist-es/packages/lab/src/color-chooser/DictTabs.js +3 -3
  396. package/dist-es/packages/lab/src/color-chooser/DictTabs.js.map +1 -1
  397. package/dist-es/packages/lab/src/color-chooser/HexInput.js +4 -4
  398. package/dist-es/packages/lab/src/color-chooser/HexInput.js.map +1 -1
  399. package/dist-es/packages/lab/src/color-chooser/RGBAInput.js +5 -5
  400. package/dist-es/packages/lab/src/color-chooser/RGBAInput.js.map +1 -1
  401. package/dist-es/packages/lab/src/color-chooser/Swatch.js +2 -2
  402. package/dist-es/packages/lab/src/color-chooser/Swatch.js.map +1 -1
  403. package/dist-es/packages/lab/src/color-chooser/Swatches.js +6 -6
  404. package/dist-es/packages/lab/src/color-chooser/Swatches.js.map +1 -1
  405. package/dist-es/packages/lab/src/combo-box/ComboBox.js +1 -0
  406. package/dist-es/packages/lab/src/combo-box/ComboBox.js.map +1 -1
  407. package/dist-es/packages/lab/src/combo-box/useCombobox.js +1 -0
  408. package/dist-es/packages/lab/src/combo-box/useCombobox.js.map +1 -1
  409. package/dist-es/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js +3 -3
  410. package/dist-es/packages/lab/src/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  411. package/dist-es/packages/lab/src/combo-box-deprecated/filterHelpers.js +1 -0
  412. package/dist-es/packages/lab/src/combo-box-deprecated/filterHelpers.js.map +1 -1
  413. package/dist-es/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js +19 -37
  414. package/dist-es/packages/lab/src/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  415. package/dist-es/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js +26 -47
  416. package/dist-es/packages/lab/src/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  417. package/dist-es/packages/lab/src/combo-box-deprecated/internal/useComboBox.js +1 -0
  418. package/dist-es/packages/lab/src/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  419. package/dist-es/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js +1 -0
  420. package/dist-es/packages/lab/src/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  421. package/dist-es/packages/lab/src/common-hooks/useAutoSizer.js +4 -3
  422. package/dist-es/packages/lab/src/common-hooks/useAutoSizer.js.map +1 -1
  423. package/dist-es/packages/lab/src/common-hooks/useViewportTracking.js +4 -3
  424. package/dist-es/packages/lab/src/common-hooks/useViewportTracking.js.map +1 -1
  425. package/dist-es/packages/lab/src/common-hooks/utils/filter-utils.js +1 -0
  426. package/dist-es/packages/lab/src/common-hooks/utils/filter-utils.js.map +1 -1
  427. package/dist-es/packages/lab/src/contact-details/ContactAction.js +10 -25
  428. package/dist-es/packages/lab/src/contact-details/ContactAction.js.map +1 -1
  429. package/dist-es/packages/lab/src/contact-details/ContactAvatar.js +2 -2
  430. package/dist-es/packages/lab/src/contact-details/ContactAvatar.js.map +1 -1
  431. package/dist-es/packages/lab/src/contact-details/ContactDetails.js +2 -2
  432. package/dist-es/packages/lab/src/contact-details/ContactDetails.js.map +1 -1
  433. package/dist-es/packages/lab/src/contact-details/ContactFavoriteToggle.js.map +1 -1
  434. package/dist-es/packages/lab/src/contact-details/ContactMetadata.js +2 -2
  435. package/dist-es/packages/lab/src/contact-details/ContactMetadata.js.map +1 -1
  436. package/dist-es/packages/lab/src/contact-details/ContactPrimaryInfo.js +2 -2
  437. package/dist-es/packages/lab/src/contact-details/ContactPrimaryInfo.js.map +1 -1
  438. package/dist-es/packages/lab/src/contact-details/ContactSecondaryInfo.js +2 -2
  439. package/dist-es/packages/lab/src/contact-details/ContactSecondaryInfo.js.map +1 -1
  440. package/dist-es/packages/lab/src/contact-details/ContactTertiaryInfo.js +2 -2
  441. package/dist-es/packages/lab/src/contact-details/ContactTertiaryInfo.js.map +1 -1
  442. package/dist-es/packages/lab/src/contact-details/MailLinkComponent.js +1 -0
  443. package/dist-es/packages/lab/src/contact-details/MailLinkComponent.js.map +1 -1
  444. package/dist-es/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js +9 -20
  445. package/dist-es/packages/lab/src/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  446. package/dist-es/packages/lab/src/contact-details/internal/StarIconContainer.js +3 -3
  447. package/dist-es/packages/lab/src/contact-details/internal/StarIconContainer.js.map +1 -1
  448. package/dist-es/packages/lab/src/content-status/ContentStatus.js +6 -6
  449. package/dist-es/packages/lab/src/content-status/ContentStatus.js.map +1 -1
  450. package/dist-es/packages/lab/src/content-status/internal/StatusIndicator.js +4 -5
  451. package/dist-es/packages/lab/src/content-status/internal/StatusIndicator.js.map +1 -1
  452. package/dist-es/packages/lab/src/control-label/ControlLabel.js +2 -2
  453. package/dist-es/packages/lab/src/control-label/ControlLabel.js.map +1 -1
  454. package/dist-es/packages/lab/src/deck-item/DeckItem.js +2 -2
  455. package/dist-es/packages/lab/src/deck-item/DeckItem.js.map +1 -1
  456. package/dist-es/packages/lab/src/deck-layout/DeckLayout.js +4 -3
  457. package/dist-es/packages/lab/src/deck-layout/DeckLayout.js.map +1 -1
  458. package/dist-es/packages/lab/src/dialog/Dialog.js +2 -2
  459. package/dist-es/packages/lab/src/dialog/Dialog.js.map +1 -1
  460. package/dist-es/packages/lab/src/dialog/DialogActions.js +2 -2
  461. package/dist-es/packages/lab/src/dialog/DialogActions.js.map +1 -1
  462. package/dist-es/packages/lab/src/dialog/DialogContent.js +2 -2
  463. package/dist-es/packages/lab/src/dialog/DialogContent.js.map +1 -1
  464. package/dist-es/packages/lab/src/dialog/DialogTitle.js +2 -2
  465. package/dist-es/packages/lab/src/dialog/DialogTitle.js.map +1 -1
  466. package/dist-es/packages/lab/src/dropdown/Dropdown.js +1 -0
  467. package/dist-es/packages/lab/src/dropdown/Dropdown.js.map +1 -1
  468. package/dist-es/packages/lab/src/dropdown/DropdownBase.js +7 -7
  469. package/dist-es/packages/lab/src/dropdown/DropdownBase.js.map +1 -1
  470. package/dist-es/packages/lab/src/dropdown/DropdownButton.js +2 -2
  471. package/dist-es/packages/lab/src/dropdown/DropdownButton.js.map +1 -1
  472. package/dist-es/packages/lab/src/dropdown/useDropdown.js +1 -0
  473. package/dist-es/packages/lab/src/dropdown/useDropdown.js.map +1 -1
  474. package/dist-es/packages/lab/src/dropdown/useDropdownBase.js +1 -0
  475. package/dist-es/packages/lab/src/dropdown/useDropdownBase.js.map +1 -1
  476. package/dist-es/packages/lab/src/editable-label/EditableLabel.js +2 -2
  477. package/dist-es/packages/lab/src/editable-label/EditableLabel.js.map +1 -1
  478. package/dist-es/packages/lab/src/file-drop-zone/FileDropZone.js +2 -2
  479. package/dist-es/packages/lab/src/file-drop-zone/FileDropZone.js.map +1 -1
  480. package/dist-es/packages/lab/src/form-field/FormField.js +63 -76
  481. package/dist-es/packages/lab/src/form-field/FormField.js.map +1 -1
  482. package/dist-es/packages/lab/src/form-field/FormLabel.js +2 -2
  483. package/dist-es/packages/lab/src/form-field/FormLabel.js.map +1 -1
  484. package/dist-es/packages/lab/src/form-field/StatusIndicator.js +19 -32
  485. package/dist-es/packages/lab/src/form-field/StatusIndicator.js.map +1 -1
  486. package/dist-es/packages/lab/src/form-group/FormGroup.js +2 -2
  487. package/dist-es/packages/lab/src/form-group/FormGroup.js.map +1 -1
  488. package/dist-es/packages/lab/src/formatted-input/FormattedInput.js +2 -2
  489. package/dist-es/packages/lab/src/formatted-input/FormattedInput.js.map +1 -1
  490. package/dist-es/packages/lab/src/formatted-input/internal/InputWithMask.js +2 -2
  491. package/dist-es/packages/lab/src/formatted-input/internal/InputWithMask.js.map +1 -1
  492. package/dist-es/packages/lab/src/index.js +1 -8
  493. package/dist-es/packages/lab/src/index.js.map +1 -1
  494. package/dist-es/packages/lab/src/input/Input.js +4 -4
  495. package/dist-es/packages/lab/src/input/Input.js.map +1 -1
  496. package/dist-es/packages/lab/src/input/StaticInputAdornment.js +2 -2
  497. package/dist-es/packages/lab/src/input/StaticInputAdornment.js.map +1 -1
  498. package/dist-es/packages/lab/src/layer-layout/LayerLayout.js +6 -5
  499. package/dist-es/packages/lab/src/layer-layout/LayerLayout.js.map +1 -1
  500. package/dist-es/packages/lab/src/list/Highlighter.js +1 -0
  501. package/dist-es/packages/lab/src/list/Highlighter.js.map +1 -1
  502. package/dist-es/packages/lab/src/list/List.js +5 -4
  503. package/dist-es/packages/lab/src/list/List.js.map +1 -1
  504. package/dist-es/packages/lab/src/list/ListItem.js +3 -3
  505. package/dist-es/packages/lab/src/list/ListItem.js.map +1 -1
  506. package/dist-es/packages/lab/src/list/VirtualizedList.js +4 -3
  507. package/dist-es/packages/lab/src/list/VirtualizedList.js.map +1 -1
  508. package/dist-es/packages/lab/src/list/useList.js +2 -1
  509. package/dist-es/packages/lab/src/list/useList.js.map +1 -1
  510. package/dist-es/packages/lab/src/list/useListHeight.js +1 -0
  511. package/dist-es/packages/lab/src/list/useListHeight.js.map +1 -1
  512. package/dist-es/packages/lab/src/list/useVirtualization.js +3 -2
  513. package/dist-es/packages/lab/src/list/useVirtualization.js.map +1 -1
  514. package/dist-es/packages/lab/src/list-deprecated/List.js +5 -26
  515. package/dist-es/packages/lab/src/list-deprecated/List.js.map +1 -1
  516. package/dist-es/packages/lab/src/list-deprecated/ListBase.js +3 -3
  517. package/dist-es/packages/lab/src/list-deprecated/ListBase.js.map +1 -1
  518. package/dist-es/packages/lab/src/list-deprecated/ListItemBase.js +32 -62
  519. package/dist-es/packages/lab/src/list-deprecated/ListItemBase.js.map +1 -1
  520. package/dist-es/packages/lab/src/list-deprecated/internal/Highlighter.js +1 -0
  521. package/dist-es/packages/lab/src/list-deprecated/internal/Highlighter.js.map +1 -1
  522. package/dist-es/packages/lab/src/list-deprecated/useTypeSelect.js +1 -0
  523. package/dist-es/packages/lab/src/list-deprecated/useTypeSelect.js.map +1 -1
  524. package/dist-es/packages/lab/src/logo/Logo.js +5 -5
  525. package/dist-es/packages/lab/src/logo/Logo.js.map +1 -1
  526. package/dist-es/packages/lab/src/menu-button/MenuButtonTrigger.js +2 -2
  527. package/dist-es/packages/lab/src/menu-button/MenuButtonTrigger.js.map +1 -1
  528. package/dist-es/packages/lab/src/metric/Metric.js +2 -2
  529. package/dist-es/packages/lab/src/metric/Metric.js.map +1 -1
  530. package/dist-es/packages/lab/src/metric/MetricContent.js +2 -2
  531. package/dist-es/packages/lab/src/metric/MetricContent.js.map +1 -1
  532. package/dist-es/packages/lab/src/metric/MetricHeader.js +2 -2
  533. package/dist-es/packages/lab/src/metric/MetricHeader.js.map +1 -1
  534. package/dist-es/packages/lab/src/overlay/Overlay.js +4 -4
  535. package/dist-es/packages/lab/src/overlay/Overlay.js.map +1 -1
  536. package/dist-es/packages/lab/src/overlay/useOverlay.js +2 -3
  537. package/dist-es/packages/lab/src/overlay/useOverlay.js.map +1 -1
  538. package/dist-es/packages/lab/src/pagination/ArrowButton.js +2 -2
  539. package/dist-es/packages/lab/src/pagination/ArrowButton.js.map +1 -1
  540. package/dist-es/packages/lab/src/pagination/CompactInput.js +3 -3
  541. package/dist-es/packages/lab/src/pagination/CompactInput.js.map +1 -1
  542. package/dist-es/packages/lab/src/pagination/GoToInput.js +3 -3
  543. package/dist-es/packages/lab/src/pagination/GoToInput.js.map +1 -1
  544. package/dist-es/packages/lab/src/pagination/PageButton.js +2 -2
  545. package/dist-es/packages/lab/src/pagination/PageButton.js.map +1 -1
  546. package/dist-es/packages/lab/src/pagination/Pagination.js +2 -2
  547. package/dist-es/packages/lab/src/pagination/Pagination.js.map +1 -1
  548. package/dist-es/packages/lab/src/pagination/Paginator.js +2 -2
  549. package/dist-es/packages/lab/src/pagination/Paginator.js.map +1 -1
  550. package/dist-es/packages/lab/src/parent-child-item/ParentChildItem.js +2 -2
  551. package/dist-es/packages/lab/src/parent-child-item/ParentChildItem.js.map +1 -1
  552. package/dist-es/packages/lab/src/parent-child-layout/ParentChildLayout.js +3 -2
  553. package/dist-es/packages/lab/src/parent-child-layout/ParentChildLayout.js.map +1 -1
  554. package/dist-es/packages/lab/src/pill/ClosablePill.js +2 -2
  555. package/dist-es/packages/lab/src/pill/ClosablePill.js.map +1 -1
  556. package/dist-es/packages/lab/src/pill/PillBase.js +44 -60
  557. package/dist-es/packages/lab/src/pill/PillBase.js.map +1 -1
  558. package/dist-es/packages/lab/src/pill/SelectablePill.js +2 -2
  559. package/dist-es/packages/lab/src/pill/SelectablePill.js.map +1 -1
  560. package/dist-es/packages/lab/src/pill/internal/DeleteButton.js +2 -2
  561. package/dist-es/packages/lab/src/pill/internal/DeleteButton.js.map +1 -1
  562. package/dist-es/packages/lab/src/pill/internal/DivButton.js +2 -2
  563. package/dist-es/packages/lab/src/pill/internal/DivButton.js.map +1 -1
  564. package/dist-es/packages/lab/src/progress/CircularProgress/CircularProgress.js +4 -4
  565. package/dist-es/packages/lab/src/progress/CircularProgress/CircularProgress.js.map +1 -1
  566. package/dist-es/packages/lab/src/progress/LinearProgress/LinearProgress.js +5 -5
  567. package/dist-es/packages/lab/src/progress/LinearProgress/LinearProgress.js.map +1 -1
  568. package/dist-es/packages/lab/src/query-input/QueryInput.js +2 -2
  569. package/dist-es/packages/lab/src/query-input/QueryInput.js.map +1 -1
  570. package/dist-es/packages/lab/src/query-input/internal/CategoryList.js +1 -0
  571. package/dist-es/packages/lab/src/query-input/internal/CategoryList.js.map +1 -1
  572. package/dist-es/packages/lab/src/query-input/internal/CategoryListItem.js +1 -0
  573. package/dist-es/packages/lab/src/query-input/internal/CategoryListItem.js.map +1 -1
  574. package/dist-es/packages/lab/src/query-input/internal/QueryInputBody.js +1 -0
  575. package/dist-es/packages/lab/src/query-input/internal/QueryInputBody.js.map +1 -1
  576. package/dist-es/packages/lab/src/query-input/internal/SearchList.js +1 -0
  577. package/dist-es/packages/lab/src/query-input/internal/SearchList.js.map +1 -1
  578. package/dist-es/packages/lab/src/query-input/internal/ValueList.js +1 -0
  579. package/dist-es/packages/lab/src/query-input/internal/ValueList.js.map +1 -1
  580. package/dist-es/packages/lab/src/query-input/internal/ValueSelector.js +2 -3
  581. package/dist-es/packages/lab/src/query-input/internal/ValueSelector.js.map +1 -1
  582. package/dist-es/packages/lab/src/query-input/useQueryInput.js +1 -0
  583. package/dist-es/packages/lab/src/query-input/useQueryInput.js.map +1 -1
  584. package/dist-es/packages/lab/src/radio-button/RadioButton.js +3 -3
  585. package/dist-es/packages/lab/src/radio-button/RadioButton.js.map +1 -1
  586. package/dist-es/packages/lab/src/radio-button/RadioButtonBase.js +2 -2
  587. package/dist-es/packages/lab/src/radio-button/RadioButtonBase.js.map +1 -1
  588. package/dist-es/packages/lab/src/radio-button/RadioButtonGroup.js +3 -3
  589. package/dist-es/packages/lab/src/radio-button/RadioButtonGroup.js.map +1 -1
  590. package/dist-es/packages/lab/src/radio-button/RadioButtonIcon.js +2 -2
  591. package/dist-es/packages/lab/src/radio-button/RadioButtonIcon.js.map +1 -1
  592. package/dist-es/packages/lab/src/responsive/useOverflow.js +1 -0
  593. package/dist-es/packages/lab/src/responsive/useOverflow.js.map +1 -1
  594. package/dist-es/packages/lab/src/responsive/useResizeObserver.js +6 -3
  595. package/dist-es/packages/lab/src/responsive/useResizeObserver.js.map +1 -1
  596. package/dist-es/packages/lab/src/scrim/Scrim.js +2 -2
  597. package/dist-es/packages/lab/src/scrim/Scrim.js.map +1 -1
  598. package/dist-es/packages/lab/src/search-input/SearchInput.js +3 -3
  599. package/dist-es/packages/lab/src/search-input/SearchInput.js.map +1 -1
  600. package/dist-es/packages/lab/src/skip-link/SkipLink.js +3 -3
  601. package/dist-es/packages/lab/src/skip-link/SkipLink.js.map +1 -1
  602. package/dist-es/packages/lab/src/skip-link/SkipLinks.js +2 -2
  603. package/dist-es/packages/lab/src/skip-link/SkipLinks.js.map +1 -1
  604. package/dist-es/packages/lab/src/slider/Slider.js +2 -2
  605. package/dist-es/packages/lab/src/slider/Slider.js.map +1 -1
  606. package/dist-es/packages/lab/src/slider/internal/SliderHandle.js +20 -29
  607. package/dist-es/packages/lab/src/slider/internal/SliderHandle.js.map +1 -1
  608. package/dist-es/packages/lab/src/slider/internal/SliderRailMarks.js +2 -2
  609. package/dist-es/packages/lab/src/slider/internal/SliderRailMarks.js.map +1 -1
  610. package/dist-es/packages/lab/src/stepper-input/StepperInput.js +5 -5
  611. package/dist-es/packages/lab/src/stepper-input/StepperInput.js.map +1 -1
  612. package/dist-es/packages/lab/src/switch/Switch.js +4 -4
  613. package/dist-es/packages/lab/src/switch/Switch.js.map +1 -1
  614. package/dist-es/packages/lab/src/tabs/Tab.js +2 -2
  615. package/dist-es/packages/lab/src/tabs/Tab.js.map +1 -1
  616. package/dist-es/packages/lab/src/tabs/TabPanel.js +2 -2
  617. package/dist-es/packages/lab/src/tabs/TabPanel.js.map +1 -1
  618. package/dist-es/packages/lab/src/tabs/Tabs.js +2 -2
  619. package/dist-es/packages/lab/src/tabs/Tabs.js.map +1 -1
  620. package/dist-es/packages/lab/src/tabs/Tabstrip.js +38 -48
  621. package/dist-es/packages/lab/src/tabs/Tabstrip.js.map +1 -1
  622. package/dist-es/packages/lab/src/tabs/drag-drop/Draggable.js +2 -2
  623. package/dist-es/packages/lab/src/tabs/drag-drop/Draggable.js.map +1 -1
  624. package/dist-es/packages/lab/src/tabs/useActivationIndicator.js +1 -0
  625. package/dist-es/packages/lab/src/tabs/useActivationIndicator.js.map +1 -1
  626. package/dist-es/packages/lab/src/tabs/useKeyboardNavigation.js +1 -0
  627. package/dist-es/packages/lab/src/tabs/useKeyboardNavigation.js.map +1 -1
  628. package/dist-es/packages/lab/src/toggle-button/ToggleButton.js +10 -30
  629. package/dist-es/packages/lab/src/toggle-button/ToggleButton.js.map +1 -1
  630. package/dist-es/packages/lab/src/toggle-button/ToggleButtonGroup.js +2 -2
  631. package/dist-es/packages/lab/src/toggle-button/ToggleButtonGroup.js.map +1 -1
  632. package/dist-es/packages/lab/src/tokenized-input/TokenizedInput.js.map +1 -1
  633. package/dist-es/packages/lab/src/tokenized-input/TokenizedInputBase.js +7 -11
  634. package/dist-es/packages/lab/src/tokenized-input/TokenizedInputBase.js.map +1 -1
  635. package/dist-es/packages/lab/src/tokenized-input/internal/InputPill.js +2 -2
  636. package/dist-es/packages/lab/src/tokenized-input/internal/InputPill.js.map +1 -1
  637. package/dist-es/packages/lab/src/tokenized-input/useTokenizedInput.js +1 -0
  638. package/dist-es/packages/lab/src/tokenized-input/useTokenizedInput.js.map +1 -1
  639. package/dist-es/packages/lab/src/toolbar/Toolbar.js +5 -4
  640. package/dist-es/packages/lab/src/toolbar/Toolbar.js.map +1 -1
  641. package/dist-es/packages/lab/src/toolbar/Tooltray.js +4 -4
  642. package/dist-es/packages/lab/src/toolbar/Tooltray.js.map +1 -1
  643. package/dist-es/packages/lab/src/toolbar/internal/renderToolbarItems.js +1 -0
  644. package/dist-es/packages/lab/src/toolbar/internal/renderToolbarItems.js.map +1 -1
  645. package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js +3 -2
  646. package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  647. package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowSeparator.js +2 -2
  648. package/dist-es/packages/lab/src/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
  649. package/dist-es/packages/lab/src/toolbar/toolbar-field/useToolbarField.js +3 -3
  650. package/dist-es/packages/lab/src/toolbar/toolbar-field/useToolbarField.js.map +1 -1
  651. package/dist-es/packages/lab/src/tree/Tree.js +5 -4
  652. package/dist-es/packages/lab/src/tree/Tree.js.map +1 -1
  653. package/dist-es/packages/lab/src/tree/TreeNode.js +2 -2
  654. package/dist-es/packages/lab/src/tree/TreeNode.js.map +1 -1
  655. package/dist-es/packages/lab/src/tree/useTree.js +2 -1
  656. package/dist-es/packages/lab/src/tree/useTree.js.map +1 -1
  657. package/dist-es/packages/lab/src/{popper → utils}/useFloatingUI.js +10 -9
  658. package/dist-es/packages/lab/src/utils/useFloatingUI.js.map +1 -0
  659. package/dist-es/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js +1 -2
  660. package/dist-es/packages/lab/src/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  661. package/dist-types/breadcrumbs/Breadcrumb.d.ts +1 -1
  662. package/dist-types/calendar/internal/CalendarCarousel.d.ts +1 -1
  663. package/dist-types/calendar/internal/CalendarDay.d.ts +2 -2
  664. package/dist-types/calendar/internal/CalendarMonth.d.ts +1 -1
  665. package/dist-types/calendar/internal/CalendarNavigation.d.ts +1 -1
  666. package/dist-types/calendar/internal/CalendarWeekHeader.d.ts +2 -2
  667. package/dist-types/calendar/useCalendar.d.ts +1 -1
  668. package/dist-types/calendar/useCalendarDay.d.ts +1 -1
  669. package/dist-types/cascading-menu/CascadingMenuList.d.ts +1 -1
  670. package/dist-types/cascading-menu/CascadingMenuProps.d.ts +1 -1
  671. package/dist-types/combo-box-deprecated/internal/DefaultComboBox.d.ts +1 -3
  672. package/dist-types/combo-box-deprecated/internal/useComboBox.d.ts +10 -11
  673. package/dist-types/combo-box-deprecated/internal/useMultiSelectComboBox.d.ts +27 -22
  674. package/dist-types/contact-details/ContactAction.d.ts +1 -2
  675. package/dist-types/contact-details/ContactFavoriteToggle.d.ts +1 -1
  676. package/dist-types/contact-details/internal/FavoriteToggleWithTooltip.d.ts +1 -1
  677. package/dist-types/content-status/internal/StatusIndicator.d.ts +1 -2
  678. package/dist-types/form-field/StatusIndicator.d.ts +1 -1
  679. package/dist-types/index.d.ts +0 -6
  680. package/dist-types/layer-layout/LayerLayout.d.ts +1 -1
  681. package/dist-types/list-deprecated/ListProps.d.ts +0 -5
  682. package/dist-types/overlay/Overlay.d.ts +1 -1
  683. package/dist-types/overlay/useOverlay.d.ts +2 -2
  684. package/dist-types/pill/PillBase.d.ts +1 -1
  685. package/dist-types/skip-link/SkipLink.d.ts +1 -1
  686. package/dist-types/stepper-input/useStepperInput.d.ts +13 -10
  687. package/dist-types/tabs/Tab.d.ts +1 -1
  688. package/dist-types/tabs/drag-drop/drag-utils.d.ts +8 -8
  689. package/dist-types/tokenized-input/TokenizedInput.d.ts +1 -1
  690. package/dist-types/toolbar/ToolbarProps.d.ts +1 -1
  691. package/dist-types/utils/index.d.ts +1 -0
  692. package/dist-types/utils/useFloatingUI.d.ts +34 -0
  693. package/dist-types/window/ElectronWindow.d.ts +1 -1
  694. package/dist-types/window/WindowContext.d.ts +3 -3
  695. package/package.json +6 -6
  696. package/dist-cjs/packages/lab/src/card/Card.css.js +0 -9
  697. package/dist-cjs/packages/lab/src/card/Card.css.js.map +0 -1
  698. package/dist-cjs/packages/lab/src/card/Card.js +0 -37
  699. package/dist-cjs/packages/lab/src/card/Card.js.map +0 -1
  700. package/dist-cjs/packages/lab/src/panel/Panel.css.js +0 -9
  701. package/dist-cjs/packages/lab/src/panel/Panel.css.js.map +0 -1
  702. package/dist-cjs/packages/lab/src/panel/Panel.js +0 -28
  703. package/dist-cjs/packages/lab/src/panel/Panel.js.map +0 -1
  704. package/dist-cjs/packages/lab/src/popper/useFloatingUI.js +0 -37
  705. package/dist-cjs/packages/lab/src/popper/useFloatingUI.js.map +0 -1
  706. package/dist-cjs/packages/lab/src/spinner/Spinner.css.js +0 -9
  707. package/dist-cjs/packages/lab/src/spinner/Spinner.css.js.map +0 -1
  708. package/dist-cjs/packages/lab/src/spinner/Spinner.js +0 -80
  709. package/dist-cjs/packages/lab/src/spinner/Spinner.js.map +0 -1
  710. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js +0 -71
  711. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js.map +0 -1
  712. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js +0 -71
  713. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js.map +0 -1
  714. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js +0 -71
  715. package/dist-cjs/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js.map +0 -1
  716. package/dist-cjs/packages/lab/src/spinner/svgSpinners/index.js +0 -21
  717. package/dist-cjs/packages/lab/src/spinner/svgSpinners/index.js.map +0 -1
  718. package/dist-cjs/packages/lab/src/split-layout/SplitLayout.css.js +0 -9
  719. package/dist-cjs/packages/lab/src/split-layout/SplitLayout.css.js.map +0 -1
  720. package/dist-cjs/packages/lab/src/split-layout/SplitLayout.js +0 -40
  721. package/dist-cjs/packages/lab/src/split-layout/SplitLayout.js.map +0 -1
  722. package/dist-cjs/packages/lab/src/tooltip/Tooltip.css.js +0 -9
  723. package/dist-cjs/packages/lab/src/tooltip/Tooltip.css.js.map +0 -1
  724. package/dist-cjs/packages/lab/src/tooltip/Tooltip.js +0 -88
  725. package/dist-cjs/packages/lab/src/tooltip/Tooltip.js.map +0 -1
  726. package/dist-cjs/packages/lab/src/tooltip/TooltipContext.js +0 -26
  727. package/dist-cjs/packages/lab/src/tooltip/TooltipContext.js.map +0 -1
  728. package/dist-cjs/packages/lab/src/tooltip/useAriaAnnounce.js +0 -87
  729. package/dist-cjs/packages/lab/src/tooltip/useAriaAnnounce.js.map +0 -1
  730. package/dist-cjs/packages/lab/src/tooltip/useTooltip.js +0 -137
  731. package/dist-cjs/packages/lab/src/tooltip/useTooltip.js.map +0 -1
  732. package/dist-es/packages/lab/src/card/Card.css.js +0 -7
  733. package/dist-es/packages/lab/src/card/Card.css.js.map +0 -1
  734. package/dist-es/packages/lab/src/card/Card.js +0 -29
  735. package/dist-es/packages/lab/src/card/Card.js.map +0 -1
  736. package/dist-es/packages/lab/src/panel/Panel.css.js +0 -7
  737. package/dist-es/packages/lab/src/panel/Panel.css.js.map +0 -1
  738. package/dist-es/packages/lab/src/panel/Panel.js +0 -20
  739. package/dist-es/packages/lab/src/panel/Panel.js.map +0 -1
  740. package/dist-es/packages/lab/src/popper/useFloatingUI.js.map +0 -1
  741. package/dist-es/packages/lab/src/spinner/Spinner.css.js +0 -7
  742. package/dist-es/packages/lab/src/spinner/Spinner.css.js.map +0 -1
  743. package/dist-es/packages/lab/src/spinner/Spinner.js +0 -71
  744. package/dist-es/packages/lab/src/spinner/Spinner.js.map +0 -1
  745. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js +0 -67
  746. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerLarge.js.map +0 -1
  747. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js +0 -67
  748. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerMedium.js.map +0 -1
  749. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js +0 -67
  750. package/dist-es/packages/lab/src/spinner/svgSpinners/SpinnerSmall.js.map +0 -1
  751. package/dist-es/packages/lab/src/spinner/svgSpinners/index.js +0 -17
  752. package/dist-es/packages/lab/src/spinner/svgSpinners/index.js.map +0 -1
  753. package/dist-es/packages/lab/src/split-layout/SplitLayout.css.js +0 -7
  754. package/dist-es/packages/lab/src/split-layout/SplitLayout.css.js.map +0 -1
  755. package/dist-es/packages/lab/src/split-layout/SplitLayout.js +0 -36
  756. package/dist-es/packages/lab/src/split-layout/SplitLayout.js.map +0 -1
  757. package/dist-es/packages/lab/src/tooltip/Tooltip.css.js +0 -7
  758. package/dist-es/packages/lab/src/tooltip/Tooltip.css.js.map +0 -1
  759. package/dist-es/packages/lab/src/tooltip/Tooltip.js +0 -80
  760. package/dist-es/packages/lab/src/tooltip/Tooltip.js.map +0 -1
  761. package/dist-es/packages/lab/src/tooltip/TooltipContext.js +0 -21
  762. package/dist-es/packages/lab/src/tooltip/TooltipContext.js.map +0 -1
  763. package/dist-es/packages/lab/src/tooltip/useAriaAnnounce.js +0 -83
  764. package/dist-es/packages/lab/src/tooltip/useAriaAnnounce.js.map +0 -1
  765. package/dist-es/packages/lab/src/tooltip/useTooltip.js +0 -133
  766. package/dist-es/packages/lab/src/tooltip/useTooltip.js.map +0 -1
  767. package/dist-types/card/Card.d.ts +0 -18
  768. package/dist-types/card/index.d.ts +0 -1
  769. package/dist-types/panel/Panel.d.ts +0 -20
  770. package/dist-types/panel/index.d.ts +0 -1
  771. package/dist-types/popper/index.d.ts +0 -1
  772. package/dist-types/popper/useFloatingUI.d.ts +0 -5
  773. package/dist-types/spinner/Spinner.d.ts +0 -45
  774. package/dist-types/spinner/index.d.ts +0 -1
  775. package/dist-types/spinner/svgSpinners/SpinnerLarge.d.ts +0 -2
  776. package/dist-types/spinner/svgSpinners/SpinnerMedium.d.ts +0 -2
  777. package/dist-types/spinner/svgSpinners/SpinnerSmall.d.ts +0 -2
  778. package/dist-types/spinner/svgSpinners/index.d.ts +0 -2
  779. package/dist-types/split-layout/SplitLayout.d.ts +0 -32
  780. package/dist-types/split-layout/index.d.ts +0 -1
  781. package/dist-types/tooltip/Tooltip.d.ts +0 -37
  782. package/dist-types/tooltip/TooltipContext.d.ts +0 -22
  783. package/dist-types/tooltip/index.d.ts +0 -3
  784. package/dist-types/tooltip/useAriaAnnounce.d.ts +0 -9
  785. package/dist-types/tooltip/useTooltip.d.ts +0 -31
@@ -1 +1 @@
1
- {"version":3,"file":"StepperInput.js","sources":["../src/stepper-input/StepperInput.tsx"],"sourcesContent":["import classnames from \"classnames\";\nimport React, { forwardRef, ReactNode, useRef } from \"react\";\nimport { makePrefixer, Button, ButtonProps } from \"@salt-ds/core\";\nimport { RefreshIcon, TriangleDownIcon, TriangleUpIcon } from \"@salt-ds/icons\";\nimport { Input, InputProps } from \"../input\";\nimport { useStepperInput } from \"./useStepperInput\";\n\nimport \"./StepperInput.css\";\n\nimport { useActivationIndicatorPosition } from \"./internal/useActivationIndicatorPosition\";\n\nconst withBaseName = makePrefixer(\"saltStepperInput\");\n\nexport interface StepperInputProps {\n ButtonProps?: Partial<ButtonProps>;\n InputProps?: Partial<InputProps>;\n block?: number;\n className?: string;\n decimalPlaces?: number;\n defaultValue?: number;\n liveValue?: number;\n max?: number;\n min?: number;\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;\n onFocus?: (event: React.FocusEvent<HTMLDivElement>) => void;\n onChange?: (changedValue: number | string) => void;\n showRefreshButton?: boolean;\n step?: number;\n textAlign?: \"center\" | \"left\" | \"right\";\n value?: number | string;\n}\n\nexport const StepperInput = forwardRef<HTMLDivElement, StepperInputProps>(\n function StepperInput(props, ref) {\n const {\n ButtonProps: ButtonPropsProp,\n InputProps: InputPropsProp,\n textAlign = \"left\",\n className,\n showRefreshButton = false,\n } = props;\n\n const adornmentRef = useRef<HTMLDivElement | null>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const {\n decrementButtonDown,\n getButtonIcon,\n getButtonProps,\n getInputProps,\n incrementButtonDown,\n isAtMax,\n isAtMin,\n refreshCurrentValue,\n stepperDirection,\n valuesHaveDiverged,\n } = useStepperInput(props, inputRef);\n\n useActivationIndicatorPosition(\n adornmentRef,\n valuesHaveDiverged() || showRefreshButton\n );\n\n const endAdornment: ReactNode = (\n <div className={withBaseName(\"adornmentContainer\")} ref={adornmentRef}>\n <Button\n aria-label=\"Refresh default value\"\n className={classnames(withBaseName(\"secondaryButton\"), {\n // Refresh button is always rendered and has its visibility toggled to\n // avoid component width changing.\n [withBaseName(\"hideSecondaryButton\")]: !(\n showRefreshButton || valuesHaveDiverged()\n ),\n })}\n onClick={refreshCurrentValue}\n variant=\"secondary\"\n >\n <RefreshIcon aria-label=\"refresh\" />\n </Button>\n <div className={withBaseName(\"buttonContainer\")}>\n <Button\n className={classnames(\n withBaseName(\"stepperButton\"),\n withBaseName(\"increment\"),\n {\n active: incrementButtonDown,\n }\n )}\n disabled={isAtMax()}\n {...getButtonProps(stepperDirection.INCREMENT, ButtonPropsProp)}\n >\n <TriangleUpIcon\n className={withBaseName(\"stepperButtonIcon\")}\n aria-label={getButtonIcon(stepperDirection.INCREMENT)}\n />\n </Button>\n <Button\n className={classnames(\n withBaseName(\"stepperButton\"),\n withBaseName(\"decrement\"),\n {\n active: decrementButtonDown,\n }\n )}\n disabled={isAtMin()}\n {...getButtonProps(stepperDirection.DECREMENT, ButtonPropsProp)}\n >\n <TriangleDownIcon\n className={withBaseName(\"stepperButtonIcon\")}\n aria-label={getButtonIcon(stepperDirection.DECREMENT)}\n />\n </Button>\n </div>\n </div>\n );\n\n return (\n <div\n className={classnames(withBaseName(), className)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n ref={ref}\n >\n <Input\n className={withBaseName(\"input\")}\n endAdornment={endAdornment}\n highlightOnFocus\n ref={inputRef}\n textAlign={textAlign}\n {...getInputProps(InputPropsProp)}\n />\n </div>\n );\n }\n);\n"],"names":["StepperInput","classnames"],"mappings":"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"}
1
+ {"version":3,"file":"StepperInput.js","sources":["../src/stepper-input/StepperInput.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport React, { forwardRef, ReactNode, useRef } from \"react\";\nimport { makePrefixer, Button, ButtonProps } from \"@salt-ds/core\";\nimport { RefreshIcon, TriangleDownIcon, TriangleUpIcon } from \"@salt-ds/icons\";\nimport { Input, InputProps } from \"../input\";\nimport { useStepperInput } from \"./useStepperInput\";\n\nimport \"./StepperInput.css\";\n\nimport { useActivationIndicatorPosition } from \"./internal/useActivationIndicatorPosition\";\n\nconst withBaseName = makePrefixer(\"saltStepperInput\");\n\nexport interface StepperInputProps {\n ButtonProps?: Partial<ButtonProps>;\n InputProps?: Partial<InputProps>;\n block?: number;\n className?: string;\n decimalPlaces?: number;\n defaultValue?: number;\n liveValue?: number;\n max?: number;\n min?: number;\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;\n onFocus?: (event: React.FocusEvent<HTMLDivElement>) => void;\n onChange?: (changedValue: number | string) => void;\n showRefreshButton?: boolean;\n step?: number;\n textAlign?: \"center\" | \"left\" | \"right\";\n value?: number | string;\n}\n\nexport const StepperInput = forwardRef<HTMLDivElement, StepperInputProps>(\n function StepperInput(props, ref) {\n const {\n ButtonProps: ButtonPropsProp,\n InputProps: InputPropsProp,\n textAlign = \"left\",\n className,\n showRefreshButton = false,\n } = props;\n\n const adornmentRef = useRef<HTMLDivElement | null>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const {\n decrementButtonDown,\n getButtonIcon,\n getButtonProps,\n getInputProps,\n incrementButtonDown,\n isAtMax,\n isAtMin,\n refreshCurrentValue,\n stepperDirection,\n valuesHaveDiverged,\n } = useStepperInput(props, inputRef);\n\n useActivationIndicatorPosition(\n adornmentRef,\n valuesHaveDiverged() || showRefreshButton\n );\n\n const endAdornment: ReactNode = (\n <div className={withBaseName(\"adornmentContainer\")} ref={adornmentRef}>\n <Button\n aria-label=\"Refresh default value\"\n className={clsx(withBaseName(\"secondaryButton\"), {\n // Refresh button is always rendered and has its visibility toggled to\n // avoid component width changing.\n [withBaseName(\"hideSecondaryButton\")]: !(\n showRefreshButton || valuesHaveDiverged()\n ),\n })}\n onClick={refreshCurrentValue}\n variant=\"secondary\"\n >\n <RefreshIcon aria-label=\"refresh\" />\n </Button>\n <div className={withBaseName(\"buttonContainer\")}>\n <Button\n className={clsx(\n withBaseName(\"stepperButton\"),\n withBaseName(\"increment\"),\n {\n active: incrementButtonDown,\n }\n )}\n disabled={isAtMax()}\n {...getButtonProps(stepperDirection.INCREMENT, ButtonPropsProp)}\n >\n <TriangleUpIcon\n className={withBaseName(\"stepperButtonIcon\")}\n aria-label={getButtonIcon(stepperDirection.INCREMENT)}\n />\n </Button>\n <Button\n className={clsx(\n withBaseName(\"stepperButton\"),\n withBaseName(\"decrement\"),\n {\n active: decrementButtonDown,\n }\n )}\n disabled={isAtMin()}\n {...getButtonProps(stepperDirection.DECREMENT, ButtonPropsProp)}\n >\n <TriangleDownIcon\n className={withBaseName(\"stepperButtonIcon\")}\n aria-label={getButtonIcon(stepperDirection.DECREMENT)}\n />\n </Button>\n </div>\n </div>\n );\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n ref={ref}\n >\n <Input\n className={withBaseName(\"input\")}\n endAdornment={endAdornment}\n highlightOnFocus\n ref={inputRef}\n textAlign={textAlign}\n {...getInputProps(InputPropsProp)}\n />\n </div>\n );\n }\n);\n"],"names":["StepperInput"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import cx from 'classnames';
2
+ import { clsx } from 'clsx';
3
3
  import { forwardRef, useRef, useState, useCallback } from 'react';
4
4
  import { makePrefixer, useControlled } from '@salt-ds/core';
5
5
  import { ControlLabel } from '../control-label/ControlLabel.js';
@@ -59,7 +59,7 @@ const Switch = forwardRef(function Switch2(props, ref) {
59
59
  );
60
60
  return /* @__PURE__ */ jsx(ControlLabel, {
61
61
  ...LabelProps,
62
- className: cx(
62
+ className: clsx(
63
63
  withBaseName("label"),
64
64
  { [withBaseName("disabled")]: disabled },
65
65
  className
@@ -68,10 +68,10 @@ const Switch = forwardRef(function Switch2(props, ref) {
68
68
  label,
69
69
  ref,
70
70
  children: /* @__PURE__ */ jsxs("span", {
71
- className: cx(withBaseName(), className),
71
+ className: clsx(withBaseName(), className),
72
72
  children: [
73
73
  /* @__PURE__ */ jsx("span", {
74
- className: cx(withBaseName("base"), {
74
+ className: clsx(withBaseName("base"), {
75
75
  [withBaseName("checked")]: checked,
76
76
  [withBaseName("focusVisible")]: focusVisible
77
77
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","sources":["../src/switch/Switch.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport {\n ChangeEvent,\n FocusEvent,\n forwardRef,\n InputHTMLAttributes,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport { makePrefixer, useControlled } from \"@salt-ds/core\";\nimport { ControlLabel, ControlLabelProps } from \"../control-label\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { CheckedIcon } from \"./assets/CheckedIcon\";\n\nimport \"./Switch.css\";\n\nexport interface SwitchProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"onChange\"> {\n label?: ControlLabelProps[\"label\"];\n LabelProps?: Partial<ControlLabelProps>;\n onChange?: (event: ChangeEvent<HTMLInputElement>, checked: boolean) => void;\n}\n\nconst withBaseName = makePrefixer(\"saltSwitch\");\n\nexport const Switch = forwardRef<HTMLLabelElement, SwitchProps>(function Switch(\n props,\n ref\n) {\n const { a11yProps } = useFormFieldProps();\n\n const {\n checked: checkedProp,\n className,\n color,\n defaultChecked,\n disabled,\n label,\n LabelProps,\n onBlur,\n onChange,\n onFocus,\n ...rest\n } = props;\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const [checked, setChecked] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: \"Switch\",\n state: \"checked\",\n });\n\n const [focusVisible, setFocusVisible] = useState(false);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.checked;\n setChecked(value);\n onChange?.(event, value);\n };\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!inputRef.current) {\n inputRef.current = event.currentTarget;\n }\n\n // TODO :focus-visible not yet supported on Safari, so we'll need to use the\n // useIsFocusVisible polyfill\n if (inputRef.current?.matches(\":focus-visible\")) {\n setFocusVisible(true);\n }\n\n onFocus?.(event);\n },\n [onFocus]\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setFocusVisible(false);\n onBlur?.(event);\n },\n [onBlur]\n );\n\n return (\n <ControlLabel\n {...LabelProps}\n className={cx(\n withBaseName(\"label\"),\n { [withBaseName(\"disabled\")]: disabled },\n className\n )}\n disabled={disabled}\n label={label}\n ref={ref}\n >\n <span className={cx(withBaseName(), className)}>\n <span\n className={cx(withBaseName(\"base\"), {\n [withBaseName(\"checked\")]: checked,\n [withBaseName(\"focusVisible\")]: focusVisible,\n })}\n >\n <span className={withBaseName(\"inputContainer\")}>\n <input\n className={withBaseName(\"input\")}\n checked={checked}\n disabled={disabled}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={handleFocus}\n ref={inputRef}\n type=\"checkbox\"\n {...a11yProps}\n {...rest}\n />\n {checked ? (\n <CheckedIcon className={withBaseName(\"icon\")} />\n ) : (\n <span className={withBaseName(\"thumb\")} />\n )}\n </span>\n </span>\n <span className={withBaseName(\"track\")} />\n </span>\n </ControlLabel>\n );\n});\n"],"names":["Switch"],"mappings":"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"}
1
+ {"version":3,"file":"Switch.js","sources":["../src/switch/Switch.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEvent,\n FocusEvent,\n forwardRef,\n InputHTMLAttributes,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport { makePrefixer, useControlled } from \"@salt-ds/core\";\nimport { ControlLabel, ControlLabelProps } from \"../control-label\";\nimport { useFormFieldProps } from \"../form-field-context\";\nimport { CheckedIcon } from \"./assets/CheckedIcon\";\n\nimport \"./Switch.css\";\n\nexport interface SwitchProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"onChange\"> {\n label?: ControlLabelProps[\"label\"];\n LabelProps?: Partial<ControlLabelProps>;\n onChange?: (event: ChangeEvent<HTMLInputElement>, checked: boolean) => void;\n}\n\nconst withBaseName = makePrefixer(\"saltSwitch\");\n\nexport const Switch = forwardRef<HTMLLabelElement, SwitchProps>(function Switch(\n props,\n ref\n) {\n const { a11yProps } = useFormFieldProps();\n\n const {\n checked: checkedProp,\n className,\n color,\n defaultChecked,\n disabled,\n label,\n LabelProps,\n onBlur,\n onChange,\n onFocus,\n ...rest\n } = props;\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const [checked, setChecked] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: \"Switch\",\n state: \"checked\",\n });\n\n const [focusVisible, setFocusVisible] = useState(false);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.checked;\n setChecked(value);\n onChange?.(event, value);\n };\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!inputRef.current) {\n inputRef.current = event.currentTarget;\n }\n\n // TODO :focus-visible not yet supported on Safari, so we'll need to use the\n // useIsFocusVisible polyfill\n if (inputRef.current?.matches(\":focus-visible\")) {\n setFocusVisible(true);\n }\n\n onFocus?.(event);\n },\n [onFocus]\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setFocusVisible(false);\n onBlur?.(event);\n },\n [onBlur]\n );\n\n return (\n <ControlLabel\n {...LabelProps}\n className={clsx(\n withBaseName(\"label\"),\n { [withBaseName(\"disabled\")]: disabled },\n className\n )}\n disabled={disabled}\n label={label}\n ref={ref}\n >\n <span className={clsx(withBaseName(), className)}>\n <span\n className={clsx(withBaseName(\"base\"), {\n [withBaseName(\"checked\")]: checked,\n [withBaseName(\"focusVisible\")]: focusVisible,\n })}\n >\n <span className={withBaseName(\"inputContainer\")}>\n <input\n className={withBaseName(\"input\")}\n checked={checked}\n disabled={disabled}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={handleFocus}\n ref={inputRef}\n type=\"checkbox\"\n {...a11yProps}\n {...rest}\n />\n {checked ? (\n <CheckedIcon className={withBaseName(\"icon\")} />\n ) : (\n <span className={withBaseName(\"thumb\")} />\n )}\n </span>\n </span>\n <span className={withBaseName(\"track\")} />\n </span>\n </ControlLabel>\n );\n});\n"],"names":["Switch"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { makePrefixer, useForkRef, Button } from '@salt-ds/core';
3
3
  import { CloseIcon, CloseSmallIcon } from '@salt-ds/icons';
4
- import cx from 'classnames';
4
+ import { clsx } from 'clsx';
5
5
  import { forwardRef, useRef, useState, useCallback } from 'react';
6
6
  import { EditableLabel } from '../editable-label/EditableLabel.js';
7
7
  import './Tab.css.js';
@@ -126,7 +126,7 @@ const Tab = forwardRef(function Tab2({
126
126
  ...props,
127
127
  "aria-controls": ariaControls,
128
128
  "aria-selected": selected,
129
- className: cx(withBaseName(), {
129
+ className: clsx(withBaseName(), {
130
130
  [withBaseName("closeable")]: closeable,
131
131
  [withBaseName("closeHover")]: closeHover,
132
132
  [withBaseName("dragAway")]: dragging,
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sources":["../src/tabs/Tab.tsx"],"sourcesContent":["// TODO close button needs to be a button. Hence tab needs to include 2 buttons\nimport { Button, ButtonProps, makePrefixer, useForkRef } from \"@salt-ds/core\";\nimport { CloseIcon, CloseSmallIcon } from \"@salt-ds/icons\";\nimport cx from \"classnames\";\nimport {\n forwardRef,\n FocusEvent,\n ForwardedRef,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport { TabProps } from \"./TabsTypes\";\nimport { EditableLabel, EditableLabelProps } from \"../editable-label\";\n\nimport \"./Tab.css\";\n\nconst noop = () => undefined;\n\nconst withBaseName = makePrefixer(\"saltTab\");\n\n//TODO not ideal - duplicating the Icon then hiding one in css based on density - is there a nicer way ?\nconst CloseTabButton = (props: ButtonProps) => (\n // FIXME: use polymorphic button\n <Button\n {...props}\n aria-label=\"Close Tab (Delete or Backspace)\"\n className={withBaseName(\"closeButton\")}\n tabIndex={undefined}\n title=\"Close Tab (Delete or Backspace)\"\n variant=\"secondary\"\n >\n <CloseIcon\n aria-label=\"Close Tab (Delete or Backspace)\"\n className={withBaseName(\"close-icon\")}\n />\n <CloseSmallIcon\n aria-label=\"Close Tab (Delete or Backspace)\"\n className={withBaseName(\"close-icon-small\")}\n />\n </Button>\n);\n\nexport const Tab = forwardRef(function Tab(\n {\n ariaControls,\n children,\n className,\n closeable,\n dragging,\n editable,\n editing,\n focusVisible,\n index,\n label,\n onClick,\n onClose,\n onEnterEditMode = noop,\n onExitEditMode = noop,\n onFocus: onFocusProp,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n orientation,\n selected,\n tabChildIndex = 0,\n tabIndex,\n ...props\n }: TabProps,\n ref: ForwardedRef<HTMLDivElement>\n): ReactElement<TabProps> {\n if (index === undefined || onClick === undefined || onKeyDown === undefined) {\n throw Error(\n \"index, onClick, onKeyUp, onKeyDown are required props, they would nornally be injected by Tabstrip, are you creating a Tab outside of a Tabstrip\"\n );\n }\n const root = useRef<HTMLDivElement>(null);\n const editableRef = useRef<HTMLDivElement>(null);\n const setForkRef = useForkRef(ref, root);\n const [closeHover, setCloseHover] = useState(false);\n const handleClick = useCallback(\n (e: MouseEvent) => {\n if (!editing) {\n e.preventDefault();\n onClick(e, index);\n }\n },\n [editing, index, onClick]\n );\n const handleKeyDownMain = (e: KeyboardEvent<HTMLElement>) => {\n onKeyDown(e);\n };\n\n const handleOnExitEditMode: EditableLabelProps[\"onExitEditMode\"] = (\n originalValue = \"\",\n editedValue = \"\",\n allowDeactivation = true\n ) => onExitEditMode(originalValue, editedValue, allowDeactivation, index);\n\n const handleKeyUp = (e: KeyboardEvent) => {\n switch (e.key) {\n case \"Backspace\":\n case \"Delete\":\n if (closeable) {\n e.stopPropagation();\n onClose && onClose(index);\n }\n break;\n default:\n onKeyUp && onKeyUp(e, index);\n }\n };\n\n const handleCloseButtonClick = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onClose && onClose(index);\n };\n\n const handleCloseButtonEnter = () => {\n setCloseHover(true);\n };\n\n const handleCloseButtonLeave = () => {\n setCloseHover(false);\n };\n\n const handleMouseDown = (e: MouseEvent<HTMLElement>): void => {\n onMouseDown?.(e);\n };\n\n const getLabel = () => {\n if (editable) {\n return (\n <EditableLabel\n editing={editing}\n defaultValue={label}\n // Create a fresh instance after each edit, so it can be uncontrolled ...\n key={label}\n onEnterEditMode={onEnterEditMode}\n onExitEditMode={handleOnExitEditMode}\n ref={editableRef}\n />\n );\n } else {\n return label;\n }\n };\n\n const handleFocus = (evt: FocusEvent<HTMLElement>) => {\n if (editableRef.current) {\n const editable = editableRef.current as HTMLElement;\n const input = editable.querySelector(\n \".saltEditableLabel-input\"\n ) as HTMLInputElement;\n input?.focus();\n }\n onFocusProp?.(evt);\n };\n\n return (\n <div\n {...props}\n aria-controls={ariaControls}\n aria-selected={selected}\n className={cx(withBaseName(), {\n [withBaseName(\"closeable\")]: closeable,\n [withBaseName(\"closeHover\")]: closeHover,\n [withBaseName(\"dragAway\")]: dragging,\n [withBaseName(\"editing\")]: editing,\n [withBaseName(\"vertical\")]: orientation === \"vertical\",\n [`saltFocusVisible`]: focusVisible,\n })}\n data-editable={editable || undefined}\n onClick={handleClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDownMain}\n onKeyUp={handleKeyUp}\n onMouseDown={handleMouseDown}\n ref={setForkRef}\n role=\"tab\"\n tabIndex={tabIndex}\n >\n <div className={withBaseName(\"main\")}>\n <span\n className={withBaseName(\"text\")}\n // data-text is important, it determines the width of the tab. A pseudo\n // element assigns data-text as content. This is styled as selected tab\n // text. That means width of tab always corresponds to its selected state,\n // so tabs do not change size when selected (ie when the text is bolded).\n // Do not include if we have editable content, EditableLabel will determine\n // the width\n data-text={editable ? undefined : label}\n >\n {children ?? getLabel()}\n </span>\n </div>\n {closeable ? (\n <CloseTabButton\n onClick={handleCloseButtonClick}\n onMouseEnter={handleCloseButtonEnter}\n onMouseLeave={handleCloseButtonLeave}\n />\n ) : null}\n </div>\n );\n});\n"],"names":["Tab","editable"],"mappings":";;;;;;;;AAoBA,MAAM,OAAO,MAAM,KAAA,CAAA,CAAA;AAEnB,MAAM,YAAA,GAAe,aAAa,SAAS,CAAA,CAAA;AAG3C,MAAM,cAAA,GAAiB,CAAC,KAAA,qBAErB,IAAA,CAAA,MAAA,EAAA;AAAA,EACE,GAAG,KAAA;AAAA,EACJ,YAAW,EAAA,iCAAA;AAAA,EACX,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,EACrC,QAAU,EAAA,KAAA,CAAA;AAAA,EACV,KAAM,EAAA,iCAAA;AAAA,EACN,OAAQ,EAAA,WAAA;AAAA,EAER,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,SAAA,EAAA;AAAA,MACC,YAAW,EAAA,iCAAA;AAAA,MACX,SAAA,EAAW,aAAa,YAAY,CAAA;AAAA,KACtC,CAAA;AAAA,oBACC,GAAA,CAAA,cAAA,EAAA;AAAA,MACC,YAAW,EAAA,iCAAA;AAAA,MACX,SAAA,EAAW,aAAa,kBAAkB,CAAA;AAAA,KAC5C,CAAA;AAAA,GAAA;AAAA,CACF,CAAA,CAAA;AAGW,MAAA,GAAA,GAAM,UAAW,CAAA,SAASA,IACrC,CAAA;AAAA,EACE,YAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,eAAkB,GAAA,IAAA;AAAA,EAClB,cAAiB,GAAA,IAAA;AAAA,EACjB,OAAS,EAAA,WAAA;AAAA,EACT,SAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAgB,GAAA,CAAA;AAAA,EAChB,QAAA;AAAA,EACG,GAAA,KAAA;AACL,CAAA,EACA,GACwB,EAAA;AACxB,EAAA,IAAI,KAAU,KAAA,KAAA,CAAA,IAAa,OAAY,KAAA,KAAA,CAAA,IAAa,cAAc,KAAW,CAAA,EAAA;AAC3E,IAAM,MAAA,KAAA;AAAA,MACJ,kJAAA;AAAA,KACF,CAAA;AAAA,GACF;AACA,EAAM,MAAA,IAAA,GAAO,OAAuB,IAAI,CAAA,CAAA;AACxC,EAAM,MAAA,WAAA,GAAc,OAAuB,IAAI,CAAA,CAAA;AAC/C,EAAM,MAAA,UAAA,GAAa,UAAW,CAAA,GAAA,EAAK,IAAI,CAAA,CAAA;AACvC,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAClD,EAAA,MAAM,WAAc,GAAA,WAAA;AAAA,IAClB,CAAC,CAAkB,KAAA;AACjB,MAAA,IAAI,CAAC,OAAS,EAAA;AACZ,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,QAAA,OAAA,CAAQ,GAAG,KAAK,CAAA,CAAA;AAAA,OAClB;AAAA,KACF;AAAA,IACA,CAAC,OAAS,EAAA,KAAA,EAAO,OAAO,CAAA;AAAA,GAC1B,CAAA;AACA,EAAM,MAAA,iBAAA,GAAoB,CAAC,CAAkC,KAAA;AAC3D,IAAA,SAAA,CAAU,CAAC,CAAA,CAAA;AAAA,GACb,CAAA;AAEA,EAAA,MAAM,oBAA6D,GAAA,CACjE,aAAgB,GAAA,EAAA,EAChB,WAAc,GAAA,EAAA,EACd,iBAAoB,GAAA,IAAA,KACjB,cAAe,CAAA,aAAA,EAAe,WAAa,EAAA,iBAAA,EAAmB,KAAK,CAAA,CAAA;AAExE,EAAM,MAAA,WAAA,GAAc,CAAC,CAAqB,KAAA;AACxC,IAAA,QAAQ,CAAE,CAAA,GAAA;AAAA,MACH,KAAA,WAAA,CAAA;AAAA,MACA,KAAA,QAAA;AACH,QAAA,IAAI,SAAW,EAAA;AACb,UAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAClB,UAAA,OAAA,IAAW,QAAQ,KAAK,CAAA,CAAA;AAAA,SAC1B;AACA,QAAA,MAAA;AAAA,MAAA;AAEA,QAAW,OAAA,IAAA,OAAA,CAAQ,GAAG,KAAK,CAAA,CAAA;AAAA,KAAA;AAAA,GAEjC,CAAA;AAEA,EAAM,MAAA,sBAAA,GAAyB,CAAC,CAAqC,KAAA;AACnE,IAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAClB,IAAA,OAAA,IAAW,QAAQ,KAAK,CAAA,CAAA;AAAA,GAC1B,CAAA;AAEA,EAAA,MAAM,yBAAyB,MAAM;AACnC,IAAA,aAAA,CAAc,IAAI,CAAA,CAAA;AAAA,GACpB,CAAA;AAEA,EAAA,MAAM,yBAAyB,MAAM;AACnC,IAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAAA,GACrB,CAAA;AAEA,EAAM,MAAA,eAAA,GAAkB,CAAC,CAAqC,KAAA;AAC5D,IAAc,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAChB,CAAA;AAEA,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,uBACG,GAAA,CAAA,aAAA,EAAA;AAAA,QACC,OAAA;AAAA,QACA,YAAc,EAAA,KAAA;AAAA,QAGd,eAAA;AAAA,QACA,cAAgB,EAAA,oBAAA;AAAA,QAChB,GAAK,EAAA,WAAA;AAAA,OAAA,EAHA,KAIP,CAAA,CAAA;AAAA,KAEG,MAAA;AACL,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,WAAA,GAAc,CAAC,GAAiC,KAAA;AACpD,IAAA,IAAI,YAAY,OAAS,EAAA;AACvB,MAAA,MAAMC,YAAW,WAAY,CAAA,OAAA,CAAA;AAC7B,MAAA,MAAM,QAAQA,SAAS,CAAA,aAAA;AAAA,QACrB,0BAAA;AAAA,OACF,CAAA;AACA,MAAO,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,KAAA,EAAA,CAAA;AAAA,KACT;AACA,IAAc,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,GAAA,CAAA,CAAA;AAAA,GAChB,CAAA;AAEA,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACE,GAAG,KAAA;AAAA,IACJ,eAAe,EAAA,YAAA;AAAA,IACf,eAAe,EAAA,QAAA;AAAA,IACf,SAAA,EAAW,EAAG,CAAA,YAAA,EAAgB,EAAA;AAAA,MAC5B,CAAC,YAAa,CAAA,WAAW,CAAI,GAAA,SAAA;AAAA,MAC7B,CAAC,YAAa,CAAA,YAAY,CAAI,GAAA,UAAA;AAAA,MAC9B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,MAC5B,CAAC,YAAa,CAAA,SAAS,CAAI,GAAA,OAAA;AAAA,MAC3B,CAAC,YAAA,CAAa,UAAU,CAAA,GAAI,WAAgB,KAAA,UAAA;AAAA,MAC5C,CAAC,CAAqB,gBAAA,CAAA,GAAA,YAAA;AAAA,KACvB,CAAA;AAAA,IACD,iBAAe,QAAY,IAAA,KAAA,CAAA;AAAA,IAC3B,OAAS,EAAA,WAAA;AAAA,IACT,OAAS,EAAA,WAAA;AAAA,IACT,SAAW,EAAA,iBAAA;AAAA,IACX,OAAS,EAAA,WAAA;AAAA,IACT,WAAa,EAAA,eAAA;AAAA,IACb,GAAK,EAAA,UAAA;AAAA,IACL,IAAK,EAAA,KAAA;AAAA,IACL,QAAA;AAAA,IAEA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,QACjC,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA;AAAA,UACC,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,UAO9B,WAAA,EAAW,WAAW,KAAY,CAAA,GAAA,KAAA;AAAA,UAEjC,wCAAY,QAAS,EAAA;AAAA,SACxB,CAAA;AAAA,OACF,CAAA;AAAA,MACC,4BACE,GAAA,CAAA,cAAA,EAAA;AAAA,QACC,OAAS,EAAA,sBAAA;AAAA,QACT,YAAc,EAAA,sBAAA;AAAA,QACd,YAAc,EAAA,sBAAA;AAAA,OAChB,CACE,GAAA,IAAA;AAAA,KAAA;AAAA,GACN,CAAA,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"Tab.js","sources":["../src/tabs/Tab.tsx"],"sourcesContent":["// TODO close button needs to be a button. Hence tab needs to include 2 buttons\nimport { Button, ButtonProps, makePrefixer, useForkRef } from \"@salt-ds/core\";\nimport { CloseIcon, CloseSmallIcon } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport {\n forwardRef,\n FocusEvent,\n ForwardedRef,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n useCallback,\n useRef,\n useState,\n} from \"react\";\nimport { TabProps } from \"./TabsTypes\";\nimport { EditableLabel, EditableLabelProps } from \"../editable-label\";\n\nimport \"./Tab.css\";\n\nconst noop = () => undefined;\n\nconst withBaseName = makePrefixer(\"saltTab\");\n\n//TODO not ideal - duplicating the Icon then hiding one in css based on density - is there a nicer way ?\nconst CloseTabButton = (props: ButtonProps) => (\n // FIXME: use polymorphic button\n <Button\n {...props}\n aria-label=\"Close Tab (Delete or Backspace)\"\n className={withBaseName(\"closeButton\")}\n tabIndex={undefined}\n title=\"Close Tab (Delete or Backspace)\"\n variant=\"secondary\"\n >\n <CloseIcon\n aria-label=\"Close Tab (Delete or Backspace)\"\n className={withBaseName(\"close-icon\")}\n />\n <CloseSmallIcon\n aria-label=\"Close Tab (Delete or Backspace)\"\n className={withBaseName(\"close-icon-small\")}\n />\n </Button>\n);\n\nexport const Tab = forwardRef(function Tab(\n {\n ariaControls,\n children,\n className,\n closeable,\n dragging,\n editable,\n editing,\n focusVisible,\n index,\n label,\n onClick,\n onClose,\n onEnterEditMode = noop,\n onExitEditMode = noop,\n onFocus: onFocusProp,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n orientation,\n selected,\n tabChildIndex = 0,\n tabIndex,\n ...props\n }: TabProps,\n ref: ForwardedRef<HTMLDivElement>\n): ReactElement<TabProps> {\n if (index === undefined || onClick === undefined || onKeyDown === undefined) {\n throw Error(\n \"index, onClick, onKeyUp, onKeyDown are required props, they would nornally be injected by Tabstrip, are you creating a Tab outside of a Tabstrip\"\n );\n }\n const root = useRef<HTMLDivElement>(null);\n const editableRef = useRef<HTMLDivElement>(null);\n const setForkRef = useForkRef(ref, root);\n const [closeHover, setCloseHover] = useState(false);\n const handleClick = useCallback(\n (e: MouseEvent) => {\n if (!editing) {\n e.preventDefault();\n onClick(e, index);\n }\n },\n [editing, index, onClick]\n );\n const handleKeyDownMain = (e: KeyboardEvent<HTMLElement>) => {\n onKeyDown(e);\n };\n\n const handleOnExitEditMode: EditableLabelProps[\"onExitEditMode\"] = (\n originalValue = \"\",\n editedValue = \"\",\n allowDeactivation = true\n ) => onExitEditMode(originalValue, editedValue, allowDeactivation, index);\n\n const handleKeyUp = (e: KeyboardEvent) => {\n switch (e.key) {\n case \"Backspace\":\n case \"Delete\":\n if (closeable) {\n e.stopPropagation();\n onClose && onClose(index);\n }\n break;\n default:\n onKeyUp && onKeyUp(e, index);\n }\n };\n\n const handleCloseButtonClick = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onClose && onClose(index);\n };\n\n const handleCloseButtonEnter = () => {\n setCloseHover(true);\n };\n\n const handleCloseButtonLeave = () => {\n setCloseHover(false);\n };\n\n const handleMouseDown = (e: MouseEvent<HTMLElement>): void => {\n onMouseDown?.(e);\n };\n\n const getLabel = () => {\n if (editable) {\n return (\n <EditableLabel\n editing={editing}\n defaultValue={label}\n // Create a fresh instance after each edit, so it can be uncontrolled ...\n key={label}\n onEnterEditMode={onEnterEditMode}\n onExitEditMode={handleOnExitEditMode}\n ref={editableRef}\n />\n );\n } else {\n return label;\n }\n };\n\n const handleFocus = (evt: FocusEvent<HTMLElement>) => {\n if (editableRef.current) {\n const editable = editableRef.current as HTMLElement;\n const input = editable.querySelector(\n \".saltEditableLabel-input\"\n ) as HTMLInputElement;\n input?.focus();\n }\n onFocusProp?.(evt);\n };\n\n return (\n <div\n {...props}\n aria-controls={ariaControls}\n aria-selected={selected}\n className={clsx(withBaseName(), {\n [withBaseName(\"closeable\")]: closeable,\n [withBaseName(\"closeHover\")]: closeHover,\n [withBaseName(\"dragAway\")]: dragging,\n [withBaseName(\"editing\")]: editing,\n [withBaseName(\"vertical\")]: orientation === \"vertical\",\n [`saltFocusVisible`]: focusVisible,\n })}\n data-editable={editable || undefined}\n onClick={handleClick}\n onFocus={handleFocus}\n onKeyDown={handleKeyDownMain}\n onKeyUp={handleKeyUp}\n onMouseDown={handleMouseDown}\n ref={setForkRef}\n role=\"tab\"\n tabIndex={tabIndex}\n >\n <div className={withBaseName(\"main\")}>\n <span\n className={withBaseName(\"text\")}\n // data-text is important, it determines the width of the tab. A pseudo\n // element assigns data-text as content. This is styled as selected tab\n // text. That means width of tab always corresponds to its selected state,\n // so tabs do not change size when selected (ie when the text is bolded).\n // Do not include if we have editable content, EditableLabel will determine\n // the width\n data-text={editable ? undefined : label}\n >\n {children ?? getLabel()}\n </span>\n </div>\n {closeable ? (\n <CloseTabButton\n onClick={handleCloseButtonClick}\n onMouseEnter={handleCloseButtonEnter}\n onMouseLeave={handleCloseButtonLeave}\n />\n ) : null}\n </div>\n );\n});\n"],"names":["Tab","editable"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
- import cx from 'classnames';
3
+ import { clsx } from 'clsx';
4
4
  import { makePrefixer } from '@salt-ds/core';
5
5
  import './TabPanel.css.js';
6
6
 
@@ -8,7 +8,7 @@ const withBaseName = makePrefixer("saltTabPanel");
8
8
  const TabPanel = forwardRef(function TabPanel2({ children, className, enableClose, ...htmlAttributes }, forwardedRef) {
9
9
  return /* @__PURE__ */ jsx("div", {
10
10
  ...htmlAttributes,
11
- className: cx(withBaseName(), className),
11
+ className: clsx(withBaseName(), className),
12
12
  ref: forwardedRef,
13
13
  role: "tabpanel",
14
14
  tabIndex: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"TabPanel.js","sources":["../src/tabs/TabPanel.tsx"],"sourcesContent":["import { forwardRef, ForwardedRef, HTMLAttributes } from \"react\";\nimport cx from \"classnames\";\nimport { makePrefixer } from \"@salt-ds/core\";\n\nimport \"./TabPanel.css\";\n\nconst withBaseName = makePrefixer(\"saltTabPanel\");\n\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n enableClose?: boolean;\n label: string;\n}\n\nexport const TabPanel = forwardRef(function TabPanel(\n { children, className, enableClose, ...htmlAttributes }: TabPanelProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n return (\n <div\n {...htmlAttributes}\n className={cx(withBaseName(), className)}\n ref={forwardedRef}\n role=\"tabpanel\"\n tabIndex={0}\n >\n {children}\n </div>\n );\n});\n"],"names":["TabPanel"],"mappings":";;;;;;AAMA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AAOnC,MAAA,QAAA,GAAW,UAAW,CAAA,SAASA,SAC1C,CAAA,EAAE,UAAU,SAAW,EAAA,WAAA,EAAA,GAAgB,cAAe,EAAA,EACtD,YACA,EAAA;AACA,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACE,GAAG,cAAA;AAAA,IACJ,SAAW,EAAA,EAAA,CAAG,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACvC,GAAK,EAAA,YAAA;AAAA,IACL,IAAK,EAAA,UAAA;AAAA,IACL,QAAU,EAAA,CAAA;AAAA,IAET,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"TabPanel.js","sources":["../src/tabs/TabPanel.tsx"],"sourcesContent":["import { forwardRef, ForwardedRef, HTMLAttributes } from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"@salt-ds/core\";\n\nimport \"./TabPanel.css\";\n\nconst withBaseName = makePrefixer(\"saltTabPanel\");\n\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n enableClose?: boolean;\n label: string;\n}\n\nexport const TabPanel = forwardRef(function TabPanel(\n { children, className, enableClose, ...htmlAttributes }: TabPanelProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n return (\n <div\n {...htmlAttributes}\n className={clsx(withBaseName(), className)}\n ref={forwardedRef}\n role=\"tabpanel\"\n tabIndex={0}\n >\n {children}\n </div>\n );\n});\n"],"names":["TabPanel"],"mappings":";;;;;;AAMA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AAOnC,MAAA,QAAA,GAAW,UAAW,CAAA,SAASA,SAC1C,CAAA,EAAE,UAAU,SAAW,EAAA,WAAA,EAAA,GAAgB,cAAe,EAAA,EACtD,YACA,EAAA;AACA,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACE,GAAG,cAAA;AAAA,IACJ,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACzC,GAAK,EAAA,YAAA;AAAA,IACL,IAAK,EAAA,UAAA;AAAA,IACL,QAAU,EAAA,CAAA;AAAA,IAET,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, useRef, useImperativeHandle, useCallback } from 'react';
3
- import cx from 'classnames';
3
+ import { clsx } from 'clsx';
4
4
  import { makePrefixer } from '@salt-ds/core';
5
5
  import { useTabs } from './useTabs.js';
6
6
  import { Tabstrip } from './Tabstrip.js';
@@ -71,7 +71,7 @@ const Tabs = forwardRef(function Tabs2({
71
71
  );
72
72
  return /* @__PURE__ */ jsxs("div", {
73
73
  ...htmlAttributes,
74
- className: cx(withBaseName(), className),
74
+ className: clsx(withBaseName(), className),
75
75
  id: `${id}-tabs`,
76
76
  children: [
77
77
  /* @__PURE__ */ jsx(Tabstrip, {
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../src/tabs/Tabs.tsx"],"sourcesContent":["import {\n forwardRef,\n ForwardedRef,\n useCallback,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { useTabs } from \"./useTabs\";\nimport { Tabstrip } from \"./Tabstrip\";\nimport { FocusAPI, TabstripProps } from \"./TabsTypes\";\n\nimport \"./Tabs.css\";\n\nconst withBaseName = makePrefixer(\"saltTabs\");\n\nexport type TabsProps = Omit<TabstripProps, \"defaultSource\">;\n\nexport const Tabs = forwardRef(function Tabs(\n {\n activeTabIndex: activeTabIndexProp,\n allowDragDrop,\n centered,\n children,\n className,\n defaultActiveTabIndex,\n editing,\n enableAddTab,\n enableCloseTab,\n enableRenameTab,\n onActiveChange: onActiveChangeProp,\n onAddTab,\n onCloseTab,\n onEnterEditMode,\n onExitEditMode,\n onMoveTab,\n overflowMenu,\n variant,\n ...htmlAttributes\n }: TabsProps,\n forwardedRef: ForwardedRef<FocusAPI>\n) {\n const tabstripRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(\n forwardedRef,\n () =>\n ({\n focus: () => tabstripRef.current?.focus(),\n } as FocusAPI),\n []\n );\n\n const { id, onActiveChange, activeTabIndex, tabPanel, tabs } = useTabs({\n activeTabIndex: activeTabIndexProp,\n children,\n defaultActiveTabIndex,\n onActiveChange: onActiveChangeProp,\n });\n\n const tabstripProps = {\n activeTabIndex,\n allowDragDrop,\n centered,\n editing,\n variant,\n enableAddTab,\n enableCloseTab,\n enableRenameTab,\n onAddTab,\n onCloseTab,\n onEnterEditMode,\n onExitEditMode,\n onMoveTab,\n overflowMenu,\n };\n const getTabPanelId = useCallback(\n (tabIndex: number) => {\n if (tabIndex === activeTabIndex) {\n return `${id}-${tabIndex}-panel`;\n }\n },\n [id, activeTabIndex]\n );\n\n // TODO need to inject aria-controls\n return (\n <div\n {...htmlAttributes}\n className={cx(withBaseName(), className)}\n id={`${id}-tabs`}\n >\n <Tabstrip\n {...tabstripProps}\n id={id}\n onActiveChange={onActiveChange}\n ref={tabstripRef}\n source={tabs}\n />\n {tabPanel}\n </div>\n );\n});\n"],"names":["Tabs"],"mappings":";;;;;;;;AAeA,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA,CAAA;AAI/B,MAAA,IAAA,GAAO,UAAW,CAAA,SAASA,KACtC,CAAA;AAAA,EACE,cAAgB,EAAA,kBAAA;AAAA,EAChB,aAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,qBAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAgB,EAAA,kBAAA;AAAA,EAChB,QAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACG,GAAA,cAAA;AACL,CAAA,EACA,YACA,EAAA;AACA,EAAM,MAAA,WAAA,GAAc,OAAuB,IAAI,CAAA,CAAA;AAC/C,EAAA,mBAAA;AAAA,IACE,YAAA;AAAA,IACA,OACG;AAAA,MACC,OAAO,MAAG;AAhDlB,QAAA,IAAA,EAAA,CAAA;AAgDqB,QAAA,OAAA,CAAA,EAAA,GAAA,WAAA,CAAY,YAAZ,IAAqB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KACpC,CAAA;AAAA,IACF,EAAC;AAAA,GACH,CAAA;AAEA,EAAA,MAAM,EAAE,EAAI,EAAA,cAAA,EAAgB,gBAAgB,QAAU,EAAA,IAAA,KAAS,OAAQ,CAAA;AAAA,IACrE,cAAgB,EAAA,kBAAA;AAAA,IAChB,QAAA;AAAA,IACA,qBAAA;AAAA,IACA,cAAgB,EAAA,kBAAA;AAAA,GACjB,CAAA,CAAA;AAED,EAAA,MAAM,aAAgB,GAAA;AAAA,IACpB,cAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,eAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,eAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACA,EAAsB,WAAA;AAAA,IACpB,CAAC,QAAqB,KAAA;AACpB,MAAA,IAAI,aAAa,cAAgB,EAAA;AAC/B,QAAA,OAAO,GAAG,EAAM,CAAA,CAAA,EAAA,QAAA,CAAA,MAAA,CAAA,CAAA;AAAA,OAClB;AAAA,KACF;AAAA,IACA,CAAC,IAAI,cAAc,CAAA;AAAA,IACrB;AAGA,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACE,GAAG,cAAA;AAAA,IACJ,SAAW,EAAA,EAAA,CAAG,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACvC,IAAI,CAAG,EAAA,EAAA,CAAA,KAAA,CAAA;AAAA,IAEP,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,QAAA,EAAA;AAAA,QACE,GAAG,aAAA;AAAA,QACJ,EAAA;AAAA,QACA,cAAA;AAAA,QACA,GAAK,EAAA,WAAA;AAAA,QACL,MAAQ,EAAA,IAAA;AAAA,OACV,CAAA;AAAA,MACC,QAAA;AAAA,KAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"Tabs.js","sources":["../src/tabs/Tabs.tsx"],"sourcesContent":["import {\n forwardRef,\n ForwardedRef,\n useCallback,\n useImperativeHandle,\n useRef,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { useTabs } from \"./useTabs\";\nimport { Tabstrip } from \"./Tabstrip\";\nimport { FocusAPI, TabstripProps } from \"./TabsTypes\";\n\nimport \"./Tabs.css\";\n\nconst withBaseName = makePrefixer(\"saltTabs\");\n\nexport type TabsProps = Omit<TabstripProps, \"defaultSource\">;\n\nexport const Tabs = forwardRef(function Tabs(\n {\n activeTabIndex: activeTabIndexProp,\n allowDragDrop,\n centered,\n children,\n className,\n defaultActiveTabIndex,\n editing,\n enableAddTab,\n enableCloseTab,\n enableRenameTab,\n onActiveChange: onActiveChangeProp,\n onAddTab,\n onCloseTab,\n onEnterEditMode,\n onExitEditMode,\n onMoveTab,\n overflowMenu,\n variant,\n ...htmlAttributes\n }: TabsProps,\n forwardedRef: ForwardedRef<FocusAPI>\n) {\n const tabstripRef = useRef<HTMLDivElement>(null);\n useImperativeHandle(\n forwardedRef,\n () =>\n ({\n focus: () => tabstripRef.current?.focus(),\n } as FocusAPI),\n []\n );\n\n const { id, onActiveChange, activeTabIndex, tabPanel, tabs } = useTabs({\n activeTabIndex: activeTabIndexProp,\n children,\n defaultActiveTabIndex,\n onActiveChange: onActiveChangeProp,\n });\n\n const tabstripProps = {\n activeTabIndex,\n allowDragDrop,\n centered,\n editing,\n variant,\n enableAddTab,\n enableCloseTab,\n enableRenameTab,\n onAddTab,\n onCloseTab,\n onEnterEditMode,\n onExitEditMode,\n onMoveTab,\n overflowMenu,\n };\n const getTabPanelId = useCallback(\n (tabIndex: number) => {\n if (tabIndex === activeTabIndex) {\n return `${id}-${tabIndex}-panel`;\n }\n },\n [id, activeTabIndex]\n );\n\n // TODO need to inject aria-controls\n return (\n <div\n {...htmlAttributes}\n className={clsx(withBaseName(), className)}\n id={`${id}-tabs`}\n >\n <Tabstrip\n {...tabstripProps}\n id={id}\n onActiveChange={onActiveChange}\n ref={tabstripRef}\n source={tabs}\n />\n {tabPanel}\n </div>\n );\n});\n"],"names":["Tabs"],"mappings":";;;;;;;;AAeA,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA,CAAA;AAI/B,MAAA,IAAA,GAAO,UAAW,CAAA,SAASA,KACtC,CAAA;AAAA,EACE,cAAgB,EAAA,kBAAA;AAAA,EAChB,aAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,qBAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAgB,EAAA,kBAAA;AAAA,EAChB,QAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACG,GAAA,cAAA;AACL,CAAA,EACA,YACA,EAAA;AACA,EAAM,MAAA,WAAA,GAAc,OAAuB,IAAI,CAAA,CAAA;AAC/C,EAAA,mBAAA;AAAA,IACE,YAAA;AAAA,IACA,OACG;AAAA,MACC,OAAO,MAAG;AAhDlB,QAAA,IAAA,EAAA,CAAA;AAgDqB,QAAA,OAAA,CAAA,EAAA,GAAA,WAAA,CAAY,YAAZ,IAAqB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KACpC,CAAA;AAAA,IACF,EAAC;AAAA,GACH,CAAA;AAEA,EAAA,MAAM,EAAE,EAAI,EAAA,cAAA,EAAgB,gBAAgB,QAAU,EAAA,IAAA,KAAS,OAAQ,CAAA;AAAA,IACrE,cAAgB,EAAA,kBAAA;AAAA,IAChB,QAAA;AAAA,IACA,qBAAA;AAAA,IACA,cAAgB,EAAA,kBAAA;AAAA,GACjB,CAAA,CAAA;AAED,EAAA,MAAM,aAAgB,GAAA;AAAA,IACpB,cAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,eAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,eAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACA,EAAsB,WAAA;AAAA,IACpB,CAAC,QAAqB,KAAA;AACpB,MAAA,IAAI,aAAa,cAAgB,EAAA;AAC/B,QAAA,OAAO,GAAG,EAAM,CAAA,CAAA,EAAA,QAAA,CAAA,MAAA,CAAA,CAAA;AAAA,OAClB;AAAA,KACF;AAAA,IACA,CAAC,IAAI,cAAc,CAAA;AAAA,IACrB;AAGA,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACE,GAAG,cAAA;AAAA,IACJ,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACzC,IAAI,CAAG,EAAA,EAAA,CAAA,KAAA,CAAA;AAAA,IAEP,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,QAAA,EAAA;AAAA,QACE,GAAG,aAAA;AAAA,QACJ,EAAA;AAAA,QACA,cAAA;AAAA,QACA,GAAK,EAAA,WAAA;AAAA,QACL,MAAQ,EAAA,IAAA;AAAA,OACV,CAAA;AAAA,MACC,QAAA;AAAA,KAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -1,21 +1,19 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import React, { forwardRef, useRef, useState, useCallback, useImperativeHandle, createElement } from 'react';
3
- import { makePrefixer, useIdMemo, useIsomorphicLayoutEffect, Button } from '@salt-ds/core';
3
+ import { makePrefixer, useIdMemo, useIsomorphicLayoutEffect, Tooltip, Button } from '@salt-ds/core';
4
4
  import { OverflowMenuIcon, AddIcon } from '@salt-ds/icons';
5
- import cx from 'classnames';
5
+ import { clsx } from 'clsx';
6
6
  import '../dropdown/DropdownBase.js';
7
7
  import '../dropdown/DropdownButton.js';
8
8
  import { Dropdown } from '../dropdown/Dropdown.js';
9
9
  import '../responsive/useResizeObserver.js';
10
+ import '../utils/useFloatingUI.js';
10
11
  import { useOverflowCollectionItems } from '../responsive/useOverflowCollectionItems.js';
11
12
  import { useOverflowLayout } from '../responsive/useOverflowLayout.js';
12
13
  import '../form-field-context/FormFieldContext.js';
13
14
  import { Tab } from './Tab.js';
14
15
  import { TabActivationIndicator } from './TabActivationIndicator.js';
15
16
  import { useTabstrip } from './useTabstrip.js';
16
- import { Tooltip } from '../tooltip/Tooltip.js';
17
- import '../tooltip/TooltipContext.js';
18
- import { useTooltip } from '../tooltip/useTooltip.js';
19
17
  import './Tabstrip.css.js';
20
18
  import './ThemeTabstrip.css.js';
21
19
 
@@ -134,7 +132,6 @@ const Tabstrip = forwardRef(function Tabstrip2({
134
132
  switchOverflowPriorities
135
133
  ]
136
134
  );
137
- const { getTriggerProps, getTooltipProps } = useTooltip({});
138
135
  const {
139
136
  activeTabIndex,
140
137
  activateTab,
@@ -286,49 +283,42 @@ const Tabstrip = forwardRef(function Tabstrip2({
286
283
  );
287
284
  const [injectedItem] = collectionHook.data.filter((i) => i.isInjectedItem);
288
285
  if (overflowIndicator) {
289
- const triggerProps = getTriggerProps();
290
286
  content.push(
291
- /* @__PURE__ */ jsx(Dropdown, {
292
- className: cx(withBaseName("overflowMenu"), {
293
- [withBaseName("overflowMenu-open")]: showOverflow
294
- }),
295
- ListProps: {
296
- className: cx({
297
- [withBaseName("overflowMenu-dropTarget")]: tabstripHook.revealOverflowedItems
298
- })
299
- },
300
- "data-overflow-indicator": true,
301
- "data-priority": 0,
302
- id: overflowIndicator.id,
303
- isOpen: showOverflow,
304
- onOpenChange: handleOverflowMenuOpen,
305
- onKeyDown: handleKeydownOverflowMenu,
306
- onSelectionChange: handleOverflowSelectionChange,
307
- placement: "bottom-end",
308
- source: overflowedItems,
309
- selected: null,
310
- triggerComponent: /* @__PURE__ */ jsx(Button, {
311
- ...triggerProps,
312
- "aria-label": `Tabs overflow menu ${overflowCount} item${overflowCount === 1 ? "" : "s"}`,
313
- variant: "secondary",
314
- tabIndex: -1,
315
- children: /* @__PURE__ */ jsx(OverflowMenuIcon, {})
316
- }),
317
- width: "auto"
318
- }, "overflow")
319
- );
320
- if (showTooltip) {
321
- content.push(
322
- /* @__PURE__ */ createElement(Tooltip, {
323
- ...getTooltipProps({
324
- title: "Active Tab cannot be moved into overflow list",
325
- open: true,
326
- status: "warning"
287
+ /* @__PURE__ */ jsx(Tooltip, {
288
+ content: "Active Tab cannot be moved into overflow list",
289
+ open: true,
290
+ disabled: !showTooltip,
291
+ status: "warning",
292
+ hideArrow: true,
293
+ children: /* @__PURE__ */ jsx(Dropdown, {
294
+ className: clsx(withBaseName("overflowMenu"), {
295
+ [withBaseName("overflowMenu-open")]: showOverflow
327
296
  }),
328
- key: "tooltip"
329
- })
330
- );
331
- }
297
+ ListProps: {
298
+ className: clsx({
299
+ [withBaseName("overflowMenu-dropTarget")]: tabstripHook.revealOverflowedItems
300
+ })
301
+ },
302
+ "data-overflow-indicator": true,
303
+ "data-priority": 0,
304
+ id: overflowIndicator.id,
305
+ isOpen: showOverflow,
306
+ onOpenChange: handleOverflowMenuOpen,
307
+ onKeyDown: handleKeydownOverflowMenu,
308
+ onSelectionChange: handleOverflowSelectionChange,
309
+ placement: "bottom-end",
310
+ source: overflowedItems,
311
+ selected: null,
312
+ triggerComponent: /* @__PURE__ */ jsx(Button, {
313
+ "aria-label": `Tabs overflow menu ${overflowCount} item${overflowCount === 1 ? "" : "s"}`,
314
+ variant: "secondary",
315
+ tabIndex: -1,
316
+ children: /* @__PURE__ */ jsx(OverflowMenuIcon, {})
317
+ }),
318
+ width: "auto"
319
+ }, "overflow")
320
+ }, "tooltip")
321
+ );
332
322
  }
333
323
  if (injectedItem) {
334
324
  content.push(
@@ -350,7 +340,7 @@ const Tabstrip = forwardRef(function Tabstrip2({
350
340
  const selectedTabOverflowed = overflowedItems.some(
351
341
  (item) => item.index === activeTabIndex
352
342
  );
353
- const className = cx(
343
+ const className = clsx(
354
344
  withBaseName(),
355
345
  withBaseName(orientation),
356
346
  classNameProp,
@@ -1 +1 @@
1
- {"version":3,"file":"Tabstrip.js","sources":["../src/tabs/Tabstrip.tsx"],"sourcesContent":["import {\n Button,\n makePrefixer,\n useIdMemo,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { AddIcon, OverflowMenuIcon } from \"@salt-ds/icons\";\nimport cx from \"classnames\";\nimport React, {\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n RefObject,\n useCallback,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { SelectionChangeHandler } from \"../common-hooks\";\n\nimport { Dropdown } from \"../dropdown\";\nimport {\n InjectedSourceItem,\n OverflowItem,\n useOverflowLayout,\n} from \"../responsive\";\nimport { useOverflowCollectionItems } from \"../responsive/useOverflowCollectionItems\";\nimport { Tab } from \"./Tab\";\nimport { TabActivationIndicator } from \"./TabActivationIndicator\";\nimport {\n FocusAPI,\n responsiveDataAttributes,\n TabDescriptor,\n TabElement,\n TabProps,\n TabsSource,\n TabstripProps,\n} from \"./TabsTypes\";\nimport { useTabstrip } from \"./useTabstrip\";\nimport { Tooltip, useTooltip } from \"../tooltip\";\n\nimport \"./Tabstrip.css\";\nimport \"./ThemeTabstrip.css\";\n\nconst withBaseName = makePrefixer(\"saltTabstrip\");\n\nconst ADD_TAB_LABEL = \"Create Tab\";\n\n// Simple strings for tab labels are accepted as input, convert to TabDescriptors internally\nconst tabDescriptors = (\n tabs: TabsSource | undefined\n): TabDescriptor[] | undefined =>\n tabs &&\n tabs.map((tab: string | TabDescriptor) =>\n typeof tab === \"string\" ? { label: tab } : tab\n );\n\nexport const Tabstrip = forwardRef(function Tabstrip(\n {\n activeTabIndex: activeTabIndexProp,\n allowDragDrop = false,\n centered = false,\n children,\n className: classNameProp,\n defaultSource,\n defaultActiveTabIndex,\n editing,\n variant,\n enableAddTab = false,\n enableCloseTab,\n enableRenameTab,\n id: idProp,\n keyBoardActivation = \"manual\",\n onAddTab,\n onActiveChange,\n onCloseTab,\n onEnterEditMode,\n onExitEditMode,\n onMouseDown,\n onMoveTab,\n orientation = \"horizontal\",\n overflowMenu: overflowMenuProp = true,\n promptForNewTabName = true,\n showActivationIndicator = true,\n source,\n title,\n ...htmlAttributes\n }: TabstripProps,\n forwardedRef: ForwardedRef<FocusAPI>\n) {\n const root = useRef<HTMLDivElement>(null);\n // can't use forwardedRef here, can we ?\n // const setForkRef = useForkRef(root, forwardedRef);\n const activeRef = useRef<number>(\n activeTabIndexProp || defaultActiveTabIndex || 0\n );\n\n const overflowItemsRef = useRef<OverflowItem[]>([]);\n const [showOverflowMenu, _setShowOverflowMenu] = useState(false);\n\n const setShowOverflowMenu = useCallback((value: boolean) => {\n _setShowOverflowMenu(value);\n }, []);\n\n const tabstripId = useIdMemo(idProp);\n\n const injectedItems = enableAddTab\n ? [\n {\n source: { label: \"Add Tab\", position: -1, priority: 1 },\n } as InjectedSourceItem,\n ]\n : undefined;\n\n const collectionHook = useOverflowCollectionItems({\n children,\n defaultSource: tabDescriptors(defaultSource),\n id: tabstripId,\n injectedItems,\n label: \"Tabstrip\",\n orientation,\n source: tabDescriptors(source),\n options: {\n closeable: enableCloseTab,\n editable: enableRenameTab,\n getPriority: (item, index) => {\n return index === activeRef.current ? 1 : undefined;\n },\n },\n });\n\n const childCount = useRef(React.Children.count(children));\n\n const getChildren = (): TabElement[] | undefined => {\n if (React.Children.count(children) === 0) {\n return undefined;\n } else {\n return React.Children.toArray(children) as TabElement[];\n }\n };\n\n const [innerContainerRef, switchOverflowPriorities] = useOverflowLayout({\n collectionHook,\n disableOverflow: overflowMenuProp === false,\n id: tabstripId,\n orientation,\n label: \"Tabstrip\",\n });\n overflowItemsRef.current = collectionHook.data;\n const overflowedItems = collectionHook.data.filter((item) => item.overflowed);\n\n const tabMovedHandler = useCallback(\n (fromIndex: number, toIndex: number) => {\n onMoveTab?.(fromIndex, toIndex);\n setTimeout(() => {\n collectionHook.dispatch({\n type: \"reset\",\n });\n }, 50);\n },\n [collectionHook, onMoveTab]\n );\n\n const handleTabSelectionChange = useCallback(\n (tabIndex: number) => {\n const selectedItem = collectionHook.data[tabIndex];\n const prevSelectedItem = collectionHook.data.find(\n (item) => item.priority === 1 && !item.isOverflowIndicator\n );\n if (selectedItem && prevSelectedItem && overflowMenuProp) {\n switchOverflowPriorities(selectedItem, prevSelectedItem);\n }\n onActiveChange?.(tabIndex);\n setShowOverflowMenu(false);\n },\n [\n collectionHook.data,\n onActiveChange,\n overflowMenuProp,\n setShowOverflowMenu,\n switchOverflowPriorities,\n ]\n );\n\n const { getTriggerProps, getTooltipProps } = useTooltip({});\n\n const {\n activeTabIndex,\n activateTab,\n addTab,\n onMouseDown: tabstripHookMouseDown,\n ...tabstripHook\n } = useTabstrip({\n activeTabIndex: activeTabIndexProp,\n allowDragDrop,\n collectionHook,\n defaultTabs: tabDescriptors(defaultSource),\n defaultActiveTabIndex,\n editing,\n enableAddTab,\n idRoot: tabstripId,\n innerContainerRef,\n keyBoardActivation,\n onActiveChange: handleTabSelectionChange,\n onCloseTab,\n onEnterEditMode,\n onExitEditMode,\n onMoveTab: tabMovedHandler,\n orientation,\n promptForNewTabName,\n tabs: tabDescriptors(source) ?? getChildren(),\n });\n\n activeRef.current = activeTabIndex;\n\n useImperativeHandle(\n forwardedRef,\n () =>\n ({\n focus: () => {\n const { current: tabstrip } = root;\n if (tabstrip) {\n const selectedTab = tabstrip.querySelector(\n '.saltTab[aria-selected=\"true\"]'\n ) as HTMLElement;\n if (selectedTab) {\n selectedTab.focus();\n }\n }\n },\n } as FocusAPI),\n []\n );\n\n const handleAddTabClick = useCallback(() => {\n if (!collectionHook.isControlled) {\n addTab();\n }\n onAddTab?.();\n }, [collectionHook.isControlled, onAddTab, addTab]);\n\n const selectedIndex = useRef(activeTabIndex);\n const focusedTabIndex = tabstripHook.highlightedIdx;\n const handleOverflowSelectionChange: SelectionChangeHandler<OverflowItem> =\n useCallback(\n (e, tab) => {\n if (tab !== null) {\n activateTab(tab.index);\n }\n },\n [activateTab]\n );\n\n const handleKeydownOverflowMenu = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n tabstripHook.navigationProps?.onKeyDown?.(e);\n },\n [tabstripHook.navigationProps]\n );\n\n const handleOverflowMenuOpen = useCallback(\n (open: boolean) => {\n setShowOverflowMenu(open);\n },\n [setShowOverflowMenu]\n );\n\n const handleMouseDown = useCallback(\n (evt: MouseEvent<HTMLDivElement>) => {\n onMouseDown?.(evt);\n tabstripHookMouseDown?.(evt);\n },\n [onMouseDown, tabstripHookMouseDown]\n );\n\n // shouldn't we use ref for this ?\n useIsomorphicLayoutEffect(() => {\n // We don't care about changes to overflowedItems here, the overflowObserver\n // always does the right thing. We only care about changes to selected tab\n if (selectedIndex.current !== activeTabIndex && overflowMenuProp) {\n // We might want to do this only if the selected tab is overflowed ?\n // TODO\n // resetOverflow();\n selectedIndex.current = activeTabIndex;\n }\n }, [overflowMenuProp, activeTabIndex]);\n\n useIsomorphicLayoutEffect(() => {\n if (React.Children.count(children) !== childCount.current) {\n childCount.current = React.Children.count(children);\n // TODO\n // resetOverflow();\n }\n }, [children]);\n\n useIsomorphicLayoutEffect(() => {\n if (focusedTabIndex !== activeTabIndex && focusedTabIndex !== -1) {\n tabstripHook.focusTab(activeTabIndex);\n }\n\n // We only want the effect to run when value changes, not every time focusedTabIndex changes.\n // It doesn't matter if focusedTabIndex is stale in between calls - it will be correct when\n // value changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeTabIndex]);\n\n const renderContent = () => {\n const content = collectionHook.data\n .filter((item) => !item.isOverflowIndicator && !item.isInjectedItem)\n .map((item: OverflowItem, index: number) => {\n // TODO sort out typoing\n const tab = item.source as unknown as TabDescriptor;\n const element = item.element as TabElement;\n\n const selected = index === activeTabIndex;\n const focusVisible = tabstripHook.focusVisible === index;\n const overflowed =\n overflowedItems.findIndex(\n (item: OverflowItem) => item.index === index\n ) !== -1;\n\n const tabIsBeingEdited = tabstripHook.editing && selected;\n const tabIndex = tabIsBeingEdited\n ? undefined\n : selected && !tabstripHook.focusIsWithinComponent\n ? 0\n : -1;\n\n const baseProps: Partial<TabProps> &\n responsiveDataAttributes & {\n ref?: RefObject<HTMLDivElement>;\n key: string | number;\n } = {\n \"data-index\": index,\n \"data-priority\": item.priority,\n \"data-overflowed\": overflowed ? true : undefined,\n ...tabstripHook.navigationProps,\n id: item.id,\n key: index,\n onMouseDown: handleMouseDown,\n tabIndex,\n };\n\n const tabProps = {\n ...tabstripHook.tabProps,\n closeable: item.closeable,\n dragging: tabstripHook.draggedItemIndex === index,\n editable: item.editable,\n editing: tabIsBeingEdited,\n focusVisible,\n index,\n onClose: item.closeable ? tabstripHook.closeTab : undefined,\n orientation,\n selected,\n } as Partial<TabProps>;\n\n if (React.isValidElement(element)) {\n if (element.type === Tab) {\n return React.cloneElement(element, { ...baseProps, ...tabProps });\n } else {\n return React.cloneElement(element, baseProps);\n }\n } else {\n //@ts-ignore tab can only be a TabDescriptor here, but TypeScript seems to think it can be a number\n return React.createElement(Tab, {\n ...baseProps,\n ...tabProps,\n label: tab.label,\n });\n }\n });\n\n const overflowCount = overflowedItems.length;\n const draggingActiveTab = tabstripHook.draggedItemIndex === activeTabIndex;\n const showOverflow =\n (tabstripHook.revealOverflowedItems && !draggingActiveTab) ||\n showOverflowMenu;\n const showTooltip = tabstripHook.revealOverflowedItems && draggingActiveTab;\n const overflowIndicator = collectionHook.data.find(\n (i) => i.isOverflowIndicator\n );\n const [injectedItem] = collectionHook.data.filter((i) => i.isInjectedItem);\n\n if (overflowIndicator) {\n const triggerProps = getTriggerProps<typeof Button>();\n content.push(\n <Dropdown<OverflowItem>\n className={cx(withBaseName(\"overflowMenu\"), {\n [withBaseName(\"overflowMenu-open\")]: showOverflow,\n })}\n ListProps={{\n className: cx({\n [withBaseName(\"overflowMenu-dropTarget\")]:\n tabstripHook.revealOverflowedItems,\n }),\n }}\n data-overflow-indicator\n data-priority={0}\n id={overflowIndicator.id}\n isOpen={showOverflow}\n key=\"overflow\"\n onOpenChange={handleOverflowMenuOpen}\n onKeyDown={handleKeydownOverflowMenu}\n onSelectionChange={handleOverflowSelectionChange}\n placement=\"bottom-end\"\n source={overflowedItems}\n selected={null}\n triggerComponent={\n <Button\n {...triggerProps}\n aria-label={`Tabs overflow menu ${overflowCount} item${\n overflowCount === 1 ? \"\" : \"s\"\n }`}\n variant=\"secondary\"\n tabIndex={-1}\n >\n <OverflowMenuIcon />\n </Button>\n }\n width=\"auto\"\n />\n );\n if (showTooltip) {\n content.push(\n <Tooltip\n {...getTooltipProps({\n title: \"Active Tab cannot be moved into overflow list\",\n open: true,\n status: \"warning\",\n })}\n key=\"tooltip\"\n />\n );\n }\n }\n\n if (injectedItem) {\n content.push(\n <Button\n {...tabstripHook.navigationProps}\n aria-label={ADD_TAB_LABEL}\n data-priority={injectedItem.priority}\n data-overflowed={injectedItem.overflowed}\n id={injectedItem.id}\n key=\"addButton\"\n onClick={handleAddTabClick}\n variant=\"secondary\"\n tabIndex={-1}\n >\n <AddIcon />\n </Button>\n );\n }\n\n return content;\n };\n\n const selectedTabOverflowed = overflowedItems.some(\n (item: OverflowItem) => item.index === activeTabIndex\n );\n const className = cx(\n withBaseName(),\n withBaseName(orientation),\n classNameProp,\n {\n [withBaseName(\"centered\")]: centered,\n [withBaseName(\"draggingTab\")]: tabstripHook.isDragging,\n [withBaseName(\"tertiary\")]: variant === \"tertiary\",\n }\n );\n\n const { id: selectedTabId } = collectionHook.data[activeTabIndex];\n\n return (\n <div\n {...htmlAttributes}\n {...tabstripHook.containerProps}\n className={className}\n id={tabstripId}\n ref={root}\n role=\"tablist\"\n >\n <div className={withBaseName(\"inner\")} ref={innerContainerRef}>\n {renderContent()}\n </div>\n {showActivationIndicator ? (\n <TabActivationIndicator\n hideThumb={selectedTabOverflowed || tabstripHook.isDragging}\n orientation={orientation}\n tabId={selectedTabId}\n />\n ) : null}\n {tabstripHook.draggable}\n </div>\n );\n});\n\nTabstrip.displayName = \"Tabstrip\";\n"],"names":["Tabstrip","_a","item"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA6CA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AAEhD,MAAM,aAAgB,GAAA,YAAA,CAAA;AAGtB,MAAM,cAAiB,GAAA,CACrB,IAEA,KAAA,IAAA,IACA,IAAK,CAAA,GAAA;AAAA,EAAI,CAAC,QACR,OAAO,GAAA,KAAQ,WAAW,EAAE,KAAA,EAAO,KAAQ,GAAA,GAAA;AAC7C,CAAA,CAAA;AAEW,MAAA,QAAA,GAAW,UAAW,CAAA,SAASA,SAC1C,CAAA;AAAA,EACE,cAAgB,EAAA,kBAAA;AAAA,EAChB,aAAgB,GAAA,KAAA;AAAA,EAChB,QAAW,GAAA,KAAA;AAAA,EACX,QAAA;AAAA,EACA,SAAW,EAAA,aAAA;AAAA,EACX,aAAA;AAAA,EACA,qBAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAe,GAAA,KAAA;AAAA,EACf,cAAA;AAAA,EACA,eAAA;AAAA,EACA,EAAI,EAAA,MAAA;AAAA,EACJ,kBAAqB,GAAA,QAAA;AAAA,EACrB,QAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAc,GAAA,YAAA;AAAA,EACd,cAAc,gBAAmB,GAAA,IAAA;AAAA,EACjC,mBAAsB,GAAA,IAAA;AAAA,EACtB,uBAA0B,GAAA,IAAA;AAAA,EAC1B,MAAA;AAAA,EACA,KAAA;AAAA,EACG,GAAA,cAAA;AACL,CAAA,EACA,YACA,EAAA;AA1FF,EAAA,IAAA,EAAA,CAAA;AA2FE,EAAM,MAAA,IAAA,GAAO,OAAuB,IAAI,CAAA,CAAA;AAGxC,EAAA,MAAM,SAAY,GAAA,MAAA;AAAA,IAChB,sBAAsB,qBAAyB,IAAA,CAAA;AAAA,GACjD,CAAA;AAEA,EAAM,MAAA,gBAAA,GAAmB,MAAuB,CAAA,EAAE,CAAA,CAAA;AAClD,EAAA,MAAM,CAAC,gBAAA,EAAkB,oBAAoB,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AAE/D,EAAM,MAAA,mBAAA,GAAsB,WAAY,CAAA,CAAC,KAAmB,KAAA;AAC1D,IAAA,oBAAA,CAAqB,KAAK,CAAA,CAAA;AAAA,GAC5B,EAAG,EAAE,CAAA,CAAA;AAEL,EAAM,MAAA,UAAA,GAAa,UAAU,MAAM,CAAA,CAAA;AAEnC,EAAA,MAAM,gBAAgB,YAClB,GAAA;AAAA,IACE;AAAA,MACE,QAAQ,EAAE,KAAA,EAAO,WAAW,QAAU,EAAA,CAAA,CAAA,EAAI,UAAU,CAAE,EAAA;AAAA,KACxD;AAAA,GAEF,GAAA,KAAA,CAAA,CAAA;AAEJ,EAAA,MAAM,iBAAiB,0BAA2B,CAAA;AAAA,IAChD,QAAA;AAAA,IACA,aAAA,EAAe,eAAe,aAAa,CAAA;AAAA,IAC3C,EAAI,EAAA,UAAA;AAAA,IACJ,aAAA;AAAA,IACA,KAAO,EAAA,UAAA;AAAA,IACP,WAAA;AAAA,IACA,MAAA,EAAQ,eAAe,MAAM,CAAA;AAAA,IAC7B,OAAS,EAAA;AAAA,MACP,SAAW,EAAA,cAAA;AAAA,MACX,QAAU,EAAA,eAAA;AAAA,MACV,WAAA,EAAa,CAAC,IAAA,EAAM,KAAU,KAAA;AAC5B,QAAO,OAAA,KAAA,KAAU,SAAU,CAAA,OAAA,GAAU,CAAI,GAAA,KAAA,CAAA,CAAA;AAAA,OAC3C;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAA,MAAM,aAAa,MAAO,CAAA,KAAA,CAAM,QAAS,CAAA,KAAA,CAAM,QAAQ,CAAC,CAAA,CAAA;AAExD,EAAA,MAAM,cAAc,MAAgC;AAClD,IAAA,IAAI,KAAM,CAAA,QAAA,CAAS,KAAM,CAAA,QAAQ,MAAM,CAAG,EAAA;AACxC,MAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KACF,MAAA;AACL,MAAO,OAAA,KAAA,CAAM,QAAS,CAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;AAAA,KACxC;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,CAAC,iBAAA,EAAmB,wBAAwB,CAAA,GAAI,iBAAkB,CAAA;AAAA,IACtE,cAAA;AAAA,IACA,iBAAiB,gBAAqB,KAAA,KAAA;AAAA,IACtC,EAAI,EAAA,UAAA;AAAA,IACJ,WAAA;AAAA,IACA,KAAO,EAAA,UAAA;AAAA,GACR,CAAA,CAAA;AACD,EAAA,gBAAA,CAAiB,UAAU,cAAe,CAAA,IAAA,CAAA;AAC1C,EAAA,MAAM,kBAAkB,cAAe,CAAA,IAAA,CAAK,OAAO,CAAC,IAAA,KAAS,KAAK,UAAU,CAAA,CAAA;AAE5E,EAAA,MAAM,eAAkB,GAAA,WAAA;AAAA,IACtB,CAAC,WAAmB,OAAoB,KAAA;AACtC,MAAA,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAY,SAAW,EAAA,OAAA,CAAA,CAAA;AACvB,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,cAAA,CAAe,QAAS,CAAA;AAAA,UACtB,IAAM,EAAA,OAAA;AAAA,SACP,CAAA,CAAA;AAAA,SACA,EAAE,CAAA,CAAA;AAAA,KACP;AAAA,IACA,CAAC,gBAAgB,SAAS,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAA,MAAM,wBAA2B,GAAA,WAAA;AAAA,IAC/B,CAAC,QAAqB,KAAA;AACpB,MAAM,MAAA,YAAA,GAAe,eAAe,IAAK,CAAA,QAAA,CAAA,CAAA;AACzC,MAAM,MAAA,gBAAA,GAAmB,eAAe,IAAK,CAAA,IAAA;AAAA,QAC3C,CAAC,IAAS,KAAA,IAAA,CAAK,QAAa,KAAA,CAAA,IAAK,CAAC,IAAK,CAAA,mBAAA;AAAA,OACzC,CAAA;AACA,MAAI,IAAA,YAAA,IAAgB,oBAAoB,gBAAkB,EAAA;AACxD,QAAA,wBAAA,CAAyB,cAAc,gBAAgB,CAAA,CAAA;AAAA,OACzD;AACA,MAAiB,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAA,QAAA,CAAA,CAAA;AACjB,MAAA,mBAAA,CAAoB,KAAK,CAAA,CAAA;AAAA,KAC3B;AAAA,IACA;AAAA,MACE,cAAe,CAAA,IAAA;AAAA,MACf,cAAA;AAAA,MACA,gBAAA;AAAA,MACA,mBAAA;AAAA,MACA,wBAAA;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,EAAE,eAAiB,EAAA,eAAA,EAAoB,GAAA,UAAA,CAAW,EAAE,CAAA,CAAA;AAE1D,EAAM,MAAA;AAAA,IACJ,cAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAa,EAAA,qBAAA;AAAA,IACV,GAAA,YAAA;AAAA,MACD,WAAY,CAAA;AAAA,IACd,cAAgB,EAAA,kBAAA;AAAA,IAChB,aAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA,EAAa,eAAe,aAAa,CAAA;AAAA,IACzC,qBAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAQ,EAAA,UAAA;AAAA,IACR,iBAAA;AAAA,IACA,kBAAA;AAAA,IACA,cAAgB,EAAA,wBAAA;AAAA,IAChB,UAAA;AAAA,IACA,eAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAW,EAAA,eAAA;AAAA,IACX,WAAA;AAAA,IACA,mBAAA;AAAA,IACA,IAAM,EAAA,CAAA,EAAA,GAAA,cAAA,CAAe,MAAM,CAAA,KAArB,YAA0B,WAAY,EAAA;AAAA,GAC7C,CAAA,CAAA;AAED,EAAA,SAAA,CAAU,OAAU,GAAA,cAAA,CAAA;AAEpB,EAAA,mBAAA;AAAA,IACE,YAAA;AAAA,IACA,OACG;AAAA,MACC,OAAO,MAAM;AACX,QAAM,MAAA,EAAE,OAAS,EAAA,QAAA,EAAa,GAAA,IAAA,CAAA;AAC9B,QAAA,IAAI,QAAU,EAAA;AACZ,UAAA,MAAM,cAAc,QAAS,CAAA,aAAA;AAAA,YAC3B,gCAAA;AAAA,WACF,CAAA;AACA,UAAA,IAAI,WAAa,EAAA;AACf,YAAA,WAAA,CAAY,KAAM,EAAA,CAAA;AAAA,WACpB;AAAA,SACF;AAAA,OACF;AAAA,KACF,CAAA;AAAA,IACF,EAAC;AAAA,GACH,CAAA;AAEA,EAAM,MAAA,iBAAA,GAAoB,YAAY,MAAM;AAC1C,IAAI,IAAA,CAAC,eAAe,YAAc,EAAA;AAChC,MAAO,MAAA,EAAA,CAAA;AAAA,KACT;AACA,IAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,EAAA,CAAA;AAAA,KACC,CAAC,cAAA,CAAe,YAAc,EAAA,QAAA,EAAU,MAAM,CAAC,CAAA,CAAA;AAElD,EAAM,MAAA,aAAA,GAAgB,OAAO,cAAc,CAAA,CAAA;AAC3C,EAAA,MAAM,kBAAkB,YAAa,CAAA,cAAA,CAAA;AACrC,EAAA,MAAM,6BACJ,GAAA,WAAA;AAAA,IACE,CAAC,GAAG,GAAQ,KAAA;AACV,MAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,QAAA,WAAA,CAAY,IAAI,KAAK,CAAA,CAAA;AAAA,OACvB;AAAA,KACF;AAAA,IACA,CAAC,WAAW,CAAA;AAAA,GACd,CAAA;AAEF,EAAA,MAAM,yBAA4B,GAAA,WAAA;AAAA,IAChC,CAAC,CAAkC,KAAA;AA/PvC,MAAA,IAAAC,GAAA,EAAA,EAAA,CAAA;AAgQM,MAAA,CAAA,EAAA,GAAA,CAAAA,MAAA,YAAa,CAAA,eAAA,KAAb,gBAAAA,GAA8B,CAAA,SAAA,KAA9B,wBAAAA,GAA0C,EAAA,CAAA,CAAA,CAAA;AAAA,KAC5C;AAAA,IACA,CAAC,aAAa,eAAe,CAAA;AAAA,GAC/B,CAAA;AAEA,EAAA,MAAM,sBAAyB,GAAA,WAAA;AAAA,IAC7B,CAAC,IAAkB,KAAA;AACjB,MAAA,mBAAA,CAAoB,IAAI,CAAA,CAAA;AAAA,KAC1B;AAAA,IACA,CAAC,mBAAmB,CAAA;AAAA,GACtB,CAAA;AAEA,EAAA,MAAM,eAAkB,GAAA,WAAA;AAAA,IACtB,CAAC,GAAoC,KAAA;AACnC,MAAc,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,GAAA,CAAA,CAAA;AACd,MAAwB,qBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA,GAAA,CAAA,CAAA;AAAA,KAC1B;AAAA,IACA,CAAC,aAAa,qBAAqB,CAAA;AAAA,GACrC,CAAA;AAGA,EAAA,yBAAA,CAA0B,MAAM;AAG9B,IAAI,IAAA,aAAA,CAAc,OAAY,KAAA,cAAA,IAAkB,gBAAkB,EAAA;AAIhE,MAAA,aAAA,CAAc,OAAU,GAAA,cAAA,CAAA;AAAA,KAC1B;AAAA,GACC,EAAA,CAAC,gBAAkB,EAAA,cAAc,CAAC,CAAA,CAAA;AAErC,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAA,IAAI,MAAM,QAAS,CAAA,KAAA,CAAM,QAAQ,CAAA,KAAM,WAAW,OAAS,EAAA;AACzD,MAAA,UAAA,CAAW,OAAU,GAAA,KAAA,CAAM,QAAS,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;AAAA,KAGpD;AAAA,GACF,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAI,IAAA,eAAA,KAAoB,cAAkB,IAAA,eAAA,KAAoB,CAAI,CAAA,EAAA;AAChE,MAAA,YAAA,CAAa,SAAS,cAAc,CAAA,CAAA;AAAA,KACtC;AAAA,GAMF,EAAG,CAAC,cAAc,CAAC,CAAA,CAAA;AAEnB,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,MAAM,UAAU,cAAe,CAAA,IAAA,CAC5B,MAAO,CAAA,CAAC,SAAS,CAAC,IAAA,CAAK,mBAAuB,IAAA,CAAC,KAAK,cAAc,CAAA,CAClE,GAAI,CAAA,CAAC,MAAoB,KAAkB,KAAA;AAE1C,MAAA,MAAM,MAAM,IAAK,CAAA,MAAA,CAAA;AACjB,MAAA,MAAM,UAAU,IAAK,CAAA,OAAA,CAAA;AAErB,MAAA,MAAM,WAAW,KAAU,KAAA,cAAA,CAAA;AAC3B,MAAM,MAAA,YAAA,GAAe,aAAa,YAAiB,KAAA,KAAA,CAAA;AACnD,MAAA,MAAM,aACJ,eAAgB,CAAA,SAAA;AAAA,QACd,CAACC,KAAuBA,KAAAA,KAAAA,CAAK,KAAU,KAAA,KAAA;AAAA,OACnC,KAAA,CAAA,CAAA,CAAA;AAER,MAAM,MAAA,gBAAA,GAAmB,aAAa,OAAW,IAAA,QAAA,CAAA;AACjD,MAAA,MAAM,WAAW,gBACb,GAAA,KAAA,CAAA,GACA,YAAY,CAAC,YAAA,CAAa,yBAC1B,CACA,GAAA,CAAA,CAAA,CAAA;AAEJ,MAAA,MAAM,SAIA,GAAA;AAAA,QACJ,YAAc,EAAA,KAAA;AAAA,QACd,iBAAiB,IAAK,CAAA,QAAA;AAAA,QACtB,iBAAA,EAAmB,aAAa,IAAO,GAAA,KAAA,CAAA;AAAA,QACvC,GAAG,YAAa,CAAA,eAAA;AAAA,QAChB,IAAI,IAAK,CAAA,EAAA;AAAA,QACT,GAAK,EAAA,KAAA;AAAA,QACL,WAAa,EAAA,eAAA;AAAA,QACb,QAAA;AAAA,OACF,CAAA;AAEA,MAAA,MAAM,QAAW,GAAA;AAAA,QACf,GAAG,YAAa,CAAA,QAAA;AAAA,QAChB,WAAW,IAAK,CAAA,SAAA;AAAA,QAChB,QAAA,EAAU,aAAa,gBAAqB,KAAA,KAAA;AAAA,QAC5C,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,OAAS,EAAA,gBAAA;AAAA,QACT,YAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAS,EAAA,IAAA,CAAK,SAAY,GAAA,YAAA,CAAa,QAAW,GAAA,KAAA,CAAA;AAAA,QAClD,WAAA;AAAA,QACA,QAAA;AAAA,OACF,CAAA;AAEA,MAAI,IAAA,KAAA,CAAM,cAAe,CAAA,OAAO,CAAG,EAAA;AACjC,QAAI,IAAA,OAAA,CAAQ,SAAS,GAAK,EAAA;AACxB,UAAO,OAAA,KAAA,CAAM,aAAa,OAAS,EAAA,EAAE,GAAG,SAAW,EAAA,GAAG,UAAU,CAAA,CAAA;AAAA,SAC3D,MAAA;AACL,UAAO,OAAA,KAAA,CAAM,YAAa,CAAA,OAAA,EAAS,SAAS,CAAA,CAAA;AAAA,SAC9C;AAAA,OACK,MAAA;AAEL,QAAO,OAAA,KAAA,CAAM,cAAc,GAAK,EAAA;AAAA,UAC9B,GAAG,SAAA;AAAA,UACH,GAAG,QAAA;AAAA,UACH,OAAO,GAAI,CAAA,KAAA;AAAA,SACZ,CAAA,CAAA;AAAA,OACH;AAAA,KACD,CAAA,CAAA;AAEH,IAAA,MAAM,gBAAgB,eAAgB,CAAA,MAAA,CAAA;AACtC,IAAM,MAAA,iBAAA,GAAoB,aAAa,gBAAqB,KAAA,cAAA,CAAA;AAC5D,IAAA,MAAM,YACH,GAAA,YAAA,CAAa,qBAAyB,IAAA,CAAC,iBACxC,IAAA,gBAAA,CAAA;AACF,IAAM,MAAA,WAAA,GAAc,aAAa,qBAAyB,IAAA,iBAAA,CAAA;AAC1D,IAAM,MAAA,iBAAA,GAAoB,eAAe,IAAK,CAAA,IAAA;AAAA,MAC5C,CAAC,MAAM,CAAE,CAAA,mBAAA;AAAA,KACX,CAAA;AACA,IAAM,MAAA,CAAC,YAAY,CAAI,GAAA,cAAA,CAAe,KAAK,MAAO,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,cAAc,CAAA,CAAA;AAEzE,IAAA,IAAI,iBAAmB,EAAA;AACrB,MAAA,MAAM,eAAe,eAA+B,EAAA,CAAA;AACpD,MAAQ,OAAA,CAAA,IAAA;AAAA,wBACL,GAAA,CAAA,QAAA,EAAA;AAAA,UACC,SAAW,EAAA,EAAA,CAAG,YAAa,CAAA,cAAc,CAAG,EAAA;AAAA,YAC1C,CAAC,YAAa,CAAA,mBAAmB,CAAI,GAAA,YAAA;AAAA,WACtC,CAAA;AAAA,UACD,SAAW,EAAA;AAAA,YACT,WAAW,EAAG,CAAA;AAAA,cACZ,CAAC,YAAA,CAAa,yBAAyB,CAAA,GACrC,YAAa,CAAA,qBAAA;AAAA,aAChB,CAAA;AAAA,WACH;AAAA,UACA,yBAAuB,EAAA,IAAA;AAAA,UACvB,eAAe,EAAA,CAAA;AAAA,UACf,IAAI,iBAAkB,CAAA,EAAA;AAAA,UACtB,MAAQ,EAAA,YAAA;AAAA,UAER,YAAc,EAAA,sBAAA;AAAA,UACd,SAAW,EAAA,yBAAA;AAAA,UACX,iBAAmB,EAAA,6BAAA;AAAA,UACnB,SAAU,EAAA,YAAA;AAAA,UACV,MAAQ,EAAA,eAAA;AAAA,UACR,QAAU,EAAA,IAAA;AAAA,UACV,kCACG,GAAA,CAAA,MAAA,EAAA;AAAA,YACE,GAAG,YAAA;AAAA,YACJ,YAAY,EAAA,CAAA,mBAAA,EAAsB,aAChC,CAAA,KAAA,EAAA,aAAA,KAAkB,IAAI,EAAK,GAAA,GAAA,CAAA,CAAA;AAAA,YAE7B,OAAQ,EAAA,WAAA;AAAA,YACR,QAAU,EAAA,CAAA,CAAA;AAAA,YAEV,8BAAC,gBAAiB,EAAA,EAAA,CAAA;AAAA,WACpB,CAAA;AAAA,UAEF,KAAM,EAAA,MAAA;AAAA,SAAA,EAnBF,UAoBN,CAAA;AAAA,OACF,CAAA;AACA,MAAA,IAAI,WAAa,EAAA;AACf,QAAQ,OAAA,CAAA,IAAA;AAAA,0BACL,aAAA,CAAA,OAAA,EAAA;AAAA,YACE,GAAG,eAAgB,CAAA;AAAA,cAClB,KAAO,EAAA,+CAAA;AAAA,cACP,IAAM,EAAA,IAAA;AAAA,cACN,MAAQ,EAAA,SAAA;AAAA,aACT,CAAA;AAAA,YACD,GAAI,EAAA,SAAA;AAAA,WACN,CAAA;AAAA,SACF,CAAA;AAAA,OACF;AAAA,KACF;AAEA,IAAA,IAAI,YAAc,EAAA;AAChB,MAAQ,OAAA,CAAA,IAAA;AAAA,wBACL,aAAA,CAAA,MAAA,EAAA;AAAA,UACE,GAAG,YAAa,CAAA,eAAA;AAAA,UACjB,YAAY,EAAA,aAAA;AAAA,UACZ,iBAAe,YAAa,CAAA,QAAA;AAAA,UAC5B,mBAAiB,YAAa,CAAA,UAAA;AAAA,UAC9B,IAAI,YAAa,CAAA,EAAA;AAAA,UACjB,GAAI,EAAA,WAAA;AAAA,UACJ,OAAS,EAAA,iBAAA;AAAA,UACT,OAAQ,EAAA,WAAA;AAAA,UACR,QAAU,EAAA,CAAA,CAAA;AAAA,SAEV,kBAAA,GAAA,CAAC,WAAQ,CACX,CAAA;AAAA,OACF,CAAA;AAAA,KACF;AAEA,IAAO,OAAA,OAAA,CAAA;AAAA,GACT,CAAA;AAEA,EAAA,MAAM,wBAAwB,eAAgB,CAAA,IAAA;AAAA,IAC5C,CAAC,IAAuB,KAAA,IAAA,CAAK,KAAU,KAAA,cAAA;AAAA,GACzC,CAAA;AACA,EAAA,MAAM,SAAY,GAAA,EAAA;AAAA,IAChB,YAAa,EAAA;AAAA,IACb,aAAa,WAAW,CAAA;AAAA,IACxB,aAAA;AAAA,IACA;AAAA,MACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,MAC5B,CAAC,YAAA,CAAa,aAAa,CAAA,GAAI,YAAa,CAAA,UAAA;AAAA,MAC5C,CAAC,YAAA,CAAa,UAAU,CAAA,GAAI,OAAY,KAAA,UAAA;AAAA,KAC1C;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,EAAE,EAAA,EAAI,aAAc,EAAA,GAAI,eAAe,IAAK,CAAA,cAAA,CAAA,CAAA;AAElD,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,IACE,GAAG,cAAA;AAAA,IACH,GAAG,YAAa,CAAA,cAAA;AAAA,IACjB,SAAA;AAAA,IACA,EAAI,EAAA,UAAA;AAAA,IACJ,GAAK,EAAA,IAAA;AAAA,IACL,IAAK,EAAA,SAAA;AAAA,IAEL,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,QAAG,GAAK,EAAA,iBAAA;AAAA,QACzC,QAAc,EAAA,aAAA,EAAA;AAAA,OACjB,CAAA;AAAA,MACC,0CACE,GAAA,CAAA,sBAAA,EAAA;AAAA,QACC,SAAA,EAAW,yBAAyB,YAAa,CAAA,UAAA;AAAA,QACjD,WAAA;AAAA,QACA,KAAO,EAAA,aAAA;AAAA,OACT,CACE,GAAA,IAAA;AAAA,MACH,YAAa,CAAA,SAAA;AAAA,KAAA;AAAA,GAChB,CAAA,CAAA;AAEJ,CAAC,EAAA;AAED,QAAA,CAAS,WAAc,GAAA,UAAA;;;;"}
1
+ {"version":3,"file":"Tabstrip.js","sources":["../src/tabs/Tabstrip.tsx"],"sourcesContent":["import {\n Button,\n makePrefixer,\n Tooltip,\n useIdMemo,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { AddIcon, OverflowMenuIcon } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport React, {\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n RefObject,\n useCallback,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { SelectionChangeHandler } from \"../common-hooks\";\n\nimport { Dropdown } from \"../dropdown\";\nimport {\n InjectedSourceItem,\n OverflowItem,\n useOverflowLayout,\n} from \"../responsive\";\nimport { useOverflowCollectionItems } from \"../responsive/useOverflowCollectionItems\";\nimport { Tab } from \"./Tab\";\nimport { TabActivationIndicator } from \"./TabActivationIndicator\";\nimport {\n FocusAPI,\n responsiveDataAttributes,\n TabDescriptor,\n TabElement,\n TabProps,\n TabsSource,\n TabstripProps,\n} from \"./TabsTypes\";\nimport { useTabstrip } from \"./useTabstrip\";\n\nimport \"./Tabstrip.css\";\nimport \"./ThemeTabstrip.css\";\n\nconst withBaseName = makePrefixer(\"saltTabstrip\");\n\nconst ADD_TAB_LABEL = \"Create Tab\";\n\n// Simple strings for tab labels are accepted as input, convert to TabDescriptors internally\nconst tabDescriptors = (\n tabs: TabsSource | undefined\n): TabDescriptor[] | undefined =>\n tabs &&\n tabs.map((tab: string | TabDescriptor) =>\n typeof tab === \"string\" ? { label: tab } : tab\n );\n\nexport const Tabstrip = forwardRef(function Tabstrip(\n {\n activeTabIndex: activeTabIndexProp,\n allowDragDrop = false,\n centered = false,\n children,\n className: classNameProp,\n defaultSource,\n defaultActiveTabIndex,\n editing,\n variant,\n enableAddTab = false,\n enableCloseTab,\n enableRenameTab,\n id: idProp,\n keyBoardActivation = \"manual\",\n onAddTab,\n onActiveChange,\n onCloseTab,\n onEnterEditMode,\n onExitEditMode,\n onMouseDown,\n onMoveTab,\n orientation = \"horizontal\",\n overflowMenu: overflowMenuProp = true,\n promptForNewTabName = true,\n showActivationIndicator = true,\n source,\n title,\n ...htmlAttributes\n }: TabstripProps,\n forwardedRef: ForwardedRef<FocusAPI>\n) {\n const root = useRef<HTMLDivElement>(null);\n // can't use forwardedRef here, can we ?\n // const setForkRef = useForkRef(root, forwardedRef);\n const activeRef = useRef<number>(\n activeTabIndexProp || defaultActiveTabIndex || 0\n );\n\n const overflowItemsRef = useRef<OverflowItem[]>([]);\n const [showOverflowMenu, _setShowOverflowMenu] = useState(false);\n\n const setShowOverflowMenu = useCallback((value: boolean) => {\n _setShowOverflowMenu(value);\n }, []);\n\n const tabstripId = useIdMemo(idProp);\n\n const injectedItems = enableAddTab\n ? [\n {\n source: { label: \"Add Tab\", position: -1, priority: 1 },\n } as InjectedSourceItem,\n ]\n : undefined;\n\n const collectionHook = useOverflowCollectionItems({\n children,\n defaultSource: tabDescriptors(defaultSource),\n id: tabstripId,\n injectedItems,\n label: \"Tabstrip\",\n orientation,\n source: tabDescriptors(source),\n options: {\n closeable: enableCloseTab,\n editable: enableRenameTab,\n getPriority: (item, index) => {\n return index === activeRef.current ? 1 : undefined;\n },\n },\n });\n\n const childCount = useRef(React.Children.count(children));\n\n const getChildren = (): TabElement[] | undefined => {\n if (React.Children.count(children) === 0) {\n return undefined;\n } else {\n return React.Children.toArray(children) as TabElement[];\n }\n };\n\n const [innerContainerRef, switchOverflowPriorities] = useOverflowLayout({\n collectionHook,\n disableOverflow: overflowMenuProp === false,\n id: tabstripId,\n orientation,\n label: \"Tabstrip\",\n });\n overflowItemsRef.current = collectionHook.data;\n const overflowedItems = collectionHook.data.filter((item) => item.overflowed);\n\n const tabMovedHandler = useCallback(\n (fromIndex: number, toIndex: number) => {\n onMoveTab?.(fromIndex, toIndex);\n setTimeout(() => {\n collectionHook.dispatch({\n type: \"reset\",\n });\n }, 50);\n },\n [collectionHook, onMoveTab]\n );\n\n const handleTabSelectionChange = useCallback(\n (tabIndex: number) => {\n const selectedItem = collectionHook.data[tabIndex];\n const prevSelectedItem = collectionHook.data.find(\n (item) => item.priority === 1 && !item.isOverflowIndicator\n );\n if (selectedItem && prevSelectedItem && overflowMenuProp) {\n switchOverflowPriorities(selectedItem, prevSelectedItem);\n }\n onActiveChange?.(tabIndex);\n setShowOverflowMenu(false);\n },\n [\n collectionHook.data,\n onActiveChange,\n overflowMenuProp,\n setShowOverflowMenu,\n switchOverflowPriorities,\n ]\n );\n\n const {\n activeTabIndex,\n activateTab,\n addTab,\n onMouseDown: tabstripHookMouseDown,\n ...tabstripHook\n } = useTabstrip({\n activeTabIndex: activeTabIndexProp,\n allowDragDrop,\n collectionHook,\n defaultTabs: tabDescriptors(defaultSource),\n defaultActiveTabIndex,\n editing,\n enableAddTab,\n idRoot: tabstripId,\n innerContainerRef,\n keyBoardActivation,\n onActiveChange: handleTabSelectionChange,\n onCloseTab,\n onEnterEditMode,\n onExitEditMode,\n onMoveTab: tabMovedHandler,\n orientation,\n promptForNewTabName,\n tabs: tabDescriptors(source) ?? getChildren(),\n });\n\n activeRef.current = activeTabIndex;\n\n useImperativeHandle(\n forwardedRef,\n () =>\n ({\n focus: () => {\n const { current: tabstrip } = root;\n if (tabstrip) {\n const selectedTab = tabstrip.querySelector(\n '.saltTab[aria-selected=\"true\"]'\n ) as HTMLElement;\n if (selectedTab) {\n selectedTab.focus();\n }\n }\n },\n } as FocusAPI),\n []\n );\n\n const handleAddTabClick = useCallback(() => {\n if (!collectionHook.isControlled) {\n addTab();\n }\n onAddTab?.();\n }, [collectionHook.isControlled, onAddTab, addTab]);\n\n const selectedIndex = useRef(activeTabIndex);\n const focusedTabIndex = tabstripHook.highlightedIdx;\n const handleOverflowSelectionChange: SelectionChangeHandler<OverflowItem> =\n useCallback(\n (e, tab) => {\n if (tab !== null) {\n activateTab(tab.index);\n }\n },\n [activateTab]\n );\n\n const handleKeydownOverflowMenu = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n tabstripHook.navigationProps?.onKeyDown?.(e);\n },\n [tabstripHook.navigationProps]\n );\n\n const handleOverflowMenuOpen = useCallback(\n (open: boolean) => {\n setShowOverflowMenu(open);\n },\n [setShowOverflowMenu]\n );\n\n const handleMouseDown = useCallback(\n (evt: MouseEvent<HTMLDivElement>) => {\n onMouseDown?.(evt);\n tabstripHookMouseDown?.(evt);\n },\n [onMouseDown, tabstripHookMouseDown]\n );\n\n // shouldn't we use ref for this ?\n useIsomorphicLayoutEffect(() => {\n // We don't care about changes to overflowedItems here, the overflowObserver\n // always does the right thing. We only care about changes to selected tab\n if (selectedIndex.current !== activeTabIndex && overflowMenuProp) {\n // We might want to do this only if the selected tab is overflowed ?\n // TODO\n // resetOverflow();\n selectedIndex.current = activeTabIndex;\n }\n }, [overflowMenuProp, activeTabIndex]);\n\n useIsomorphicLayoutEffect(() => {\n if (React.Children.count(children) !== childCount.current) {\n childCount.current = React.Children.count(children);\n // TODO\n // resetOverflow();\n }\n }, [children]);\n\n useIsomorphicLayoutEffect(() => {\n if (focusedTabIndex !== activeTabIndex && focusedTabIndex !== -1) {\n tabstripHook.focusTab(activeTabIndex);\n }\n\n // We only want the effect to run when value changes, not every time focusedTabIndex changes.\n // It doesn't matter if focusedTabIndex is stale in between calls - it will be correct when\n // value changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeTabIndex]);\n\n const renderContent = () => {\n const content = collectionHook.data\n .filter((item) => !item.isOverflowIndicator && !item.isInjectedItem)\n .map((item: OverflowItem, index: number) => {\n // TODO sort out typoing\n const tab = item.source as unknown as TabDescriptor;\n const element = item.element as TabElement;\n\n const selected = index === activeTabIndex;\n const focusVisible = tabstripHook.focusVisible === index;\n const overflowed =\n overflowedItems.findIndex(\n (item: OverflowItem) => item.index === index\n ) !== -1;\n\n const tabIsBeingEdited = tabstripHook.editing && selected;\n const tabIndex = tabIsBeingEdited\n ? undefined\n : selected && !tabstripHook.focusIsWithinComponent\n ? 0\n : -1;\n\n const baseProps: Partial<TabProps> &\n responsiveDataAttributes & {\n ref?: RefObject<HTMLDivElement>;\n key: string | number;\n } = {\n \"data-index\": index,\n \"data-priority\": item.priority,\n \"data-overflowed\": overflowed ? true : undefined,\n ...tabstripHook.navigationProps,\n id: item.id,\n key: index,\n onMouseDown: handleMouseDown,\n tabIndex,\n };\n\n const tabProps = {\n ...tabstripHook.tabProps,\n closeable: item.closeable,\n dragging: tabstripHook.draggedItemIndex === index,\n editable: item.editable,\n editing: tabIsBeingEdited,\n focusVisible,\n index,\n onClose: item.closeable ? tabstripHook.closeTab : undefined,\n orientation,\n selected,\n } as Partial<TabProps>;\n\n if (React.isValidElement(element)) {\n if (element.type === Tab) {\n return React.cloneElement(element, { ...baseProps, ...tabProps });\n } else {\n return React.cloneElement(element, baseProps);\n }\n } else {\n //@ts-ignore tab can only be a TabDescriptor here, but TypeScript seems to think it can be a number\n return React.createElement(Tab, {\n ...baseProps,\n ...tabProps,\n label: tab.label,\n });\n }\n });\n\n const overflowCount = overflowedItems.length;\n const draggingActiveTab = tabstripHook.draggedItemIndex === activeTabIndex;\n const showOverflow =\n (tabstripHook.revealOverflowedItems && !draggingActiveTab) ||\n showOverflowMenu;\n const showTooltip = tabstripHook.revealOverflowedItems && draggingActiveTab;\n const overflowIndicator = collectionHook.data.find(\n (i) => i.isOverflowIndicator\n );\n const [injectedItem] = collectionHook.data.filter((i) => i.isInjectedItem);\n\n if (overflowIndicator) {\n content.push(\n <Tooltip\n content=\"Active Tab cannot be moved into overflow list\"\n open\n disabled={!showTooltip}\n status=\"warning\"\n key=\"tooltip\"\n hideArrow\n >\n <Dropdown<OverflowItem>\n className={clsx(withBaseName(\"overflowMenu\"), {\n [withBaseName(\"overflowMenu-open\")]: showOverflow,\n })}\n ListProps={{\n className: clsx({\n [withBaseName(\"overflowMenu-dropTarget\")]:\n tabstripHook.revealOverflowedItems,\n }),\n }}\n data-overflow-indicator\n data-priority={0}\n id={overflowIndicator.id}\n isOpen={showOverflow}\n key=\"overflow\"\n onOpenChange={handleOverflowMenuOpen}\n onKeyDown={handleKeydownOverflowMenu}\n onSelectionChange={handleOverflowSelectionChange}\n placement=\"bottom-end\"\n source={overflowedItems}\n selected={null}\n triggerComponent={\n <Button\n aria-label={`Tabs overflow menu ${overflowCount} item${\n overflowCount === 1 ? \"\" : \"s\"\n }`}\n variant=\"secondary\"\n tabIndex={-1}\n >\n <OverflowMenuIcon />\n </Button>\n }\n width=\"auto\"\n />\n </Tooltip>\n );\n }\n\n if (injectedItem) {\n content.push(\n <Button\n {...tabstripHook.navigationProps}\n aria-label={ADD_TAB_LABEL}\n data-priority={injectedItem.priority}\n data-overflowed={injectedItem.overflowed}\n id={injectedItem.id}\n key=\"addButton\"\n onClick={handleAddTabClick}\n variant=\"secondary\"\n tabIndex={-1}\n >\n <AddIcon />\n </Button>\n );\n }\n\n return content;\n };\n\n const selectedTabOverflowed = overflowedItems.some(\n (item: OverflowItem) => item.index === activeTabIndex\n );\n const className = clsx(\n withBaseName(),\n withBaseName(orientation),\n classNameProp,\n {\n [withBaseName(\"centered\")]: centered,\n [withBaseName(\"draggingTab\")]: tabstripHook.isDragging,\n [withBaseName(\"tertiary\")]: variant === \"tertiary\",\n }\n );\n\n const { id: selectedTabId } = collectionHook.data[activeTabIndex];\n\n return (\n <div\n {...htmlAttributes}\n {...tabstripHook.containerProps}\n className={className}\n id={tabstripId}\n ref={root}\n role=\"tablist\"\n >\n <div className={withBaseName(\"inner\")} ref={innerContainerRef}>\n {renderContent()}\n </div>\n {showActivationIndicator ? (\n <TabActivationIndicator\n hideThumb={selectedTabOverflowed || tabstripHook.isDragging}\n orientation={orientation}\n tabId={selectedTabId}\n />\n ) : null}\n {tabstripHook.draggable}\n </div>\n );\n});\n\nTabstrip.displayName = \"Tabstrip\";\n"],"names":["Tabstrip","_a","item"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useForkRef } from '@salt-ds/core';
3
- import cx from 'classnames';
3
+ import { clsx } from 'clsx';
4
4
  import { forwardRef, useCallback } from 'react';
5
5
  import { Portal } from '../../portal/Portal.js';
6
6
  import './Draggable.css.js';
@@ -23,7 +23,7 @@ const Draggable = forwardRef(function Draggable2({ wrapperClassName, element, re
23
23
  const { left, top, width, height } = rect;
24
24
  return /* @__PURE__ */ jsx(Portal, {
25
25
  children: /* @__PURE__ */ jsx("div", {
26
- className: cx("saltDraggable", ...makeClassNames(wrapperClassName)),
26
+ className: clsx("saltDraggable", ...makeClassNames(wrapperClassName)),
27
27
  ref: forkedRef,
28
28
  style: { left, top, width, height }
29
29
  })
@@ -1 +1 @@
1
- {"version":3,"file":"Draggable.js","sources":["../src/tabs/drag-drop/Draggable.tsx"],"sourcesContent":["import { useForkRef } from \"@salt-ds/core\";\nimport cx from \"classnames\";\nimport { forwardRef, MutableRefObject, useCallback } from \"react\";\nimport { Rect } from \"./dragDropTypes\";\nimport { Portal } from \"../../portal\";\n\nimport \"./Draggable.css\";\n\nconst makeClassNames = (classNames: string) =>\n classNames.split(\" \").map((className) => `saltDraggable-${className}`);\nexport const Draggable = forwardRef<\n HTMLDivElement,\n { wrapperClassName: string; element: HTMLElement; rect: Rect; scale?: number }\n>(function Draggable(\n { wrapperClassName, element, rect, scale = 1 },\n forwardedRef\n) {\n const callbackRef = useCallback(\n (el: HTMLDivElement) => {\n if (el) {\n el.innerHTML = \"\";\n el.appendChild(element);\n if (scale !== 1) {\n el.style.transform = `scale(${scale},${scale})`;\n }\n }\n },\n [element, scale]\n );\n const forkedRef = useForkRef<HTMLDivElement>(forwardedRef, callbackRef);\n\n const { left, top, width, height } = rect;\n\n return (\n <Portal>\n <div\n className={cx(\"saltDraggable\", ...makeClassNames(wrapperClassName))}\n ref={forkedRef}\n style={{ left, top, width, height }}\n />\n </Portal>\n );\n});\n\nexport const createDragSpacer = (\n transitioning?: MutableRefObject<boolean>\n): HTMLElement => {\n const spacer = document.createElement(\"div\");\n spacer.className = \"saltDraggable-spacer\";\n if (transitioning) {\n spacer.addEventListener(\"transitionend\", () => {\n transitioning.current = false;\n });\n }\n return spacer;\n};\n"],"names":["Draggable"],"mappings":";;;;;;;AAQA,MAAM,cAAA,GAAiB,CAAC,UAAA,KACtB,UAAW,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,GAAI,CAAA,CAAC,SAAc,KAAA,CAAA,cAAA,EAAiB,SAAW,CAAA,CAAA,CAAA,CAAA;AAC1D,MAAA,SAAA,GAAY,UAGvB,CAAA,SAASA,UACT,CAAA,EAAE,gBAAkB,EAAA,OAAA,EAAS,IAAM,EAAA,KAAA,GAAQ,CAAE,EAAA,EAC7C,YACA,EAAA;AACA,EAAA,MAAM,WAAc,GAAA,WAAA;AAAA,IAClB,CAAC,EAAuB,KAAA;AACtB,MAAA,IAAI,EAAI,EAAA;AACN,QAAA,EAAA,CAAG,SAAY,GAAA,EAAA,CAAA;AACf,QAAA,EAAA,CAAG,YAAY,OAAO,CAAA,CAAA;AACtB,QAAA,IAAI,UAAU,CAAG,EAAA;AACf,UAAG,EAAA,CAAA,KAAA,CAAM,SAAY,GAAA,CAAA,MAAA,EAAS,KAAS,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,SACzC;AAAA,OACF;AAAA,KACF;AAAA,IACA,CAAC,SAAS,KAAK,CAAA;AAAA,GACjB,CAAA;AACA,EAAM,MAAA,SAAA,GAAY,UAA2B,CAAA,YAAA,EAAc,WAAW,CAAA,CAAA;AAEtE,EAAA,MAAM,EAAE,IAAA,EAAM,GAAK,EAAA,KAAA,EAAO,QAAW,GAAA,IAAA,CAAA;AAErC,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA;AAAA,IACC,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,MACC,WAAW,EAAG,CAAA,eAAA,EAAiB,GAAG,cAAA,CAAe,gBAAgB,CAAC,CAAA;AAAA,MAClE,GAAK,EAAA,SAAA;AAAA,MACL,KAAO,EAAA,EAAE,IAAM,EAAA,GAAA,EAAK,OAAO,MAAO,EAAA;AAAA,KACpC,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ,CAAC,EAAA;AAEY,MAAA,gBAAA,GAAmB,CAC9B,aACgB,KAAA;AAChB,EAAM,MAAA,MAAA,GAAS,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC3C,EAAA,MAAA,CAAO,SAAY,GAAA,sBAAA,CAAA;AACnB,EAAA,IAAI,aAAe,EAAA;AACjB,IAAO,MAAA,CAAA,gBAAA,CAAiB,iBAAiB,MAAM;AAC7C,MAAA,aAAA,CAAc,OAAU,GAAA,KAAA,CAAA;AAAA,KACzB,CAAA,CAAA;AAAA,GACH;AACA,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"Draggable.js","sources":["../src/tabs/drag-drop/Draggable.tsx"],"sourcesContent":["import { useForkRef } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { forwardRef, MutableRefObject, useCallback } from \"react\";\nimport { Rect } from \"./dragDropTypes\";\nimport { Portal } from \"../../portal\";\n\nimport \"./Draggable.css\";\n\nconst makeClassNames = (classNames: string) =>\n classNames.split(\" \").map((className) => `saltDraggable-${className}`);\nexport const Draggable = forwardRef<\n HTMLDivElement,\n { wrapperClassName: string; element: HTMLElement; rect: Rect; scale?: number }\n>(function Draggable(\n { wrapperClassName, element, rect, scale = 1 },\n forwardedRef\n) {\n const callbackRef = useCallback(\n (el: HTMLDivElement) => {\n if (el) {\n el.innerHTML = \"\";\n el.appendChild(element);\n if (scale !== 1) {\n el.style.transform = `scale(${scale},${scale})`;\n }\n }\n },\n [element, scale]\n );\n const forkedRef = useForkRef<HTMLDivElement>(forwardedRef, callbackRef);\n\n const { left, top, width, height } = rect;\n\n return (\n <Portal>\n <div\n className={clsx(\"saltDraggable\", ...makeClassNames(wrapperClassName))}\n ref={forkedRef}\n style={{ left, top, width, height }}\n />\n </Portal>\n );\n});\n\nexport const createDragSpacer = (\n transitioning?: MutableRefObject<boolean>\n): HTMLElement => {\n const spacer = document.createElement(\"div\");\n spacer.className = \"saltDraggable-spacer\";\n if (transitioning) {\n spacer.addEventListener(\"transitionend\", () => {\n transitioning.current = false;\n });\n }\n return spacer;\n};\n"],"names":["Draggable"],"mappings":";;;;;;;AAQA,MAAM,cAAA,GAAiB,CAAC,UAAA,KACtB,UAAW,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,GAAI,CAAA,CAAC,SAAc,KAAA,CAAA,cAAA,EAAiB,SAAW,CAAA,CAAA,CAAA,CAAA;AAC1D,MAAA,SAAA,GAAY,UAGvB,CAAA,SAASA,UACT,CAAA,EAAE,gBAAkB,EAAA,OAAA,EAAS,IAAM,EAAA,KAAA,GAAQ,CAAE,EAAA,EAC7C,YACA,EAAA;AACA,EAAA,MAAM,WAAc,GAAA,WAAA;AAAA,IAClB,CAAC,EAAuB,KAAA;AACtB,MAAA,IAAI,EAAI,EAAA;AACN,QAAA,EAAA,CAAG,SAAY,GAAA,EAAA,CAAA;AACf,QAAA,EAAA,CAAG,YAAY,OAAO,CAAA,CAAA;AACtB,QAAA,IAAI,UAAU,CAAG,EAAA;AACf,UAAG,EAAA,CAAA,KAAA,CAAM,SAAY,GAAA,CAAA,MAAA,EAAS,KAAS,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,SACzC;AAAA,OACF;AAAA,KACF;AAAA,IACA,CAAC,SAAS,KAAK,CAAA;AAAA,GACjB,CAAA;AACA,EAAM,MAAA,SAAA,GAAY,UAA2B,CAAA,YAAA,EAAc,WAAW,CAAA,CAAA;AAEtE,EAAA,MAAM,EAAE,IAAA,EAAM,GAAK,EAAA,KAAA,EAAO,QAAW,GAAA,IAAA,CAAA;AAErC,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA;AAAA,IACC,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,MACC,WAAW,IAAK,CAAA,eAAA,EAAiB,GAAG,cAAA,CAAe,gBAAgB,CAAC,CAAA;AAAA,MACpE,GAAK,EAAA,SAAA;AAAA,MACL,KAAO,EAAA,EAAE,IAAM,EAAA,GAAA,EAAK,OAAO,MAAO,EAAA;AAAA,KACpC,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ,CAAC,EAAA;AAEY,MAAA,gBAAA,GAAmB,CAC9B,aACgB,KAAA;AAChB,EAAM,MAAA,MAAA,GAAS,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC3C,EAAA,MAAA,CAAO,SAAY,GAAA,sBAAA,CAAA;AACnB,EAAA,IAAI,aAAe,EAAA;AACjB,IAAO,MAAA,CAAA,gBAAA,CAAiB,iBAAiB,MAAM;AAC7C,MAAA,aAAA,CAAc,OAAU,GAAA,KAAA,CAAA;AAAA,KACzB,CAAA,CAAA;AAAA,GACH;AACA,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
@@ -2,6 +2,7 @@ import { useState, useRef, useCallback, useEffect } from 'react';
2
2
  import '@salt-ds/core';
3
3
  import 'react/jsx-runtime';
4
4
  import { useResizeObserver, WidthOnly } from '../responsive/useResizeObserver.js';
5
+ import '../utils/useFloatingUI.js';
5
6
 
6
7
  const MEASUREMENTS = {
7
8
  horizontal: {
@@ -1 +1 @@
1
- {"version":3,"file":"useActivationIndicator.js","sources":["../src/tabs/useActivationIndicator.ts"],"sourcesContent":["import { RefObject, useCallback, useEffect, useRef, useState } from \"react\";\nimport { orientationType } from \"../responsive\";\nimport { useResizeObserver, WidthOnly } from \"../responsive\";\n\ntype activationIndicatorStyles = {\n height?: number;\n left?: number;\n top?: number;\n width?: number;\n hasChanged?: boolean;\n};\n\nconst MEASUREMENTS = {\n horizontal: {\n pos: \"left\" as keyof activationIndicatorStyles,\n size: \"width\" as keyof activationIndicatorStyles,\n },\n vertical: {\n pos: \"top\" as keyof activationIndicatorStyles,\n size: \"height\" as keyof activationIndicatorStyles,\n },\n};\n\n// Overflow can affect tab positions, so we recalculate when it changes\nexport function useActivationIndicator({\n rootRef,\n tabId,\n orientation,\n}: {\n rootRef: RefObject<HTMLDivElement | null>;\n tabId?: string;\n orientation: orientationType;\n}): activationIndicatorStyles {\n const [style, setStyle] = useState<activationIndicatorStyles>({\n left: 0,\n width: 0,\n });\n // Keep style in a ref, so style is not a dependency for createIndicatorStyle, which in turn\n // means our useEffect below will re-run only when the tab changes, not after every style change\n // as well.\n\n const styleRef = useRef(style);\n\n const getTabPos = useCallback(() => {\n const { pos, size } = MEASUREMENTS[orientation];\n return [pos, size];\n }, [orientation]);\n\n const createIndicatorStyle = useCallback(\n (tabElement: HTMLElement | null): activationIndicatorStyles => {\n if (tabElement) {\n const tabRect = tabElement.getBoundingClientRect() as any;\n if (rootRef.current && tabRect) {\n const rootRect = rootRef.current.getBoundingClientRect() as any;\n const [pos, size] = getTabPos();\n const { [pos]: existingPos, [size]: existingSize } = styleRef.current;\n const newPos = tabRect[pos] - rootRect[pos];\n const newSize = tabRect[size];\n\n return {\n [pos]: newPos,\n [size]: newSize,\n hasChanged: newPos !== existingPos || newSize !== existingSize,\n };\n }\n }\n return {};\n },\n [orientation, rootRef]\n );\n\n const onResize = useCallback(() => {\n requestAnimationFrame(() => {\n if (tabId) {\n const tabEl = document.getElementById(tabId);\n const { hasChanged, ...newStyle } = createIndicatorStyle(tabEl);\n if (hasChanged) {\n setStyle(newStyle);\n }\n }\n });\n }, [createIndicatorStyle, tabId]);\n\n useEffect(() => {\n if (tabId) {\n // The timeout is employed in case selectedTab has been selected from\n // overflow menu. In this case, the tab is only restored to visibility\n // in the render cycle after selection.\n setTimeout(() => {\n const tabEl = document.getElementById(tabId);\n const { hasChanged, ...newStyle } = createIndicatorStyle(tabEl);\n if (hasChanged) {\n setStyle((styleRef.current = newStyle));\n }\n }, 50);\n }\n }, [createIndicatorStyle, tabId]);\n\n useResizeObserver(rootRef, WidthOnly, onResize);\n\n return style;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useActivationIndicator.js","sources":["../src/tabs/useActivationIndicator.ts"],"sourcesContent":["import { RefObject, useCallback, useEffect, useRef, useState } from \"react\";\nimport { orientationType } from \"../responsive\";\nimport { useResizeObserver, WidthOnly } from \"../responsive\";\n\ntype activationIndicatorStyles = {\n height?: number;\n left?: number;\n top?: number;\n width?: number;\n hasChanged?: boolean;\n};\n\nconst MEASUREMENTS = {\n horizontal: {\n pos: \"left\" as keyof activationIndicatorStyles,\n size: \"width\" as keyof activationIndicatorStyles,\n },\n vertical: {\n pos: \"top\" as keyof activationIndicatorStyles,\n size: \"height\" as keyof activationIndicatorStyles,\n },\n};\n\n// Overflow can affect tab positions, so we recalculate when it changes\nexport function useActivationIndicator({\n rootRef,\n tabId,\n orientation,\n}: {\n rootRef: RefObject<HTMLDivElement | null>;\n tabId?: string;\n orientation: orientationType;\n}): activationIndicatorStyles {\n const [style, setStyle] = useState<activationIndicatorStyles>({\n left: 0,\n width: 0,\n });\n // Keep style in a ref, so style is not a dependency for createIndicatorStyle, which in turn\n // means our useEffect below will re-run only when the tab changes, not after every style change\n // as well.\n\n const styleRef = useRef(style);\n\n const getTabPos = useCallback(() => {\n const { pos, size } = MEASUREMENTS[orientation];\n return [pos, size];\n }, [orientation]);\n\n const createIndicatorStyle = useCallback(\n (tabElement: HTMLElement | null): activationIndicatorStyles => {\n if (tabElement) {\n const tabRect = tabElement.getBoundingClientRect() as any;\n if (rootRef.current && tabRect) {\n const rootRect = rootRef.current.getBoundingClientRect() as any;\n const [pos, size] = getTabPos();\n const { [pos]: existingPos, [size]: existingSize } = styleRef.current;\n const newPos = tabRect[pos] - rootRect[pos];\n const newSize = tabRect[size];\n\n return {\n [pos]: newPos,\n [size]: newSize,\n hasChanged: newPos !== existingPos || newSize !== existingSize,\n };\n }\n }\n return {};\n },\n [orientation, rootRef]\n );\n\n const onResize = useCallback(() => {\n requestAnimationFrame(() => {\n if (tabId) {\n const tabEl = document.getElementById(tabId);\n const { hasChanged, ...newStyle } = createIndicatorStyle(tabEl);\n if (hasChanged) {\n setStyle(newStyle);\n }\n }\n });\n }, [createIndicatorStyle, tabId]);\n\n useEffect(() => {\n if (tabId) {\n // The timeout is employed in case selectedTab has been selected from\n // overflow menu. In this case, the tab is only restored to visibility\n // in the render cycle after selection.\n setTimeout(() => {\n const tabEl = document.getElementById(tabId);\n const { hasChanged, ...newStyle } = createIndicatorStyle(tabEl);\n if (hasChanged) {\n setStyle((styleRef.current = newStyle));\n }\n }, 50);\n }\n }, [createIndicatorStyle, tabId]);\n\n useResizeObserver(rootRef, WidthOnly, onResize);\n\n return style;\n}\n"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { useControlled, useIsomorphicLayoutEffect } from '@salt-ds/core';
2
2
  import { useRef, useState, useCallback } from 'react';
3
3
  import '../common-hooks/collectionProvider.js';
4
4
  import { Home, End, ArrowLeft, ArrowRight, ArrowUp, ArrowDown } from '../common-hooks/keyUtils.js';
5
+ import '../utils/useFloatingUI.js';
5
6
  import 'react/jsx-runtime';
6
7
  import '../responsive/useResizeObserver.js';
7
8