@salt-ds/lab 1.0.0-alpha.13 → 1.0.0-alpha.15

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 (416) hide show
  1. package/dist-cjs/app-header/AppHeader.js +0 -1
  2. package/dist-cjs/app-header/AppHeader.js.map +1 -1
  3. package/dist-cjs/badge/Badge.css.js +1 -1
  4. package/dist-cjs/badge/Badge.js +7 -23
  5. package/dist-cjs/badge/Badge.js.map +1 -1
  6. package/dist-cjs/calendar/internal/CalendarNavigation.js +0 -1
  7. package/dist-cjs/calendar/internal/CalendarNavigation.js.map +1 -1
  8. package/dist-cjs/calendar/useSelection.js +0 -1
  9. package/dist-cjs/calendar/useSelection.js.map +1 -1
  10. package/dist-cjs/carousel/Carousel.js +0 -1
  11. package/dist-cjs/carousel/Carousel.js.map +1 -1
  12. package/dist-cjs/cascading-menu/CascadingMenu.js +0 -1
  13. package/dist-cjs/cascading-menu/CascadingMenu.js.map +1 -1
  14. package/dist-cjs/cascading-menu/CascadingMenuItem.js +0 -1
  15. package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
  16. package/dist-cjs/cascading-menu/CascadingMenuList.js +0 -1
  17. package/dist-cjs/cascading-menu/CascadingMenuList.js.map +1 -1
  18. package/dist-cjs/cascading-menu/internal/useClickAway.js +0 -1
  19. package/dist-cjs/cascading-menu/internal/useClickAway.js.map +1 -1
  20. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js +0 -1
  21. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  22. package/dist-cjs/combo-box/ComboBox.js +0 -1
  23. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  24. package/dist-cjs/combo-box/useCombobox.js +0 -1
  25. package/dist-cjs/combo-box/useCombobox.js.map +1 -1
  26. package/dist-cjs/combo-box-deprecated/filterHelpers.js +0 -1
  27. package/dist-cjs/combo-box-deprecated/filterHelpers.js.map +1 -1
  28. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js +0 -1
  29. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  30. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js +0 -1
  31. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  32. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js +0 -1
  33. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  34. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js +0 -1
  35. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  36. package/dist-cjs/common-hooks/useViewportTracking.js +0 -1
  37. package/dist-cjs/common-hooks/useViewportTracking.js.map +1 -1
  38. package/dist-cjs/common-hooks/utils/filter-utils.js +0 -1
  39. package/dist-cjs/common-hooks/utils/filter-utils.js.map +1 -1
  40. package/dist-cjs/contact-details/MailLinkComponent.js +0 -1
  41. package/dist-cjs/contact-details/MailLinkComponent.js.map +1 -1
  42. package/dist-cjs/content-status/ContentStatus.js +0 -2
  43. package/dist-cjs/content-status/ContentStatus.js.map +1 -1
  44. package/dist-cjs/content-status/internal/StatusIndicator.js +0 -3
  45. package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
  46. package/dist-cjs/deck-layout/DeckLayout.js +0 -1
  47. package/dist-cjs/deck-layout/DeckLayout.js.map +1 -1
  48. package/dist-cjs/drawer/Drawer.css.js +6 -0
  49. package/dist-cjs/drawer/Drawer.css.js.map +1 -0
  50. package/dist-cjs/drawer/Drawer.js +77 -0
  51. package/dist-cjs/drawer/Drawer.js.map +1 -0
  52. package/dist-cjs/drawer/useDrawer.js +31 -0
  53. package/dist-cjs/drawer/useDrawer.js.map +1 -0
  54. package/dist-cjs/dropdown/Dropdown.js +0 -1
  55. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  56. package/dist-cjs/dropdown/DropdownBase.js +0 -1
  57. package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
  58. package/dist-cjs/dropdown/useDropdown.js +0 -1
  59. package/dist-cjs/dropdown/useDropdown.js.map +1 -1
  60. package/dist-cjs/dropdown/useDropdownBase.js +0 -1
  61. package/dist-cjs/dropdown/useDropdownBase.js.map +1 -1
  62. package/dist-cjs/form-field-legacy/FormFieldLegacy.css.js +1 -1
  63. package/dist-cjs/index.js +15 -13
  64. package/dist-cjs/index.js.map +1 -1
  65. package/dist-cjs/layer-layout/LayerLayout.js +0 -1
  66. package/dist-cjs/layer-layout/LayerLayout.js.map +1 -1
  67. package/dist-cjs/list/Highlighter.js +0 -1
  68. package/dist-cjs/list/Highlighter.js.map +1 -1
  69. package/dist-cjs/list/List.js +0 -1
  70. package/dist-cjs/list/List.js.map +1 -1
  71. package/dist-cjs/list/VirtualizedList.js +0 -1
  72. package/dist-cjs/list/VirtualizedList.js.map +1 -1
  73. package/dist-cjs/list/useList.js +0 -1
  74. package/dist-cjs/list/useList.js.map +1 -1
  75. package/dist-cjs/list/useListHeight.js +0 -1
  76. package/dist-cjs/list/useListHeight.js.map +1 -1
  77. package/dist-cjs/list-deprecated/ListItemBase.js +0 -1
  78. package/dist-cjs/list-deprecated/ListItemBase.js.map +1 -1
  79. package/dist-cjs/list-deprecated/internal/Highlighter.js +0 -1
  80. package/dist-cjs/list-deprecated/internal/Highlighter.js.map +1 -1
  81. package/dist-cjs/list-deprecated/useTypeSelect.js +0 -1
  82. package/dist-cjs/list-deprecated/useTypeSelect.js.map +1 -1
  83. package/dist-cjs/list-next/ListItemNext.css.js +1 -1
  84. package/dist-cjs/list-next/ListItemNext.js +17 -6
  85. package/dist-cjs/list-next/ListItemNext.js.map +1 -1
  86. package/dist-cjs/list-next/ListNext.js +21 -10
  87. package/dist-cjs/list-next/ListNext.js.map +1 -1
  88. package/dist-cjs/list-next/ListNextContext.js.map +1 -1
  89. package/dist-cjs/list-next/useList.js +96 -37
  90. package/dist-cjs/list-next/useList.js.map +1 -1
  91. package/dist-cjs/nav-item/ExpansionButton.js +1 -1
  92. package/dist-cjs/nav-item/ExpansionButton.js.map +1 -1
  93. package/dist-cjs/nav-item/NavItem.css.js +1 -1
  94. package/dist-cjs/nav-item/NavItem.js +11 -1
  95. package/dist-cjs/nav-item/NavItem.js.map +1 -1
  96. package/dist-cjs/parent-child-layout/ParentChildLayout.js +0 -1
  97. package/dist-cjs/parent-child-layout/ParentChildLayout.js.map +1 -1
  98. package/dist-cjs/pill-next/PillNext.css.js +6 -0
  99. package/dist-cjs/pill-next/PillNext.css.js.map +1 -0
  100. package/dist-cjs/pill-next/PillNext.js +58 -0
  101. package/dist-cjs/pill-next/PillNext.js.map +1 -0
  102. package/dist-cjs/progress/CircularProgress/CircularProgress.css.js +1 -1
  103. package/dist-cjs/progress/CircularProgress/CircularProgress.js +48 -94
  104. package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
  105. package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +1 -1
  106. package/dist-cjs/progress/LinearProgress/LinearProgress.js +18 -66
  107. package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
  108. package/dist-cjs/query-input/internal/CategoryList.js +0 -1
  109. package/dist-cjs/query-input/internal/CategoryList.js.map +1 -1
  110. package/dist-cjs/query-input/internal/CategoryListItem.js +0 -1
  111. package/dist-cjs/query-input/internal/CategoryListItem.js.map +1 -1
  112. package/dist-cjs/query-input/internal/QueryInputBody.js +0 -1
  113. package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
  114. package/dist-cjs/query-input/internal/SearchList.js +0 -1
  115. package/dist-cjs/query-input/internal/SearchList.js.map +1 -1
  116. package/dist-cjs/query-input/internal/ValueList.js +0 -1
  117. package/dist-cjs/query-input/internal/ValueList.js.map +1 -1
  118. package/dist-cjs/query-input/useQueryInput.js +0 -1
  119. package/dist-cjs/query-input/useQueryInput.js.map +1 -1
  120. package/dist-cjs/responsive/useOverflow.js +0 -1
  121. package/dist-cjs/responsive/useOverflow.js.map +1 -1
  122. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js +6 -0
  123. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js.map +1 -0
  124. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js +34 -0
  125. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js.map +1 -0
  126. package/dist-cjs/stepped-tracker/SteppedTracker.css.js +6 -0
  127. package/dist-cjs/stepped-tracker/SteppedTracker.css.js.map +1 -0
  128. package/dist-cjs/stepped-tracker/SteppedTracker.js +59 -0
  129. package/dist-cjs/stepped-tracker/SteppedTracker.js.map +1 -0
  130. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js +51 -0
  131. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js.map +1 -0
  132. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js +6 -0
  133. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js.map +1 -0
  134. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js +26 -0
  135. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js.map +1 -0
  136. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js +6 -0
  137. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js.map +1 -0
  138. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +99 -0
  139. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -0
  140. package/dist-cjs/switch/Switch.css.js +1 -1
  141. package/dist-cjs/switch/Switch.js +67 -72
  142. package/dist-cjs/switch/Switch.js.map +1 -1
  143. package/dist-cjs/tabs/Tabstrip.js +0 -1
  144. package/dist-cjs/tabs/Tabstrip.js.map +1 -1
  145. package/dist-cjs/tabs/useActivationIndicator.js +0 -1
  146. package/dist-cjs/tabs/useActivationIndicator.js.map +1 -1
  147. package/dist-cjs/tabs/useKeyboardNavigation.js +0 -1
  148. package/dist-cjs/tabs/useKeyboardNavigation.js.map +1 -1
  149. package/dist-cjs/tabs-next/OverflowMenu.js +0 -1
  150. package/dist-cjs/tabs-next/OverflowMenu.js.map +1 -1
  151. package/dist-cjs/toast-group/ToastGroup.css.js +6 -0
  152. package/dist-cjs/toast-group/ToastGroup.css.js.map +1 -0
  153. package/dist-cjs/toast-group/ToastGroup.js +32 -0
  154. package/dist-cjs/toast-group/ToastGroup.js.map +1 -0
  155. package/dist-cjs/tokenized-input/useTokenizedInput.js +0 -1
  156. package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
  157. package/dist-cjs/toolbar/Toolbar.js +0 -1
  158. package/dist-cjs/toolbar/Toolbar.js.map +1 -1
  159. package/dist-cjs/toolbar/internal/renderToolbarItems.js +0 -1
  160. package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
  161. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js +0 -1
  162. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  163. package/dist-cjs/tree/Tree.js +0 -1
  164. package/dist-cjs/tree/Tree.js.map +1 -1
  165. package/dist-cjs/tree/useTree.js +0 -1
  166. package/dist-cjs/tree/useTree.js.map +1 -1
  167. package/dist-es/app-header/AppHeader.js +0 -1
  168. package/dist-es/app-header/AppHeader.js.map +1 -1
  169. package/dist-es/badge/Badge.css.js +1 -1
  170. package/dist-es/badge/Badge.js +9 -25
  171. package/dist-es/badge/Badge.js.map +1 -1
  172. package/dist-es/calendar/internal/CalendarNavigation.js +0 -1
  173. package/dist-es/calendar/internal/CalendarNavigation.js.map +1 -1
  174. package/dist-es/calendar/useSelection.js +0 -1
  175. package/dist-es/calendar/useSelection.js.map +1 -1
  176. package/dist-es/carousel/Carousel.js +0 -1
  177. package/dist-es/carousel/Carousel.js.map +1 -1
  178. package/dist-es/cascading-menu/CascadingMenu.js +0 -1
  179. package/dist-es/cascading-menu/CascadingMenu.js.map +1 -1
  180. package/dist-es/cascading-menu/CascadingMenuItem.js +0 -1
  181. package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
  182. package/dist-es/cascading-menu/CascadingMenuList.js +0 -1
  183. package/dist-es/cascading-menu/CascadingMenuList.js.map +1 -1
  184. package/dist-es/cascading-menu/internal/useClickAway.js +0 -1
  185. package/dist-es/cascading-menu/internal/useClickAway.js.map +1 -1
  186. package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js +0 -1
  187. package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  188. package/dist-es/combo-box/ComboBox.js +0 -1
  189. package/dist-es/combo-box/ComboBox.js.map +1 -1
  190. package/dist-es/combo-box/useCombobox.js +0 -1
  191. package/dist-es/combo-box/useCombobox.js.map +1 -1
  192. package/dist-es/combo-box-deprecated/filterHelpers.js +0 -1
  193. package/dist-es/combo-box-deprecated/filterHelpers.js.map +1 -1
  194. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js +0 -1
  195. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  196. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js +0 -1
  197. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  198. package/dist-es/combo-box-deprecated/internal/useComboBox.js +0 -1
  199. package/dist-es/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  200. package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js +0 -1
  201. package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  202. package/dist-es/common-hooks/useViewportTracking.js +0 -1
  203. package/dist-es/common-hooks/useViewportTracking.js.map +1 -1
  204. package/dist-es/common-hooks/utils/filter-utils.js +0 -1
  205. package/dist-es/common-hooks/utils/filter-utils.js.map +1 -1
  206. package/dist-es/contact-details/MailLinkComponent.js +0 -1
  207. package/dist-es/contact-details/MailLinkComponent.js.map +1 -1
  208. package/dist-es/content-status/ContentStatus.js +0 -2
  209. package/dist-es/content-status/ContentStatus.js.map +1 -1
  210. package/dist-es/content-status/internal/StatusIndicator.js +0 -3
  211. package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
  212. package/dist-es/deck-layout/DeckLayout.js +0 -1
  213. package/dist-es/deck-layout/DeckLayout.js.map +1 -1
  214. package/dist-es/drawer/Drawer.css.js +4 -0
  215. package/dist-es/drawer/Drawer.css.js.map +1 -0
  216. package/dist-es/drawer/Drawer.js +72 -0
  217. package/dist-es/drawer/Drawer.js.map +1 -0
  218. package/dist-es/drawer/useDrawer.js +27 -0
  219. package/dist-es/drawer/useDrawer.js.map +1 -0
  220. package/dist-es/dropdown/Dropdown.js +0 -1
  221. package/dist-es/dropdown/Dropdown.js.map +1 -1
  222. package/dist-es/dropdown/DropdownBase.js +0 -1
  223. package/dist-es/dropdown/DropdownBase.js.map +1 -1
  224. package/dist-es/dropdown/useDropdown.js +0 -1
  225. package/dist-es/dropdown/useDropdown.js.map +1 -1
  226. package/dist-es/dropdown/useDropdownBase.js +0 -1
  227. package/dist-es/dropdown/useDropdownBase.js.map +1 -1
  228. package/dist-es/form-field-legacy/FormFieldLegacy.css.js +1 -1
  229. package/dist-es/index.js +8 -6
  230. package/dist-es/index.js.map +1 -1
  231. package/dist-es/layer-layout/LayerLayout.js +0 -1
  232. package/dist-es/layer-layout/LayerLayout.js.map +1 -1
  233. package/dist-es/list/Highlighter.js +0 -1
  234. package/dist-es/list/Highlighter.js.map +1 -1
  235. package/dist-es/list/List.js +0 -1
  236. package/dist-es/list/List.js.map +1 -1
  237. package/dist-es/list/VirtualizedList.js +0 -1
  238. package/dist-es/list/VirtualizedList.js.map +1 -1
  239. package/dist-es/list/useList.js +0 -1
  240. package/dist-es/list/useList.js.map +1 -1
  241. package/dist-es/list/useListHeight.js +0 -1
  242. package/dist-es/list/useListHeight.js.map +1 -1
  243. package/dist-es/list-deprecated/ListItemBase.js +0 -1
  244. package/dist-es/list-deprecated/ListItemBase.js.map +1 -1
  245. package/dist-es/list-deprecated/internal/Highlighter.js +0 -1
  246. package/dist-es/list-deprecated/internal/Highlighter.js.map +1 -1
  247. package/dist-es/list-deprecated/useTypeSelect.js +0 -1
  248. package/dist-es/list-deprecated/useTypeSelect.js.map +1 -1
  249. package/dist-es/list-next/ListItemNext.css.js +1 -1
  250. package/dist-es/list-next/ListItemNext.js +17 -6
  251. package/dist-es/list-next/ListItemNext.js.map +1 -1
  252. package/dist-es/list-next/ListNext.js +21 -10
  253. package/dist-es/list-next/ListNext.js.map +1 -1
  254. package/dist-es/list-next/ListNextContext.js.map +1 -1
  255. package/dist-es/list-next/useList.js +98 -39
  256. package/dist-es/list-next/useList.js.map +1 -1
  257. package/dist-es/nav-item/ExpansionButton.js +2 -2
  258. package/dist-es/nav-item/ExpansionButton.js.map +1 -1
  259. package/dist-es/nav-item/NavItem.css.js +1 -1
  260. package/dist-es/nav-item/NavItem.js +11 -1
  261. package/dist-es/nav-item/NavItem.js.map +1 -1
  262. package/dist-es/parent-child-layout/ParentChildLayout.js +0 -1
  263. package/dist-es/parent-child-layout/ParentChildLayout.js.map +1 -1
  264. package/dist-es/pill-next/PillNext.css.js +4 -0
  265. package/dist-es/pill-next/PillNext.css.js.map +1 -0
  266. package/dist-es/pill-next/PillNext.js +50 -0
  267. package/dist-es/pill-next/PillNext.js.map +1 -0
  268. package/dist-es/progress/CircularProgress/CircularProgress.css.js +1 -1
  269. package/dist-es/progress/CircularProgress/CircularProgress.js +50 -95
  270. package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
  271. package/dist-es/progress/LinearProgress/LinearProgress.css.js +1 -1
  272. package/dist-es/progress/LinearProgress/LinearProgress.js +18 -66
  273. package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
  274. package/dist-es/query-input/internal/CategoryList.js +0 -1
  275. package/dist-es/query-input/internal/CategoryList.js.map +1 -1
  276. package/dist-es/query-input/internal/CategoryListItem.js +0 -1
  277. package/dist-es/query-input/internal/CategoryListItem.js.map +1 -1
  278. package/dist-es/query-input/internal/QueryInputBody.js +0 -1
  279. package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
  280. package/dist-es/query-input/internal/SearchList.js +0 -1
  281. package/dist-es/query-input/internal/SearchList.js.map +1 -1
  282. package/dist-es/query-input/internal/ValueList.js +0 -1
  283. package/dist-es/query-input/internal/ValueList.js.map +1 -1
  284. package/dist-es/query-input/useQueryInput.js +0 -1
  285. package/dist-es/query-input/useQueryInput.js.map +1 -1
  286. package/dist-es/responsive/useOverflow.js +0 -1
  287. package/dist-es/responsive/useOverflow.js.map +1 -1
  288. package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js +4 -0
  289. package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js.map +1 -0
  290. package/dist-es/stepped-tracker/StepLabel/StepLabel.js +30 -0
  291. package/dist-es/stepped-tracker/StepLabel/StepLabel.js.map +1 -0
  292. package/dist-es/stepped-tracker/SteppedTracker.css.js +4 -0
  293. package/dist-es/stepped-tracker/SteppedTracker.css.js.map +1 -0
  294. package/dist-es/stepped-tracker/SteppedTracker.js +55 -0
  295. package/dist-es/stepped-tracker/SteppedTracker.js.map +1 -0
  296. package/dist-es/stepped-tracker/SteppedTrackerContext.js +44 -0
  297. package/dist-es/stepped-tracker/SteppedTrackerContext.js.map +1 -0
  298. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js +4 -0
  299. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js.map +1 -0
  300. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js +22 -0
  301. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js.map +1 -0
  302. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js +4 -0
  303. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js.map +1 -0
  304. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +95 -0
  305. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -0
  306. package/dist-es/switch/Switch.css.js +1 -1
  307. package/dist-es/switch/Switch.js +70 -75
  308. package/dist-es/switch/Switch.js.map +1 -1
  309. package/dist-es/tabs/Tabstrip.js +0 -1
  310. package/dist-es/tabs/Tabstrip.js.map +1 -1
  311. package/dist-es/tabs/useActivationIndicator.js +0 -1
  312. package/dist-es/tabs/useActivationIndicator.js.map +1 -1
  313. package/dist-es/tabs/useKeyboardNavigation.js +0 -1
  314. package/dist-es/tabs/useKeyboardNavigation.js.map +1 -1
  315. package/dist-es/tabs-next/OverflowMenu.js +0 -1
  316. package/dist-es/tabs-next/OverflowMenu.js.map +1 -1
  317. package/dist-es/toast-group/ToastGroup.css.js +4 -0
  318. package/dist-es/toast-group/ToastGroup.css.js.map +1 -0
  319. package/dist-es/toast-group/ToastGroup.js +28 -0
  320. package/dist-es/toast-group/ToastGroup.js.map +1 -0
  321. package/dist-es/tokenized-input/useTokenizedInput.js +0 -1
  322. package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
  323. package/dist-es/toolbar/Toolbar.js +0 -1
  324. package/dist-es/toolbar/Toolbar.js.map +1 -1
  325. package/dist-es/toolbar/internal/renderToolbarItems.js +0 -1
  326. package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
  327. package/dist-es/toolbar/overflow-panel/OverflowPanel.js +0 -1
  328. package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  329. package/dist-es/tree/Tree.js +0 -1
  330. package/dist-es/tree/Tree.js.map +1 -1
  331. package/dist-es/tree/useTree.js +0 -1
  332. package/dist-es/tree/useTree.js.map +1 -1
  333. package/dist-types/badge/Badge.d.ts +5 -16
  334. package/dist-types/content-status/internal/StatusIndicator.d.ts +2 -2
  335. package/dist-types/dialog/internal/DialogContext.d.ts +1 -1
  336. package/dist-types/drawer/Drawer.d.ts +22 -0
  337. package/dist-types/drawer/index.d.ts +2 -0
  338. package/dist-types/drawer/useDrawer.d.ts +27 -0
  339. package/dist-types/index.d.ts +4 -3
  340. package/dist-types/list-next/ListItemNext.d.ts +6 -1
  341. package/dist-types/list-next/ListNext.d.ts +7 -2
  342. package/dist-types/list-next/ListNextContext.d.ts +4 -2
  343. package/dist-types/list-next/useList.d.ts +15 -7
  344. package/dist-types/nav-item/NavItem.d.ts +29 -1
  345. package/dist-types/pill-next/PillNext.d.ts +7 -0
  346. package/dist-types/pill-next/index.d.ts +1 -0
  347. package/dist-types/progress/CircularProgress/CircularProgress.d.ts +6 -43
  348. package/dist-types/progress/LinearProgress/LinearProgress.d.ts +6 -35
  349. package/dist-types/stepped-tracker/StepLabel/StepLabel.d.ts +3 -0
  350. package/dist-types/stepped-tracker/StepLabel/index.d.ts +1 -0
  351. package/dist-types/stepped-tracker/SteppedTracker.d.ts +12 -0
  352. package/dist-types/stepped-tracker/SteppedTrackerContext.d.ts +18 -0
  353. package/dist-types/stepped-tracker/TrackerConnector/TrackerConnector.d.ts +10 -0
  354. package/dist-types/stepped-tracker/TrackerConnector/index.d.ts +1 -0
  355. package/dist-types/stepped-tracker/TrackerStep/TrackerStep.d.ts +10 -0
  356. package/dist-types/stepped-tracker/TrackerStep/index.d.ts +2 -0
  357. package/dist-types/stepped-tracker/index.d.ts +3 -0
  358. package/dist-types/switch/Switch.d.ts +43 -6
  359. package/dist-types/toast-group/ToastGroup.d.ts +5 -0
  360. package/dist-types/toast-group/index.d.ts +1 -0
  361. package/dist-types/utils/index.d.ts +0 -1
  362. package/package.json +8 -8
  363. package/dist-cjs/control-label/ControlLabel.css.js +0 -6
  364. package/dist-cjs/control-label/ControlLabel.css.js.map +0 -1
  365. package/dist-cjs/control-label/ControlLabel.js +0 -48
  366. package/dist-cjs/control-label/ControlLabel.js.map +0 -1
  367. package/dist-cjs/multiline-input/MultilineInput.css.js +0 -6
  368. package/dist-cjs/multiline-input/MultilineInput.css.js.map +0 -1
  369. package/dist-cjs/multiline-input/MultilineInput.js +0 -150
  370. package/dist-cjs/multiline-input/MultilineInput.js.map +0 -1
  371. package/dist-cjs/progress/CircularProgress/CircularProgressParts.js +0 -72
  372. package/dist-cjs/progress/CircularProgress/CircularProgressParts.js.map +0 -1
  373. package/dist-cjs/switch/assets/CheckedIcon.js +0 -34
  374. package/dist-cjs/switch/assets/CheckedIcon.js.map +0 -1
  375. package/dist-cjs/toast/Toast.css.js +0 -6
  376. package/dist-cjs/toast/Toast.css.js.map +0 -1
  377. package/dist-cjs/toast/Toast.js +0 -38
  378. package/dist-cjs/toast/Toast.js.map +0 -1
  379. package/dist-cjs/toast/ToastContent.css.js +0 -6
  380. package/dist-cjs/toast/ToastContent.css.js.map +0 -1
  381. package/dist-cjs/toast/ToastContent.js +0 -30
  382. package/dist-cjs/toast/ToastContent.js.map +0 -1
  383. package/dist-cjs/utils/useFloatingUI.js +0 -38
  384. package/dist-cjs/utils/useFloatingUI.js.map +0 -1
  385. package/dist-es/control-label/ControlLabel.css.js +0 -4
  386. package/dist-es/control-label/ControlLabel.css.js.map +0 -1
  387. package/dist-es/control-label/ControlLabel.js +0 -43
  388. package/dist-es/control-label/ControlLabel.js.map +0 -1
  389. package/dist-es/multiline-input/MultilineInput.css.js +0 -4
  390. package/dist-es/multiline-input/MultilineInput.css.js.map +0 -1
  391. package/dist-es/multiline-input/MultilineInput.js +0 -146
  392. package/dist-es/multiline-input/MultilineInput.js.map +0 -1
  393. package/dist-es/progress/CircularProgress/CircularProgressParts.js +0 -64
  394. package/dist-es/progress/CircularProgress/CircularProgressParts.js.map +0 -1
  395. package/dist-es/switch/assets/CheckedIcon.js +0 -30
  396. package/dist-es/switch/assets/CheckedIcon.js.map +0 -1
  397. package/dist-es/toast/Toast.css.js +0 -4
  398. package/dist-es/toast/Toast.css.js.map +0 -1
  399. package/dist-es/toast/Toast.js +0 -34
  400. package/dist-es/toast/Toast.js.map +0 -1
  401. package/dist-es/toast/ToastContent.css.js +0 -4
  402. package/dist-es/toast/ToastContent.css.js.map +0 -1
  403. package/dist-es/toast/ToastContent.js +0 -26
  404. package/dist-es/toast/ToastContent.js.map +0 -1
  405. package/dist-es/utils/useFloatingUI.js +0 -33
  406. package/dist-es/utils/useFloatingUI.js.map +0 -1
  407. package/dist-types/control-label/ControlLabel.d.ts +0 -8
  408. package/dist-types/control-label/index.d.ts +0 -1
  409. package/dist-types/multiline-input/MultilineInput.d.ts +0 -40
  410. package/dist-types/multiline-input/index.d.ts +0 -1
  411. package/dist-types/progress/CircularProgress/CircularProgressParts.d.ts +0 -13
  412. package/dist-types/switch/assets/CheckedIcon.d.ts +0 -4
  413. package/dist-types/toast/Toast.d.ts +0 -9
  414. package/dist-types/toast/ToastContent.d.ts +0 -2
  415. package/dist-types/toast/index.d.ts +0 -2
  416. package/dist-types/utils/useFloatingUI.d.ts +0 -34
@@ -7,28 +7,41 @@ var core = require('@salt-ds/core');
7
7
 
8
8
  const useList = ({
9
9
  disabled = false,
10
+ highlightedItem: highLightedItemProp,
10
11
  selected: selectedProp,
11
12
  defaultSelected,
12
13
  onChange,
13
14
  id,
14
15
  ref
15
16
  }) => {
17
+ const getOptions = React.useCallback(() => {
18
+ var _a, _b;
19
+ return Array.from(
20
+ (_b = (_a = ref.current) == null ? void 0 : _a.querySelectorAll('[role="option"]:not([aria-disabled])')) != null ? _b : []
21
+ );
22
+ }, [ref]);
23
+ const [focusVisible, setFocusVisible] = React.useState(false);
16
24
  const [activeDescendant, setActiveDescendant] = React.useState(
17
25
  void 0
18
26
  );
19
- const [showFocusRing, setShowFocusRing] = React.useState(false);
27
+ const [highlightedItem, setHighlightedItem] = core.useControlled({
28
+ controlled: highLightedItemProp,
29
+ default: highLightedItemProp,
30
+ name: "ListNext",
31
+ state: "highlighted"
32
+ });
20
33
  const [selectedItem, setSelectedItem] = core.useControlled({
21
34
  controlled: selectedProp,
22
35
  default: defaultSelected,
23
36
  name: "ListNext",
24
37
  state: "selected"
25
38
  });
26
- const getOptions = React.useCallback(() => {
27
- var _a, _b;
28
- return Array.from(
29
- (_b = (_a = ref.current) == null ? void 0 : _a.querySelectorAll('[role="option"]:not([aria-disabled])')) != null ? _b : []
30
- );
31
- }, [ref]);
39
+ const {
40
+ isFocusVisibleRef,
41
+ onFocus: handleFocusVisible,
42
+ onBlur: handleBlurVisible,
43
+ ref: focusVisibleRef
44
+ } = core.useIsFocusVisible();
32
45
  const updateScroll = React.useCallback(
33
46
  (currentTarget) => {
34
47
  const list = ref.current;
@@ -45,39 +58,47 @@ const useList = ({
45
58
  },
46
59
  [ref]
47
60
  );
48
- const updateActiveDescendant = React.useCallback(
61
+ const updateHighlighted = React.useCallback(
49
62
  (element) => {
63
+ setHighlightedItem(element.dataset.value);
50
64
  setActiveDescendant(element.id);
51
65
  updateScroll(element);
52
66
  },
53
- [setActiveDescendant, updateScroll]
67
+ [setHighlightedItem, updateScroll]
54
68
  );
55
69
  const selectItem = React.useCallback(
56
70
  (element) => {
57
71
  const newValue = element == null ? void 0 : element.dataset.value;
58
72
  if (newValue) {
59
73
  setSelectedItem(newValue);
60
- updateActiveDescendant(element);
74
+ updateHighlighted(element);
61
75
  }
62
76
  },
63
- [setSelectedItem, updateActiveDescendant]
77
+ [setSelectedItem, updateHighlighted]
64
78
  );
65
- const focusAndMoveActive = (element) => {
66
- setShowFocusRing(true);
67
- updateActiveDescendant(element);
68
- };
79
+ React.useEffect(() => {
80
+ var _a;
81
+ const activeOptions = getOptions();
82
+ const highlightedIndex = activeOptions.findIndex(
83
+ (i) => i.dataset.value === highlightedItem
84
+ );
85
+ if (highlightedIndex) {
86
+ setActiveDescendant((_a = activeOptions[highlightedIndex]) == null ? void 0 : _a.id);
87
+ highlightedItem && updateScroll(activeOptions[highlightedIndex]);
88
+ }
89
+ }, [highlightedItem, getOptions, updateScroll]);
69
90
  const focusFirstItem = () => {
70
91
  const activeOptions = getOptions();
71
92
  const firstItem = activeOptions[0];
72
93
  if (firstItem) {
73
- focusAndMoveActive(firstItem);
94
+ updateHighlighted(firstItem);
74
95
  }
75
96
  };
76
97
  const focusLastItem = () => {
77
98
  const activeOptions = getOptions();
78
99
  const lastItem = activeOptions[activeOptions.length - 1];
79
100
  if (lastItem) {
80
- focusAndMoveActive(lastItem);
101
+ updateHighlighted(lastItem);
81
102
  updateScroll(lastItem);
82
103
  }
83
104
  };
@@ -96,9 +117,6 @@ const useList = ({
96
117
  const select = React.useCallback(
97
118
  (event) => {
98
119
  const newValue = event.currentTarget.dataset.value;
99
- if (event.type === "click") {
100
- setShowFocusRing(false);
101
- }
102
120
  const activeOptions = getOptions();
103
121
  const isActiveOption = activeOptions.findIndex((i) => i.id === event.currentTarget.id) !== -1;
104
122
  if (newValue && selectedItem !== newValue && isActiveOption) {
@@ -109,44 +127,71 @@ const useList = ({
109
127
  [selectItem, selectedItem, onChange, getOptions]
110
128
  );
111
129
  const isSelected = React.useCallback(
112
- (id2) => selectedItem === id2,
130
+ (value) => selectedItem === value,
113
131
  [selectedItem]
114
132
  );
133
+ const highlight = React.useCallback(
134
+ (event) => {
135
+ setHighlightedItem(event.currentTarget.dataset.value);
136
+ },
137
+ [setHighlightedItem]
138
+ );
139
+ const isHighlighted = React.useCallback(
140
+ (value) => highlightedItem === value,
141
+ [highlightedItem]
142
+ );
115
143
  const isFocused = React.useCallback(
116
- (id2) => activeDescendant === id2 && showFocusRing,
117
- [activeDescendant, showFocusRing]
144
+ (value) => isHighlighted(value) && focusVisible,
145
+ [focusVisible, isHighlighted]
118
146
  );
119
147
  const getActiveItem = () => {
120
148
  const activeOptions = getOptions();
121
149
  const activeIndex = activeOptions.findIndex(
122
150
  (i) => i.id === activeDescendant
123
151
  );
124
- return activeOptions[activeIndex !== -1 ? activeIndex : 0];
152
+ return activeOptions[activeIndex];
125
153
  };
126
154
  const blurHandler = () => {
127
- setShowFocusRing(false);
155
+ handleBlurVisible();
156
+ if (!isFocusVisibleRef.current) {
157
+ setFocusVisible(false);
158
+ }
128
159
  };
129
- const mouseDownHandler = () => {
130
- setShowFocusRing(false);
160
+ const mouseOverHandler = () => {
161
+ if (focusVisible) {
162
+ setFocusVisible(false);
163
+ }
131
164
  };
132
- const focusHandler = () => {
165
+ const focusHandler = (event) => {
166
+ handleFocusVisible(event);
167
+ if (isFocusVisibleRef.current) {
168
+ setFocusVisible(true);
169
+ }
133
170
  const activeElement = getActiveItem();
134
- focusAndMoveActive(activeElement);
171
+ if (activeElement) {
172
+ updateHighlighted(activeElement);
173
+ } else {
174
+ focusFirstItem();
175
+ }
135
176
  };
136
177
  const keyDownHandler = (event) => {
137
178
  const { key } = event;
138
179
  const currentItem = getActiveItem();
139
180
  let nextItem = currentItem;
140
- if (!currentItem) {
141
- return;
181
+ if (isFocusVisibleRef.current || !focusVisible) {
182
+ setFocusVisible(true);
142
183
  }
143
184
  switch (key) {
144
185
  case "ArrowUp":
145
186
  case "ArrowDown":
187
+ if (!currentItem) {
188
+ focusFirstItem();
189
+ break;
190
+ }
146
191
  nextItem = key === "ArrowUp" ? findPreviousOption(currentItem, 1) : findNextOption(currentItem, 1);
147
192
  if (nextItem && nextItem !== currentItem) {
148
193
  event.preventDefault();
149
- focusAndMoveActive(nextItem);
194
+ updateHighlighted(nextItem);
150
195
  }
151
196
  break;
152
197
  case "Home":
@@ -160,7 +205,14 @@ const useList = ({
160
205
  case " ":
161
206
  case "Enter":
162
207
  event.preventDefault();
163
- nextItem && selectItem(nextItem);
208
+ if (nextItem) {
209
+ selectItem(nextItem);
210
+ onChange == null ? void 0 : onChange(event, { value: nextItem.dataset.value || "" });
211
+ }
212
+ break;
213
+ case "PageDown":
214
+ case "PageUp":
215
+ event.preventDefault();
164
216
  break;
165
217
  }
166
218
  };
@@ -170,17 +222,24 @@ const useList = ({
170
222
  id,
171
223
  select,
172
224
  isSelected,
173
- isFocused
225
+ isFocused,
226
+ highlight,
227
+ isHighlighted
174
228
  }),
175
- [disabled, id, select, isSelected, isFocused]
229
+ [disabled, id, select, isSelected, isFocused, highlight, isHighlighted]
176
230
  );
177
231
  return {
178
232
  focusHandler,
179
233
  keyDownHandler,
180
234
  blurHandler,
181
- mouseDownHandler,
235
+ mouseOverHandler,
182
236
  activeDescendant,
183
- contextValue
237
+ selectedItem,
238
+ highlightedItem,
239
+ setSelectedItem,
240
+ setHighlightedItem,
241
+ contextValue,
242
+ focusVisibleRef
184
243
  };
185
244
  };
186
245
 
@@ -1 +1 @@
1
- {"version":3,"file":"useList.js","sources":["../src/list-next/useList.ts"],"sourcesContent":["import {\n KeyboardEvent,\n RefObject,\n SyntheticEvent,\n useCallback,\n useMemo,\n useState,\n} from \"react\";\nimport { useControlled } from \"@salt-ds/core\";\n\ninterface UseListProps {\n /**\n * If true, all items in list will be disabled.\n */\n disabled?: boolean;\n /* Value for the uncontrolled version. */\n selected?: string;\n /* Initial value for the uncontrolled version. */\n defaultSelected?: string;\n /* Callback for the controlled version. */\n onChange?: (e: SyntheticEvent, data: { value: string }) => void;\n id?: string;\n ref: RefObject<HTMLUListElement>;\n}\n\nexport const useList = ({\n disabled = false,\n selected: selectedProp,\n defaultSelected,\n onChange,\n id,\n ref,\n}: UseListProps) => {\n const [activeDescendant, setActiveDescendant] = useState<string | undefined>(\n undefined\n );\n\n const [showFocusRing, setShowFocusRing] = useState<boolean>(false);\n const [selectedItem, setSelectedItem] = useControlled({\n controlled: selectedProp,\n default: defaultSelected,\n name: \"ListNext\",\n state: \"selected\",\n });\n\n const getOptions: () => HTMLElement[] = useCallback(() => {\n return Array.from(\n ref.current?.querySelectorAll('[role=\"option\"]:not([aria-disabled])') ??\n []\n );\n }, [ref]);\n\n const updateScroll = useCallback(\n (currentTarget: Element) => {\n const list = ref.current;\n if (!list || !currentTarget) return;\n const { offsetTop, offsetHeight } = currentTarget as HTMLLIElement;\n const listHeight = list?.clientHeight;\n const listScrollTop = list?.scrollTop;\n if (offsetTop < listScrollTop) {\n list.scrollTop = offsetTop;\n } else if (offsetTop + offsetHeight > listScrollTop + listHeight) {\n list.scrollTop = offsetTop + offsetHeight - listHeight;\n }\n },\n [ref]\n );\n\n const updateActiveDescendant = useCallback(\n (element: HTMLElement) => {\n setActiveDescendant(element.id);\n updateScroll(element);\n },\n [setActiveDescendant, updateScroll]\n );\n const selectItem = useCallback(\n (element: HTMLElement) => {\n const newValue = element?.dataset.value;\n if (newValue) {\n setSelectedItem(newValue);\n updateActiveDescendant(element);\n }\n },\n [setSelectedItem, updateActiveDescendant]\n );\n\n const focusAndMoveActive = (element: HTMLElement) => {\n setShowFocusRing(true);\n updateActiveDescendant(element);\n };\n\n const focusFirstItem = () => {\n // Find first active item\n const activeOptions = getOptions();\n const firstItem = activeOptions[0];\n if (firstItem) {\n focusAndMoveActive(firstItem);\n }\n };\n const focusLastItem = () => {\n // Find last active item\n const activeOptions = getOptions();\n const lastItem = activeOptions[activeOptions.length - 1];\n if (lastItem) {\n focusAndMoveActive(lastItem);\n updateScroll(lastItem);\n }\n };\n\n const findNextOption = (\n currentOption: HTMLElement | null,\n moves: number\n ): HTMLElement => {\n const activeOptions = getOptions();\n // Returns next item, if no current option it will return 0\n const nextOptionIndex = currentOption\n ? activeOptions.indexOf(currentOption) + moves\n : 0;\n return (\n activeOptions[nextOptionIndex] || activeOptions[activeOptions.length - 1]\n );\n };\n\n const findPreviousOption = (\n currentOption: HTMLElement,\n moves: number\n ): HTMLElement => {\n // Return the previous option if it exists; otherwise, returns first option\n const activeOptions = getOptions();\n const currentOptionIndex = activeOptions.findIndex(\n (i) => i.id === currentOption.id\n );\n return activeOptions[currentOptionIndex - moves] || activeOptions[0];\n };\n\n // CONTEXT CALLBACKS\n const select = useCallback(\n (event: SyntheticEvent<HTMLLIElement>) => {\n const newValue = event.currentTarget.dataset.value;\n if (event.type === \"click\") {\n setShowFocusRing(false);\n }\n const activeOptions = getOptions();\n const isActiveOption =\n activeOptions.findIndex((i) => i.id === event.currentTarget.id) !== -1;\n if (newValue && selectedItem !== newValue && isActiveOption) {\n selectItem(event.currentTarget);\n onChange?.(event, { value: newValue });\n }\n },\n [selectItem, selectedItem, onChange, getOptions]\n );\n\n const isSelected = useCallback(\n (id: string) => selectedItem === id,\n [selectedItem]\n );\n\n const isFocused = useCallback(\n (id: string | undefined) => activeDescendant === id && showFocusRing,\n [activeDescendant, showFocusRing]\n );\n\n const getActiveItem = () => {\n const activeOptions = getOptions();\n const activeIndex = activeOptions.findIndex(\n (i) => i.id === activeDescendant\n );\n return activeOptions[activeIndex !== -1 ? activeIndex : 0];\n };\n\n // HANDLERS\n const blurHandler = () => {\n setShowFocusRing(false);\n };\n\n const mouseDownHandler = () => {\n // When list gets focused, we can't guarantee that focus happens after click event.\n // If first focus (where !activeDescendant) happens from a click, list shouldn't render focus ring in the first element.\n setShowFocusRing(false);\n };\n\n // takes care of focus when using keyboard navigation\n const focusHandler = () => {\n const activeElement = getActiveItem();\n focusAndMoveActive(activeElement);\n };\n\n // takes care of keydown when using keyboard navigation\n const keyDownHandler = (event: KeyboardEvent<HTMLUListElement>) => {\n const { key } = event;\n const currentItem = getActiveItem();\n let nextItem = currentItem;\n if (!currentItem) {\n return;\n }\n switch (key) {\n case \"ArrowUp\":\n case \"ArrowDown\":\n nextItem =\n key === \"ArrowUp\"\n ? findPreviousOption(currentItem, 1)\n : findNextOption(currentItem, 1);\n\n if (nextItem && nextItem !== currentItem) {\n event.preventDefault();\n focusAndMoveActive(nextItem);\n }\n break;\n case \"Home\":\n event.preventDefault();\n focusFirstItem();\n break;\n case \"End\":\n event.preventDefault();\n focusLastItem();\n break;\n case \" \":\n case \"Enter\":\n event.preventDefault();\n nextItem && selectItem(nextItem);\n break;\n default:\n break;\n }\n };\n\n // CONTEXT\n const contextValue = useMemo(\n () => ({\n disabled,\n id,\n select,\n isSelected,\n isFocused,\n }),\n [disabled, id, select, isSelected, isFocused]\n );\n\n return {\n focusHandler,\n keyDownHandler,\n blurHandler,\n mouseDownHandler,\n activeDescendant,\n contextValue,\n };\n};\n"],"names":["useState","useControlled","useCallback","id","useMemo"],"mappings":"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"}
1
+ {"version":3,"file":"useList.js","sources":["../src/list-next/useList.ts"],"sourcesContent":["import {\n FocusEvent,\n KeyboardEvent,\n RefObject,\n SyntheticEvent,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { useControlled, useIsFocusVisible } from \"@salt-ds/core\";\n\ninterface UseListProps {\n /**\n * If true, all items in list will be disabled.\n */\n disabled?: boolean;\n /* Highlighted index for when the list is controlled. */\n highlightedItem?: string;\n /* Selected value for when the list is controlled. */\n selected?: string;\n /* Initial selected value for when the list is controlled. */\n defaultSelected?: string;\n /* Callback for when the list is controlled. */\n onChange?: (e: SyntheticEvent, data: { value: string }) => void;\n /* List id. */\n id?: string;\n /* List ref. */\n ref: RefObject<HTMLUListElement>;\n}\n\nexport const useList = ({\n disabled = false,\n highlightedItem: highLightedItemProp,\n selected: selectedProp,\n defaultSelected,\n onChange,\n id,\n ref,\n}: UseListProps) => {\n const getOptions: () => HTMLElement[] = useCallback(() => {\n return Array.from(\n ref.current?.querySelectorAll('[role=\"option\"]:not([aria-disabled])') ??\n []\n );\n }, [ref]);\n\n const [focusVisible, setFocusVisible] = useState(false);\n const [activeDescendant, setActiveDescendant] = useState<string | undefined>(\n undefined\n );\n\n const [highlightedItem, setHighlightedItem] = useControlled({\n controlled: highLightedItemProp,\n default: highLightedItemProp,\n name: \"ListNext\",\n state: \"highlighted\",\n });\n\n const [selectedItem, setSelectedItem] = useControlled({\n controlled: selectedProp,\n default: defaultSelected,\n name: \"ListNext\",\n state: \"selected\",\n });\n\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef,\n } = useIsFocusVisible();\n\n const updateScroll = useCallback(\n (currentTarget: Element) => {\n const list = ref.current;\n if (!list || !currentTarget) return;\n const { offsetTop, offsetHeight } = currentTarget as HTMLLIElement;\n const listHeight = list?.clientHeight;\n const listScrollTop = list?.scrollTop;\n if (offsetTop < listScrollTop) {\n list.scrollTop = offsetTop;\n } else if (offsetTop + offsetHeight > listScrollTop + listHeight) {\n list.scrollTop = offsetTop + offsetHeight - listHeight;\n }\n },\n [ref]\n );\n\n const updateHighlighted = useCallback(\n (element: HTMLElement) => {\n setHighlightedItem(element.dataset.value);\n setActiveDescendant(element.id);\n updateScroll(element);\n },\n [setHighlightedItem, updateScroll]\n );\n\n const selectItem = useCallback(\n (element: HTMLElement) => {\n const newValue = element?.dataset.value;\n if (newValue) {\n setSelectedItem(newValue);\n updateHighlighted(element);\n }\n },\n [setSelectedItem, updateHighlighted]\n );\n\n // Effect to move the cursor when items change controlled.\n // this could be following active descendant if there is no better way of doing it when controlled\n useEffect(() => {\n const activeOptions = getOptions();\n const highlightedIndex = activeOptions.findIndex(\n (i) => i.dataset.value === highlightedItem\n );\n if (highlightedIndex) {\n setActiveDescendant(activeOptions[highlightedIndex]?.id);\n highlightedItem && updateScroll(activeOptions[highlightedIndex]);\n }\n }, [highlightedItem, getOptions, updateScroll]);\n\n const focusFirstItem = () => {\n // Find first active item\n const activeOptions = getOptions();\n const firstItem = activeOptions[0];\n if (firstItem) {\n updateHighlighted(firstItem);\n }\n };\n const focusLastItem = () => {\n // Find last active item\n const activeOptions = getOptions();\n const lastItem = activeOptions[activeOptions.length - 1];\n if (lastItem) {\n updateHighlighted(lastItem);\n updateScroll(lastItem);\n }\n };\n\n const findNextOption = (\n currentOption: HTMLElement | null,\n moves: number\n ): HTMLElement => {\n const activeOptions = getOptions();\n // Returns next item, if no current option it will return 0\n const nextOptionIndex = currentOption\n ? activeOptions.indexOf(currentOption) + moves\n : 0;\n return (\n activeOptions[nextOptionIndex] || activeOptions[activeOptions.length - 1]\n );\n };\n\n const findPreviousOption = (\n currentOption: HTMLElement,\n moves: number\n ): HTMLElement => {\n // Return the previous option if it exists; otherwise, returns first option\n const activeOptions = getOptions();\n const currentOptionIndex = activeOptions.findIndex(\n (i) => i.id === currentOption.id\n );\n return activeOptions[currentOptionIndex - moves] || activeOptions[0];\n };\n\n // CONTEXT CALLBACKS\n const select = useCallback(\n (event: SyntheticEvent<HTMLLIElement>) => {\n const newValue = event.currentTarget.dataset.value;\n const activeOptions = getOptions();\n const isActiveOption =\n activeOptions.findIndex((i) => i.id === event.currentTarget.id) !== -1;\n if (newValue && selectedItem !== newValue && isActiveOption) {\n selectItem(event.currentTarget);\n onChange?.(event, { value: newValue });\n }\n },\n [selectItem, selectedItem, onChange, getOptions]\n );\n\n const isSelected = useCallback(\n (value: string) => selectedItem === value,\n [selectedItem]\n );\n\n const highlight = useCallback(\n (event: SyntheticEvent<HTMLLIElement>) => {\n setHighlightedItem(event.currentTarget.dataset.value);\n },\n [setHighlightedItem]\n );\n\n const isHighlighted = useCallback(\n (value: string) => highlightedItem === value,\n [highlightedItem]\n );\n\n const isFocused = useCallback(\n (value: string) => isHighlighted(value) && focusVisible,\n [focusVisible, isHighlighted]\n );\n\n const getActiveItem = () => {\n const activeOptions = getOptions();\n const activeIndex = activeOptions.findIndex(\n (i) => i.id === activeDescendant\n );\n return activeOptions[activeIndex];\n };\n\n // HANDLERS\n const blurHandler = () => {\n handleBlurVisible();\n if (!isFocusVisibleRef.current) {\n setFocusVisible(false);\n }\n };\n\n const mouseOverHandler = () => {\n if (focusVisible) {\n setFocusVisible(false);\n }\n };\n\n // takes care of focus when using keyboard navigation\n const focusHandler = (event: FocusEvent<HTMLUListElement>) => {\n handleFocusVisible(event);\n if (isFocusVisibleRef.current) {\n setFocusVisible(true);\n }\n const activeElement = getActiveItem();\n if (activeElement) {\n updateHighlighted(activeElement);\n } else {\n focusFirstItem();\n }\n };\n\n // takes care of keydown when using keyboard navigation\n const keyDownHandler = (event: KeyboardEvent<HTMLElement>) => {\n const { key } = event;\n const currentItem = getActiveItem();\n let nextItem = currentItem;\n if (isFocusVisibleRef.current || !focusVisible) {\n setFocusVisible(true);\n }\n switch (key) {\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (!currentItem) {\n focusFirstItem();\n break;\n }\n nextItem =\n key === \"ArrowUp\"\n ? findPreviousOption(currentItem, 1)\n : findNextOption(currentItem, 1);\n\n if (nextItem && nextItem !== currentItem) {\n event.preventDefault();\n updateHighlighted(nextItem);\n }\n break;\n case \"Home\":\n event.preventDefault();\n focusFirstItem();\n break;\n case \"End\":\n event.preventDefault();\n focusLastItem();\n break;\n case \" \":\n case \"Enter\":\n event.preventDefault();\n if (nextItem) {\n selectItem(nextItem);\n onChange?.(event, { value: nextItem.dataset.value || \"\" });\n }\n break;\n case \"PageDown\":\n case \"PageUp\":\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n // CONTEXT\n const contextValue = useMemo(\n () => ({\n disabled,\n id,\n select,\n isSelected,\n isFocused,\n highlight,\n isHighlighted,\n }),\n [disabled, id, select, isSelected, isFocused, highlight, isHighlighted]\n );\n\n return {\n focusHandler,\n keyDownHandler,\n blurHandler,\n mouseOverHandler,\n activeDescendant,\n selectedItem,\n highlightedItem,\n setSelectedItem,\n setHighlightedItem,\n contextValue,\n focusVisibleRef,\n };\n};\n"],"names":["useCallback","useState","useControlled","useIsFocusVisible","useEffect","useMemo"],"mappings":"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"}
@@ -13,7 +13,7 @@ const iconExpansionMap = {
13
13
  },
14
14
  horizontal: {
15
15
  expanded: icons.ChevronDownIcon,
16
- collapsed: icons.ChevronUpIcon
16
+ collapsed: icons.ChevronDownIcon
17
17
  }
18
18
  };
19
19
  function ExpansionButton({
@@ -1 +1 @@
1
- {"version":3,"file":"ExpansionButton.js","sources":["../src/nav-item/ExpansionButton.tsx"],"sourcesContent":["import {\n ChevronDownIcon,\n ChevronRightIcon,\n ChevronUpIcon,\n} from \"@salt-ds/icons\";\nimport { ComponentPropsWithoutRef } from \"react\";\nimport { Button } from \"@salt-ds/core\";\nimport { NavItemProps } from \"./NavItem\";\n\nconst iconExpansionMap = {\n vertical: {\n expanded: ChevronDownIcon,\n collapsed: ChevronRightIcon,\n },\n horizontal: {\n expanded: ChevronDownIcon,\n collapsed: ChevronUpIcon,\n },\n};\n\nexport function ExpansionButton({\n expanded = false,\n orientation = \"horizontal\",\n ...rest\n}: Pick<NavItemProps, \"expanded\" | \"orientation\"> &\n ComponentPropsWithoutRef<\"button\">) {\n const Icon =\n iconExpansionMap[orientation][expanded ? \"expanded\" : \"collapsed\"];\n return (\n <Button aria-label=\"expand\" variant=\"secondary\" {...rest}>\n <Icon aria-hidden=\"true\" />\n </Button>\n );\n}\n"],"names":["ChevronDownIcon","ChevronRightIcon","ChevronUpIcon","jsx","Button"],"mappings":";;;;;;;;AASA,MAAM,gBAAmB,GAAA;AAAA,EACvB,QAAU,EAAA;AAAA,IACR,QAAU,EAAAA,qBAAA;AAAA,IACV,SAAW,EAAAC,sBAAA;AAAA,GACb;AAAA,EACA,UAAY,EAAA;AAAA,IACV,QAAU,EAAAD,qBAAA;AAAA,IACV,SAAW,EAAAE,mBAAA;AAAA,GACb;AACF,CAAA,CAAA;AAEO,SAAS,eAAgB,CAAA;AAAA,EAC9B,QAAW,GAAA,KAAA;AAAA,EACX,WAAc,GAAA,YAAA;AAAA,EACX,GAAA,IAAA;AACL,CACsC,EAAA;AACpC,EAAA,MAAM,IACJ,GAAA,gBAAA,CAAiB,WAAa,CAAA,CAAA,QAAA,GAAW,UAAa,GAAA,WAAA,CAAA,CAAA;AACxD,EAAA,uBACGC,cAAA,CAAAC,WAAA,EAAA;AAAA,IAAO,YAAW,EAAA,QAAA;AAAA,IAAS,OAAQ,EAAA,WAAA;AAAA,IAAa,GAAG,IAAA;AAAA,IAClD,QAAC,kBAAAD,cAAA,CAAA,IAAA,EAAA;AAAA,MAAK,aAAY,EAAA,MAAA;AAAA,KAAO,CAAA;AAAA,GAC3B,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ExpansionButton.js","sources":["../src/nav-item/ExpansionButton.tsx"],"sourcesContent":["import { ChevronDownIcon, ChevronRightIcon } from \"@salt-ds/icons\";\nimport { ComponentPropsWithoutRef } from \"react\";\nimport { Button } from \"@salt-ds/core\";\nimport { NavItemProps } from \"./NavItem\";\n\nconst iconExpansionMap = {\n vertical: {\n expanded: ChevronDownIcon,\n collapsed: ChevronRightIcon,\n },\n horizontal: {\n expanded: ChevronDownIcon,\n collapsed: ChevronDownIcon,\n },\n};\n\nexport function ExpansionButton({\n expanded = false,\n orientation = \"horizontal\",\n ...rest\n}: Pick<NavItemProps, \"expanded\" | \"orientation\"> &\n ComponentPropsWithoutRef<\"button\">) {\n const Icon =\n iconExpansionMap[orientation][expanded ? \"expanded\" : \"collapsed\"];\n return (\n <Button aria-label=\"expand\" variant=\"secondary\" {...rest}>\n <Icon aria-hidden=\"true\" />\n </Button>\n );\n}\n"],"names":["ChevronDownIcon","ChevronRightIcon","jsx","Button"],"mappings":";;;;;;;;AAKA,MAAM,gBAAmB,GAAA;AAAA,EACvB,QAAU,EAAA;AAAA,IACR,QAAU,EAAAA,qBAAA;AAAA,IACV,SAAW,EAAAC,sBAAA;AAAA,GACb;AAAA,EACA,UAAY,EAAA;AAAA,IACV,QAAU,EAAAD,qBAAA;AAAA,IACV,SAAW,EAAAA,qBAAA;AAAA,GACb;AACF,CAAA,CAAA;AAEO,SAAS,eAAgB,CAAA;AAAA,EAC9B,QAAW,GAAA,KAAA;AAAA,EACX,WAAc,GAAA,YAAA;AAAA,EACX,GAAA,IAAA;AACL,CACsC,EAAA;AACpC,EAAA,MAAM,IACJ,GAAA,gBAAA,CAAiB,WAAa,CAAA,CAAA,QAAA,GAAW,UAAa,GAAA,WAAA,CAAA,CAAA;AACxD,EAAA,uBACGE,cAAA,CAAAC,WAAA,EAAA;AAAA,IAAO,YAAW,EAAA,QAAA;AAAA,IAAS,OAAQ,EAAA,WAAA;AAAA,IAAa,GAAG,IAAA;AAAA,IAClD,QAAC,kBAAAD,cAAA,CAAA,IAAA,EAAA;AAAA,MAAK,aAAY,EAAA,MAAA;AAAA,KAAO,CAAA;AAAA,GAC3B,CAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = ".saltNavItem {\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n background: var(--salt-navigable-primary-background);\n gap: var(--salt-spacing-75);\n}\n\n.saltNavItem-horizontal {\n min-height: calc(var(--salt-size-stackable) + var(--salt-size-accent) + var(--salt-spacing-100));\n padding: var(--salt-spacing-100);\n}\n\n.saltNavItem-vertical {\n min-height: var(--salt-size-stackable);\n}\n\n.saltNavItem-label,\n.saltNavItem-label:hover {\n color: var(--salt-text-primary-foreground);\n line-height: var(--salt-text-lineHeight);\n font-family: var(--salt-text-fontFamily);\n padding-left: calc(var(--saltNavItem-level, 0) * var(--salt-spacing-150));\n text-decoration: none;\n}\n\n.saltNavItem-vertical .saltNavItem-expandButton {\n justify-self: end;\n margin: calc((var(--salt-size-stackable) - var(--salt-size-base)) / 2);\n}\n\n.saltNavItem-horizontal {\n padding-top: calc(var(--salt-spacing-100) + var(--salt-size-accent));\n}\n\n.saltNavItem-vertical {\n padding-left: calc(var(--salt-spacing-200) + var(--salt-size-accent));\n}\n\n.saltNavItem:hover,\n.saltNavItem:focus {\n background: var(--salt-navigable-primary-background-hover);\n}\n\n.saltNavItem:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n.saltNavItem-active {\n background: var(--salt-navigable-primary-background-active);\n}\n\n.saltNavItem::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n}\n\n.saltNavItem-horizontal::after {\n width: 100%;\n height: var(--salt-size-accent);\n}\n\n.saltNavItem-vertical::after {\n width: var(--salt-size-accent);\n height: 100%;\n}\n\n.saltNavItem-horizontal:hover::after,\n.saltNavItem-horizontal:focus::after {\n background: var(--salt-navigable-indicator-hover);\n}\n\n.saltNavItem.saltNavItem-active::after,\n.saltNavItem.saltNavItem-active:hover::after,\n.saltNavItem.saltNavItem-active:focus::after {\n background: var(--saltNavItem-indicator-color, var(--salt-navigable-indicator-active));\n}\n";
3
+ var css_248z = "/* Vars applied to root NavItem component */\n.saltNavItem {\n --navItem-color: var(--salt-text-secondary-foreground);\n --navItem-fill: var(--salt-text-secondary-foreground);\n --navItem-bar-inset: var(--salt-spacing-25);\n --navItem-bar-size: calc(var(--salt-size-bar) / 2);\n --navItem-indicator-background: var(--salt-navigable-indicator-active);\n}\n\n/* Vars applied to NavItem component when active or selected */\n.saltNavItem-active,\n.saltNavItem-blurSelected {\n --navItem-color: var(--salt-text-primary-foreground);\n --navItem-fill: var(--salt-text-primary-foreground);\n}\n\n/* Styles applied to root NavItem component */\n.saltNavItem {\n display: flex;\n align-items: center;\n position: relative;\n gap: var(--salt-spacing-100);\n font-weight: var(--salt-text-fontWeight-strong);\n /* Hover off animation */\n transition: all var(--salt-duration-instant) ease-in-out;\n}\n\n/* Styles applied to NavItem icon */\n.saltNavItem .saltNavItem-icon {\n fill: var(--navItem-fill);\n}\n\n/* Styles applied when orientation = \"horizontal\" */\n.saltNavItem-horizontal {\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100) + var(--salt-spacing-100));\n padding: calc(var(--salt-spacing-100) + var(--navItem-bar-inset)) 0 var(--salt-spacing-100) 0;\n margin: 0 var(--salt-spacing-100);\n}\n\n/* Styles applied when orientation = \"vertical\" */\n.saltNavItem-vertical {\n min-height: calc(var(--salt-size-base));\n padding-left: calc(var(--salt-spacing-100) + var(--navItem-bar-inset));\n margin: var(--salt-spacing-50) 0;\n}\n\n/* Styles applied to NavItem label */\n.saltNavItem .saltNavItem-label {\n --link-color-visited: var(--navItem-color);\n --link-color-hover: var(--navItem-color);\n\n text-decoration: none;\n color: var(--navItem-color);\n line-height: var(--salt-text-lineHeight);\n font-family: var(--salt-text-fontFamily);\n padding-left: calc(var(--saltNavItem-level, 0) * var(--salt-spacing-100));\n flex: 1;\n}\n\n/* Styles applied when level is not 0 */\n.saltNavItem-nested {\n padding-left: calc(var(--salt-spacing-250) + (var(--saltNavItem-level, 0) * var(--salt-spacing-100)));\n}\n\n/* Styles applied to expand button icon */\n.saltNavItem .saltNavItem-expandButton {\n --saltIcon-color: var(--navItem-fill);\n --saltButton-background-hover: none;\n --saltButton-background-active: none;\n}\n\n/* Styles applied to NavItem when focus is visible */\n.saltNavItem:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n/* Styles applied to activation line */\n.saltNavItem::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n}\n\n/* Styles applied to activation line when orientation = \"horizontal\" */\n.saltNavItem-horizontal::after {\n width: 100%;\n height: var(--navItem-bar-size);\n top: var(--navItem-bar-inset);\n}\n\n/* Styles applied to activation line when orientation = \"vertical\" */\n.saltNavItem-vertical::after {\n width: var(--navItem-bar-size);\n height: 100%;\n left: var(--navItem-bar-inset);\n}\n\n/* Styles applied to activation line on hover and on focus */\n.saltNavItem:hover::after,\n.saltNavItem:focus::after {\n background: var(--salt-navigable-indicator-hover);\n /* Hover on animation */\n transition: all var(--salt-duration-perceptible) ease-in-out;\n}\n\n/* Styles applied to activation line when item has active children */\n.saltNavItem.saltNavItem-blurSelected::after,\n.saltNavItem.saltNavItem-blurSelected:hover::after,\n.saltNavItem.saltNavItem-blurSelected:focus::after {\n --navItem-indicator-background: none;\n}\n\n/* Styles applied to activation line when item is active */\n.saltNavItem.saltNavItem-active::after,\n.saltNavItem.saltNavItem-active:hover::after,\n.saltNavItem.saltNavItem-active:focus::after {\n background: var(--navItem-indicator-background);\n /* Hover on animation */\n transition: all var(--salt-duration-perceptible) ease-in-out;\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=NavItem.css.js.map
@@ -16,6 +16,7 @@ const NavItem = React.forwardRef(
16
16
  function NavItem2(props, ref) {
17
17
  const {
18
18
  active,
19
+ blurSelected,
19
20
  children,
20
21
  className,
21
22
  expanded = false,
@@ -24,6 +25,8 @@ const NavItem = React.forwardRef(
24
25
  level = 0,
25
26
  onExpand,
26
27
  href,
28
+ IconComponent,
29
+ BadgeComponent,
27
30
  style: styleProp,
28
31
  ...rest
29
32
  } = props;
@@ -45,7 +48,9 @@ const NavItem = React.forwardRef(
45
48
  className: clsx.clsx(
46
49
  withBaseName(),
47
50
  {
48
- [withBaseName("active")]: active
51
+ [withBaseName("active")]: active,
52
+ [withBaseName("blurSelected")]: blurSelected,
53
+ [withBaseName("nested")]: level !== 0
49
54
  },
50
55
  withBaseName(orientation),
51
56
  className
@@ -54,6 +59,10 @@ const NavItem = React.forwardRef(
54
59
  style,
55
60
  ...rest,
56
61
  children: [
62
+ IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, {
63
+ "aria-hidden": true,
64
+ className: withBaseName("icon")
65
+ }),
57
66
  /* @__PURE__ */ jsxRuntime.jsx(core.Link, {
58
67
  className: withBaseName("label"),
59
68
  "aria-current": active ? "page" : void 0,
@@ -62,6 +71,7 @@ const NavItem = React.forwardRef(
62
71
  children
63
72
  })
64
73
  }),
74
+ BadgeComponent,
65
75
  parent && /* @__PURE__ */ jsxRuntime.jsx(ExpansionButton.ExpansionButton, {
66
76
  "aria-expanded": expanded,
67
77
  className: withBaseName("expandButton"),
@@ -1 +1 @@
1
- {"version":3,"file":"NavItem.js","sources":["../src/nav-item/NavItem.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n forwardRef,\n MouseEventHandler,\n MouseEvent,\n} from \"react\";\nimport { makePrefixer, Link } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { ExpansionButton } from \"./ExpansionButton\";\n\nimport navItemCss from \"./NavItem.css\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nexport interface NavItemProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Whether the nav item is active.\n */\n active?: boolean;\n expanded?: boolean;\n level?: number;\n /**\n * The orientation of the nav item.\n */\n orientation?: \"horizontal\" | \"vertical\";\n parent?: boolean;\n onExpand?: MouseEventHandler<HTMLButtonElement>;\n href?: string;\n}\n\nconst withBaseName = makePrefixer(\"saltNavItem\");\n\nexport const NavItem = forwardRef<HTMLDivElement, NavItemProps>(\n function NavItem(props, ref) {\n const {\n active,\n children,\n className,\n expanded = false,\n orientation = \"horizontal\",\n parent,\n level = 0,\n onExpand,\n href,\n style: styleProp,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-nav-item\",\n css: navItemCss,\n window: targetWindow,\n });\n\n const style = {\n ...styleProp,\n \"--saltNavItem-level\": `${level}`,\n };\n\n const handleExpand = (event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n onExpand?.(event);\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"active\")]: active,\n },\n withBaseName(orientation),\n className\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n <Link\n className={withBaseName(\"label\")}\n aria-current={active ? \"page\" : undefined}\n href={href}\n >\n <span>{children}</span>\n </Link>\n {parent && (\n <ExpansionButton\n aria-expanded={expanded}\n className={withBaseName(\"expandButton\")}\n expanded={expanded}\n onClick={handleExpand}\n orientation={orientation}\n />\n )}\n </div>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","NavItem","useWindow","useComponentCssInjection","navItemCss","jsxs","clsx","jsx","Link","ExpansionButton"],"mappings":";;;;;;;;;;;;;AA8BA,MAAM,YAAA,GAAeA,kBAAa,aAAa,CAAA,CAAA;AAExC,MAAM,OAAU,GAAAC,gBAAA;AAAA,EACrB,SAASC,QAAQ,CAAA,KAAA,EAAO,GAAK,EAAA;AAC3B,IAAM,MAAA;AAAA,MACJ,MAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAW,GAAA,KAAA;AAAA,MACX,WAAc,GAAA,YAAA;AAAA,MACd,MAAA;AAAA,MACA,KAAQ,GAAA,CAAA;AAAA,MACR,QAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAO,EAAA,SAAA;AAAA,MACJ,GAAA,IAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,eAAA;AAAA,MACR,GAAK,EAAAC,SAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,KAAQ,GAAA;AAAA,MACZ,GAAG,SAAA;AAAA,MACH,uBAAuB,CAAG,EAAA,KAAA,CAAA,CAAA;AAAA,KAC5B,CAAA;AAEA,IAAM,MAAA,YAAA,GAAe,CAAC,KAAyC,KAAA;AAC7D,MAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AACtB,MAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KACb,CAAA;AAEA,IAAA,uBACGC,eAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,SAC5B;AAAA,QACA,aAAa,WAAW,CAAA;AAAA,QACxB,SAAA;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAAC,SAAA,EAAA;AAAA,UACC,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAC/B,cAAA,EAAc,SAAS,MAAS,GAAA,KAAA,CAAA;AAAA,UAChC,IAAA;AAAA,UAEA,QAAC,kBAAAD,cAAA,CAAA,MAAA,EAAA;AAAA,YAAM,QAAA;AAAA,WAAS,CAAA;AAAA,SAClB,CAAA;AAAA,QACC,0BACEA,cAAA,CAAAE,+BAAA,EAAA;AAAA,UACC,eAAe,EAAA,QAAA;AAAA,UACf,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,UACtC,QAAA;AAAA,UACA,OAAS,EAAA,YAAA;AAAA,UACT,WAAA;AAAA,SACF,CAAA;AAAA,OAAA;AAAA,KAEJ,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"NavItem.js","sources":["../src/nav-item/NavItem.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n forwardRef,\n MouseEventHandler,\n MouseEvent,\n ComponentType,\n ReactNode,\n} from \"react\";\nimport { makePrefixer, Link } from \"@salt-ds/core\";\nimport { IconProps } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { ExpansionButton } from \"./ExpansionButton\";\n\nimport navItemCss from \"./NavItem.css\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nexport interface NavItemProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Whether the nav item is active.\n */\n active?: boolean;\n /**\n * Whether the nav item has active children.\n */\n blurSelected?: boolean;\n /**\n * Whether the nav item is expanded.\n */\n expanded?: boolean;\n /**\n * Level of nesting.\n */\n level?: number;\n /**\n * The orientation of the nav item.\n */\n orientation?: \"horizontal\" | \"vertical\";\n /**\n * Whether the nav item is a parent with nested children.\n */\n parent?: boolean;\n /**\n * Action to be triggered when the nav item is expanded.\n */\n onExpand?: MouseEventHandler<HTMLButtonElement>;\n /**\n * Href to be passed to the Link element.\n */\n href?: string;\n /**\n * Icon component to be displayed next to the nav item label.\n */\n IconComponent?: ComponentType<IconProps> | null;\n /**\n * Badge component to be displayed next to the nav item label.\n */\n BadgeComponent?: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltNavItem\");\n\nexport const NavItem = forwardRef<HTMLDivElement, NavItemProps>(\n function NavItem(props, ref) {\n const {\n active,\n blurSelected,\n children,\n className,\n expanded = false,\n orientation = \"horizontal\",\n parent,\n level = 0,\n onExpand,\n href,\n IconComponent,\n BadgeComponent,\n style: styleProp,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-nav-item\",\n css: navItemCss,\n window: targetWindow,\n });\n\n const style = {\n ...styleProp,\n \"--saltNavItem-level\": `${level}`,\n };\n\n const handleExpand = (event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n onExpand?.(event);\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"active\")]: active,\n [withBaseName(\"blurSelected\")]: blurSelected,\n [withBaseName(\"nested\")]: level !== 0,\n },\n withBaseName(orientation),\n className\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n {IconComponent && (\n <IconComponent aria-hidden className={withBaseName(\"icon\")} />\n )}\n <Link\n className={withBaseName(\"label\")}\n aria-current={active ? \"page\" : undefined}\n href={href}\n >\n <span>{children}</span>\n </Link>\n {BadgeComponent}\n {parent && (\n <ExpansionButton\n aria-expanded={expanded}\n className={withBaseName(\"expandButton\")}\n expanded={expanded}\n onClick={handleExpand}\n orientation={orientation}\n />\n )}\n </div>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","NavItem","useWindow","useComponentCssInjection","navItemCss","jsxs","clsx","jsx","Link","ExpansionButton"],"mappings":";;;;;;;;;;;;;AA4DA,MAAM,YAAA,GAAeA,kBAAa,aAAa,CAAA,CAAA;AAExC,MAAM,OAAU,GAAAC,gBAAA;AAAA,EACrB,SAASC,QAAQ,CAAA,KAAA,EAAO,GAAK,EAAA;AAC3B,IAAM,MAAA;AAAA,MACJ,MAAA;AAAA,MACA,YAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAW,GAAA,KAAA;AAAA,MACX,WAAc,GAAA,YAAA;AAAA,MACd,MAAA;AAAA,MACA,KAAQ,GAAA,CAAA;AAAA,MACR,QAAA;AAAA,MACA,IAAA;AAAA,MACA,aAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAO,EAAA,SAAA;AAAA,MACJ,GAAA,IAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,eAAA;AAAA,MACR,GAAK,EAAAC,SAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,KAAQ,GAAA;AAAA,MACZ,GAAG,SAAA;AAAA,MACH,uBAAuB,CAAG,EAAA,KAAA,CAAA,CAAA;AAAA,KAC5B,CAAA;AAEA,IAAM,MAAA,YAAA,GAAe,CAAC,KAAyC,KAAA;AAC7D,MAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AACtB,MAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KACb,CAAA;AAEA,IAAA,uBACGC,eAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAAC,SAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,UAC1B,CAAC,YAAa,CAAA,cAAc,CAAI,GAAA,YAAA;AAAA,UAChC,CAAC,YAAA,CAAa,QAAQ,CAAA,GAAI,KAAU,KAAA,CAAA;AAAA,SACtC;AAAA,QACA,aAAa,WAAW,CAAA;AAAA,QACxB,SAAA;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACA,KAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,aAAA,oBACEC,cAAA,CAAA,aAAA,EAAA;AAAA,UAAc,aAAW,EAAA,IAAA;AAAA,UAAC,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,SAAG,CAAA;AAAA,wBAE7DA,cAAA,CAAAC,SAAA,EAAA;AAAA,UACC,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAC/B,cAAA,EAAc,SAAS,MAAS,GAAA,KAAA,CAAA;AAAA,UAChC,IAAA;AAAA,UAEA,QAAC,kBAAAD,cAAA,CAAA,MAAA,EAAA;AAAA,YAAM,QAAA;AAAA,WAAS,CAAA;AAAA,SAClB,CAAA;AAAA,QACC,cAAA;AAAA,QACA,0BACEA,cAAA,CAAAE,+BAAA,EAAA;AAAA,UACC,eAAe,EAAA,QAAA;AAAA,UACf,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,UACtC,QAAA;AAAA,UACA,OAAS,EAAA,YAAA;AAAA,UACT,WAAA;AAAA,SACF,CAAA;AAAA,OAAA;AAAA,KAEJ,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -7,7 +7,6 @@ var core = require('@salt-ds/core');
7
7
  var clsx = require('clsx');
8
8
  var React = require('react');
9
9
  var ParentChildItem = require('../parent-child-item/ParentChildItem.js');
10
- require('../utils/useFloatingUI.js');
11
10
  var useIsViewportLargerThanBreakpoint = require('../utils/useIsViewportLargerThanBreakpoint.js');
12
11
  var window = require('@salt-ds/window');
13
12
  var styles = require('@salt-ds/styles');
@@ -1 +1 @@
1
- {"version":3,"file":"ParentChildLayout.js","sources":["../src/parent-child-layout/ParentChildLayout.tsx"],"sourcesContent":["import {\n Breakpoints,\n FlexLayout,\n FlexLayoutProps,\n makePrefixer,\n} from \"@salt-ds/core\";\n\nimport { clsx } from \"clsx\";\nimport { ElementType, forwardRef, HTMLAttributes, ReactNode } from \"react\";\nimport { ParentChildItem, SlideDirection } from \"../parent-child-item\";\nimport { useIsViewportLargerThanBreakpoint } from \"../utils\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport parentChildLayoutCss from \"./ParentChildLayout.css\";\n\nexport type StackedViewElement = \"parent\" | \"child\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\n\nexport interface ParentChildLayoutProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Breakpoint at which the parent and child will stack.\n */\n stackedAtBreakpoint?: keyof Breakpoints;\n /**\n * Change element that is displayed when in staked view.\n */\n stackedViewElement?: StackedViewElement;\n /**\n * Disable all animations.\n */\n disableAnimations?: boolean;\n /**\n * Orientation for slide animations.\n */\n orientation?: Orientation;\n /**\n * Controls the space between columns.\n */\n gap?: FlexLayoutProps<ElementType>[\"gap\"];\n /**\n * Parent component to be rendered\n */\n parent: ReactNode;\n /**\n * Child component to be rendered\n */\n child: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltParentChildLayout\");\n\nconst getDirection = (\n orientation: Orientation,\n stackedViewElement: StackedViewElement\n) => {\n let direction: SlideDirection = \"right\";\n\n if (orientation === \"horizontal\") {\n if (stackedViewElement === \"parent\") {\n direction = \"left\";\n } else {\n direction = \"right\";\n }\n } else {\n if (stackedViewElement === \"parent\") {\n direction = \"bottom\";\n } else {\n direction = \"top\";\n }\n }\n\n return direction;\n};\n\nexport const ParentChildLayout = forwardRef<\n HTMLDivElement,\n ParentChildLayoutProps\n>(function ParentChildLayout(\n {\n stackedAtBreakpoint = \"sm\",\n stackedViewElement = \"parent\",\n disableAnimations = false,\n parent,\n child,\n className,\n orientation = \"horizontal\",\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-parent-child-layout\",\n css: parentChildLayoutCss,\n window: targetWindow,\n });\n\n const stackedView = useIsViewportLargerThanBreakpoint(stackedAtBreakpoint);\n\n const parentChildDirection = getDirection(orientation, stackedViewElement);\n\n const stackedViewChildren = {\n parent: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {parent}\n </ParentChildItem>\n ),\n child: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {child}\n </ParentChildItem>\n ),\n };\n\n return (\n <FlexLayout className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n {stackedView ? (\n stackedViewChildren[stackedViewElement]\n ) : (\n <>\n <ParentChildItem grow={0} disableAnimations={disableAnimations}>\n {parent}\n </ParentChildItem>\n <ParentChildItem grow={2} disableAnimations={disableAnimations}>\n {child}\n </ParentChildItem>\n </>\n )}\n </FlexLayout>\n );\n});\n"],"names":["makePrefixer","forwardRef","ParentChildLayout","useWindow","useComponentCssInjection","parentChildLayoutCss","useIsViewportLargerThanBreakpoint","jsx","ParentChildItem","FlexLayout","clsx","jsxs","Fragment"],"mappings":";;;;;;;;;;;;;;;AAoDA,MAAM,YAAA,GAAeA,kBAAa,uBAAuB,CAAA,CAAA;AAEzD,MAAM,YAAA,GAAe,CACnB,WAAA,EACA,kBACG,KAAA;AACH,EAAA,IAAI,SAA4B,GAAA,OAAA,CAAA;AAEhC,EAAA,IAAI,gBAAgB,YAAc,EAAA;AAChC,IAAA,IAAI,uBAAuB,QAAU,EAAA;AACnC,MAAY,SAAA,GAAA,MAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAY,SAAA,GAAA,OAAA,CAAA;AAAA,KACd;AAAA,GACK,MAAA;AACL,IAAA,IAAI,uBAAuB,QAAU,EAAA;AACnC,MAAY,SAAA,GAAA,QAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAY,SAAA,GAAA,KAAA,CAAA;AAAA,KACd;AAAA,GACF;AAEA,EAAO,OAAA,SAAA,CAAA;AACT,CAAA,CAAA;AAEa,MAAA,iBAAA,GAAoBC,gBAG/B,CAAA,SAASC,kBACT,CAAA;AAAA,EACE,mBAAsB,GAAA,IAAA;AAAA,EACtB,kBAAqB,GAAA,QAAA;AAAA,EACrB,iBAAoB,GAAA,KAAA;AAAA,EACpB,MAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAc,GAAA,YAAA;AAAA,EACX,GAAA,IAAA;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,mBAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,WAAA,GAAcC,oEAAkC,mBAAmB,CAAA,CAAA;AAEzE,EAAM,MAAA,oBAAA,GAAuB,YAAa,CAAA,WAAA,EAAa,kBAAkB,CAAA,CAAA;AAEzE,EAAA,MAAM,mBAAsB,GAAA;AAAA,IAC1B,wBACGC,cAAA,CAAAC,+BAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,MAAA;AAAA,KACH,CAAA;AAAA,IAEF,uBACGD,cAAA,CAAAC,+BAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,KAAA;AAAA,KACH,CAAA;AAAA,GAEJ,CAAA;AAEA,EAAA,uBACGD,cAAA,CAAAE,eAAA,EAAA;AAAA,IAAW,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IAAG,GAAA;AAAA,IAAW,GAAG,IAAA;AAAA,IACnE,QAAA,EAAA,WAAA,GACC,oBAAoB,kBAEpB,CAAA,mBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAACL,cAAA,CAAAC,+BAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,MAAA;AAAA,SACH,CAAA;AAAA,wBACCD,cAAA,CAAAC,+BAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,KAAA;AAAA,SACH,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"ParentChildLayout.js","sources":["../src/parent-child-layout/ParentChildLayout.tsx"],"sourcesContent":["import {\n Breakpoints,\n FlexLayout,\n FlexLayoutProps,\n makePrefixer,\n} from \"@salt-ds/core\";\n\nimport { clsx } from \"clsx\";\nimport { ElementType, forwardRef, HTMLAttributes, ReactNode } from \"react\";\nimport { ParentChildItem, SlideDirection } from \"../parent-child-item\";\nimport { useIsViewportLargerThanBreakpoint } from \"../utils\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport parentChildLayoutCss from \"./ParentChildLayout.css\";\n\nexport type StackedViewElement = \"parent\" | \"child\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\n\nexport interface ParentChildLayoutProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Breakpoint at which the parent and child will stack.\n */\n stackedAtBreakpoint?: keyof Breakpoints;\n /**\n * Change element that is displayed when in staked view.\n */\n stackedViewElement?: StackedViewElement;\n /**\n * Disable all animations.\n */\n disableAnimations?: boolean;\n /**\n * Orientation for slide animations.\n */\n orientation?: Orientation;\n /**\n * Controls the space between columns.\n */\n gap?: FlexLayoutProps<ElementType>[\"gap\"];\n /**\n * Parent component to be rendered\n */\n parent: ReactNode;\n /**\n * Child component to be rendered\n */\n child: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltParentChildLayout\");\n\nconst getDirection = (\n orientation: Orientation,\n stackedViewElement: StackedViewElement\n) => {\n let direction: SlideDirection = \"right\";\n\n if (orientation === \"horizontal\") {\n if (stackedViewElement === \"parent\") {\n direction = \"left\";\n } else {\n direction = \"right\";\n }\n } else {\n if (stackedViewElement === \"parent\") {\n direction = \"bottom\";\n } else {\n direction = \"top\";\n }\n }\n\n return direction;\n};\n\nexport const ParentChildLayout = forwardRef<\n HTMLDivElement,\n ParentChildLayoutProps\n>(function ParentChildLayout(\n {\n stackedAtBreakpoint = \"sm\",\n stackedViewElement = \"parent\",\n disableAnimations = false,\n parent,\n child,\n className,\n orientation = \"horizontal\",\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-parent-child-layout\",\n css: parentChildLayoutCss,\n window: targetWindow,\n });\n\n const stackedView = useIsViewportLargerThanBreakpoint(stackedAtBreakpoint);\n\n const parentChildDirection = getDirection(orientation, stackedViewElement);\n\n const stackedViewChildren = {\n parent: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {parent}\n </ParentChildItem>\n ),\n child: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {child}\n </ParentChildItem>\n ),\n };\n\n return (\n <FlexLayout className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n {stackedView ? (\n stackedViewChildren[stackedViewElement]\n ) : (\n <>\n <ParentChildItem grow={0} disableAnimations={disableAnimations}>\n {parent}\n </ParentChildItem>\n <ParentChildItem grow={2} disableAnimations={disableAnimations}>\n {child}\n </ParentChildItem>\n </>\n )}\n </FlexLayout>\n );\n});\n"],"names":["makePrefixer","forwardRef","ParentChildLayout","useWindow","useComponentCssInjection","parentChildLayoutCss","useIsViewportLargerThanBreakpoint","jsx","ParentChildItem","FlexLayout","clsx","jsxs","Fragment"],"mappings":";;;;;;;;;;;;;;AAoDA,MAAM,YAAA,GAAeA,kBAAa,uBAAuB,CAAA,CAAA;AAEzD,MAAM,YAAA,GAAe,CACnB,WAAA,EACA,kBACG,KAAA;AACH,EAAA,IAAI,SAA4B,GAAA,OAAA,CAAA;AAEhC,EAAA,IAAI,gBAAgB,YAAc,EAAA;AAChC,IAAA,IAAI,uBAAuB,QAAU,EAAA;AACnC,MAAY,SAAA,GAAA,MAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAY,SAAA,GAAA,OAAA,CAAA;AAAA,KACd;AAAA,GACK,MAAA;AACL,IAAA,IAAI,uBAAuB,QAAU,EAAA;AACnC,MAAY,SAAA,GAAA,QAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAY,SAAA,GAAA,KAAA,CAAA;AAAA,KACd;AAAA,GACF;AAEA,EAAO,OAAA,SAAA,CAAA;AACT,CAAA,CAAA;AAEa,MAAA,iBAAA,GAAoBC,gBAG/B,CAAA,SAASC,kBACT,CAAA;AAAA,EACE,mBAAsB,GAAA,IAAA;AAAA,EACtB,kBAAqB,GAAA,QAAA;AAAA,EACrB,iBAAoB,GAAA,KAAA;AAAA,EACpB,MAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAc,GAAA,YAAA;AAAA,EACX,GAAA,IAAA;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,mBAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,WAAA,GAAcC,oEAAkC,mBAAmB,CAAA,CAAA;AAEzE,EAAM,MAAA,oBAAA,GAAuB,YAAa,CAAA,WAAA,EAAa,kBAAkB,CAAA,CAAA;AAEzE,EAAA,MAAM,mBAAsB,GAAA;AAAA,IAC1B,wBACGC,cAAA,CAAAC,+BAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,MAAA;AAAA,KACH,CAAA;AAAA,IAEF,uBACGD,cAAA,CAAAC,+BAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,KAAA;AAAA,KACH,CAAA;AAAA,GAEJ,CAAA;AAEA,EAAA,uBACGD,cAAA,CAAAE,eAAA,EAAA;AAAA,IAAW,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IAAG,GAAA;AAAA,IAAW,GAAG,IAAA;AAAA,IACnE,QAAA,EAAA,WAAA,GACC,oBAAoB,kBAEpB,CAAA,mBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAACL,cAAA,CAAAC,+BAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,MAAA;AAAA,SACH,CAAA;AAAA,wBACCD,cAAA,CAAAC,+BAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,KAAA;AAAA,SACH,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = "/* Styles applied to the root element */\n.saltPillNext {\n --pillNext-background: var(--salt-actionable-primary-background);\n --pillNext-background-active: var(--salt-actionable-primary-background-active);\n --pillNext-background-disabled: var(--salt-actionable-primary-background-disabled);\n --pillNext-background-hover: var(--salt-actionable-primary-background-hover);\n --pillNext-text-color: var(--salt-actionable-primary-foreground);\n --pillNext-text-color-active: var(--salt-actionable-primary-foreground-active);\n --pillNext-text-color-hover: var(--salt-actionable-primary-foreground-hover);\n --pillNext-text-color-disabled: var(--salt-actionable-primary-foreground-disabled);\n}\n\n.saltPillNext {\n appearance: none;\n display: inline-flex;\n align-items: center;\n background: var(--pillNext-background);\n border-radius: 0;\n border: 0;\n height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n min-width: 4em;\n min-height: var(--salt-text-minHeight);\n outline: 0;\n position: relative;\n gap: var(--salt-spacing-50);\n padding-inline: var(--salt-spacing-50);\n color: var(--pillNext-text-color);\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-label-lineHeight);\n}\n\n.saltPillNext-label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.saltPillNext .saltIcon {\n --saltIcon-color: currentColor;\n}\n\n/* Style applied to Pill if `onClick` prop is provided */\n.saltPillNext-clickable {\n cursor: var(--salt-selectable-cursor-hover);\n}\n\n.saltPillNext-clickable:hover {\n color: var(--pillNext-text-color-hover);\n background: var(--pillNext-background-hover);\n}\n\n.saltPillNext-clickable.saltPillNext-disabled:hover {\n color: var(--pillNext-text-color);\n background: var(--pillNext-background);\n}\n\n.saltPillNext-clickable.saltPillNext-active,\n.saltPillNext-clickable:active {\n background: var(--pillNext-background-active);\n color: var(--pillNext-text-color-active);\n}\n\n.saltPillNext-clickable.saltPillNext-disabled.saltPillNext-active,\n.saltPillNext-clickable.saltPillNext-disabled:active {\n background: var(--pillNext-background);\n color: var(--pillNext-text-color);\n}\n\n/* Style applied to Pill on focus */\n.saltPillNext:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n/* Style applied to Pill when disabled */\n.saltPillNext.saltPillNext-disabled,\n.saltPillNext.saltPillNext-disabled:hover,\n.saltPillNext.saltPillNext-disabled:active {\n color: var(--pillNext-text-color-disabled);\n background: var(--pillNext-background-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=PillNext.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PillNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var React = require('react');
7
+ var clsx = require('clsx');
8
+ var window = require('@salt-ds/window');
9
+ var styles = require('@salt-ds/styles');
10
+ var core = require('@salt-ds/core');
11
+ var PillNext$1 = require('./PillNext.css.js');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var clsx__default = /*#__PURE__*/_interopDefaultLegacy(clsx);
16
+
17
+ const withBaseName = core.makePrefixer("saltPillNext");
18
+ const PillNext = React.forwardRef(
19
+ function PillNext2({ children, className, icon, disabled, ...restProps }, ref) {
20
+ const targetWindow = window.useWindow();
21
+ styles.useComponentCssInjection({
22
+ testId: "salt-pill-next",
23
+ css: PillNext$1,
24
+ window: targetWindow
25
+ });
26
+ const { buttonProps, active } = core.useButton({
27
+ disabled,
28
+ ...restProps
29
+ });
30
+ const { tabIndex, ...restButtonProps } = buttonProps;
31
+ return /* @__PURE__ */ jsxRuntime.jsxs("button", {
32
+ "data-testid": "pill",
33
+ ref,
34
+ type: "button",
35
+ className: clsx__default["default"](
36
+ withBaseName(),
37
+ withBaseName("clickable"),
38
+ {
39
+ [withBaseName("active")]: active,
40
+ [withBaseName("disabled")]: disabled
41
+ },
42
+ className
43
+ ),
44
+ ...restButtonProps,
45
+ ...restProps,
46
+ children: [
47
+ icon,
48
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
49
+ className: withBaseName("label"),
50
+ children
51
+ })
52
+ ]
53
+ });
54
+ }
55
+ );
56
+
57
+ exports.PillNext = PillNext;
58
+ //# sourceMappingURL=PillNext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PillNext.js","sources":["../src/pill-next/PillNext.tsx"],"sourcesContent":["import {\n forwardRef,\n MouseEvent,\n KeyboardEvent,\n ComponentPropsWithoutRef,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { makePrefixer, useButton } from \"@salt-ds/core\";\nimport pillCss from \"./PillNext.css\";\n\nexport type PillClickEvent =\n | MouseEvent<Element, globalThis.MouseEvent>\n | KeyboardEvent<HTMLDivElement>;\n\nexport interface PillNextProps extends ComponentPropsWithoutRef<\"button\"> {\n /* If true the pill will be disabled */\n disabled?: boolean;\n /* Pass an element to render an icon descriptor on the left of the label */\n icon?: React.ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltPillNext\");\n\nexport const PillNext = forwardRef<HTMLButtonElement, PillNextProps>(\n function PillNext(\n { children, className, icon, disabled, ...restProps },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-pill-next\",\n css: pillCss,\n window: targetWindow,\n });\n const { buttonProps, active } = useButton<HTMLButtonElement>({\n disabled,\n ...restProps,\n });\n // we do not want to spread tab index in this case because the button element\n // does not require tabindex=\"0\" attribute\n const { tabIndex, ...restButtonProps } = buttonProps;\n\n return (\n <button\n data-testid=\"pill\"\n ref={ref}\n type=\"button\"\n className={clsx(\n withBaseName(),\n withBaseName(\"clickable\"),\n {\n [withBaseName(\"active\")]: active,\n [withBaseName(\"disabled\")]: disabled,\n },\n className\n )}\n {...restButtonProps}\n {...restProps}\n >\n {icon}\n <span className={withBaseName(\"label\")}>{children}</span>\n </button>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","PillNext","useWindow","useComponentCssInjection","pillCss","useButton","jsxs","clsx","jsx"],"mappings":";;;;;;;;;;;;;;;;AAuBA,MAAM,YAAA,GAAeA,kBAAa,cAAc,CAAA,CAAA;AAEzC,MAAM,QAAW,GAAAC,gBAAA;AAAA,EACtB,SAASC,UACP,EAAE,QAAA,EAAU,WAAW,IAAM,EAAA,QAAA,EAAA,GAAa,SAAU,EAAA,EACpD,GACA,EAAA;AACA,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,gBAAA;AAAA,MACR,GAAK,EAAAC,UAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AACD,IAAA,MAAM,EAAE,WAAA,EAAa,MAAO,EAAA,GAAIC,cAA6B,CAAA;AAAA,MAC3D,QAAA;AAAA,MACA,GAAG,SAAA;AAAA,KACJ,CAAA,CAAA;AAGD,IAAM,MAAA,EAAE,QAAa,EAAA,GAAA,eAAA,EAAoB,GAAA,WAAA,CAAA;AAEzC,IAAA,uBACGC,eAAA,CAAA,QAAA,EAAA;AAAA,MACC,aAAY,EAAA,MAAA;AAAA,MACZ,GAAA;AAAA,MACA,IAAK,EAAA,QAAA;AAAA,MACL,SAAW,EAAAC,wBAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,aAAa,WAAW,CAAA;AAAA,QACxB;AAAA,UACE,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,UAC1B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,SAC9B;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,eAAA;AAAA,MACH,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA;AAAA,wBACAC,cAAA,CAAA,MAAA,EAAA;AAAA,UAAK,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAAI,QAAA;AAAA,SAAS,CAAA;AAAA,OAAA;AAAA,KACpD,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = ".saltCircularProgress {\n --circularProgress-gradient-color: var(--salt-accent-background);\n\n color: var(--salt-text-primary-foreground);\n display: inline-flex;\n position: relative;\n}\n\n.saltCircularProgress-disabled .saltCircularProgress-progressValue,\n.saltCircularProgress-disabled circle {\n color: var(--salt-text-primary-foreground-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n\n.saltCircularProgress-circle {\n stroke: url(\"#salt-circular-progress-gradient\");\n stroke-width: 2px;\n}\n\n.saltCircularProgress-small {\n font-size: 11px;\n}\n\n.saltCircularProgress-medium {\n font-size: 14px;\n}\n\n.saltCircularProgress-large {\n font-size: 16px;\n}\n\n.saltCircularProgress-progressValue {\n align-items: center;\n color: var(--salt-text-primary-foreground);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n position: absolute;\n width: 100%;\n}\n\n.saltCircularProgress-disabled {\n}\n\n.saltCircularProgress-completed {\n}\n\n.saltCircularProgress-railCircle {\n stroke: var(--salt-track-borderColor);\n stroke-width: var(--salt-size-border);\n}\n\n.saltCircularProgress-gradientStart,\n.saltCircularProgress-gradientStop {\n stop-color: var(--saltCircularProgress-gradient-color, var(--circularProgress-gradient-color));\n}\n\n.saltCircularProgress-container {\n display: inline-block;\n}\n\n.saltCircularProgress-static {\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0s;\n}\n\n.saltCircularProgress-indeterminate {\n animation: circular-rotate 1.4s linear infinite;\n}\n\n.saltCircularProgress-svg {\n fill: var(--salt-accent-background);\n display: block;\n}\n\n.saltCircularProgress-circle {\n stroke: url(\"#salt-circular-progress-gradient\");\n}\n\n.saltCircularProgress-circleStatic {\n transition: stroke-dashoffset 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0s;\n}\n\n.saltCircularProgress-circleIndeterminate {\n animation: circular-dash 1.4s ease-in-out infinite;\n}\n\n@keyframes circular-rotate {\n 0% {\n transform-origin: 50% 50%;\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes circular-dash {\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n}\n";
3
+ var css_248z = ".saltCircularProgress {\n color: var(--salt-text-primary-foreground);\n display: inline-flex;\n position: relative;\n}\n\n.saltCircularProgress-progressValue {\n align-items: center;\n color: var(--salt-text-primary-foreground);\n display: flex;\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-label-fontSize);\n font-weight: var(--salt-text-label-fontWeight-strong);\n height: 100%;\n justify-content: center;\n left: 0;\n position: absolute;\n width: 100%;\n}\n\n.saltCircularProgress-track {\n inline-size: calc(var(--salt-size-base) * 2);\n block-size: calc(var(--salt-size-base) * 2);\n border-style: var(--salt-track-borderStyle);\n border-width: var(--salt-track-borderWidth);\n border-radius: var(--salt-size-base);\n border-color: var(--salt-track-borderColor);\n}\n\n.saltCircularProgress-bar {\n inline-size: calc(var(--salt-size-base) * 2);\n block-size: calc(var(--salt-size-base) * 2);\n border-style: var(--salt-track-borderStyle);\n border-width: calc(var(--salt-size-adornment) * 0.5);\n border-radius: var(--salt-size-base);\n border-color: var(--salt-accent-background);\n}\n\n.saltCircularProgress-bars {\n position: absolute;\n inset-block-start: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 100%;\n}\n\n.saltCircularProgress-barOverlayRight,\n.saltCircularProgress-barOverlayLeft {\n inline-size: 50%;\n block-size: 100%;\n transform-origin: 100% center;\n transform: rotate(180deg);\n overflow: hidden;\n position: absolute;\n}\n\n.saltCircularProgress-barSubOverlayRight,\n.saltCircularProgress-barSubOverlayLeft {\n inline-size: 100%;\n block-size: 100%;\n transform-origin: 100% center;\n overflow: hidden;\n transform: rotate(-180deg);\n}\n\n.saltCircularProgress-barOverlayLeft {\n transform: rotate(0deg);\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=CircularProgress.css.js.map