@salt-ds/lab 1.0.0-alpha.73 → 1.0.0-alpha.75

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 (454) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/css/salt-lab.css +332 -18
  3. package/dist-cjs/app-header/AppHeader.js +5 -1
  4. package/dist-cjs/app-header/AppHeader.js.map +1 -1
  5. package/dist-cjs/breadcrumbs/Breadcrumb.js.map +1 -1
  6. package/dist-cjs/breadcrumbs/Breadcrumbs.js +11 -2
  7. package/dist-cjs/breadcrumbs/Breadcrumbs.js.map +1 -1
  8. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js +3 -6
  9. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  10. package/dist-cjs/button-bar/ButtonBar.js +1 -1
  11. package/dist-cjs/button-bar/ButtonBar.js.map +1 -1
  12. package/dist-cjs/button-bar/internal/DescendantContext.js.map +1 -1
  13. package/dist-cjs/calendar/useCalendarSelection.js +2 -2
  14. package/dist-cjs/calendar/useCalendarSelection.js.map +1 -1
  15. package/dist-cjs/cascading-menu/CascadingMenu.js +19 -13
  16. package/dist-cjs/cascading-menu/CascadingMenu.js.map +1 -1
  17. package/dist-cjs/cascading-menu/CascadingMenuItem.js +2 -4
  18. package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
  19. package/dist-cjs/cascading-menu/CascadingMenuList.js +1 -2
  20. package/dist-cjs/cascading-menu/CascadingMenuList.js.map +1 -1
  21. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js +4 -1
  22. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  23. package/dist-cjs/cascading-menu/internal/useMouseHandlers.js +1 -1
  24. package/dist-cjs/cascading-menu/internal/useMouseHandlers.js.map +1 -1
  25. package/dist-cjs/cascading-menu/internal/useRefsManager.js +3 -1
  26. package/dist-cjs/cascading-menu/internal/useRefsManager.js.map +1 -1
  27. package/dist-cjs/collapsible/Collapsible.js +47 -0
  28. package/dist-cjs/collapsible/Collapsible.js.map +1 -0
  29. package/dist-cjs/collapsible/CollapsibleContext.js +23 -0
  30. package/dist-cjs/collapsible/CollapsibleContext.js.map +1 -0
  31. package/dist-cjs/collapsible/CollapsiblePanel.css.js +6 -0
  32. package/dist-cjs/collapsible/CollapsiblePanel.css.js.map +1 -0
  33. package/dist-cjs/collapsible/CollapsiblePanel.js +42 -0
  34. package/dist-cjs/collapsible/CollapsiblePanel.js.map +1 -0
  35. package/dist-cjs/collapsible/CollapsibleTrigger.js +35 -0
  36. package/dist-cjs/collapsible/CollapsibleTrigger.js.map +1 -0
  37. package/dist-cjs/color-chooser/AlphaInputField.js +1 -1
  38. package/dist-cjs/color-chooser/AlphaInputField.js.map +1 -1
  39. package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
  40. package/dist-cjs/color-chooser/DictTabs.js +1 -1
  41. package/dist-cjs/color-chooser/DictTabs.js.map +1 -1
  42. package/dist-cjs/color-chooser/RGBAInputField.js +2 -2
  43. package/dist-cjs/color-chooser/RGBAInputField.js.map +1 -1
  44. package/dist-cjs/combo-box/useCombobox.js.map +1 -1
  45. package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js +1 -1
  46. package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  47. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js +1 -2
  48. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  49. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js +0 -4
  50. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  51. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js +4 -1
  52. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  53. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js +7 -2
  54. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  55. package/dist-cjs/common-hooks/useAutoSizer.js +0 -9
  56. package/dist-cjs/common-hooks/useAutoSizer.js.map +1 -1
  57. package/dist-cjs/common-hooks/useCollapsibleGroups.js +37 -49
  58. package/dist-cjs/common-hooks/useCollapsibleGroups.js.map +1 -1
  59. package/dist-cjs/common-hooks/useCollectionItems.js +6 -11
  60. package/dist-cjs/common-hooks/useCollectionItems.js.map +1 -1
  61. package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js +7 -7
  62. package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
  63. package/dist-cjs/common-hooks/useSelection.js +1 -1
  64. package/dist-cjs/common-hooks/useSelection.js.map +1 -1
  65. package/dist-cjs/common-hooks/useTypeahead.js +2 -2
  66. package/dist-cjs/common-hooks/useTypeahead.js.map +1 -1
  67. package/dist-cjs/common-hooks/useViewportTracking.js +1 -1
  68. package/dist-cjs/common-hooks/useViewportTracking.js.map +1 -1
  69. package/dist-cjs/common-hooks/utils/collection-item-utils.js +1 -1
  70. package/dist-cjs/common-hooks/utils/collection-item-utils.js.map +1 -1
  71. package/dist-cjs/contact-details/ContactAction.js +1 -0
  72. package/dist-cjs/contact-details/ContactAction.js.map +1 -1
  73. package/dist-cjs/contact-details/ContactSecondaryInfo.js +1 -1
  74. package/dist-cjs/contact-details/ContactSecondaryInfo.js.map +1 -1
  75. package/dist-cjs/contact-details/internal/ContactDetailsContext.js +2 -2
  76. package/dist-cjs/contact-details/internal/ContactDetailsContext.js.map +1 -1
  77. package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js +10 -1
  78. package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  79. package/dist-cjs/content-status/ContentStatus.js.map +1 -1
  80. package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
  81. package/dist-cjs/date-input/DateInput.css.js +1 -1
  82. package/dist-cjs/date-picker/useFocusOut.js +1 -1
  83. package/dist-cjs/date-picker/useFocusOut.js.map +1 -1
  84. package/dist-cjs/dropdown/DropdownButton.js.map +1 -1
  85. package/dist-cjs/dropdown/useDropdown.js.map +1 -1
  86. package/dist-cjs/index.js +36 -0
  87. package/dist-cjs/index.js.map +1 -1
  88. package/dist-cjs/input-legacy/InputLegacy.css.js +1 -1
  89. package/dist-cjs/list/List.js +1 -1
  90. package/dist-cjs/list/List.js.map +1 -1
  91. package/dist-cjs/list/ListItem.css.js +1 -1
  92. package/dist-cjs/list/ListItem.js +2 -1
  93. package/dist-cjs/list/ListItem.js.map +1 -1
  94. package/dist-cjs/list/keyset.js.map +1 -1
  95. package/dist-cjs/list/useList.js +1 -3
  96. package/dist-cjs/list/useList.js.map +1 -1
  97. package/dist-cjs/list/useListHeight.js +3 -3
  98. package/dist-cjs/list/useListHeight.js.map +1 -1
  99. package/dist-cjs/list-deprecated/List.js +4 -1
  100. package/dist-cjs/list-deprecated/List.js.map +1 -1
  101. package/dist-cjs/list-deprecated/ListBase.js +18 -17
  102. package/dist-cjs/list-deprecated/ListBase.js.map +1 -1
  103. package/dist-cjs/list-deprecated/ListItem.js.map +1 -1
  104. package/dist-cjs/list-deprecated/ListItemBase.js +1 -0
  105. package/dist-cjs/list-deprecated/ListItemBase.js.map +1 -1
  106. package/dist-cjs/list-deprecated/internal/helpers.js.map +1 -1
  107. package/dist-cjs/list-deprecated/internal/scrollIntoView.js +2 -2
  108. package/dist-cjs/list-deprecated/internal/scrollIntoView.js.map +1 -1
  109. package/dist-cjs/list-deprecated/internal/useListAutoSizer.js.map +1 -1
  110. package/dist-cjs/list-deprecated/itemToString.js.map +1 -1
  111. package/dist-cjs/list-deprecated/useList.js +3 -10
  112. package/dist-cjs/list-deprecated/useList.js.map +1 -1
  113. package/dist-cjs/list-deprecated/useListItem.js.map +1 -1
  114. package/dist-cjs/list-next/ListNext.js.map +1 -1
  115. package/dist-cjs/metric/MetricContent.js +1 -0
  116. package/dist-cjs/metric/MetricContent.js.map +1 -1
  117. package/dist-cjs/number-input/NumberInput.css.js +1 -1
  118. package/dist-cjs/number-input/internal/utils.js +1 -1
  119. package/dist-cjs/number-input/internal/utils.js.map +1 -1
  120. package/dist-cjs/query-input/QueryInput.js +10 -10
  121. package/dist-cjs/query-input/QueryInput.js.map +1 -1
  122. package/dist-cjs/query-input/internal/QueryInputBody.js +1 -1
  123. package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
  124. package/dist-cjs/query-input/internal/SearchList.js +1 -1
  125. package/dist-cjs/query-input/internal/SearchList.js.map +1 -1
  126. package/dist-cjs/query-input/internal/usePopperStatus.js +2 -2
  127. package/dist-cjs/query-input/internal/usePopperStatus.js.map +1 -1
  128. package/dist-cjs/query-input/useQueryInput.js +6 -6
  129. package/dist-cjs/query-input/useQueryInput.js.map +1 -1
  130. package/dist-cjs/responsive/OverflowReducer.js +0 -2
  131. package/dist-cjs/responsive/OverflowReducer.js.map +1 -1
  132. package/dist-cjs/responsive/overflowUtils.js +6 -3
  133. package/dist-cjs/responsive/overflowUtils.js.map +1 -1
  134. package/dist-cjs/responsive/useDynamicCollapse.js +6 -3
  135. package/dist-cjs/responsive/useDynamicCollapse.js.map +1 -1
  136. package/dist-cjs/responsive/useOverflow.js +2 -2
  137. package/dist-cjs/responsive/useOverflow.js.map +1 -1
  138. package/dist-cjs/responsive/useOverflowCollectionItems.js +1 -1
  139. package/dist-cjs/responsive/useOverflowCollectionItems.js.map +1 -1
  140. package/dist-cjs/responsive/useOverflowLayout.js +1 -1
  141. package/dist-cjs/responsive/useOverflowLayout.js.map +1 -1
  142. package/dist-cjs/responsive/useReclaimSpace.js +1 -1
  143. package/dist-cjs/responsive/useReclaimSpace.js.map +1 -1
  144. package/dist-cjs/responsive/useResizeObserver.js +7 -2
  145. package/dist-cjs/responsive/useResizeObserver.js.map +1 -1
  146. package/dist-cjs/search-input/SearchInput.js.map +1 -1
  147. package/dist-cjs/table/TBody.js +32 -0
  148. package/dist-cjs/table/TBody.js.map +1 -0
  149. package/dist-cjs/table/TD.js +30 -0
  150. package/dist-cjs/table/TD.js.map +1 -0
  151. package/dist-cjs/table/TFoot.js +45 -0
  152. package/dist-cjs/table/TFoot.js.map +1 -0
  153. package/dist-cjs/table/TH.js +30 -0
  154. package/dist-cjs/table/TH.js.map +1 -0
  155. package/dist-cjs/table/THead.js +45 -0
  156. package/dist-cjs/table/THead.js.map +1 -0
  157. package/dist-cjs/table/TR.js +30 -0
  158. package/dist-cjs/table/TR.js.map +1 -0
  159. package/dist-cjs/table/Table.css.js +6 -0
  160. package/dist-cjs/table/Table.css.js.map +1 -0
  161. package/dist-cjs/table/Table.js +47 -0
  162. package/dist-cjs/table/Table.js.map +1 -0
  163. package/dist-cjs/tabs/TabActivationIndicator.css.js +1 -1
  164. package/dist-cjs/tabs/Tabs.js +0 -8
  165. package/dist-cjs/tabs/Tabs.js.map +1 -1
  166. package/dist-cjs/tabs/drag-drop/useDragSpacers.js +6 -7
  167. package/dist-cjs/tabs/drag-drop/useDragSpacers.js.map +1 -1
  168. package/dist-cjs/tabs/useActivationIndicator.js.map +1 -1
  169. package/dist-cjs/tabs-next/TabNextTrigger.js +2 -1
  170. package/dist-cjs/tabs-next/TabNextTrigger.js.map +1 -1
  171. package/dist-cjs/tabs-next/hooks/useOverflow.js +3 -5
  172. package/dist-cjs/tabs-next/hooks/useOverflow.js.map +1 -1
  173. package/dist-cjs/tokenized-input/useTokenizedInput.js +5 -5
  174. package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
  175. package/dist-cjs/tokenized-input-next/TokenizedInputNext.css.js +1 -1
  176. package/dist-cjs/tree/Tree.js.map +1 -1
  177. package/dist-cjs/vertical-navigation/SubMenuContext.js +34 -0
  178. package/dist-cjs/vertical-navigation/SubMenuContext.js.map +1 -0
  179. package/dist-cjs/vertical-navigation/VerticalNavigation.css.js +6 -0
  180. package/dist-cjs/vertical-navigation/VerticalNavigation.css.js.map +1 -0
  181. package/dist-cjs/vertical-navigation/VerticalNavigation.js +34 -0
  182. package/dist-cjs/vertical-navigation/VerticalNavigation.js.map +1 -0
  183. package/dist-cjs/vertical-navigation/VerticalNavigationItem.js +48 -0
  184. package/dist-cjs/vertical-navigation/VerticalNavigationItem.js.map +1 -0
  185. package/dist-cjs/vertical-navigation/VerticalNavigationItemContent.css.js +6 -0
  186. package/dist-cjs/vertical-navigation/VerticalNavigationItemContent.css.js.map +1 -0
  187. package/dist-cjs/vertical-navigation/VerticalNavigationItemContent.js +83 -0
  188. package/dist-cjs/vertical-navigation/VerticalNavigationItemContent.js.map +1 -0
  189. package/dist-cjs/vertical-navigation/VerticalNavigationItemExpansionIcon.js +29 -0
  190. package/dist-cjs/vertical-navigation/VerticalNavigationItemExpansionIcon.js.map +1 -0
  191. package/dist-cjs/vertical-navigation/VerticalNavigationItemLabel.css.js +6 -0
  192. package/dist-cjs/vertical-navigation/VerticalNavigationItemLabel.css.js.map +1 -0
  193. package/dist-cjs/vertical-navigation/VerticalNavigationItemLabel.js +24 -0
  194. package/dist-cjs/vertical-navigation/VerticalNavigationItemLabel.js.map +1 -0
  195. package/dist-cjs/vertical-navigation/VerticalNavigationItemTrigger.css.js +6 -0
  196. package/dist-cjs/vertical-navigation/VerticalNavigationItemTrigger.css.js.map +1 -0
  197. package/dist-cjs/vertical-navigation/VerticalNavigationItemTrigger.js +69 -0
  198. package/dist-cjs/vertical-navigation/VerticalNavigationItemTrigger.js.map +1 -0
  199. package/dist-cjs/vertical-navigation/VerticalNavigationSubMenu.css.js +6 -0
  200. package/dist-cjs/vertical-navigation/VerticalNavigationSubMenu.css.js.map +1 -0
  201. package/dist-cjs/vertical-navigation/VerticalNavigationSubMenu.js +35 -0
  202. package/dist-cjs/vertical-navigation/VerticalNavigationSubMenu.js.map +1 -0
  203. package/dist-es/app-header/AppHeader.js +5 -1
  204. package/dist-es/app-header/AppHeader.js.map +1 -1
  205. package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
  206. package/dist-es/breadcrumbs/Breadcrumbs.js +11 -2
  207. package/dist-es/breadcrumbs/Breadcrumbs.js.map +1 -1
  208. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js +3 -6
  209. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  210. package/dist-es/button-bar/ButtonBar.js +1 -1
  211. package/dist-es/button-bar/ButtonBar.js.map +1 -1
  212. package/dist-es/button-bar/internal/DescendantContext.js.map +1 -1
  213. package/dist-es/calendar/useCalendarSelection.js +2 -2
  214. package/dist-es/calendar/useCalendarSelection.js.map +1 -1
  215. package/dist-es/cascading-menu/CascadingMenu.js +19 -13
  216. package/dist-es/cascading-menu/CascadingMenu.js.map +1 -1
  217. package/dist-es/cascading-menu/CascadingMenuItem.js +2 -4
  218. package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
  219. package/dist-es/cascading-menu/CascadingMenuList.js +1 -2
  220. package/dist-es/cascading-menu/CascadingMenuList.js.map +1 -1
  221. package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js +4 -1
  222. package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  223. package/dist-es/cascading-menu/internal/useMouseHandlers.js +1 -1
  224. package/dist-es/cascading-menu/internal/useMouseHandlers.js.map +1 -1
  225. package/dist-es/cascading-menu/internal/useRefsManager.js +3 -1
  226. package/dist-es/cascading-menu/internal/useRefsManager.js.map +1 -1
  227. package/dist-es/collapsible/Collapsible.js +45 -0
  228. package/dist-es/collapsible/Collapsible.js.map +1 -0
  229. package/dist-es/collapsible/CollapsibleContext.js +20 -0
  230. package/dist-es/collapsible/CollapsibleContext.js.map +1 -0
  231. package/dist-es/collapsible/CollapsiblePanel.css.js +4 -0
  232. package/dist-es/collapsible/CollapsiblePanel.css.js.map +1 -0
  233. package/dist-es/collapsible/CollapsiblePanel.js +40 -0
  234. package/dist-es/collapsible/CollapsiblePanel.js.map +1 -0
  235. package/dist-es/collapsible/CollapsibleTrigger.js +33 -0
  236. package/dist-es/collapsible/CollapsibleTrigger.js.map +1 -0
  237. package/dist-es/color-chooser/AlphaInputField.js +1 -1
  238. package/dist-es/color-chooser/AlphaInputField.js.map +1 -1
  239. package/dist-es/color-chooser/ColorChooser.js.map +1 -1
  240. package/dist-es/color-chooser/DictTabs.js +1 -1
  241. package/dist-es/color-chooser/DictTabs.js.map +1 -1
  242. package/dist-es/color-chooser/RGBAInputField.js +2 -2
  243. package/dist-es/color-chooser/RGBAInputField.js.map +1 -1
  244. package/dist-es/combo-box/useCombobox.js.map +1 -1
  245. package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js +1 -1
  246. package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  247. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js +1 -2
  248. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  249. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js +1 -5
  250. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  251. package/dist-es/combo-box-deprecated/internal/useComboBox.js +4 -1
  252. package/dist-es/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  253. package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js +7 -2
  254. package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  255. package/dist-es/common-hooks/useAutoSizer.js +0 -9
  256. package/dist-es/common-hooks/useAutoSizer.js.map +1 -1
  257. package/dist-es/common-hooks/useCollapsibleGroups.js +38 -50
  258. package/dist-es/common-hooks/useCollapsibleGroups.js.map +1 -1
  259. package/dist-es/common-hooks/useCollectionItems.js +6 -11
  260. package/dist-es/common-hooks/useCollectionItems.js.map +1 -1
  261. package/dist-es/common-hooks/useKeyboardNavigationPanel.js +8 -8
  262. package/dist-es/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
  263. package/dist-es/common-hooks/useSelection.js +1 -1
  264. package/dist-es/common-hooks/useSelection.js.map +1 -1
  265. package/dist-es/common-hooks/useTypeahead.js +2 -2
  266. package/dist-es/common-hooks/useTypeahead.js.map +1 -1
  267. package/dist-es/common-hooks/useViewportTracking.js +1 -1
  268. package/dist-es/common-hooks/useViewportTracking.js.map +1 -1
  269. package/dist-es/common-hooks/utils/collection-item-utils.js +1 -1
  270. package/dist-es/common-hooks/utils/collection-item-utils.js.map +1 -1
  271. package/dist-es/contact-details/ContactAction.js +1 -0
  272. package/dist-es/contact-details/ContactAction.js.map +1 -1
  273. package/dist-es/contact-details/ContactSecondaryInfo.js +1 -1
  274. package/dist-es/contact-details/ContactSecondaryInfo.js.map +1 -1
  275. package/dist-es/contact-details/internal/ContactDetailsContext.js +2 -2
  276. package/dist-es/contact-details/internal/ContactDetailsContext.js.map +1 -1
  277. package/dist-es/contact-details/internal/FavoriteToggleWithTooltip.js +10 -1
  278. package/dist-es/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  279. package/dist-es/content-status/ContentStatus.js.map +1 -1
  280. package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
  281. package/dist-es/date-input/DateInput.css.js +1 -1
  282. package/dist-es/date-picker/useFocusOut.js +1 -1
  283. package/dist-es/date-picker/useFocusOut.js.map +1 -1
  284. package/dist-es/dropdown/DropdownButton.js.map +1 -1
  285. package/dist-es/dropdown/useDropdown.js.map +1 -1
  286. package/dist-es/index.js +17 -0
  287. package/dist-es/index.js.map +1 -1
  288. package/dist-es/input-legacy/InputLegacy.css.js +1 -1
  289. package/dist-es/list/List.js +2 -2
  290. package/dist-es/list/List.js.map +1 -1
  291. package/dist-es/list/ListItem.css.js +1 -1
  292. package/dist-es/list/ListItem.js +2 -1
  293. package/dist-es/list/ListItem.js.map +1 -1
  294. package/dist-es/list/keyset.js.map +1 -1
  295. package/dist-es/list/useList.js +1 -3
  296. package/dist-es/list/useList.js.map +1 -1
  297. package/dist-es/list/useListHeight.js +3 -3
  298. package/dist-es/list/useListHeight.js.map +1 -1
  299. package/dist-es/list-deprecated/List.js +4 -1
  300. package/dist-es/list-deprecated/List.js.map +1 -1
  301. package/dist-es/list-deprecated/ListBase.js +19 -18
  302. package/dist-es/list-deprecated/ListBase.js.map +1 -1
  303. package/dist-es/list-deprecated/ListItem.js.map +1 -1
  304. package/dist-es/list-deprecated/ListItemBase.js +1 -0
  305. package/dist-es/list-deprecated/ListItemBase.js.map +1 -1
  306. package/dist-es/list-deprecated/internal/helpers.js.map +1 -1
  307. package/dist-es/list-deprecated/internal/scrollIntoView.js +2 -2
  308. package/dist-es/list-deprecated/internal/scrollIntoView.js.map +1 -1
  309. package/dist-es/list-deprecated/internal/useListAutoSizer.js.map +1 -1
  310. package/dist-es/list-deprecated/itemToString.js.map +1 -1
  311. package/dist-es/list-deprecated/useList.js +3 -10
  312. package/dist-es/list-deprecated/useList.js.map +1 -1
  313. package/dist-es/list-deprecated/useListItem.js.map +1 -1
  314. package/dist-es/list-next/ListNext.js.map +1 -1
  315. package/dist-es/metric/MetricContent.js +1 -0
  316. package/dist-es/metric/MetricContent.js.map +1 -1
  317. package/dist-es/number-input/NumberInput.css.js +1 -1
  318. package/dist-es/number-input/internal/utils.js +1 -1
  319. package/dist-es/number-input/internal/utils.js.map +1 -1
  320. package/dist-es/query-input/QueryInput.js +10 -10
  321. package/dist-es/query-input/QueryInput.js.map +1 -1
  322. package/dist-es/query-input/internal/QueryInputBody.js +1 -1
  323. package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
  324. package/dist-es/query-input/internal/SearchList.js +1 -1
  325. package/dist-es/query-input/internal/SearchList.js.map +1 -1
  326. package/dist-es/query-input/internal/usePopperStatus.js +2 -2
  327. package/dist-es/query-input/internal/usePopperStatus.js.map +1 -1
  328. package/dist-es/query-input/useQueryInput.js +6 -6
  329. package/dist-es/query-input/useQueryInput.js.map +1 -1
  330. package/dist-es/responsive/OverflowReducer.js +0 -2
  331. package/dist-es/responsive/OverflowReducer.js.map +1 -1
  332. package/dist-es/responsive/overflowUtils.js +6 -3
  333. package/dist-es/responsive/overflowUtils.js.map +1 -1
  334. package/dist-es/responsive/useDynamicCollapse.js +6 -3
  335. package/dist-es/responsive/useDynamicCollapse.js.map +1 -1
  336. package/dist-es/responsive/useOverflow.js +2 -2
  337. package/dist-es/responsive/useOverflow.js.map +1 -1
  338. package/dist-es/responsive/useOverflowCollectionItems.js +1 -1
  339. package/dist-es/responsive/useOverflowCollectionItems.js.map +1 -1
  340. package/dist-es/responsive/useOverflowLayout.js +1 -1
  341. package/dist-es/responsive/useOverflowLayout.js.map +1 -1
  342. package/dist-es/responsive/useReclaimSpace.js +1 -1
  343. package/dist-es/responsive/useReclaimSpace.js.map +1 -1
  344. package/dist-es/responsive/useResizeObserver.js +7 -2
  345. package/dist-es/responsive/useResizeObserver.js.map +1 -1
  346. package/dist-es/search-input/SearchInput.js.map +1 -1
  347. package/dist-es/table/TBody.js +30 -0
  348. package/dist-es/table/TBody.js.map +1 -0
  349. package/dist-es/table/TD.js +28 -0
  350. package/dist-es/table/TD.js.map +1 -0
  351. package/dist-es/table/TFoot.js +43 -0
  352. package/dist-es/table/TFoot.js.map +1 -0
  353. package/dist-es/table/TH.js +28 -0
  354. package/dist-es/table/TH.js.map +1 -0
  355. package/dist-es/table/THead.js +43 -0
  356. package/dist-es/table/THead.js.map +1 -0
  357. package/dist-es/table/TR.js +28 -0
  358. package/dist-es/table/TR.js.map +1 -0
  359. package/dist-es/table/Table.css.js +4 -0
  360. package/dist-es/table/Table.css.js.map +1 -0
  361. package/dist-es/table/Table.js +44 -0
  362. package/dist-es/table/Table.js.map +1 -0
  363. package/dist-es/tabs/TabActivationIndicator.css.js +1 -1
  364. package/dist-es/tabs/Tabs.js +1 -9
  365. package/dist-es/tabs/Tabs.js.map +1 -1
  366. package/dist-es/tabs/drag-drop/useDragSpacers.js +6 -7
  367. package/dist-es/tabs/drag-drop/useDragSpacers.js.map +1 -1
  368. package/dist-es/tabs/useActivationIndicator.js.map +1 -1
  369. package/dist-es/tabs-next/TabNextTrigger.js +2 -1
  370. package/dist-es/tabs-next/TabNextTrigger.js.map +1 -1
  371. package/dist-es/tabs-next/hooks/useOverflow.js +4 -6
  372. package/dist-es/tabs-next/hooks/useOverflow.js.map +1 -1
  373. package/dist-es/tokenized-input/useTokenizedInput.js +5 -5
  374. package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
  375. package/dist-es/tokenized-input-next/TokenizedInputNext.css.js +1 -1
  376. package/dist-es/tree/Tree.js.map +1 -1
  377. package/dist-es/vertical-navigation/SubMenuContext.js +30 -0
  378. package/dist-es/vertical-navigation/SubMenuContext.js.map +1 -0
  379. package/dist-es/vertical-navigation/VerticalNavigation.css.js +4 -0
  380. package/dist-es/vertical-navigation/VerticalNavigation.css.js.map +1 -0
  381. package/dist-es/vertical-navigation/VerticalNavigation.js +32 -0
  382. package/dist-es/vertical-navigation/VerticalNavigation.js.map +1 -0
  383. package/dist-es/vertical-navigation/VerticalNavigationItem.js +45 -0
  384. package/dist-es/vertical-navigation/VerticalNavigationItem.js.map +1 -0
  385. package/dist-es/vertical-navigation/VerticalNavigationItemContent.css.js +4 -0
  386. package/dist-es/vertical-navigation/VerticalNavigationItemContent.css.js.map +1 -0
  387. package/dist-es/vertical-navigation/VerticalNavigationItemContent.js +81 -0
  388. package/dist-es/vertical-navigation/VerticalNavigationItemContent.js.map +1 -0
  389. package/dist-es/vertical-navigation/VerticalNavigationItemExpansionIcon.js +27 -0
  390. package/dist-es/vertical-navigation/VerticalNavigationItemExpansionIcon.js.map +1 -0
  391. package/dist-es/vertical-navigation/VerticalNavigationItemLabel.css.js +4 -0
  392. package/dist-es/vertical-navigation/VerticalNavigationItemLabel.css.js.map +1 -0
  393. package/dist-es/vertical-navigation/VerticalNavigationItemLabel.js +22 -0
  394. package/dist-es/vertical-navigation/VerticalNavigationItemLabel.js.map +1 -0
  395. package/dist-es/vertical-navigation/VerticalNavigationItemTrigger.css.js +4 -0
  396. package/dist-es/vertical-navigation/VerticalNavigationItemTrigger.css.js.map +1 -0
  397. package/dist-es/vertical-navigation/VerticalNavigationItemTrigger.js +67 -0
  398. package/dist-es/vertical-navigation/VerticalNavigationItemTrigger.js.map +1 -0
  399. package/dist-es/vertical-navigation/VerticalNavigationSubMenu.css.js +4 -0
  400. package/dist-es/vertical-navigation/VerticalNavigationSubMenu.css.js.map +1 -0
  401. package/dist-es/vertical-navigation/VerticalNavigationSubMenu.js +33 -0
  402. package/dist-es/vertical-navigation/VerticalNavigationSubMenu.js.map +1 -0
  403. package/dist-types/breadcrumbs/Breadcrumb.d.ts +2 -2
  404. package/dist-types/breadcrumbs/Breadcrumbs.d.ts +2 -2
  405. package/dist-types/cascading-menu/CascadingMenuList.d.ts +3 -1
  406. package/dist-types/cascading-menu/CascadingMenuProps.d.ts +1 -1
  407. package/dist-types/cascading-menu/internal/useMenuTriggerHandlers.d.ts +3 -2
  408. package/dist-types/collapsible/Collapsible.d.ts +16 -0
  409. package/dist-types/collapsible/CollapsibleContext.d.ts +9 -0
  410. package/dist-types/collapsible/CollapsiblePanel.d.ts +4 -0
  411. package/dist-types/collapsible/CollapsibleTrigger.d.ts +5 -0
  412. package/dist-types/collapsible/index.d.ts +3 -0
  413. package/dist-types/combo-box-deprecated/internal/useComboBox.d.ts +5 -5
  414. package/dist-types/combo-box-deprecated/internal/useMultiSelectComboBox.d.ts +7 -7
  415. package/dist-types/common-hooks/useAutoSizer.d.ts +1 -1
  416. package/dist-types/common-hooks/useCollapsibleGroups.d.ts +2 -2
  417. package/dist-types/common-hooks/useCollectionItems.d.ts +1 -1
  418. package/dist-types/common-hooks/useSelection.d.ts +1 -1
  419. package/dist-types/content-status/ContentStatus.d.ts +1 -1
  420. package/dist-types/dropdown/DropdownButton.d.ts +1 -1
  421. package/dist-types/dropdown/dropdownTypes.d.ts +2 -2
  422. package/dist-types/dropdown/useDropdown.d.ts +1 -1
  423. package/dist-types/index.d.ts +3 -0
  424. package/dist-types/list/useListHeight.d.ts +1 -1
  425. package/dist-types/list-deprecated/ListBase.d.ts +4 -8
  426. package/dist-types/list-deprecated/ListProps.d.ts +7 -6
  427. package/dist-types/list-deprecated/internal/helpers.d.ts +3 -2
  428. package/dist-types/list-deprecated/internal/useListAutoSizer.d.ts +2 -7
  429. package/dist-types/list-deprecated/itemToString.d.ts +2 -2
  430. package/dist-types/list-deprecated/useList.d.ts +1 -1
  431. package/dist-types/metric/internal/helpers.d.ts +1 -1
  432. package/dist-types/query-input/internal/usePopperStatus.d.ts +3 -3
  433. package/dist-types/responsive/overflowTypes.d.ts +1 -1
  434. package/dist-types/responsive/overflowUtils.d.ts +1 -1
  435. package/dist-types/responsive/useReclaimSpace.d.ts +1 -1
  436. package/dist-types/search-input/SearchInput.d.ts +1 -1
  437. package/dist-types/table/TBody.d.ts +4 -0
  438. package/dist-types/table/TD.d.ts +4 -0
  439. package/dist-types/table/TFoot.d.ts +20 -0
  440. package/dist-types/table/TH.d.ts +4 -0
  441. package/dist-types/table/THead.d.ts +20 -0
  442. package/dist-types/table/TR.d.ts +4 -0
  443. package/dist-types/table/Table.d.ts +20 -0
  444. package/dist-types/table/index.d.ts +7 -0
  445. package/dist-types/vertical-navigation/SubMenuContext.d.ts +14 -0
  446. package/dist-types/vertical-navigation/VerticalNavigation.d.ts +5 -0
  447. package/dist-types/vertical-navigation/VerticalNavigationItem.d.ts +12 -0
  448. package/dist-types/vertical-navigation/VerticalNavigationItemContent.d.ts +4 -0
  449. package/dist-types/vertical-navigation/VerticalNavigationItemExpansionIcon.d.ts +2 -0
  450. package/dist-types/vertical-navigation/VerticalNavigationItemLabel.d.ts +4 -0
  451. package/dist-types/vertical-navigation/VerticalNavigationItemTrigger.d.ts +6 -0
  452. package/dist-types/vertical-navigation/VerticalNavigationSubMenu.d.ts +4 -0
  453. package/dist-types/vertical-navigation/index.d.ts +7 -0
  454. package/package.json +3 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigation.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var styles = require('@salt-ds/styles');
6
+ var window = require('@salt-ds/window');
7
+ var clsx = require('clsx');
8
+ var react = require('react');
9
+ var SubMenuContext = require('./SubMenuContext.js');
10
+ var VerticalNavigation$1 = require('./VerticalNavigation.css.js');
11
+
12
+ const withBaseName = core.makePrefixer("saltVerticalNavigation");
13
+ const VerticalNavigation = react.forwardRef(function VerticalNavigation2(props, ref) {
14
+ const { appearance = "indicator", children, className, ...rest } = props;
15
+ const targetWindow = window.useWindow();
16
+ styles.useComponentCssInjection({
17
+ testId: "salt-vertical-navigation",
18
+ css: VerticalNavigation$1,
19
+ window: targetWindow
20
+ });
21
+ const [directIcons, setDirectIcons] = react.useState([]);
22
+ return /* @__PURE__ */ jsxRuntime.jsx(SubMenuContext.SubMenuProvider, { directIcons, setDirectIcons, children: /* @__PURE__ */ jsxRuntime.jsx(
23
+ "nav",
24
+ {
25
+ ref,
26
+ className: clsx.clsx(withBaseName(), withBaseName(appearance), className),
27
+ ...rest,
28
+ children: /* @__PURE__ */ jsxRuntime.jsx("ol", { "data-has-direct-icons": directIcons.length > 0, children })
29
+ }
30
+ ) });
31
+ });
32
+
33
+ exports.VerticalNavigation = VerticalNavigation;
34
+ //# sourceMappingURL=VerticalNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigation.js","sources":["../src/vertical-navigation/VerticalNavigation.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef, useState } from \"react\";\nimport { SubMenuProvider } from \"./SubMenuContext\";\nimport verticalNavigationCss from \"./VerticalNavigation.css\";\n\nexport interface VerticalNavigationProps\n extends ComponentPropsWithoutRef<\"nav\"> {\n appearance?: \"indicator\" | \"bordered\";\n}\n\nconst withBaseName = makePrefixer(\"saltVerticalNavigation\");\n\nexport const VerticalNavigation = forwardRef<\n HTMLElement,\n VerticalNavigationProps\n>(function VerticalNavigation(props, ref) {\n const { appearance = \"indicator\", children, className, ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-vertical-navigation\",\n css: verticalNavigationCss,\n window: targetWindow,\n });\n\n const [directIcons, setDirectIcons] = useState<string[]>([]);\n\n return (\n <SubMenuProvider directIcons={directIcons} setDirectIcons={setDirectIcons}>\n <nav\n ref={ref}\n className={clsx(withBaseName(), withBaseName(appearance), className)}\n {...rest}\n >\n <ol data-has-direct-icons={directIcons.length > 0}>{children}</ol>\n </nav>\n </SubMenuProvider>\n );\n});\n"],"names":["makePrefixer","forwardRef","VerticalNavigation","useWindow","useComponentCssInjection","verticalNavigationCss","useState","jsx","SubMenuProvider","clsx"],"mappings":";;;;;;;;;;;AAaA,MAAM,YAAA,GAAeA,kBAAa,wBAAwB,CAAA;AAEnD,MAAM,kBAAqB,GAAAC,gBAAA,CAGhC,SAASC,mBAAAA,CAAmB,OAAO,GAAK,EAAA;AACxC,EAAA,MAAM,EAAE,UAAa,GAAA,WAAA,EAAa,UAAU,SAAW,EAAA,GAAG,MAAS,GAAA,KAAA;AAEnE,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,oBAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,CAAC,WAAa,EAAA,cAAc,CAAI,GAAAC,cAAA,CAAmB,EAAE,CAAA;AAE3D,EACE,uBAAAC,cAAA,CAACC,8BAAgB,EAAA,EAAA,WAAA,EAA0B,cACzC,EAAA,QAAA,kBAAAD,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAWE,SAAK,CAAA,YAAA,IAAgB,YAAa,CAAA,UAAU,GAAG,SAAS,CAAA;AAAA,MAClE,GAAG,IAAA;AAAA,MAEJ,yCAAC,IAAG,EAAA,EAAA,uBAAA,EAAuB,WAAY,CAAA,MAAA,GAAS,GAAI,QAAS,EAAA;AAAA;AAAA,GAEjE,EAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var clsx = require('clsx');
6
+ var react = require('react');
7
+ var SubMenuContext = require('./SubMenuContext.js');
8
+
9
+ const withBaseName = core.makePrefixer("saltVerticalNavigationItem");
10
+ const VerticalNavigationItemContext = core.createContext(
11
+ "saltVerticalNavigationItemContext",
12
+ {
13
+ active: false,
14
+ focusVisible: false,
15
+ setFocusVisible: () => {
16
+ }
17
+ }
18
+ );
19
+ function useVerticalNavigationItem() {
20
+ return react.useContext(VerticalNavigationItemContext);
21
+ }
22
+ const VerticalNavigationItem = react.forwardRef(function VerticalNavigationItem2(props, ref) {
23
+ const { children, className, active = false, style, ...rest } = props;
24
+ const { depth } = SubMenuContext.useSubMenuContext();
25
+ const [focusVisible, setFocusVisible] = react.useState(false);
26
+ const context = react.useMemo(
27
+ () => ({
28
+ active,
29
+ focusVisible,
30
+ setFocusVisible
31
+ }),
32
+ [active, focusVisible]
33
+ );
34
+ return /* @__PURE__ */ jsxRuntime.jsx(VerticalNavigationItemContext.Provider, { value: context, children: /* @__PURE__ */ jsxRuntime.jsx(
35
+ "li",
36
+ {
37
+ ref,
38
+ className: clsx.clsx(withBaseName(), className),
39
+ style: { "--verticalNavigationItem-depth": depth, ...style },
40
+ ...rest,
41
+ children
42
+ }
43
+ ) });
44
+ });
45
+
46
+ exports.VerticalNavigationItem = VerticalNavigationItem;
47
+ exports.useVerticalNavigationItem = useVerticalNavigationItem;
48
+ //# sourceMappingURL=VerticalNavigationItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigationItem.js","sources":["../src/vertical-navigation/VerticalNavigationItem.tsx"],"sourcesContent":["import { createContext, makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type CSSProperties,\n type Dispatch,\n forwardRef,\n type SetStateAction,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport { useSubMenuContext } from \"./SubMenuContext\";\n\nexport interface VerticalNavigationItemProps\n extends ComponentPropsWithoutRef<\"li\"> {\n active?: boolean;\n}\n\nconst withBaseName = makePrefixer(\"saltVerticalNavigationItem\");\n\ntype VerticalNavigationItemContextType = {\n active: boolean;\n focusVisible: boolean;\n setFocusVisible: Dispatch<SetStateAction<boolean>>;\n};\n\nconst VerticalNavigationItemContext =\n createContext<VerticalNavigationItemContextType>(\n \"saltVerticalNavigationItemContext\",\n {\n active: false,\n focusVisible: false,\n setFocusVisible: () => {},\n },\n );\n\nexport function useVerticalNavigationItem() {\n return useContext(VerticalNavigationItemContext);\n}\n\nexport const VerticalNavigationItem = forwardRef<\n HTMLLIElement,\n VerticalNavigationItemProps\n>(function VerticalNavigationItem(props, ref) {\n const { children, className, active = false, style, ...rest } = props;\n\n const { depth } = useSubMenuContext();\n const [focusVisible, setFocusVisible] = useState(false);\n\n const context = useMemo(\n () => ({\n active,\n focusVisible,\n setFocusVisible,\n }),\n [active, focusVisible],\n );\n\n return (\n <VerticalNavigationItemContext.Provider value={context}>\n <li\n ref={ref}\n className={clsx(withBaseName(), className)}\n style={\n { \"--verticalNavigationItem-depth\": depth, ...style } as CSSProperties\n }\n {...rest}\n >\n {children}\n </li>\n </VerticalNavigationItemContext.Provider>\n );\n});\n"],"names":["makePrefixer","createContext","useContext","forwardRef","VerticalNavigationItem","useSubMenuContext","useState","useMemo","jsx","clsx"],"mappings":";;;;;;;;AAmBA,MAAM,YAAA,GAAeA,kBAAa,4BAA4B,CAAA;AAQ9D,MAAM,6BACJ,GAAAC,kBAAA;AAAA,EACE,mCAAA;AAAA,EACA;AAAA,IACE,MAAQ,EAAA,KAAA;AAAA,IACR,YAAc,EAAA,KAAA;AAAA,IACd,iBAAiB,MAAM;AAAA;AAAC;AAE5B,CAAA;AAEK,SAAS,yBAA4B,GAAA;AAC1C,EAAA,OAAOC,iBAAW,6BAA6B,CAAA;AACjD;AAEO,MAAM,sBAAyB,GAAAC,gBAAA,CAGpC,SAASC,uBAAAA,CAAuB,OAAO,GAAK,EAAA;AAC5C,EAAM,MAAA,EAAE,UAAU,SAAW,EAAA,MAAA,GAAS,OAAO,KAAO,EAAA,GAAG,MAAS,GAAA,KAAA;AAEhE,EAAM,MAAA,EAAE,KAAM,EAAA,GAAIC,gCAAkB,EAAA;AACpC,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIC,eAAS,KAAK,CAAA;AAEtD,EAAA,MAAM,OAAU,GAAAC,aAAA;AAAA,IACd,OAAO;AAAA,MACL,MAAA;AAAA,MACA,YAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,QAAQ,YAAY;AAAA,GACvB;AAEA,EAAA,uBACGC,cAAA,CAAA,6BAAA,CAA8B,QAA9B,EAAA,EAAuC,OAAO,OAC7C,EAAA,QAAA,kBAAAA,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,KACE,EAAA,EAAE,gCAAkC,EAAA,KAAA,EAAO,GAAG,KAAM,EAAA;AAAA,MAErD,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GAEL,EAAA,CAAA;AAEJ,CAAC;;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = ".saltVerticalNavigationItemContent {\n --verticalNavigationItem-iconPadding: calc(var(--saltVerticalNavigationItem-iconPaddingMultiplier, 0) * (var(--salt-size-icon) + var(--salt-spacing-100)));\n --verticalNavigationItem-depthPadding: calc(var(--salt-spacing-100) * max(0, calc(var(--verticalNavigationItem-depth, 0) - 1)));\n}\n\n.saltVerticalNavigation-indicator .saltVerticalNavigationItemContent {\n --verticalNavigationItem-paddingLeft: calc(var(--salt-spacing-150) + var(--salt-size-indicator) + var(--verticalNavigationItem-depthPadding) + var(--verticalNavigationItem-iconPadding));\n --verticalNavigationItem-paddingBlock: var(--salt-spacing-50);\n}\n\n.saltVerticalNavigation-bordered .saltVerticalNavigationItemContent {\n --verticalNavigationItem-paddingLeft: calc(var(--salt-spacing-100) + var(--verticalNavigationItem-depthPadding) + var(--verticalNavigationItem-iconPadding));\n --verticalNavigationItem-paddingBlock: calc(var(--salt-spacing-50) - var(--salt-size-fixed-100));\n}\n\n.saltVerticalNavigationItemContent {\n display: flex;\n flex-direction: row;\n gap: var(--salt-spacing-100);\n appearance: none;\n -webkit-appearance: none;\n white-space: pre;\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n min-width: 4em;\n padding: var(--verticalNavigationItem-paddingBlock) var(--salt-spacing-100) var(--verticalNavigationItem-paddingBlock) var(--verticalNavigationItem-paddingLeft);\n position: relative;\n flex-shrink: 0;\n box-sizing: border-box;\n border-radius: var(--salt-palette-corner-weak, 0);\n overflow: hidden;\n\n cursor: var(--salt-cursor-hover);\n color: var(--salt-content-primary-foreground);\n font-weight: var(--salt-text-h4-fontWeight);\n font-family: var(--salt-text-h4-fontFamily);\n text-align: var(--salt-text-textAlign);\n letter-spacing: var(--salt-text-letterSpacing);\n line-height: var(--salt-text-h4-lineHeight);\n font-size: var(--salt-text-h4-fontSize);\n}\n\n.saltVerticalNavigation-indicator .saltVerticalNavigationItemContent-active,\n.saltVerticalNavigation-indicator .saltVerticalNavigationItemContent-active:hover {\n background: var(--salt-navigable-accent-background-active);\n}\n\n.saltVerticalNavigation-indicator .saltVerticalNavigationItemContent::before {\n left: var(--salt-spacing-50);\n content: \"\";\n position: absolute;\n height: var(--salt-size-base);\n border-radius: var(--salt-palette-corner-strongest);\n width: var(--salt-size-indicator);\n}\n\n.saltVerticalNavigation-indicator .saltVerticalNavigationItemContent-active::before {\n background: var(--salt-navigable-accent-indicator-active);\n}\n\n.saltVerticalNavigation-bordered .saltVerticalNavigationItemContent {\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) transparent;\n}\n\n.saltVerticalNavigation-bordered .saltVerticalNavigationItemContent-active,\n.saltVerticalNavigation-bordered .saltVerticalNavigationItemContent-active:hover {\n background: var(--salt-navigable-accent-background-active);\n border-color: var(--salt-navigable-accent-borderColor-active);\n}\n\n.saltVerticalNavigationItemContent .saltIcon,\n.saltVerticalNavigationItemContent .saltBadge {\n min-height: var(--salt-text-lineHeight);\n}\n\n.saltVerticalNavigationItemContent-focused {\n outline: var(--salt-focused-outline);\n outline-offset: calc(var(--salt-size-fixed-100) * -2);\n z-index: 1;\n}\n\n.saltVerticalNavigationItemContent:hover {\n background: var(--salt-navigable-background-hover);\n}\n\n.saltVerticalNavigation .saltVerticalNavigationItemContent-active,\n.saltVerticalNavigation .saltVerticalNavigationSubMenu .saltVerticalNavigationItemContent-active {\n font-weight: var(--salt-text-h4-fontWeight);\n}\n\n@supports selector(:has(*)) {\n .saltVerticalNavigationItemContent-active:hover:has(.saltVerticalNavigationItemTrigger[aria-controls]) {\n background: linear-gradient(var(--salt-navigable-background-hover), var(--salt-navigable-background-hover)) var(--salt-navigable-accent-background-active);\n }\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=VerticalNavigationItemContent.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigationItemContent.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,83 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var styles = require('@salt-ds/styles');
6
+ var window = require('@salt-ds/window');
7
+ var clsx = require('clsx');
8
+ var react = require('react');
9
+ var SubMenuContext = require('./SubMenuContext.js');
10
+ var VerticalNavigationItem = require('./VerticalNavigationItem.js');
11
+ var VerticalNavigationItemContent$1 = require('./VerticalNavigationItemContent.css.js');
12
+
13
+ const withBaseName = core.makePrefixer("saltVerticalNavigationItemContent");
14
+ const VerticalNavigationItemContent = react.forwardRef(function VerticalNavigationItemContent2(props, ref) {
15
+ const { children, className, style, ...rest } = props;
16
+ const targetWindow = window.useWindow();
17
+ styles.useComponentCssInjection({
18
+ testId: "salt-vertical-navigation-item-content",
19
+ css: VerticalNavigationItemContent$1,
20
+ window: targetWindow
21
+ });
22
+ const containerRef = react.useRef(null);
23
+ const handleRef = core.useForkRef(ref, containerRef);
24
+ const { active, focusVisible } = VerticalNavigationItem.useVerticalNavigationItem();
25
+ const { setDirectIcons, iconPaddingCount } = SubMenuContext.useSubMenuContext();
26
+ const [hasIcon, setHasIcon] = react.useState(false);
27
+ const iconId = core.useId();
28
+ react.useEffect(() => {
29
+ const checkForIcons = () => {
30
+ var _a;
31
+ const iconElement = (_a = containerRef.current) == null ? void 0 : _a.querySelector(
32
+ ".saltIcon ~ .saltVerticalNavigationItemLabel"
33
+ );
34
+ setHasIcon(Boolean(iconElement));
35
+ if (iconElement && iconId && setDirectIcons) {
36
+ setDirectIcons((icons) => {
37
+ if (!icons.includes(iconId)) {
38
+ return icons.concat(iconId);
39
+ }
40
+ return icons;
41
+ });
42
+ } else if (!iconElement && iconId && setDirectIcons) {
43
+ setDirectIcons((icons) => icons.filter((id) => id !== iconId));
44
+ }
45
+ };
46
+ const mutationObserver = new MutationObserver(() => {
47
+ checkForIcons();
48
+ });
49
+ checkForIcons();
50
+ if (containerRef.current) {
51
+ mutationObserver.observe(containerRef.current, {
52
+ childList: true,
53
+ subtree: true
54
+ });
55
+ }
56
+ return () => {
57
+ mutationObserver.disconnect();
58
+ };
59
+ }, [iconId, setDirectIcons]);
60
+ return /* @__PURE__ */ jsxRuntime.jsx(
61
+ "span",
62
+ {
63
+ ref: handleRef,
64
+ className: clsx.clsx(
65
+ withBaseName(),
66
+ {
67
+ [withBaseName("active")]: active,
68
+ [withBaseName("focused")]: focusVisible
69
+ },
70
+ className
71
+ ),
72
+ style: {
73
+ "--saltVerticalNavigationItem-iconPaddingMultiplier": hasIcon ? iconPaddingCount - 1 : iconPaddingCount,
74
+ ...style
75
+ },
76
+ ...rest,
77
+ children
78
+ }
79
+ );
80
+ });
81
+
82
+ exports.VerticalNavigationItemContent = VerticalNavigationItemContent;
83
+ //# sourceMappingURL=VerticalNavigationItemContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigationItemContent.js","sources":["../src/vertical-navigation/VerticalNavigationItemContent.tsx"],"sourcesContent":["import { makePrefixer, useForkRef, useId } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type CSSProperties,\n forwardRef,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { useSubMenuContext } from \"./SubMenuContext\";\nimport { useVerticalNavigationItem } from \"./VerticalNavigationItem\";\nimport verticalNavigationItemContentCss from \"./VerticalNavigationItemContent.css\";\n\nexport interface VerticalNavigationItemContentProps\n extends ComponentPropsWithoutRef<\"span\"> {}\n\nconst withBaseName = makePrefixer(\"saltVerticalNavigationItemContent\");\n\nexport const VerticalNavigationItemContent = forwardRef<\n HTMLSpanElement,\n VerticalNavigationItemContentProps\n>(function VerticalNavigationItemContent(props, ref) {\n const { children, className, style, ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-vertical-navigation-item-content\",\n css: verticalNavigationItemContentCss,\n window: targetWindow,\n });\n\n const containerRef = useRef<HTMLSpanElement>(null);\n const handleRef = useForkRef(ref, containerRef);\n\n const { active, focusVisible } = useVerticalNavigationItem();\n const { setDirectIcons, iconPaddingCount } = useSubMenuContext();\n const [hasIcon, setHasIcon] = useState(false);\n\n const iconId = useId();\n\n useEffect(() => {\n const checkForIcons = () => {\n const iconElement = containerRef.current?.querySelector<HTMLElement>(\n \".saltIcon ~ .saltVerticalNavigationItemLabel\",\n );\n\n setHasIcon(Boolean(iconElement));\n if (iconElement && iconId && setDirectIcons) {\n setDirectIcons((icons) => {\n if (!icons.includes(iconId)) {\n return icons.concat(iconId);\n }\n return icons;\n });\n } else if (!iconElement && iconId && setDirectIcons) {\n setDirectIcons((icons) => icons.filter((id) => id !== iconId));\n }\n };\n\n const mutationObserver = new MutationObserver(() => {\n checkForIcons();\n });\n checkForIcons();\n\n if (containerRef.current) {\n mutationObserver.observe(containerRef.current, {\n childList: true,\n subtree: true,\n });\n }\n\n return () => {\n mutationObserver.disconnect();\n };\n }, [iconId, setDirectIcons]);\n\n return (\n <span\n ref={handleRef}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"active\")]: active,\n [withBaseName(\"focused\")]: focusVisible,\n },\n className,\n )}\n style={\n {\n \"--saltVerticalNavigationItem-iconPaddingMultiplier\": hasIcon\n ? iconPaddingCount - 1\n : iconPaddingCount,\n ...style,\n } as CSSProperties\n }\n {...rest}\n >\n {children}\n </span>\n );\n});\n"],"names":["makePrefixer","forwardRef","VerticalNavigationItemContent","useWindow","useComponentCssInjection","verticalNavigationItemContentCss","useRef","useForkRef","useVerticalNavigationItem","useSubMenuContext","useState","useId","useEffect","jsx","clsx"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var clsx = require('clsx');
6
+ var CollapsibleContext = require('../collapsible/CollapsibleContext.js');
7
+
8
+ const withBaseName = core.makePrefixer("saltVerticalNavigationItemExpansionIcon");
9
+ const VerticalNavigationItemExpansionIcon = (props) => {
10
+ const { className, ...rest } = props;
11
+ const { CollapseIcon, ExpandIcon } = core.useIcon();
12
+ const iconExpansionMap = {
13
+ expanded: CollapseIcon,
14
+ collapsed: ExpandIcon
15
+ };
16
+ const { open } = CollapsibleContext.useCollapsibleContext();
17
+ const Icon = iconExpansionMap[open ? "expanded" : "collapsed"];
18
+ return /* @__PURE__ */ jsxRuntime.jsx(
19
+ Icon,
20
+ {
21
+ className: clsx.clsx(withBaseName(), className),
22
+ "aria-hidden": "true",
23
+ ...rest
24
+ }
25
+ );
26
+ };
27
+
28
+ exports.VerticalNavigationItemExpansionIcon = VerticalNavigationItemExpansionIcon;
29
+ //# sourceMappingURL=VerticalNavigationItemExpansionIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigationItemExpansionIcon.js","sources":["../src/vertical-navigation/VerticalNavigationItemExpansionIcon.tsx"],"sourcesContent":["import { makePrefixer, useIcon } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { useCollapsibleContext } from \"../collapsible/CollapsibleContext\";\n\nconst withBaseName = makePrefixer(\"saltVerticalNavigationItemExpansionIcon\");\n\nexport const VerticalNavigationItemExpansionIcon = (props: IconProps) => {\n const { className, ...rest } = props;\n const { CollapseIcon, ExpandIcon } = useIcon();\n const iconExpansionMap = {\n expanded: CollapseIcon,\n collapsed: ExpandIcon,\n };\n\n const { open } = useCollapsibleContext();\n\n const Icon = iconExpansionMap[open ? \"expanded\" : \"collapsed\"];\n return (\n <Icon\n className={clsx(withBaseName(), className)}\n aria-hidden=\"true\"\n {...rest}\n />\n );\n};\n"],"names":["makePrefixer","useIcon","useCollapsibleContext","jsx","clsx"],"mappings":";;;;;;;AAKA,MAAM,YAAA,GAAeA,kBAAa,yCAAyC,CAAA;AAE9D,MAAA,mCAAA,GAAsC,CAAC,KAAqB,KAAA;AACvE,EAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAS,GAAA,KAAA;AAC/B,EAAA,MAAM,EAAE,YAAA,EAAc,UAAW,EAAA,GAAIC,YAAQ,EAAA;AAC7C,EAAA,MAAM,gBAAmB,GAAA;AAAA,IACvB,QAAU,EAAA,YAAA;AAAA,IACV,SAAW,EAAA;AAAA,GACb;AAEA,EAAM,MAAA,EAAE,IAAK,EAAA,GAAIC,wCAAsB,EAAA;AAEvC,EAAA,MAAM,IAAO,GAAA,gBAAA,CAAiB,IAAO,GAAA,UAAA,GAAa,WAAW,CAAA;AAC7D,EACE,uBAAAC,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,aAAY,EAAA,MAAA;AAAA,MACX,GAAG;AAAA;AAAA,GACN;AAEJ;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = ".saltVerticalNavigationItemLabel {\n flex: 1;\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=VerticalNavigationItemLabel.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigationItemLabel.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var styles = require('@salt-ds/styles');
6
+ var window = require('@salt-ds/window');
7
+ var clsx = require('clsx');
8
+ var react = require('react');
9
+ var VerticalNavigationItemLabel$1 = require('./VerticalNavigationItemLabel.css.js');
10
+
11
+ const withBaseName = core.makePrefixer("saltVerticalNavigationItemLabel");
12
+ const VerticalNavigationItemLabel = react.forwardRef(function VerticalNavigationItemLabel2(props, ref) {
13
+ const { children, className, ...rest } = props;
14
+ const targetWindow = window.useWindow();
15
+ styles.useComponentCssInjection({
16
+ testId: "salt-vertical-navigation-item-label",
17
+ css: VerticalNavigationItemLabel$1,
18
+ window: targetWindow
19
+ });
20
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx.clsx(withBaseName(), className), ref, ...rest, children });
21
+ });
22
+
23
+ exports.VerticalNavigationItemLabel = VerticalNavigationItemLabel;
24
+ //# sourceMappingURL=VerticalNavigationItemLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigationItemLabel.js","sources":["../src/vertical-navigation/VerticalNavigationItemLabel.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport verticalNavigationItemLabelCss from \"./VerticalNavigationItemLabel.css\";\n\nexport interface VerticalNavigationItemLabelProps\n extends ComponentPropsWithoutRef<\"span\"> {}\n\nconst withBaseName = makePrefixer(\"saltVerticalNavigationItemLabel\");\n\nexport const VerticalNavigationItemLabel = forwardRef<\n HTMLSpanElement,\n VerticalNavigationItemLabelProps\n>(function VerticalNavigationItemLabel(props, ref) {\n const { children, className, ...rest } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-vertical-navigation-item-label\",\n css: verticalNavigationItemLabelCss,\n window: targetWindow,\n });\n\n return (\n <span className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n {children}\n </span>\n );\n});\n"],"names":["makePrefixer","forwardRef","VerticalNavigationItemLabel","useWindow","useComponentCssInjection","verticalNavigationItemLabelCss","jsx","clsx"],"mappings":";;;;;;;;;;AAUA,MAAM,YAAA,GAAeA,kBAAa,iCAAiC,CAAA;AAE5D,MAAM,2BAA8B,GAAAC,gBAAA,CAGzC,SAASC,4BAAAA,CAA4B,OAAO,GAAK,EAAA;AACjD,EAAA,MAAM,EAAE,QAAA,EAAU,SAAW,EAAA,GAAG,MAAS,GAAA,KAAA;AACzC,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,qCAAA;AAAA,IACR,GAAK,EAAAC,6BAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EACE,uBAAAC,cAAA,CAAC,MAAK,EAAA,EAAA,SAAA,EAAWC,SAAK,CAAA,YAAA,EAAgB,EAAA,SAAS,CAAG,EAAA,GAAA,EAAW,GAAG,IAAA,EAC7D,QACH,EAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = ".saltVerticalNavigationItemTrigger {\n all: unset;\n padding: var(--salt-spacing-75) 0;\n display: flex;\n gap: var(--salt-spacing-100);\n width: 100%;\n}\n\n.saltVerticalNavigationItemTrigger::before {\n content: \"\";\n display: block;\n width: 100%;\n position: absolute;\n height: 100%;\n left: 0;\n top: 0;\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=VerticalNavigationItemTrigger.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigationItemTrigger.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var styles = require('@salt-ds/styles');
6
+ var window = require('@salt-ds/window');
7
+ var clsx = require('clsx');
8
+ var react = require('react');
9
+ var VerticalNavigationItem = require('./VerticalNavigationItem.js');
10
+ var VerticalNavigationItemTrigger$1 = require('./VerticalNavigationItemTrigger.css.js');
11
+
12
+ function ItemAction(props) {
13
+ return core.renderProps("a", props);
14
+ }
15
+ const withBaseName = core.makePrefixer("saltVerticalNavigationItemTrigger");
16
+ const VerticalNavigationItemTrigger = react.forwardRef(function VerticalNavigationItemTrigger2(props, ref) {
17
+ const {
18
+ className,
19
+ children,
20
+ render,
21
+ href,
22
+ onFocus,
23
+ onBlur,
24
+ onMouseDown,
25
+ ...rest
26
+ } = props;
27
+ const targetWindow = window.useWindow();
28
+ styles.useComponentCssInjection({
29
+ testId: "salt-vertical-navigation-item-trigger",
30
+ css: VerticalNavigationItemTrigger$1,
31
+ window: targetWindow
32
+ });
33
+ const isLink = href != null;
34
+ const { active, setFocusVisible } = VerticalNavigationItem.useVerticalNavigationItem();
35
+ const wasMouseDownRef = react.useRef(false);
36
+ const handleFocus = (event) => {
37
+ if (!wasMouseDownRef.current) {
38
+ setFocusVisible(true);
39
+ }
40
+ wasMouseDownRef.current = false;
41
+ onFocus == null ? void 0 : onFocus(event);
42
+ };
43
+ const handleBlur = (event) => {
44
+ setFocusVisible(false);
45
+ onBlur == null ? void 0 : onBlur(event);
46
+ };
47
+ const handleMouseDown = (event) => {
48
+ wasMouseDownRef.current = true;
49
+ onMouseDown == null ? void 0 : onMouseDown(event);
50
+ };
51
+ return /* @__PURE__ */ jsxRuntime.jsx(
52
+ ItemAction,
53
+ {
54
+ className: clsx.clsx(withBaseName(), className),
55
+ href,
56
+ "aria-current": active ? "page" : void 0,
57
+ render: render ?? (isLink ? void 0 : /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button" })),
58
+ ref,
59
+ onFocus: handleFocus,
60
+ onBlur: handleBlur,
61
+ onMouseDown: handleMouseDown,
62
+ ...rest,
63
+ children
64
+ }
65
+ );
66
+ });
67
+
68
+ exports.VerticalNavigationItemTrigger = VerticalNavigationItemTrigger;
69
+ //# sourceMappingURL=VerticalNavigationItemTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigationItemTrigger.js","sources":["../src/vertical-navigation/VerticalNavigationItemTrigger.tsx"],"sourcesContent":["import { makePrefixer, type RenderPropsType, renderProps } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type FocusEvent,\n forwardRef,\n type MouseEvent,\n useRef,\n} from \"react\";\nimport { useVerticalNavigationItem } from \"./VerticalNavigationItem\";\nimport verticalNavigationItemTriggerCss from \"./VerticalNavigationItemTrigger.css\";\n\n// biome-ignore lint/suspicious/noExplicitAny: We don't know the exact type here\nfunction ItemAction(props: ComponentPropsWithoutRef<any>) {\n return renderProps(\"a\", props);\n}\n\nexport interface VerticalNavigationItemTriggerProps\n extends ComponentPropsWithoutRef<\"a\"> {\n render?: RenderPropsType[\"render\"];\n}\n\nconst withBaseName = makePrefixer(\"saltVerticalNavigationItemTrigger\");\n\nexport const VerticalNavigationItemTrigger = forwardRef<\n HTMLAnchorElement,\n VerticalNavigationItemTriggerProps\n>(function VerticalNavigationItemTrigger(props, ref) {\n const {\n className,\n children,\n render,\n href,\n onFocus,\n onBlur,\n onMouseDown,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-vertical-navigation-item-trigger\",\n css: verticalNavigationItemTriggerCss,\n window: targetWindow,\n });\n\n const isLink = href != null;\n const { active, setFocusVisible } = useVerticalNavigationItem();\n\n const wasMouseDownRef = useRef(false);\n\n const handleFocus = (event: FocusEvent<never>) => {\n if (!wasMouseDownRef.current) {\n setFocusVisible(true);\n }\n wasMouseDownRef.current = false;\n onFocus?.(event);\n };\n\n const handleBlur = (event: FocusEvent<never>) => {\n setFocusVisible(false);\n onBlur?.(event);\n };\n\n const handleMouseDown = (event: MouseEvent<never>) => {\n wasMouseDownRef.current = true;\n onMouseDown?.(event);\n };\n\n return (\n <ItemAction\n className={clsx(withBaseName(), className)}\n href={href}\n aria-current={active ? \"page\" : undefined}\n render={render ?? (isLink ? undefined : <button type=\"button\" />)}\n ref={ref}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseDown={handleMouseDown}\n {...rest}\n >\n {children}\n </ItemAction>\n );\n});\n"],"names":["renderProps","makePrefixer","forwardRef","VerticalNavigationItemTrigger","useWindow","useComponentCssInjection","verticalNavigationItemTriggerCss","useVerticalNavigationItem","useRef","jsx","clsx"],"mappings":";;;;;;;;;;;AAeA,SAAS,WAAW,KAAsC,EAAA;AACxD,EAAO,OAAAA,gBAAA,CAAY,KAAK,KAAK,CAAA;AAC/B;AAOA,MAAM,YAAA,GAAeC,kBAAa,mCAAmC,CAAA;AAE9D,MAAM,6BAAgC,GAAAC,gBAAA,CAG3C,SAASC,8BAAAA,CAA8B,OAAO,GAAK,EAAA;AACnD,EAAM,MAAA;AAAA,IACJ,SAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,uCAAA;AAAA,IACR,GAAK,EAAAC,+BAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,SAAS,IAAQ,IAAA,IAAA;AACvB,EAAA,MAAM,EAAE,MAAA,EAAQ,eAAgB,EAAA,GAAIC,gDAA0B,EAAA;AAE9D,EAAM,MAAA,eAAA,GAAkBC,aAAO,KAAK,CAAA;AAEpC,EAAM,MAAA,WAAA,GAAc,CAAC,KAA6B,KAAA;AAChD,IAAI,IAAA,CAAC,gBAAgB,OAAS,EAAA;AAC5B,MAAA,eAAA,CAAgB,IAAI,CAAA;AAAA;AAEtB,IAAA,eAAA,CAAgB,OAAU,GAAA,KAAA;AAC1B,IAAU,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA,KAAA,CAAA;AAAA,GACZ;AAEA,EAAM,MAAA,UAAA,GAAa,CAAC,KAA6B,KAAA;AAC/C,IAAA,eAAA,CAAgB,KAAK,CAAA;AACrB,IAAS,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,KAAA,CAAA;AAAA,GACX;AAEA,EAAM,MAAA,eAAA,GAAkB,CAAC,KAA6B,KAAA;AACpD,IAAA,eAAA,CAAgB,OAAU,GAAA,IAAA;AAC1B,IAAc,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAA,KAAA,CAAA;AAAA,GAChB;AAEA,EACE,uBAAAC,cAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,IAAA;AAAA,MACA,cAAA,EAAc,SAAS,MAAS,GAAA,MAAA;AAAA,MAChC,QAAQ,MAAW,KAAA,MAAA,GAAS,yBAAaD,cAAA,CAAA,QAAA,EAAA,EAAO,MAAK,QAAS,EAAA,CAAA,CAAA;AAAA,MAC9D,GAAA;AAAA,MACA,OAAS,EAAA,WAAA;AAAA,MACT,MAAQ,EAAA,UAAA;AAAA,MACR,WAAa,EAAA,eAAA;AAAA,MACZ,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = ".saltVerticalNavigationSubMenu {\n display: flex;\n flex-direction: column;\n gap: var(--salt-spacing-fixed-100);\n list-style: none;\n padding: var(--salt-spacing-fixed-100) 0 0;\n margin: 0;\n}\n\n.saltVerticalNavigationSubMenu .saltVerticalNavigationItemContent {\n font-weight: var(--salt-text-h4-fontWeight-small);\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=VerticalNavigationSubMenu.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigationSubMenu.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var styles = require('@salt-ds/styles');
6
+ var window = require('@salt-ds/window');
7
+ var clsx = require('clsx');
8
+ var react = require('react');
9
+ var SubMenuContext = require('./SubMenuContext.js');
10
+ var VerticalNavigationSubMenu$1 = require('./VerticalNavigationSubMenu.css.js');
11
+
12
+ const withBaseName = core.makePrefixer("saltVerticalNavigationSubMenu");
13
+ const VerticalNavigationSubMenu = react.forwardRef(function VerticalNavigationSubMenu2(props, ref) {
14
+ const { children, className, ...rest } = props;
15
+ const targetWindow = window.useWindow();
16
+ styles.useComponentCssInjection({
17
+ testId: "salt-vertical-navigation-sub-menu",
18
+ css: VerticalNavigationSubMenu$1,
19
+ window: targetWindow
20
+ });
21
+ const [directIcons, setDirectIcons] = react.useState([]);
22
+ return /* @__PURE__ */ jsxRuntime.jsx(SubMenuContext.SubMenuProvider, { directIcons, setDirectIcons, children: /* @__PURE__ */ jsxRuntime.jsx(
23
+ "ul",
24
+ {
25
+ ref,
26
+ className: clsx.clsx(withBaseName(), className),
27
+ "data-has-direct-icons": directIcons.length > 0,
28
+ ...rest,
29
+ children
30
+ }
31
+ ) });
32
+ });
33
+
34
+ exports.VerticalNavigationSubMenu = VerticalNavigationSubMenu;
35
+ //# sourceMappingURL=VerticalNavigationSubMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalNavigationSubMenu.js","sources":["../src/vertical-navigation/VerticalNavigationSubMenu.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef, useState } from \"react\";\nimport { SubMenuProvider } from \"./SubMenuContext\";\nimport verticalNavigationSubMenuCss from \"./VerticalNavigationSubMenu.css\";\n\nexport interface VerticalNavigationSubMenuProps\n extends ComponentPropsWithoutRef<\"ul\"> {}\n\nconst withBaseName = makePrefixer(\"saltVerticalNavigationSubMenu\");\n\nexport const VerticalNavigationSubMenu = forwardRef<\n HTMLUListElement,\n VerticalNavigationSubMenuProps\n>(function VerticalNavigationSubMenu(props, ref) {\n const { children, className, ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-vertical-navigation-sub-menu\",\n css: verticalNavigationSubMenuCss,\n window: targetWindow,\n });\n\n const [directIcons, setDirectIcons] = useState<string[]>([]);\n\n return (\n <SubMenuProvider directIcons={directIcons} setDirectIcons={setDirectIcons}>\n <ul\n ref={ref}\n className={clsx(withBaseName(), className)}\n data-has-direct-icons={directIcons.length > 0}\n {...rest}\n >\n {children}\n </ul>\n </SubMenuProvider>\n );\n});\n"],"names":["makePrefixer","forwardRef","VerticalNavigationSubMenu","useWindow","useComponentCssInjection","verticalNavigationSubMenuCss","useState","jsx","SubMenuProvider","clsx"],"mappings":";;;;;;;;;;;AAWA,MAAM,YAAA,GAAeA,kBAAa,+BAA+B,CAAA;AAE1D,MAAM,yBAA4B,GAAAC,gBAAA,CAGvC,SAASC,0BAAAA,CAA0B,OAAO,GAAK,EAAA;AAC/C,EAAA,MAAM,EAAE,QAAA,EAAU,SAAW,EAAA,GAAG,MAAS,GAAA,KAAA;AAEzC,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mCAAA;AAAA,IACR,GAAK,EAAAC,2BAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,CAAC,WAAa,EAAA,cAAc,CAAI,GAAAC,cAAA,CAAmB,EAAE,CAAA;AAE3D,EACE,uBAAAC,cAAA,CAACC,8BAAgB,EAAA,EAAA,WAAA,EAA0B,cACzC,EAAA,QAAA,kBAAAD,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAAE,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,uBAAA,EAAuB,YAAY,MAAS,GAAA,CAAA;AAAA,MAC3C,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GAEL,EAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -14,7 +14,11 @@ import css_248z from './AppHeader.css.js';
14
14
 
15
15
  const withBaseName = makePrefixer("saltAppHeader");
16
16
  const AppHeader = forwardRef(
17
- ({ children, className, ...rest }, ref) => {
17
+ ({
18
+ children,
19
+ className
20
+ // ...rest
21
+ }, ref) => {
18
22
  const targetWindow = useWindow();
19
23
  useComponentCssInjection({
20
24
  testId: "salt-app-header",
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeader.js","sources":["../src/app-header/AppHeader.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { MenuIcon } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { Toolbar } from \"../toolbar\";\n\nimport appHeaderCss from \"./AppHeader.css\";\n\nconst withBaseName = makePrefixer(\"saltAppHeader\");\n\nexport type AppHeaderProps = HTMLAttributes<HTMLDivElement>;\n\nexport const AppHeader = forwardRef<HTMLDivElement, AppHeaderProps>(\n ({ children, className, ...rest }, ref) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-app-header\",\n css: appHeaderCss,\n window: targetWindow,\n });\n\n // const [innerContainerRef, overflowedItems] = useOverflowObserver(\n // \"horizontal\",\n // null\n // );\n\n return (\n <Toolbar\n className={clsx(withBaseName(), className)}\n ref={ref}\n overflowButtonIcon={<MenuIcon />}\n // OverflowButtonProps={{ align: \"start\" }}\n >\n {children}\n </Toolbar>\n );\n // return (\n // <div className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n // <div className={withBaseName(\"innerContainer\")} ref={innerContainerRef}>\n // <OverflowMenu\n // className={withBaseName(\"navMenu\")}\n // IconComponent={MenuIcon}\n // source={overflowedItems}\n // />\n // {children}\n // </div>\n // </div>\n // );\n },\n);\n"],"names":["appHeaderCss"],"mappings":";;;;;;;;;;;;;;AAUA,MAAM,YAAA,GAAe,aAAa,eAAe,CAAA;AAI1C,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,CAAC,EAAE,QAAA,EAAU,WAAW,GAAG,IAAA,IAAQ,GAAQ,KAAA;AACzC,IAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,iBAAA;AAAA,MACR,GAAK,EAAAA,QAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAOD,IACE,uBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACA,kBAAA,sBAAqB,QAAS,EAAA,EAAA,CAAA;AAAA,QAG7B;AAAA;AAAA,KACH;AAAA;AAeN;;;;"}
1
+ {"version":3,"file":"AppHeader.js","sources":["../src/app-header/AppHeader.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { MenuIcon } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { Toolbar } from \"../toolbar\";\n\nimport appHeaderCss from \"./AppHeader.css\";\n\nconst withBaseName = makePrefixer(\"saltAppHeader\");\n\nexport type AppHeaderProps = HTMLAttributes<HTMLDivElement>;\n\nexport const AppHeader = forwardRef<HTMLDivElement, AppHeaderProps>(\n (\n {\n children,\n className,\n // ...rest\n },\n ref,\n ) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-app-header\",\n css: appHeaderCss,\n window: targetWindow,\n });\n\n // const [innerContainerRef, overflowedItems] = useOverflowObserver(\n // \"horizontal\",\n // null\n // );\n\n return (\n <Toolbar\n className={clsx(withBaseName(), className)}\n ref={ref}\n overflowButtonIcon={<MenuIcon />}\n // OverflowButtonProps={{ align: \"start\" }}\n >\n {children}\n </Toolbar>\n );\n // return (\n // <div className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n // <div className={withBaseName(\"innerContainer\")} ref={innerContainerRef}>\n // <OverflowMenu\n // className={withBaseName(\"navMenu\")}\n // IconComponent={MenuIcon}\n // source={overflowedItems}\n // />\n // {children}\n // </div>\n // </div>\n // );\n },\n);\n"],"names":["appHeaderCss"],"mappings":";;;;;;;;;;;;;;AAUA,MAAM,YAAA,GAAe,aAAa,eAAe,CAAA;AAI1C,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,CACE;AAAA,IACE,QAAA;AAAA,IACA;AAAA;AAAA,KAGF,GACG,KAAA;AACH,IAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,iBAAA;AAAA,MACR,GAAK,EAAAA,QAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAOD,IACE,uBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACA,kBAAA,sBAAqB,QAAS,EAAA,EAAA,CAAA;AAAA,QAG7B;AAAA;AAAA,KACH;AAAA;AAeN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.js","sources":["../src/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import { Link, makePrefixer, Text, type TooltipProps } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type ComponentType,\n forwardRef,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport breadcrumbCss from \"./Breadcrumb.css\";\nimport { useBreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumb\");\n\nexport interface BreadcrumbProps {\n children?: ReactNode;\n ContainerProps?: HTMLAttributes<HTMLLIElement>;\n tooltipText?: string;\n tooltipProps?: TooltipProps;\n className?: string;\n href?: string;\n isCurrentLevel?: boolean;\n maxWidth?: number;\n minWidth?: number;\n onItemClick?: (item: any, event: any) => void; // TODO\n overflowLabel?: string;\n Icon?: ComponentType<IconProps>;\n}\n\nexport const Breadcrumb = forwardRef<HTMLLIElement, BreadcrumbProps>(\n function Breadcrumb(\n {\n children,\n ContainerProps = {},\n tooltipText,\n tooltipProps,\n isCurrentLevel,\n onItemClick,\n overflowLabel,\n maxWidth,\n Icon,\n minWidth,\n className,\n ...props\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumb\",\n css: breadcrumbCss,\n window: targetWindow,\n });\n\n const { itemsMaxWidth, itemsMinWidth, liClass } = useBreadcrumbsContext();\n\n const hasChildren = Children.count(children) !== 0;\n const hasOnlyIcon = Icon && !hasChildren;\n\n const getDefaultBreadcrumb = () =>\n isCurrentLevel ? (\n <Text\n maxRows={1}\n className={clsx(\n withBaseName(),\n className,\n withBaseName(\"currentLevel\"),\n )}\n styleAs=\"label\"\n >\n {children}\n </Text>\n ) : (\n <div\n className={clsx(\n withBaseName(),\n className,\n {\n [withBaseName(\"justifyContentCenter\")]: hasOnlyIcon,\n },\n withBaseName(\"regular\"),\n )}\n >\n {Icon && <Icon className={withBaseName(\"icon\")} />}\n {hasChildren && (\n <Link maxRows={1} styleAs=\"label\" {...props}>\n {children}\n </Link>\n )}\n </div>\n );\n\n const content = getDefaultBreadcrumb();\n\n const {\n style: containerStyle,\n className: containerClassName,\n ...containerPropsRest\n } = ContainerProps;\n\n return (\n <li\n ref={ref}\n style={{\n ...containerStyle,\n minWidth: minWidth ?? itemsMinWidth,\n maxWidth: maxWidth ?? itemsMaxWidth,\n }}\n className={clsx(liClass, containerClassName)}\n {...containerPropsRest}\n >\n {content}\n </li>\n );\n },\n);\n"],"names":["Breadcrumb","breadcrumbCss"],"mappings":";;;;;;;;;AAeA,MAAM,YAAA,GAAe,aAAa,gBAAgB,CAAA;AAiB3C,MAAM,UAAa,GAAA,UAAA;AAAA,EACxB,SAASA,WACP,CAAA;AAAA,IACE,QAAA;AAAA,IACA,iBAAiB,EAAC;AAAA,IAClB,WAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,iBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,aAAA,EAAe,aAAe,EAAA,OAAA,KAAY,qBAAsB,EAAA;AAExE,IAAA,MAAM,WAAc,GAAA,QAAA,CAAS,KAAM,CAAA,QAAQ,CAAM,KAAA,CAAA;AACjD,IAAM,MAAA,WAAA,GAAc,QAAQ,CAAC,WAAA;AAE7B,IAAM,MAAA,oBAAA,GAAuB,MAC3B,cACE,mBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,OAAS,EAAA,CAAA;AAAA,QACT,SAAW,EAAA,IAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb,SAAA;AAAA,UACA,aAAa,cAAc;AAAA,SAC7B;AAAA,QACA,OAAQ,EAAA,OAAA;AAAA,QAEP;AAAA;AAAA,KAGH,mBAAA,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,IAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb,SAAA;AAAA,UACA;AAAA,YACE,CAAC,YAAA,CAAa,sBAAsB,CAAC,GAAG;AAAA,WAC1C;AAAA,UACA,aAAa,SAAS;AAAA,SACxB;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,IAAA,oBAAS,GAAA,CAAA,IAAA,EAAA,EAAK,SAAW,EAAA,YAAA,CAAa,MAAM,CAAG,EAAA,CAAA;AAAA,UAC/C,WAAA,wBACE,IAAK,EAAA,EAAA,OAAA,EAAS,GAAG,OAAQ,EAAA,OAAA,EAAS,GAAG,KAAA,EACnC,QACH,EAAA;AAAA;AAAA;AAAA,KAEJ;AAGJ,IAAA,MAAM,UAAU,oBAAqB,EAAA;AAErC,IAAM,MAAA;AAAA,MACJ,KAAO,EAAA,cAAA;AAAA,MACP,SAAW,EAAA,kBAAA;AAAA,MACX,GAAG;AAAA,KACD,GAAA,cAAA;AAEJ,IACE,uBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAO,EAAA;AAAA,UACL,GAAG,cAAA;AAAA,UACH,UAAU,QAAY,IAAA,aAAA;AAAA,UACtB,UAAU,QAAY,IAAA;AAAA,SACxB;AAAA,QACA,SAAA,EAAW,IAAK,CAAA,OAAA,EAAS,kBAAkB,CAAA;AAAA,QAC1C,GAAG,kBAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA;AAGN;;;;"}
1
+ {"version":3,"file":"Breadcrumb.js","sources":["../src/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import { Link, makePrefixer, Text, type TooltipProps } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type ComponentType,\n forwardRef,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport type { CascadingMenuProps } from \"../cascading-menu/CascadingMenuProps\";\nimport breadcrumbCss from \"./Breadcrumb.css\";\nimport { useBreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumb\");\n\nexport interface BreadcrumbProps\n extends Pick<CascadingMenuProps, \"onItemClick\"> {\n children?: ReactNode;\n ContainerProps?: HTMLAttributes<HTMLLIElement>;\n tooltipText?: string;\n tooltipProps?: TooltipProps;\n className?: string;\n href?: string;\n isCurrentLevel?: boolean;\n maxWidth?: number;\n minWidth?: number;\n overflowLabel?: string;\n Icon?: ComponentType<IconProps>;\n}\n\nexport const Breadcrumb = forwardRef<HTMLLIElement, BreadcrumbProps>(\n function Breadcrumb(\n {\n children,\n ContainerProps = {},\n tooltipText,\n tooltipProps,\n isCurrentLevel,\n onItemClick,\n overflowLabel,\n maxWidth,\n Icon,\n minWidth,\n className,\n ...props\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumb\",\n css: breadcrumbCss,\n window: targetWindow,\n });\n\n const { itemsMaxWidth, itemsMinWidth, liClass } = useBreadcrumbsContext();\n\n const hasChildren = Children.count(children) !== 0;\n const hasOnlyIcon = Icon && !hasChildren;\n\n const getDefaultBreadcrumb = () =>\n isCurrentLevel ? (\n <Text\n maxRows={1}\n className={clsx(\n withBaseName(),\n className,\n withBaseName(\"currentLevel\"),\n )}\n styleAs=\"label\"\n >\n {children}\n </Text>\n ) : (\n <div\n className={clsx(\n withBaseName(),\n className,\n {\n [withBaseName(\"justifyContentCenter\")]: hasOnlyIcon,\n },\n withBaseName(\"regular\"),\n )}\n >\n {Icon && <Icon className={withBaseName(\"icon\")} />}\n {hasChildren && (\n <Link maxRows={1} styleAs=\"label\" {...props}>\n {children}\n </Link>\n )}\n </div>\n );\n\n const content = getDefaultBreadcrumb();\n\n const {\n style: containerStyle,\n className: containerClassName,\n ...containerPropsRest\n } = ContainerProps;\n\n return (\n <li\n ref={ref}\n style={{\n ...containerStyle,\n minWidth: minWidth ?? itemsMinWidth,\n maxWidth: maxWidth ?? itemsMaxWidth,\n }}\n className={clsx(liClass, containerClassName)}\n {...containerPropsRest}\n >\n {content}\n </li>\n );\n },\n);\n"],"names":["Breadcrumb","breadcrumbCss"],"mappings":";;;;;;;;;AAgBA,MAAM,YAAA,GAAe,aAAa,gBAAgB,CAAA;AAiB3C,MAAM,UAAa,GAAA,UAAA;AAAA,EACxB,SAASA,WACP,CAAA;AAAA,IACE,QAAA;AAAA,IACA,iBAAiB,EAAC;AAAA,IAClB,WAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,iBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,aAAA,EAAe,aAAe,EAAA,OAAA,KAAY,qBAAsB,EAAA;AAExE,IAAA,MAAM,WAAc,GAAA,QAAA,CAAS,KAAM,CAAA,QAAQ,CAAM,KAAA,CAAA;AACjD,IAAM,MAAA,WAAA,GAAc,QAAQ,CAAC,WAAA;AAE7B,IAAM,MAAA,oBAAA,GAAuB,MAC3B,cACE,mBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,OAAS,EAAA,CAAA;AAAA,QACT,SAAW,EAAA,IAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb,SAAA;AAAA,UACA,aAAa,cAAc;AAAA,SAC7B;AAAA,QACA,OAAQ,EAAA,OAAA;AAAA,QAEP;AAAA;AAAA,KAGH,mBAAA,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAA,IAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb,SAAA;AAAA,UACA;AAAA,YACE,CAAC,YAAA,CAAa,sBAAsB,CAAC,GAAG;AAAA,WAC1C;AAAA,UACA,aAAa,SAAS;AAAA,SACxB;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,IAAA,oBAAS,GAAA,CAAA,IAAA,EAAA,EAAK,SAAW,EAAA,YAAA,CAAa,MAAM,CAAG,EAAA,CAAA;AAAA,UAC/C,WAAA,wBACE,IAAK,EAAA,EAAA,OAAA,EAAS,GAAG,OAAQ,EAAA,OAAA,EAAS,GAAG,KAAA,EACnC,QACH,EAAA;AAAA;AAAA;AAAA,KAEJ;AAGJ,IAAA,MAAM,UAAU,oBAAqB,EAAA;AAErC,IAAM,MAAA;AAAA,MACJ,KAAO,EAAA,cAAA;AAAA,MACP,SAAW,EAAA,kBAAA;AAAA,MACX,GAAG;AAAA,KACD,GAAA,cAAA;AAEJ,IACE,uBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAO,EAAA;AAAA,UACL,GAAG,cAAA;AAAA,UACH,UAAU,QAAY,IAAA,aAAA;AAAA,UACtB,UAAU,QAAY,IAAA;AAAA,SACxB;AAAA,QACA,SAAA,EAAW,IAAK,CAAA,OAAA,EAAS,kBAAkB,CAAA;AAAA,QAC1C,GAAG,kBAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA;AAGN;;;;"}
@@ -16,7 +16,16 @@ function insertSeparators(items, className, separator, hideCurrentLevel, shouldR
16
16
  if (index < items.length - 1) {
17
17
  return acc.concat(
18
18
  current,
19
- /* @__PURE__ */ jsx("li", { "aria-hidden": true, className, children: separator }, `separator-${index}`)
19
+ /* @__PURE__ */ jsx(
20
+ "li",
21
+ {
22
+ "aria-hidden": true,
23
+ className,
24
+ children: separator
25
+ },
26
+ `separator-${// biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is acceptable here
27
+ index}`
28
+ )
20
29
  );
21
30
  }
22
31
  const skipLastElement = hideCurrentLevel && shouldRenderAllItems || hideCurrentLevel && !shouldRenderAllItems && itemsAfterCollapse !== 0;
@@ -36,7 +45,7 @@ const Breadcrumbs = forwardRef(
36
45
  itemsMinWidth: itemsMinWidthProp,
37
46
  itemsMaxWidth,
38
47
  wrap,
39
- Menu,
48
+ Menu: _Menu,
40
49
  SeparatorProps = {},
41
50
  ...other
42
51
  } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.js","sources":["../src/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n cloneElement,\n forwardRef,\n type HTMLAttributes,\n isValidElement,\n type ReactNode,\n useMemo,\n} from \"react\";\nimport type { BreadcrumbProps } from \"./Breadcrumb\";\nimport breadcrumbsCss from \"./Breadcrumbs.css\";\nimport { BreadcrumbsCollapsed } from \"./internal/BreadcrumbsCollapsed\";\nimport { BreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\nimport { BreadcrumbsSeparator } from \"./internal/BreadcrumbsSeparator\";\n\nconst iconWidth = 12;\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbs\");\n\nfunction insertSeparators(\n items: ReactNode[],\n className?: string,\n separator?: ReactNode,\n hideCurrentLevel?: boolean,\n shouldRenderAllItems?: boolean,\n itemsAfterCollapse?: number,\n) {\n return items.reduce((acc: ReactNode[], current: ReactNode, index: number) => {\n if (index < items.length - 1) {\n return acc.concat(\n current,\n <li aria-hidden className={className} key={`separator-${index}`}>\n {separator}\n </li>,\n );\n }\n const skipLastElement =\n (hideCurrentLevel && shouldRenderAllItems) ||\n (hideCurrentLevel && !shouldRenderAllItems && itemsAfterCollapse !== 0);\n return skipLastElement ? acc : acc.concat(current);\n }, []);\n}\n\nexport interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {\n Menu?: any;\n SeparatorProps?: IconProps;\n hideCurrentLevel?: boolean;\n itemsAfterCollapse?: number;\n itemsBeforeCollapse?: number;\n itemsMaxWidth?: number | string;\n itemsMinWidth?: number | string;\n maxItems?: number;\n separator?: ReactNode;\n wrap?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport const Breadcrumbs = forwardRef<HTMLElement, BreadcrumbsProps>(\n function Breadcrumbs(props, ref) {\n const {\n children,\n className,\n itemsAfterCollapse = 1,\n itemsBeforeCollapse = 1,\n maxItems = 3,\n separator: separatorProp,\n hideCurrentLevel,\n itemsMinWidth: itemsMinWidthProp,\n itemsMaxWidth,\n wrap,\n Menu,\n SeparatorProps = {},\n ...other\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumbs\",\n css: breadcrumbsCss,\n window: targetWindow,\n });\n\n const itemsMinWidth =\n itemsMinWidthProp != null ? itemsMinWidthProp : iconWidth;\n\n const breadcrumbsContext = useMemo(\n () => ({\n wrap,\n itemsMinWidth,\n itemsMaxWidth,\n liClass: withBaseName(\"li\"),\n }),\n [wrap, itemsMaxWidth, itemsMinWidth],\n );\n\n const separator = separatorProp || (\n <BreadcrumbsSeparator {...SeparatorProps} />\n );\n\n const childrenArray = Children.toArray(children);\n const shouldRenderAllItems =\n wrap || maxItems == null || childrenArray.length <= maxItems;\n\n const allItems = childrenArray\n .filter(isValidElement)\n .map((child, index) => {\n const isLastChild = index === childrenArray.length - 1;\n\n return cloneElement(child, {\n isCurrentLevel: isLastChild,\n } as BreadcrumbProps);\n });\n\n const renderItemsBeforeAndAfter = () => {\n // This defends against someone passing weird input, to ensure that if all\n // items would be shown anyway, we just show all items without the EllipsisItem\n if (itemsBeforeCollapse + itemsAfterCollapse >= allItems.length) {\n console.warn(\n [\n \"You have provided an invalid combination of properties to the Breadcrumbs.\",\n `itemsAfterCollapse={${itemsAfterCollapse}} +itemsBeforeCollapse={${itemsBeforeCollapse}} >= maxItems={${maxItems}}`,\n ].join(\"\\n\"),\n );\n return allItems;\n }\n\n const hiddenItems = allItems.slice(\n itemsBeforeCollapse,\n allItems.length - itemsAfterCollapse,\n );\n return [\n ...allItems.slice(0, itemsBeforeCollapse),\n <li className={withBaseName(\"li\")} key=\"breadcrumbs-collapsed\">\n <BreadcrumbsCollapsed\n accessibleText={`Breadcrumb levels ${itemsBeforeCollapse + 1} to ${\n allItems.length - itemsAfterCollapse\n }`}\n className={withBaseName(\"overflowButton\")}\n >\n {hiddenItems}\n </BreadcrumbsCollapsed>\n </li>,\n ...allItems.slice(\n allItems.length - itemsAfterCollapse,\n allItems.length,\n ),\n ];\n };\n\n const itemsToRender = shouldRenderAllItems\n ? allItems\n : renderItemsBeforeAndAfter();\n return (\n <BreadcrumbsContext.Provider value={breadcrumbsContext}>\n <nav\n aria-label=\"Breadcrumb\"\n className={clsx(withBaseName(), className)}\n data-testid=\"breadcrumbs\"\n ref={ref}\n {...other}\n >\n <ol\n className={clsx(withBaseName(\"ol\"), {\n [withBaseName(\"ol-wrap\")]: wrap,\n })}\n >\n {insertSeparators(\n itemsToRender,\n withBaseName(\"separator\"),\n separator,\n hideCurrentLevel,\n shouldRenderAllItems,\n itemsAfterCollapse,\n )}\n </ol>\n </nav>\n </BreadcrumbsContext.Provider>\n );\n },\n);\n"],"names":["Breadcrumbs","breadcrumbsCss"],"mappings":"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"}
1
+ {"version":3,"file":"Breadcrumbs.js","sources":["../src/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type ComponentType,\n cloneElement,\n forwardRef,\n type HTMLAttributes,\n isValidElement,\n type ReactNode,\n useMemo,\n} from \"react\";\nimport type { BreadcrumbProps } from \"./Breadcrumb\";\nimport breadcrumbsCss from \"./Breadcrumbs.css\";\nimport { BreadcrumbsCollapsed } from \"./internal/BreadcrumbsCollapsed\";\nimport { BreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\nimport { BreadcrumbsSeparator } from \"./internal/BreadcrumbsSeparator\";\n\nconst iconWidth = 12;\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbs\");\n\nfunction insertSeparators(\n items: ReactNode[],\n className?: string,\n separator?: ReactNode,\n hideCurrentLevel?: boolean,\n shouldRenderAllItems?: boolean,\n itemsAfterCollapse?: number,\n) {\n return items.reduce((acc: ReactNode[], current: ReactNode, index: number) => {\n if (index < items.length - 1) {\n return acc.concat(\n current,\n <li\n aria-hidden\n className={className}\n key={`separator-${\n // biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is acceptable here\n index\n }`}\n >\n {separator}\n </li>,\n );\n }\n const skipLastElement =\n (hideCurrentLevel && shouldRenderAllItems) ||\n (hideCurrentLevel && !shouldRenderAllItems && itemsAfterCollapse !== 0);\n return skipLastElement ? acc : acc.concat(current);\n }, []);\n}\n\nexport interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {\n Menu?: ComponentType;\n SeparatorProps?: IconProps;\n hideCurrentLevel?: boolean;\n itemsAfterCollapse?: number;\n itemsBeforeCollapse?: number;\n itemsMaxWidth?: number | string;\n itemsMinWidth?: number | string;\n maxItems?: number;\n separator?: ReactNode;\n wrap?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport const Breadcrumbs = forwardRef<HTMLElement, BreadcrumbsProps>(\n function Breadcrumbs(props, ref) {\n const {\n children,\n className,\n itemsAfterCollapse = 1,\n itemsBeforeCollapse = 1,\n maxItems = 3,\n separator: separatorProp,\n hideCurrentLevel,\n itemsMinWidth: itemsMinWidthProp,\n itemsMaxWidth,\n wrap,\n Menu: _Menu,\n SeparatorProps = {},\n ...other\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumbs\",\n css: breadcrumbsCss,\n window: targetWindow,\n });\n\n const itemsMinWidth =\n itemsMinWidthProp != null ? itemsMinWidthProp : iconWidth;\n\n const breadcrumbsContext = useMemo(\n () => ({\n wrap,\n itemsMinWidth,\n itemsMaxWidth,\n liClass: withBaseName(\"li\"),\n }),\n [wrap, itemsMaxWidth, itemsMinWidth],\n );\n\n const separator = separatorProp || (\n <BreadcrumbsSeparator {...SeparatorProps} />\n );\n\n const childrenArray = Children.toArray(children);\n const shouldRenderAllItems =\n wrap || maxItems == null || childrenArray.length <= maxItems;\n\n const allItems = childrenArray\n .filter(isValidElement)\n .map((child, index) => {\n const isLastChild = index === childrenArray.length - 1;\n\n return cloneElement(child, {\n isCurrentLevel: isLastChild,\n } as BreadcrumbProps);\n });\n\n const renderItemsBeforeAndAfter = () => {\n // This defends against someone passing weird input, to ensure that if all\n // items would be shown anyway, we just show all items without the EllipsisItem\n if (itemsBeforeCollapse + itemsAfterCollapse >= allItems.length) {\n console.warn(\n [\n \"You have provided an invalid combination of properties to the Breadcrumbs.\",\n `itemsAfterCollapse={${itemsAfterCollapse}} +itemsBeforeCollapse={${itemsBeforeCollapse}} >= maxItems={${maxItems}}`,\n ].join(\"\\n\"),\n );\n return allItems;\n }\n\n const hiddenItems = allItems.slice(\n itemsBeforeCollapse,\n allItems.length - itemsAfterCollapse,\n );\n return [\n ...allItems.slice(0, itemsBeforeCollapse),\n <li className={withBaseName(\"li\")} key=\"breadcrumbs-collapsed\">\n <BreadcrumbsCollapsed\n accessibleText={`Breadcrumb levels ${itemsBeforeCollapse + 1} to ${\n allItems.length - itemsAfterCollapse\n }`}\n className={withBaseName(\"overflowButton\")}\n >\n {hiddenItems}\n </BreadcrumbsCollapsed>\n </li>,\n ...allItems.slice(\n allItems.length - itemsAfterCollapse,\n allItems.length,\n ),\n ];\n };\n\n const itemsToRender = shouldRenderAllItems\n ? allItems\n : renderItemsBeforeAndAfter();\n return (\n <BreadcrumbsContext.Provider value={breadcrumbsContext}>\n <nav\n aria-label=\"Breadcrumb\"\n className={clsx(withBaseName(), className)}\n data-testid=\"breadcrumbs\"\n ref={ref}\n {...other}\n >\n <ol\n className={clsx(withBaseName(\"ol\"), {\n [withBaseName(\"ol-wrap\")]: wrap,\n })}\n >\n {insertSeparators(\n itemsToRender,\n withBaseName(\"separator\"),\n separator,\n hideCurrentLevel,\n shouldRenderAllItems,\n itemsAfterCollapse,\n )}\n </ol>\n </nav>\n </BreadcrumbsContext.Provider>\n );\n },\n);\n"],"names":["Breadcrumbs","breadcrumbsCss"],"mappings":"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"}
@@ -26,12 +26,9 @@ const BreadcrumbsCollapsed = ({
26
26
  const { overflowLabel, tooltipText, children: children2 } = child.props;
27
27
  return overflowLabel || tooltipText || String(children2);
28
28
  }, []);
29
- const onItemClick = useCallback(
30
- (sourceItem, event) => {
31
- shouldFocusOnMount.current = true;
32
- },
33
- [shouldFocusOnMount]
34
- );
29
+ const onItemClick = useCallback(() => {
30
+ shouldFocusOnMount.current = true;
31
+ }, [shouldFocusOnMount]);
35
32
  const menuItems = [];
36
33
  Children.forEach(children, (x) => {
37
34
  if (isValidElement(x)) {