@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
@@ -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":["NavItem","navItemCss"],"mappings":";;;;;;;;;AA8BA,MAAM,YAAA,GAAe,aAAa,aAAa,CAAA,CAAA;AAExC,MAAM,OAAU,GAAA,UAAA;AAAA,EACrB,SAASA,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,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,eAAA;AAAA,MACR,GAAK,EAAAC,QAAA;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,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA;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,wBAAC,GAAA,CAAA,IAAA,EAAA;AAAA,UACC,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAC/B,cAAA,EAAc,SAAS,MAAS,GAAA,KAAA,CAAA;AAAA,UAChC,IAAA;AAAA,UAEA,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA;AAAA,YAAM,QAAA;AAAA,WAAS,CAAA;AAAA,SAClB,CAAA;AAAA,QACC,0BACE,GAAA,CAAA,eAAA,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":["NavItem","navItemCss"],"mappings":";;;;;;;;;AA4DA,MAAM,YAAA,GAAe,aAAa,aAAa,CAAA,CAAA;AAExC,MAAM,OAAU,GAAA,UAAA;AAAA,EACrB,SAASA,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,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,eAAA;AAAA,MACR,GAAK,EAAAC,QAAA;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,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA;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,oBACE,GAAA,CAAA,aAAA,EAAA;AAAA,UAAc,aAAW,EAAA,IAAA;AAAA,UAAC,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,SAAG,CAAA;AAAA,wBAE7D,GAAA,CAAA,IAAA,EAAA;AAAA,UACC,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAC/B,cAAA,EAAc,SAAS,MAAS,GAAA,KAAA,CAAA;AAAA,UAChC,IAAA;AAAA,UAEA,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA;AAAA,YAAM,QAAA;AAAA,WAAS,CAAA;AAAA,SAClB,CAAA;AAAA,QACC,cAAA;AAAA,QACA,0BACE,GAAA,CAAA,eAAA,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;;;;"}
@@ -3,7 +3,6 @@ import { makePrefixer, FlexLayout } from '@salt-ds/core';
3
3
  import { clsx } from 'clsx';
4
4
  import { forwardRef } from 'react';
5
5
  import { ParentChildItem } from '../parent-child-item/ParentChildItem.js';
6
- import '../utils/useFloatingUI.js';
7
6
  import { useIsViewportLargerThanBreakpoint } from '../utils/useIsViewportLargerThanBreakpoint.js';
8
7
  import { useWindow } from '@salt-ds/window';
9
8
  import { useComponentCssInjection } from '@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":["ParentChildLayout","parentChildLayoutCss"],"mappings":";;;;;;;;;;;AAoDA,MAAM,YAAA,GAAe,aAAa,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,GAAoB,UAG/B,CAAA,SAASA,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,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,WAAA,GAAc,kCAAkC,mBAAmB,CAAA,CAAA;AAEzE,EAAM,MAAA,oBAAA,GAAuB,YAAa,CAAA,WAAA,EAAa,kBAAkB,CAAA,CAAA;AAEzE,EAAA,MAAM,mBAAsB,GAAA;AAAA,IAC1B,wBACG,GAAA,CAAA,eAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,MAAA;AAAA,KACH,CAAA;AAAA,IAEF,uBACG,GAAA,CAAA,eAAA,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,uBACG,GAAA,CAAA,UAAA,EAAA;AAAA,IAAW,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IAAG,GAAA;AAAA,IAAW,GAAG,IAAA;AAAA,IACnE,QAAA,EAAA,WAAA,GACC,oBAAoB,kBAEpB,CAAA,mBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,eAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,MAAA;AAAA,SACH,CAAA;AAAA,wBACC,GAAA,CAAA,eAAA,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":["ParentChildLayout","parentChildLayoutCss"],"mappings":";;;;;;;;;;AAoDA,MAAM,YAAA,GAAe,aAAa,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,GAAoB,UAG/B,CAAA,SAASA,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,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,WAAA,GAAc,kCAAkC,mBAAmB,CAAA,CAAA;AAEzE,EAAM,MAAA,oBAAA,GAAuB,YAAa,CAAA,WAAA,EAAa,kBAAkB,CAAA,CAAA;AAEzE,EAAA,MAAM,mBAAsB,GAAA;AAAA,IAC1B,wBACG,GAAA,CAAA,eAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,MAAA;AAAA,KACH,CAAA;AAAA,IAEF,uBACG,GAAA,CAAA,eAAA,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,uBACG,GAAA,CAAA,UAAA,EAAA;AAAA,IAAW,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IAAG,GAAA;AAAA,IAAW,GAAG,IAAA;AAAA,IACnE,QAAA,EAAA,WAAA,GACC,oBAAoB,kBAEpB,CAAA,mBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,eAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,MAAA;AAAA,SACH,CAAA;AAAA,wBACC,GAAA,CAAA,eAAA,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,4 @@
1
+ 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";
2
+
3
+ export { css_248z as default };
4
+ //# sourceMappingURL=PillNext.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PillNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,50 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import clsx from 'clsx';
4
+ import { useWindow } from '@salt-ds/window';
5
+ import { useComponentCssInjection } from '@salt-ds/styles';
6
+ import { makePrefixer, useButton } from '@salt-ds/core';
7
+ import css_248z from './PillNext.css.js';
8
+
9
+ const withBaseName = makePrefixer("saltPillNext");
10
+ const PillNext = forwardRef(
11
+ function PillNext2({ children, className, icon, disabled, ...restProps }, ref) {
12
+ const targetWindow = useWindow();
13
+ useComponentCssInjection({
14
+ testId: "salt-pill-next",
15
+ css: css_248z,
16
+ window: targetWindow
17
+ });
18
+ const { buttonProps, active } = useButton({
19
+ disabled,
20
+ ...restProps
21
+ });
22
+ const { tabIndex, ...restButtonProps } = buttonProps;
23
+ return /* @__PURE__ */ jsxs("button", {
24
+ "data-testid": "pill",
25
+ ref,
26
+ type: "button",
27
+ className: clsx(
28
+ withBaseName(),
29
+ withBaseName("clickable"),
30
+ {
31
+ [withBaseName("active")]: active,
32
+ [withBaseName("disabled")]: disabled
33
+ },
34
+ className
35
+ ),
36
+ ...restButtonProps,
37
+ ...restProps,
38
+ children: [
39
+ icon,
40
+ /* @__PURE__ */ jsx("span", {
41
+ className: withBaseName("label"),
42
+ children
43
+ })
44
+ ]
45
+ });
46
+ }
47
+ );
48
+
49
+ export { PillNext };
50
+ //# 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":["PillNext","pillCss"],"mappings":";;;;;;;;AAuBA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AAEzC,MAAM,QAAW,GAAA,UAAA;AAAA,EACtB,SAASA,UACP,EAAE,QAAA,EAAU,WAAW,IAAM,EAAA,QAAA,EAAA,GAAa,SAAU,EAAA,EACpD,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,gBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AACD,IAAA,MAAM,EAAE,WAAA,EAAa,MAAO,EAAA,GAAI,SAA6B,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,uBACG,IAAA,CAAA,QAAA,EAAA;AAAA,MACC,aAAY,EAAA,MAAA;AAAA,MACZ,GAAA;AAAA,MACA,IAAK,EAAA,QAAA;AAAA,MACL,SAAW,EAAA,IAAA;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,wBACA,GAAA,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,4 +1,4 @@
1
- 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";
1
+ 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";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=CircularProgress.css.js.map
@@ -1,48 +1,19 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { forwardRef, useEffect } from 'react';
2
+ import { forwardRef } from 'react';
3
3
  import { clsx } from 'clsx';
4
4
  import { makePrefixer } from '@salt-ds/core';
5
5
  import { Info } from '../Info.js';
6
- import { ViewBox, LinearGradient, Circle, SIZE } from './CircularProgressParts.js';
7
6
  import { useWindow } from '@salt-ds/window';
8
7
  import { useComponentCssInjection } from '@salt-ds/styles';
9
8
  import css_248z from './CircularProgress.css.js';
10
9
 
11
- const MAX = 100;
12
- const MIN = 0;
13
10
  const withBaseName = makePrefixer("saltCircularProgress");
14
- const SIZE_OPTIONS = {
15
- small: {
16
- container: 36
17
- },
18
- medium: {
19
- container: 48
20
- },
21
- large: {
22
- container: 60
23
- }
24
- };
25
- function getRelativeValue(value, min, max) {
26
- return (Math.min(Math.max(min, value), max) - min) / (max - min);
27
- }
28
- function easeOut(t) {
29
- t = getRelativeValue(t, 0, 1);
30
- t = (t -= 1) * t * t + 1;
31
- return t;
32
- }
33
- function easeIn(t) {
34
- return t * t;
35
- }
36
11
  const CircularProgress = forwardRef(function CircularProgress2({
37
12
  "aria-label": ariaLabel,
38
13
  className,
39
- disabled,
14
+ max = 100,
40
15
  showInfo = true,
41
- size = "small",
42
- renderInfo,
43
16
  value = 0,
44
- unit = "%",
45
- variant = "static",
46
17
  ...rest
47
18
  }, ref) {
48
19
  const targetWindow = useWindow();
@@ -51,90 +22,74 @@ const CircularProgress = forwardRef(function CircularProgress2({
51
22
  css: css_248z,
52
23
  window: targetWindow
53
24
  });
54
- const circleStyle = {};
55
- const rootStyle = {};
56
- if (variant === "determinate" || variant === "static") {
57
- const circumference = 2 * Math.PI * ((SIZE - 2) * 0.5);
58
- circleStyle.strokeDasharray = circumference.toFixed(3);
59
- if (variant === "static") {
60
- circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;
61
- rootStyle.transform = "rotate(-90deg)";
62
- } else {
63
- circleStyle.strokeDashoffset = `${(easeIn((100 - value) / 100) * circumference).toFixed(3)}px`;
64
- rootStyle.transform = `rotate(${(easeOut(value / 70) * 270).toFixed(
65
- 3
66
- )}deg)`;
67
- }
25
+ const subOverlayRightStyle = {};
26
+ const subOverlayLeftStyle = {};
27
+ const getRotationAngle = (progress2, shift = 0) => {
28
+ return -180 + (progress2 - shift) / 50 * 180;
29
+ };
30
+ const progress = value / max * 100;
31
+ if (progress <= 50) {
32
+ const rotationAngle = getRotationAngle(progress);
33
+ subOverlayRightStyle.transform = `rotate(${rotationAngle}deg)`;
34
+ subOverlayLeftStyle.transform = "rotate(-180deg)";
35
+ } else {
36
+ const rotationAngle = getRotationAngle(progress, 50);
37
+ subOverlayRightStyle.transform = "rotate(0deg)";
38
+ subOverlayLeftStyle.transform = `rotate(${rotationAngle}deg)`;
68
39
  }
69
- useEffect(() => {
70
- if (process.env.NODE_ENV !== "production" && !ariaLabel) {
71
- console.error(
72
- "Salt: aria-label value not supplied to CircularProgress. This may affect the ADA compliance level of the component and owning application, and may generate errors in automated accessibility testing software"
73
- );
74
- }
75
- }, [ariaLabel]);
76
- const containerSize = SIZE_OPTIONS[size].container;
77
- const getValueProps = () => ({
78
- unit,
79
- value,
80
- getValueProps: (valueProps = {}) => ({
81
- className: withBaseName("progressValue"),
82
- ...valueProps
83
- })
84
- });
85
40
  let progressInfo = null;
86
41
  if (showInfo) {
87
- progressInfo = renderInfo ? renderInfo(getValueProps()) : /* @__PURE__ */ jsx(Info, {
42
+ progressInfo = /* @__PURE__ */ jsx(Info, {
88
43
  className: withBaseName("progressValue"),
89
- unit,
90
- value,
91
- ...rest
44
+ unit: "%",
45
+ value: Math.round(progress)
92
46
  });
93
47
  }
94
48
  return /* @__PURE__ */ jsxs("div", {
95
- className: clsx(className, "saltCircularProgress", {
96
- [withBaseName("small")]: size === "small",
97
- [withBaseName("medium")]: size === "medium",
98
- [withBaseName("large")]: size === "large",
99
- [withBaseName("disabled")]: disabled
100
- }),
49
+ className: clsx(withBaseName(), className),
101
50
  "data-testid": "circular-progress",
102
51
  ref,
103
52
  role: "progressbar",
104
53
  "aria-label": ariaLabel,
105
- "aria-valuemax": MAX,
106
- "aria-valuemin": MIN,
107
- "aria-valuenow": value,
54
+ "aria-valuemax": max,
55
+ "aria-valuemin": 0,
56
+ "aria-valuenow": Math.round(value),
108
57
  ...rest,
109
58
  children: [
110
59
  /* @__PURE__ */ jsx("div", {
111
- className: clsx(withBaseName("container"), {
112
- [withBaseName("indeterminate")]: variant === "indeterminate",
113
- [withBaseName("static")]: variant === "static"
114
- }),
115
- style: { width: containerSize, height: containerSize, ...rootStyle },
116
- children: /* @__PURE__ */ jsxs(ViewBox, {
117
- children: [
118
- /* @__PURE__ */ jsx(LinearGradient, {}),
119
- /* @__PURE__ */ jsx(Circle, {
120
- className: withBaseName("railCircle"),
121
- strokeWidth: 1
122
- }),
123
- /* @__PURE__ */ jsx(Circle, {
124
- strokeWidth: 2,
125
- style: circleStyle,
126
- className: clsx(withBaseName("circle"), {
127
- [withBaseName("circleIndeterminate")]: variant === "indeterminate",
128
- [withBaseName("circleStatic")]: variant === "static"
60
+ className: withBaseName("track")
61
+ }),
62
+ /* @__PURE__ */ jsxs("div", {
63
+ className: withBaseName("bars"),
64
+ children: [
65
+ /* @__PURE__ */ jsx("div", {
66
+ className: withBaseName("barOverlayRight"),
67
+ children: /* @__PURE__ */ jsx("div", {
68
+ className: withBaseName("barSubOverlayRight"),
69
+ "data-testid": "barSubOverlayRight",
70
+ style: subOverlayRightStyle,
71
+ children: /* @__PURE__ */ jsx("div", {
72
+ className: withBaseName("bar")
73
+ })
74
+ })
75
+ }),
76
+ /* @__PURE__ */ jsx("div", {
77
+ className: withBaseName("barOverlayLeft"),
78
+ children: /* @__PURE__ */ jsx("div", {
79
+ className: withBaseName("barSubOverlayLeft"),
80
+ "data-testid": "barSubOverlayLeft",
81
+ style: subOverlayLeftStyle,
82
+ children: /* @__PURE__ */ jsx("div", {
83
+ className: withBaseName("bar")
129
84
  })
130
85
  })
131
- ]
132
- })
86
+ })
87
+ ]
133
88
  }),
134
89
  progressInfo
135
90
  ]
136
91
  });
137
92
  });
138
93
 
139
- export { CircularProgress, SIZE_OPTIONS };
94
+ export { CircularProgress };
140
95
  //# sourceMappingURL=CircularProgress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CircularProgress.js","sources":["../src/progress/CircularProgress/CircularProgress.tsx"],"sourcesContent":["import {\n CSSProperties,\n forwardRef,\n HTMLAttributes,\n ReactElement,\n ReactNode,\n useEffect,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { Info as DefaultInfo } from \"../Info\";\nimport { Circle, LinearGradient, SIZE, ViewBox } from \"./CircularProgressParts\";\nimport { InfoRendererProps } from \"../LinearProgress/LinearProgress\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport circularProgressCSS from \"./CircularProgress.css\";\n\nconst MAX = 100;\nconst MIN = 0;\n\nconst withBaseName = makePrefixer(\"saltCircularProgress\");\n\nexport const SIZE_OPTIONS = {\n small: {\n container: 36,\n },\n medium: {\n container: 48,\n },\n large: {\n container: 60,\n },\n};\n\nfunction getRelativeValue(value: number, min: number, max: number): number {\n return (Math.min(Math.max(min, value), max) - min) / (max - min);\n}\n\nfunction easeOut(t: number): number {\n t = getRelativeValue(t, 0, 1);\n t = (t -= 1) * t * t + 1;\n return t;\n}\n\nfunction easeIn(t: number): number {\n return t * t;\n}\n\nexport interface CircularProgressProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * A label for accessibility\n */\n \"aria-label\"?: string;\n /**\n * The className(s) of the component\n */\n className?: string;\n /**\n * Disabled flag, true when the component is disabled.\n */\n disabled?: boolean;\n /**\n * Render props callback to render info panel.\n * @param function({ value, unit, getValueProps })\n */\n renderInfo?: (\n props: Pick<InfoRendererProps<any, any>, \"value\" | \"unit\" | \"getValueProps\">\n ) => ReactElement<InfoRendererProps<any, any>>;\n /**\n * If `true`, the info panel will be displayed.\n */\n showInfo?: boolean;\n /**\n * The size of the circle\n * (small, medium, large)\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Default unit is`%`\n */\n unit?: string;\n /**\n * The value of the progress indicator for the determinate and static variants.\n * Value between 0 and 100.\n */\n value?: number;\n /**\n * The variant to use.\n * Use indeterminate or query when there is no progress value.\n */\n variant?: \"determinate\" | \"indeterminate\" | \"static\";\n}\n\n/**\n * Circular progress bar with an optional Info element, showing the current value\n * The default Info element can be rendered by setting `unit` and `value` props.\n * A custom Info element can be rendered using the `renderInfo` callback.\n * The render props callback is of the form\n * @param {string} unit the unit of the progress info\n * @param {number} value the value of the progress info\n * @param {string} variant the variant to use.\n * @param {function} getValueProps function callback that returns the value props\n */\nexport const CircularProgress = forwardRef<\n HTMLDivElement,\n CircularProgressProps\n>(function CircularProgress(\n {\n \"aria-label\": ariaLabel,\n className,\n disabled,\n showInfo = true,\n size = \"small\",\n renderInfo,\n value = 0,\n unit = \"%\",\n variant = \"static\",\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-circular-progress\",\n css: circularProgressCSS,\n window: targetWindow,\n });\n\n const circleStyle: CSSProperties = {};\n const rootStyle: CSSProperties = {};\n const rootProps: HTMLAttributes<any> = {};\n\n if (variant === \"determinate\" || variant === \"static\") {\n const circumference = 2 * Math.PI * ((SIZE - 2) * 0.5);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps[\"aria-valuenow\"] = Math.round(value);\n\n if (variant === \"static\") {\n circleStyle.strokeDashoffset = `${(\n ((100 - value) / 100) *\n circumference\n ).toFixed(3)}px`;\n rootStyle.transform = \"rotate(-90deg)\";\n } else {\n circleStyle.strokeDashoffset = `${(\n easeIn((100 - value) / 100) * circumference\n ).toFixed(3)}px`;\n rootStyle.transform = `rotate(${(easeOut(value / 70) * 270).toFixed(\n 3\n )}deg)`;\n }\n }\n\n useEffect(() => {\n if (process.env.NODE_ENV !== \"production\" && !ariaLabel) {\n // eslint-disable-next-line no-console\n console.error(\n \"Salt: aria-label value not supplied to CircularProgress. This may affect the ADA compliance level of the component and owning application, and may generate errors in automated accessibility testing software\"\n );\n }\n }, [ariaLabel]);\n\n const containerSize = SIZE_OPTIONS[size].container;\n\n const getValueProps = () => ({\n unit,\n value,\n getValueProps: (valueProps = {}) => ({\n className: withBaseName(\"progressValue\"),\n ...valueProps,\n }),\n });\n\n let progressInfo: ReactNode = null;\n if (showInfo) {\n progressInfo = renderInfo ? (\n renderInfo(getValueProps())\n ) : (\n <DefaultInfo\n className={withBaseName(\"progressValue\")}\n unit={unit}\n value={value}\n {...rest}\n />\n );\n }\n\n return (\n <div\n className={clsx(className, \"saltCircularProgress\", {\n [withBaseName(\"small\")]: size === \"small\",\n [withBaseName(\"medium\")]: size === \"medium\",\n [withBaseName(\"large\")]: size === \"large\",\n [withBaseName(\"disabled\")]: disabled,\n })}\n data-testid=\"circular-progress\"\n ref={ref}\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemax={MAX}\n aria-valuemin={MIN}\n aria-valuenow={value}\n {...rest}\n >\n <div\n className={clsx(withBaseName(\"container\"), {\n [withBaseName(\"indeterminate\")]: variant === \"indeterminate\",\n [withBaseName(\"static\")]: variant === \"static\",\n })}\n style={{ width: containerSize, height: containerSize, ...rootStyle }}\n >\n <ViewBox>\n <LinearGradient />\n <Circle className={withBaseName(\"railCircle\")} strokeWidth={1} />\n <Circle\n strokeWidth={2}\n style={circleStyle}\n className={clsx(withBaseName(\"circle\"), {\n [withBaseName(\"circleIndeterminate\")]:\n variant === \"indeterminate\",\n [withBaseName(\"circleStatic\")]: variant === \"static\",\n })}\n />\n </ViewBox>\n </div>\n {progressInfo}\n </div>\n );\n});\n"],"names":["CircularProgress","circularProgressCSS","DefaultInfo"],"mappings":"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"}
1
+ {"version":3,"file":"CircularProgress.js","sources":["../src/progress/CircularProgress/CircularProgress.tsx"],"sourcesContent":["import {\n CSSProperties,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n useEffect,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { Info } from \"../Info\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport circularProgressCSS from \"./CircularProgress.css\";\n\nconst withBaseName = makePrefixer(\"saltCircularProgress\");\n\nexport interface CircularProgressProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * A label for accessibility\n */\n \"aria-label\"?: string;\n /**\n * The className(s) of the component\n */\n className?: string;\n /**\n * The value of the max progress indicator.\n * Default value is 100.\n */\n max?: number;\n /**\n * If `true`, the info panel will be displayed.\n */\n showInfo?: boolean;\n /**\n * The value of the progress indicator.\n * Value between 0 and max.\n */\n value?: number;\n}\n\n/**\n * Circular progress bar with an optional Info element, showing the current value\n */\nexport const CircularProgress = forwardRef<\n HTMLDivElement,\n CircularProgressProps\n>(function CircularProgress(\n {\n \"aria-label\": ariaLabel,\n className,\n max = 100,\n showInfo = true,\n value = 0,\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-circular-progress\",\n css: circularProgressCSS,\n window: targetWindow,\n });\n\n const subOverlayRightStyle: CSSProperties = {};\n const subOverlayLeftStyle: CSSProperties = {};\n\n const getRotationAngle = (progress: number, shift = 0) => {\n return -180 + ((progress - shift) / 50) * 180;\n };\n\n const progress = (value / max) * 100;\n\n if (progress <= 50) {\n const rotationAngle = getRotationAngle(progress);\n subOverlayRightStyle.transform = `rotate(${rotationAngle}deg)`;\n subOverlayLeftStyle.transform = \"rotate(-180deg)\";\n } else {\n const rotationAngle = getRotationAngle(progress, 50);\n subOverlayRightStyle.transform = \"rotate(0deg)\";\n subOverlayLeftStyle.transform = `rotate(${rotationAngle}deg)`;\n }\n\n let progressInfo: ReactNode = null;\n if (showInfo) {\n progressInfo = (\n <Info\n className={withBaseName(\"progressValue\")}\n unit=\"%\"\n value={Math.round(progress)}\n />\n );\n }\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n data-testid=\"circular-progress\"\n ref={ref}\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemax={max}\n aria-valuemin={0}\n aria-valuenow={Math.round(value)}\n {...rest}\n >\n <div className={withBaseName(\"track\")} />\n <div className={withBaseName(\"bars\")}>\n <div className={withBaseName(\"barOverlayRight\")}>\n <div\n className={withBaseName(\"barSubOverlayRight\")}\n data-testid=\"barSubOverlayRight\"\n style={subOverlayRightStyle}\n >\n <div className={withBaseName(\"bar\")} />\n </div>\n </div>\n <div className={withBaseName(\"barOverlayLeft\")}>\n <div\n className={withBaseName(\"barSubOverlayLeft\")}\n data-testid=\"barSubOverlayLeft\"\n style={subOverlayLeftStyle}\n >\n <div className={withBaseName(\"bar\")} />\n </div>\n </div>\n </div>\n {progressInfo}\n </div>\n );\n});\n"],"names":["CircularProgress","circularProgressCSS","progress"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltLinearProgress {\n align-items: center;\n color: var(--salt-text-primary-foreground);\n display: flex;\n min-width: 200px;\n font-size: var(--linearProgress-fontSize);\n}\n\n/* TODO: Odyssey now has only 2 sizes */\n.saltLinearProgress-large {\n --linearProgress-after-top: 3px;\n --linearProgress-value-paddingLeft: 12px;\n --linearProgress-height: 7px;\n --linearProgress-fontSize: 16px;\n}\n\n.saltLinearProgress-medium {\n --linearProgress-after-top: 2px;\n --linearProgress-value-paddingLeft: 8px;\n --linearProgress-height: 5px;\n --linearProgress-fontSize: 14px;\n}\n\n.saltLinearProgress-small {\n --linearProgress-after-top: 1px;\n --linearProgress-value-paddingLeft: 4px;\n --linearProgress-height: 3px;\n --linearProgress-fontSize: 11px;\n}\n\n.saltLinearProgress-disabled .saltLinearProgress-bar {\n background: var(--salt-accent-background-disabled);\n}\n\n.saltLinearProgress-disabled .saltLinearProgress-barContainer :after {\n background: var(--salt-accent-background-disabled);\n}\n\n.saltLinearProgress-disabled .saltLinearProgress-progressValue {\n color: var(--salt-text-primary-foreground-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n\n.saltLinearProgress-barContainer {\n background: none;\n position: relative;\n width: calc(100% - 10px);\n overflow: hidden;\n height: var(--linearProgress-height);\n}\n\n/* Horizontal line under the progress indicator bar */\n.saltLinearProgress-barContainer:after {\n top: var(--linearProgress-after-top);\n background: var(--salt-track-borderColor);\n content: \"\";\n display: block;\n height: 1px;\n left: 0;\n position: absolute;\n right: 0;\n}\n\n.saltLinearProgress-determinate {\n}\n\n.saltLinearProgress-indeterminate {\n}\n\n.saltLinearProgress-query {\n transform: rotate(180deg);\n}\n\n.saltLinearProgress-bar {\n width: 100%;\n position: absolute;\n left: 0;\n bottom: 0;\n top: 0;\n transition: transform 0.2s linear;\n transform-origin: left;\n background: var(--salt-accent-background);\n z-index: 2;\n}\n\n.saltLinearProgress-determinate .saltLinearProgress-bar1 {\n transition: transform 0.4s linear;\n}\n\n.saltLinearProgress-indeterminate .saltLinearProgress-bar1 {\n width: auto;\n animation: Indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n}\n\n.saltLinearProgress-query .saltLinearProgress-bar1 {\n width: auto;\n animation: Indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n}\n\n.saltLinearProgress-bar2 {\n width: auto;\n animation: Indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;\n}\n\n.saltLinearProgress-progressValue {\n color: inherit;\n margin: 0;\n white-space: nowrap;\n padding-left: var(--linearProgress-value-paddingLeft);\n}\n\n@keyframes Indeterminate1 {\n 0% {\n left: -35%;\n right: 100%;\n }\n 60% {\n left: 100%;\n right: -90%;\n }\n 100% {\n left: 100%;\n right: -90%;\n }\n}\n\n@keyframes Indeterminate2 {\n 0% {\n left: -200%;\n right: 100%;\n }\n 60% {\n left: 107%;\n right: -8%;\n }\n 100% {\n left: 107%;\n right: -8%;\n }\n}\n";
1
+ var css_248z = ".saltLinearProgress {\n align-items: center;\n color: var(--salt-text-primary-foreground);\n display: flex;\n min-width: 200px;\n font-size: var(--linearProgress-fontSize);\n}\n\n.saltLinearProgress-barContainer {\n background: none;\n position: relative;\n width: 100%;\n overflow: hidden;\n height: var(--salt-size-adornment);\n}\n\n.saltLinearProgress-bar {\n width: 100%;\n position: absolute;\n left: 0;\n bottom: 0;\n top: 0;\n transition: transform 0.2s linear;\n transform-origin: left;\n background: var(--salt-accent-background);\n z-index: 2;\n}\n\n.saltLinearProgress-track {\n background: var(--salt-track-borderColor);\n width: 100%;\n height: var(--salt-track-borderWidth);\n position: absolute;\n top: calc((var(--salt-size-adornment) - var(--salt-track-borderWidth)) / 2);\n transition: transform 0.2s linear;\n transform-origin: left;\n}\n\n.saltLinearProgress-progressValue {\n color: inherit;\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 margin: 0;\n white-space: nowrap;\n padding-left: var(--salt-spacing-100);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=LinearProgress.css.js.map
@@ -8,30 +8,8 @@ import { useComponentCssInjection } from '@salt-ds/styles';
8
8
  import css_248z from './LinearProgress.css.js';
9
9
 
10
10
  const withBaseName = makePrefixer("saltLinearProgress");
11
- const getUnitAndValueProps = ({ unit, value }, { progressUnit, progressValue }) => ({
12
- unit,
13
- value,
14
- getUnitProps: (props = {}) => ({
15
- className: progressUnit,
16
- ...props
17
- }),
18
- getValueProps: (props = {}) => ({
19
- className: progressValue,
20
- ...props
21
- })
22
- });
23
11
  const LinearProgress = forwardRef(
24
- function LinearProgress2({
25
- className,
26
- disabled,
27
- renderInfo,
28
- showInfo = true,
29
- size = "small",
30
- variant = "determinate",
31
- unit = "%",
32
- value = 0,
33
- ...rest
34
- }, ref) {
12
+ function LinearProgress2({ className, max = 100, showInfo = true, value = 0, ...rest }, ref) {
35
13
  const targetWindow = useWindow();
36
14
  useComponentCssInjection({
37
15
  testId: "salt-linear-progress",
@@ -39,64 +17,38 @@ const LinearProgress = forwardRef(
39
17
  window: targetWindow
40
18
  });
41
19
  let progressInfo = null;
42
- const progressUnit = withBaseName("progressUnit");
43
- const progressValue = withBaseName("progressValue");
20
+ const progress = value / max * 100;
44
21
  if (showInfo) {
45
- progressInfo = renderInfo ? renderInfo(
46
- getUnitAndValueProps(
47
- {
48
- unit,
49
- value
50
- },
51
- {
52
- progressUnit,
53
- progressValue
54
- }
55
- )
56
- ) : /* @__PURE__ */ jsx(Info, {
57
- unit,
58
- value,
59
- className: progressValue
22
+ progressInfo = /* @__PURE__ */ jsx(Info, {
23
+ unit: "%",
24
+ value: Math.round(progress),
25
+ className: withBaseName("progressValue")
60
26
  });
61
27
  }
62
- const rootProps = {};
63
28
  const barStyle = {};
64
- if (variant === "determinate") {
65
- rootProps["aria-valuenow"] = Math.round(value);
66
- rootProps["aria-valuemin"] = 0;
67
- rootProps["aria-valuemax"] = 100;
68
- barStyle.transform = `translateX(${value - 100}%)`;
69
- }
29
+ const trackStyle = {};
30
+ barStyle.transform = `translateX(${progress - 100}%)`;
31
+ trackStyle.transform = `translateX(${progress}%)`;
70
32
  return /* @__PURE__ */ jsxs("div", {
71
- className: clsx(
72
- withBaseName(),
73
- {
74
- [withBaseName("disabled")]: disabled,
75
- [withBaseName("small")]: size === "small",
76
- [withBaseName("medium")]: size === "medium",
77
- [withBaseName("large")]: size === "large"
78
- },
79
- className
80
- ),
33
+ className: clsx(withBaseName(), className),
81
34
  ref,
82
35
  "data-testid": "linear-progress",
83
36
  role: "progressbar",
84
- ...rootProps,
37
+ "aria-valuemax": max,
38
+ "aria-valuemin": 0,
39
+ "aria-valuenow": Math.round(value),
85
40
  ...rest,
86
41
  children: [
87
42
  /* @__PURE__ */ jsxs("div", {
88
- className: clsx(withBaseName("barContainer"), {
89
- [withBaseName("determinate")]: variant === "determinate",
90
- [withBaseName("indeterminate")]: variant === "indeterminate",
91
- [withBaseName("query")]: variant === "query"
92
- }),
43
+ className: withBaseName("barContainer"),
93
44
  children: [
94
45
  /* @__PURE__ */ jsx("div", {
95
- className: clsx(withBaseName("bar"), withBaseName("bar1")),
46
+ className: withBaseName("bar"),
96
47
  style: barStyle
97
48
  }),
98
- variant === "determinate" ? null : /* @__PURE__ */ jsx("div", {
99
- className: clsx(withBaseName("bar"), withBaseName("bar2"))
49
+ /* @__PURE__ */ jsx("div", {
50
+ className: withBaseName("track"),
51
+ style: trackStyle
100
52
  })
101
53
  ]
102
54
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"LinearProgress.js","sources":["../src/progress/LinearProgress/LinearProgress.tsx"],"sourcesContent":["import {\n CSSProperties,\n forwardRef,\n HTMLAttributes,\n ReactElement,\n ReactNode,\n} from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"@salt-ds/core\";\n\nimport { Info as DefaultInfo } from \"../Info\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport linearProgressCss from \"./LinearProgress.css\";\n\nconst withBaseName = makePrefixer(\"saltLinearProgress\");\n\nexport interface InfoRendererProps<T, U> {\n unit: string;\n value: number;\n getUnitProps?: (props: T) => { className: string } & T;\n getValueProps: (props: U) => { className: string } & U;\n}\n\ntype UnitAndValuePropsGetter<T, U> = (\n a: {\n unit: string;\n value: number;\n },\n b: {\n progressUnit: string;\n progressValue: string;\n }\n) => InfoRendererProps<T, U>;\n\nconst getUnitAndValueProps: UnitAndValuePropsGetter<any, any> = (\n { unit, value },\n { progressUnit, progressValue }\n) => ({\n unit,\n value,\n getUnitProps: (props = {}) => ({\n className: progressUnit,\n ...props,\n }),\n getValueProps: (props = {}) => ({\n className: progressValue,\n ...props,\n }),\n});\n\nexport interface LinearProgressProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * The className(s) of the component.\n */\n className?: string;\n /**\n * Disabled flag, true when the component is disabled.\n */\n disabled?: boolean;\n /**\n * render props callback to render info panel.\n */\n renderInfo?: (\n props: Pick<\n InfoRendererProps<any, any>,\n \"value\" | \"unit\" | \"getValueProps\" | \"getUnitProps\"\n >\n ) => ReactElement<InfoRendererProps<any, any>>;\n /**\n * If `true`, the info panel will be displayed.\n */\n showInfo?: boolean;\n /**\n * The size of the line, default is 'small'.\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Default unit is`%`.\n */\n unit?: string;\n /**\n * The value of the progress indicator for the determinate and static variants.\n * Value between 0 and 100.\n */\n value?: number;\n /**\n * The variant to use.\n * Use indeterminate or query when there is no progress value.\n */\n variant?: \"determinate\" | \"indeterminate\" | \"query\";\n}\n\n/**\n * Linear progress bar with an optional Info element, showing the current value\n * The default Info element can be rendered by setting `unit` and `value` props.\n * A custom Info element can be rendered using the `renderInfo` callback.\n * The render props callback is of the form\n * @param {string} unit the unit of the progress info\n * @param {number} value the value of the progress info\n * @param {function} getUnitProps function callback that returns the unit props\n * @param {function} getValueProps function callback that returns the value props\n */\nexport const LinearProgress = forwardRef<HTMLDivElement, LinearProgressProps>(\n function LinearProgress(\n {\n className,\n disabled,\n renderInfo,\n showInfo = true,\n size = \"small\",\n variant = \"determinate\",\n unit = \"%\",\n value = 0,\n ...rest\n },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-linear-progress\",\n css: linearProgressCss,\n window: targetWindow,\n });\n\n let progressInfo: ReactNode = null;\n\n const progressUnit = withBaseName(\"progressUnit\");\n const progressValue = withBaseName(\"progressValue\");\n\n if (showInfo) {\n progressInfo = renderInfo ? (\n renderInfo(\n getUnitAndValueProps(\n {\n unit,\n value,\n },\n {\n progressUnit,\n progressValue,\n }\n )\n )\n ) : (\n <DefaultInfo unit={unit} value={value} className={progressValue} />\n );\n }\n\n const rootProps: HTMLAttributes<HTMLDivElement> = {};\n const barStyle: CSSProperties = {};\n\n if (variant === \"determinate\") {\n rootProps[\"aria-valuenow\"] = Math.round(value);\n rootProps[\"aria-valuemin\"] = 0;\n rootProps[\"aria-valuemax\"] = 100;\n barStyle.transform = `translateX(${value - 100}%)`;\n }\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"small\")]: size === \"small\",\n [withBaseName(\"medium\")]: size === \"medium\",\n [withBaseName(\"large\")]: size === \"large\",\n },\n className\n )}\n ref={ref}\n data-testid=\"linear-progress\"\n role=\"progressbar\"\n {...rootProps}\n {...rest}\n >\n <div\n className={clsx(withBaseName(\"barContainer\"), {\n [withBaseName(\"determinate\")]: variant === \"determinate\",\n [withBaseName(\"indeterminate\")]: variant === \"indeterminate\",\n [withBaseName(\"query\")]: variant === \"query\",\n })}\n >\n <div\n className={clsx(withBaseName(\"bar\"), withBaseName(\"bar1\"))}\n style={barStyle}\n />\n {variant === \"determinate\" ? null : (\n <div className={clsx(withBaseName(\"bar\"), withBaseName(\"bar2\"))} />\n )}\n </div>\n {progressInfo}\n </div>\n );\n }\n);\n"],"names":["LinearProgress","linearProgressCss","DefaultInfo"],"mappings":";;;;;;;;;AAgBA,MAAM,YAAA,GAAe,aAAa,oBAAoB,CAAA,CAAA;AAoBtD,MAAM,oBAAA,GAA0D,CAC9D,EAAE,IAAA,EAAM,OACR,EAAA,EAAE,YAAc,EAAA,aAAA,EACZ,MAAA;AAAA,EACJ,IAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAc,EAAA,CAAC,KAAQ,GAAA,EAAQ,MAAA;AAAA,IAC7B,SAAW,EAAA,YAAA;AAAA,IACX,GAAG,KAAA;AAAA,GACL,CAAA;AAAA,EACA,aAAe,EAAA,CAAC,KAAQ,GAAA,EAAQ,MAAA;AAAA,IAC9B,SAAW,EAAA,aAAA;AAAA,IACX,GAAG,KAAA;AAAA,GACL,CAAA;AACF,CAAA,CAAA,CAAA;AAsDO,MAAM,cAAiB,GAAA,UAAA;AAAA,EAC5B,SAASA,eACP,CAAA;AAAA,IACE,SAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAW,GAAA,IAAA;AAAA,IACX,IAAO,GAAA,OAAA;AAAA,IACP,OAAU,GAAA,aAAA;AAAA,IACV,IAAO,GAAA,GAAA;AAAA,IACP,KAAQ,GAAA,CAAA;AAAA,IACL,GAAA,IAAA;AAAA,KAEL,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,sBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,IAAI,YAA0B,GAAA,IAAA,CAAA;AAE9B,IAAM,MAAA,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AAChD,IAAM,MAAA,aAAA,GAAgB,aAAa,eAAe,CAAA,CAAA;AAElD,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,YAAA,GAAe,UACb,GAAA,UAAA;AAAA,QACE,oBAAA;AAAA,UACE;AAAA,YACE,IAAA;AAAA,YACA,KAAA;AAAA,WACF;AAAA,UACA;AAAA,YACE,YAAA;AAAA,YACA,aAAA;AAAA,WACF;AAAA,SACF;AAAA,0BAGD,GAAA,CAAAC,IAAA,EAAA;AAAA,QAAY,IAAA;AAAA,QAAY,KAAA;AAAA,QAAc,SAAW,EAAA,aAAA;AAAA,OAAe,CAAA,CAAA;AAAA,KAErE;AAEA,IAAA,MAAM,YAA4C,EAAC,CAAA;AACnD,IAAA,MAAM,WAA0B,EAAC,CAAA;AAEjC,IAAA,IAAI,YAAY,aAAe,EAAA;AAC7B,MAAU,SAAA,CAAA,eAAA,CAAA,GAAmB,IAAK,CAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AAC7C,MAAA,SAAA,CAAU,eAAmB,CAAA,GAAA,CAAA,CAAA;AAC7B,MAAA,SAAA,CAAU,eAAmB,CAAA,GAAA,GAAA,CAAA;AAC7B,MAAS,QAAA,CAAA,SAAA,GAAY,cAAc,KAAQ,GAAA,GAAA,CAAA,EAAA,CAAA,CAAA;AAAA,KAC7C;AAEA,IAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,UAC5B,CAAC,YAAA,CAAa,OAAO,CAAA,GAAI,IAAS,KAAA,OAAA;AAAA,UAClC,CAAC,YAAA,CAAa,QAAQ,CAAA,GAAI,IAAS,KAAA,QAAA;AAAA,UACnC,CAAC,YAAA,CAAa,OAAO,CAAA,GAAI,IAAS,KAAA,OAAA;AAAA,SACpC;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACA,GAAA;AAAA,MACA,aAAY,EAAA,iBAAA;AAAA,MACZ,IAAK,EAAA,aAAA;AAAA,MACJ,GAAG,SAAA;AAAA,MACH,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAC,IAAA,CAAA,KAAA,EAAA;AAAA,UACC,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,cAAc,CAAG,EAAA;AAAA,YAC5C,CAAC,YAAA,CAAa,aAAa,CAAA,GAAI,OAAY,KAAA,aAAA;AAAA,YAC3C,CAAC,YAAA,CAAa,eAAe,CAAA,GAAI,OAAY,KAAA,eAAA;AAAA,YAC7C,CAAC,YAAA,CAAa,OAAO,CAAA,GAAI,OAAY,KAAA,OAAA;AAAA,WACtC,CAAA;AAAA,UAED,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,KAAA,EAAA;AAAA,cACC,WAAW,IAAK,CAAA,YAAA,CAAa,KAAK,CAAG,EAAA,YAAA,CAAa,MAAM,CAAC,CAAA;AAAA,cACzD,KAAO,EAAA,QAAA;AAAA,aACT,CAAA;AAAA,YACC,OAAA,KAAY,aAAgB,GAAA,IAAA,mBAC1B,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,WAAW,IAAK,CAAA,YAAA,CAAa,KAAK,CAAG,EAAA,YAAA,CAAa,MAAM,CAAC,CAAA;AAAA,aAAG,CAAA;AAAA,WAAA;AAAA,SAErE,CAAA;AAAA,QACC,YAAA;AAAA,OAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"LinearProgress.js","sources":["../src/progress/LinearProgress/LinearProgress.tsx"],"sourcesContent":["import { CSSProperties, forwardRef, HTMLAttributes, ReactNode } from \"react\";\nimport { clsx } from \"clsx\";\nimport { makePrefixer } from \"@salt-ds/core\";\n\nimport { Info } from \"../Info\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport linearProgressCss from \"./LinearProgress.css\";\n\nconst withBaseName = makePrefixer(\"saltLinearProgress\");\n\nexport interface LinearProgressProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * The className(s) of the component.\n */\n className?: string;\n /**\n * The value of the max progress indicator.\n * Default value is 100.\n */\n max?: number;\n /**\n * If `true`, the info panel will be displayed.\n */\n showInfo?: boolean;\n /**\n * Default unit is`%`.\n */\n unit?: string;\n /**\n * The value of the progress indicator.\n * Value between 0 and max.\n */\n value?: number;\n}\n\n/**\n * Linear progress bar with an optional Info element, showing the current value\n */\nexport const LinearProgress = forwardRef<HTMLDivElement, LinearProgressProps>(\n function LinearProgress(\n { className, max = 100, showInfo = true, value = 0, ...rest },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-linear-progress\",\n css: linearProgressCss,\n window: targetWindow,\n });\n\n let progressInfo: ReactNode = null;\n\n const progress = (value / max) * 100;\n\n if (showInfo) {\n progressInfo = (\n <Info\n unit=\"%\"\n value={Math.round(progress)}\n className={withBaseName(\"progressValue\")}\n />\n );\n }\n\n const barStyle: CSSProperties = {};\n const trackStyle: CSSProperties = {};\n\n barStyle.transform = `translateX(${progress - 100}%)`;\n trackStyle.transform = `translateX(${progress}%)`;\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={ref}\n data-testid=\"linear-progress\"\n role=\"progressbar\"\n aria-valuemax={max}\n aria-valuemin={0}\n aria-valuenow={Math.round(value)}\n {...rest}\n >\n <div className={withBaseName(\"barContainer\")}>\n <div className={withBaseName(\"bar\")} style={barStyle} />\n <div className={withBaseName(\"track\")} style={trackStyle} />\n </div>\n {progressInfo}\n </div>\n );\n }\n);\n"],"names":["LinearProgress","linearProgressCss"],"mappings":";;;;;;;;;AAUA,MAAM,YAAA,GAAe,aAAa,oBAAoB,CAAA,CAAA;AA8B/C,MAAM,cAAiB,GAAA,UAAA;AAAA,EAC5B,SAASA,eAAAA,CACP,EAAE,SAAA,EAAW,GAAM,GAAA,GAAA,EAAK,QAAW,GAAA,IAAA,EAAM,KAAQ,GAAA,CAAA,EAAA,GAAM,IAAK,EAAA,EAC5D,GACA,EAAA;AACA,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,sBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,IAAI,YAA0B,GAAA,IAAA,CAAA;AAE9B,IAAM,MAAA,QAAA,GAAY,QAAQ,GAAO,GAAA,GAAA,CAAA;AAEjC,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,YAAA,mBACG,GAAA,CAAA,IAAA,EAAA;AAAA,QACC,IAAK,EAAA,GAAA;AAAA,QACL,KAAA,EAAO,IAAK,CAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,QAC1B,SAAA,EAAW,aAAa,eAAe,CAAA;AAAA,OACzC,CAAA,CAAA;AAAA,KAEJ;AAEA,IAAA,MAAM,WAA0B,EAAC,CAAA;AACjC,IAAA,MAAM,aAA4B,EAAC,CAAA;AAEnC,IAAS,QAAA,CAAA,SAAA,GAAY,cAAc,QAAW,GAAA,GAAA,CAAA,EAAA,CAAA,CAAA;AAC9C,IAAA,UAAA,CAAW,YAAY,CAAc,WAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA;AAErC,IAAA,uBACG,IAAA,CAAA,KAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACA,aAAY,EAAA,iBAAA;AAAA,MACZ,IAAK,EAAA,aAAA;AAAA,MACL,eAAe,EAAA,GAAA;AAAA,MACf,eAAe,EAAA,CAAA;AAAA,MACf,eAAA,EAAe,IAAK,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA,MAC9B,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAC,IAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,UACzC,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,KAAK,CAAA;AAAA,cAAG,KAAO,EAAA,QAAA;AAAA,aAAU,CAAA;AAAA,4BACrD,GAAA,CAAA,KAAA,EAAA;AAAA,cAAI,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,cAAG,KAAO,EAAA,UAAA;AAAA,aAAY,CAAA;AAAA,WAAA;AAAA,SAC5D,CAAA;AAAA,QACC,YAAA;AAAA,OAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -6,7 +6,6 @@ import '../../list/ListItem.js';
6
6
  import { List } from '../../list/List.js';
7
7
  import '../../common-hooks/collectionProvider.js';
8
8
  import '../../common-hooks/keyUtils.js';
9
- import '../../utils/useFloatingUI.js';
10
9
  import '../../responsive/useResizeObserver.js';
11
10
  import '../../list/VirtualizedList.js';
12
11
  import { CategoryListItem } from './CategoryListItem.js';
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryList.js","sources":["../src/query-input/internal/CategoryList.tsx"],"sourcesContent":["import { Dispatch, SetStateAction, useCallback, useRef, useState } from \"react\";\nimport { makePrefixer, useIsomorphicLayoutEffect } from \"@salt-ds/core\";\nimport { QueryInputCategory } from \"../queryInputTypes\";\nimport { SelectHandler } from \"../../common-hooks\";\nimport { List } from \"../../list\";\nimport { CategoryListItem } from \"./CategoryListItem\";\nimport { CategoryListContext } from \"./CategoryListContext\";\n\nconst withBaseName = makePrefixer(\"saltCategoryList\");\n\nexport interface CategoryListProps {\n categories: QueryInputCategory[];\n rootWidth: number;\n onCategorySelect: (category: QueryInputCategory | null) => void;\n highlightedCategoryIndex?: number;\n setHighlightedCategoryIndex: Dispatch<SetStateAction<number>>;\n}\n\nconst getCategoryLabel = (category: QueryInputCategory) => category.name;\n\nexport function CategoryList(props: CategoryListProps) {\n const {\n categories,\n rootWidth,\n onCategorySelect,\n highlightedCategoryIndex,\n setHighlightedCategoryIndex,\n } = props;\n\n const measureRef = useRef<HTMLDivElement>(null);\n const [measuredCategories, setMeasuredCategories] = useState<\n QueryInputCategory[]\n >([]);\n const [contextValue, setContextValue] = useState<CategoryListContext>({\n width: 0,\n });\n\n useIsomorphicLayoutEffect(() => {\n setTimeout(() => {\n if (measureRef.current) {\n const width = measureRef.current.offsetWidth;\n setMeasuredCategories(categories);\n setContextValue({\n width,\n });\n }\n }, 0);\n }, [categories, setMeasuredCategories, setContextValue]);\n\n const onSelect: SelectHandler<QueryInputCategory> = useCallback(\n (_, item) => {\n onCategorySelect(item);\n },\n [onCategorySelect]\n );\n\n const isMeasuring = measuredCategories !== categories;\n\n if (isMeasuring) {\n return (\n <div ref={measureRef} className={withBaseName(\"categoryWidthMeasure\")}>\n {categories.map((c, i) => {\n return (\n <div key={i} className={withBaseName(\"category\")}>\n {c.name}\n </div>\n );\n })}\n </div>\n );\n }\n\n return (\n <CategoryListContext.Provider value={contextValue}>\n <List<QueryInputCategory>\n ListItem={CategoryListItem}\n data-testid=\"category-list\"\n highlightedIndex={highlightedCategoryIndex}\n itemToString={getCategoryLabel}\n onHighlight={setHighlightedCategoryIndex}\n onSelect={onSelect}\n source={categories}\n width={rootWidth}\n />\n </CategoryListContext.Provider>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAQA,MAAM,YAAA,GAAe,aAAa,kBAAkB,CAAA,CAAA;AAUpD,MAAM,gBAAA,GAAmB,CAAC,QAAA,KAAiC,QAAS,CAAA,IAAA,CAAA;AAE7D,SAAS,aAAa,KAA0B,EAAA;AACrD,EAAM,MAAA;AAAA,IACJ,UAAA;AAAA,IACA,SAAA;AAAA,IACA,gBAAA;AAAA,IACA,wBAAA;AAAA,IACA,2BAAA;AAAA,GACE,GAAA,KAAA,CAAA;AAEJ,EAAM,MAAA,UAAA,GAAa,OAAuB,IAAI,CAAA,CAAA;AAC9C,EAAA,MAAM,CAAC,kBAAoB,EAAA,qBAAqB,CAAI,GAAA,QAAA,CAElD,EAAE,CAAA,CAAA;AACJ,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,QAA8B,CAAA;AAAA,IACpE,KAAO,EAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,IAAI,WAAW,OAAS,EAAA;AACtB,QAAM,MAAA,KAAA,GAAQ,WAAW,OAAQ,CAAA,WAAA,CAAA;AACjC,QAAA,qBAAA,CAAsB,UAAU,CAAA,CAAA;AAChC,QAAgB,eAAA,CAAA;AAAA,UACd,KAAA;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,OACC,CAAC,CAAA,CAAA;AAAA,GACH,EAAA,CAAC,UAAY,EAAA,qBAAA,EAAuB,eAAe,CAAC,CAAA,CAAA;AAEvD,EAAA,MAAM,QAA8C,GAAA,WAAA;AAAA,IAClD,CAAC,GAAG,IAAS,KAAA;AACX,MAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;AAAA,KACvB;AAAA,IACA,CAAC,gBAAgB,CAAA;AAAA,GACnB,CAAA;AAEA,EAAA,MAAM,cAAc,kBAAuB,KAAA,UAAA,CAAA;AAE3C,EAAA,IAAI,WAAa,EAAA;AACf,IAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,MAAI,GAAK,EAAA,UAAA;AAAA,MAAY,SAAA,EAAW,aAAa,sBAAsB,CAAA;AAAA,MACjE,QAAW,EAAA,UAAA,CAAA,GAAA,CAAI,CAAC,CAAA,EAAG,CAAM,KAAA;AACxB,QAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,UAAY,SAAA,EAAW,aAAa,UAAU,CAAA;AAAA,UAC5C,QAAE,EAAA,CAAA,CAAA,IAAA;AAAA,SAAA,EADK,CAEV,CAAA,CAAA;AAAA,OAEH,CAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AAEA,EACE,uBAAA,GAAA,CAAC,oBAAoB,QAApB,EAAA;AAAA,IAA6B,KAAO,EAAA,YAAA;AAAA,IACnC,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA;AAAA,MACC,QAAU,EAAA,gBAAA;AAAA,MACV,aAAY,EAAA,eAAA;AAAA,MACZ,gBAAkB,EAAA,wBAAA;AAAA,MAClB,YAAc,EAAA,gBAAA;AAAA,MACd,WAAa,EAAA,2BAAA;AAAA,MACb,QAAA;AAAA,MACA,MAAQ,EAAA,UAAA;AAAA,MACR,KAAO,EAAA,SAAA;AAAA,KACT,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CategoryList.js","sources":["../src/query-input/internal/CategoryList.tsx"],"sourcesContent":["import { Dispatch, SetStateAction, useCallback, useRef, useState } from \"react\";\nimport { makePrefixer, useIsomorphicLayoutEffect } from \"@salt-ds/core\";\nimport { QueryInputCategory } from \"../queryInputTypes\";\nimport { SelectHandler } from \"../../common-hooks\";\nimport { List } from \"../../list\";\nimport { CategoryListItem } from \"./CategoryListItem\";\nimport { CategoryListContext } from \"./CategoryListContext\";\n\nconst withBaseName = makePrefixer(\"saltCategoryList\");\n\nexport interface CategoryListProps {\n categories: QueryInputCategory[];\n rootWidth: number;\n onCategorySelect: (category: QueryInputCategory | null) => void;\n highlightedCategoryIndex?: number;\n setHighlightedCategoryIndex: Dispatch<SetStateAction<number>>;\n}\n\nconst getCategoryLabel = (category: QueryInputCategory) => category.name;\n\nexport function CategoryList(props: CategoryListProps) {\n const {\n categories,\n rootWidth,\n onCategorySelect,\n highlightedCategoryIndex,\n setHighlightedCategoryIndex,\n } = props;\n\n const measureRef = useRef<HTMLDivElement>(null);\n const [measuredCategories, setMeasuredCategories] = useState<\n QueryInputCategory[]\n >([]);\n const [contextValue, setContextValue] = useState<CategoryListContext>({\n width: 0,\n });\n\n useIsomorphicLayoutEffect(() => {\n setTimeout(() => {\n if (measureRef.current) {\n const width = measureRef.current.offsetWidth;\n setMeasuredCategories(categories);\n setContextValue({\n width,\n });\n }\n }, 0);\n }, [categories, setMeasuredCategories, setContextValue]);\n\n const onSelect: SelectHandler<QueryInputCategory> = useCallback(\n (_, item) => {\n onCategorySelect(item);\n },\n [onCategorySelect]\n );\n\n const isMeasuring = measuredCategories !== categories;\n\n if (isMeasuring) {\n return (\n <div ref={measureRef} className={withBaseName(\"categoryWidthMeasure\")}>\n {categories.map((c, i) => {\n return (\n <div key={i} className={withBaseName(\"category\")}>\n {c.name}\n </div>\n );\n })}\n </div>\n );\n }\n\n return (\n <CategoryListContext.Provider value={contextValue}>\n <List<QueryInputCategory>\n ListItem={CategoryListItem}\n data-testid=\"category-list\"\n highlightedIndex={highlightedCategoryIndex}\n itemToString={getCategoryLabel}\n onHighlight={setHighlightedCategoryIndex}\n onSelect={onSelect}\n source={categories}\n width={rootWidth}\n />\n </CategoryListContext.Provider>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAQA,MAAM,YAAA,GAAe,aAAa,kBAAkB,CAAA,CAAA;AAUpD,MAAM,gBAAA,GAAmB,CAAC,QAAA,KAAiC,QAAS,CAAA,IAAA,CAAA;AAE7D,SAAS,aAAa,KAA0B,EAAA;AACrD,EAAM,MAAA;AAAA,IACJ,UAAA;AAAA,IACA,SAAA;AAAA,IACA,gBAAA;AAAA,IACA,wBAAA;AAAA,IACA,2BAAA;AAAA,GACE,GAAA,KAAA,CAAA;AAEJ,EAAM,MAAA,UAAA,GAAa,OAAuB,IAAI,CAAA,CAAA;AAC9C,EAAA,MAAM,CAAC,kBAAoB,EAAA,qBAAqB,CAAI,GAAA,QAAA,CAElD,EAAE,CAAA,CAAA;AACJ,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,QAA8B,CAAA;AAAA,IACpE,KAAO,EAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,IAAI,WAAW,OAAS,EAAA;AACtB,QAAM,MAAA,KAAA,GAAQ,WAAW,OAAQ,CAAA,WAAA,CAAA;AACjC,QAAA,qBAAA,CAAsB,UAAU,CAAA,CAAA;AAChC,QAAgB,eAAA,CAAA;AAAA,UACd,KAAA;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,OACC,CAAC,CAAA,CAAA;AAAA,GACH,EAAA,CAAC,UAAY,EAAA,qBAAA,EAAuB,eAAe,CAAC,CAAA,CAAA;AAEvD,EAAA,MAAM,QAA8C,GAAA,WAAA;AAAA,IAClD,CAAC,GAAG,IAAS,KAAA;AACX,MAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;AAAA,KACvB;AAAA,IACA,CAAC,gBAAgB,CAAA;AAAA,GACnB,CAAA;AAEA,EAAA,MAAM,cAAc,kBAAuB,KAAA,UAAA,CAAA;AAE3C,EAAA,IAAI,WAAa,EAAA;AACf,IAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,MAAI,GAAK,EAAA,UAAA;AAAA,MAAY,SAAA,EAAW,aAAa,sBAAsB,CAAA;AAAA,MACjE,QAAW,EAAA,UAAA,CAAA,GAAA,CAAI,CAAC,CAAA,EAAG,CAAM,KAAA;AACxB,QAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,UAAY,SAAA,EAAW,aAAa,UAAU,CAAA;AAAA,UAC5C,QAAE,EAAA,CAAA,CAAA,IAAA;AAAA,SAAA,EADK,CAEV,CAAA,CAAA;AAAA,OAEH,CAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AAEA,EACE,uBAAA,GAAA,CAAC,oBAAoB,QAApB,EAAA;AAAA,IAA6B,KAAO,EAAA,YAAA;AAAA,IACnC,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA;AAAA,MACC,QAAU,EAAA,gBAAA;AAAA,MACV,aAAY,EAAA,eAAA;AAAA,MACZ,gBAAkB,EAAA,wBAAA;AAAA,MAClB,YAAc,EAAA,gBAAA;AAAA,MACd,WAAa,EAAA,2BAAA;AAAA,MACb,QAAA;AAAA,MACA,MAAQ,EAAA,UAAA;AAAA,MACR,KAAO,EAAA,SAAA;AAAA,KACT,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -7,7 +7,6 @@ import { ListItem } from '../../list/ListItem.js';
7
7
  import '../../list/List.js';
8
8
  import '../../common-hooks/collectionProvider.js';
9
9
  import '../../common-hooks/keyUtils.js';
10
- import '../../utils/useFloatingUI.js';
11
10
  import '../../responsive/useResizeObserver.js';
12
11
  import '../../list/VirtualizedList.js';
13
12
  import { useCategoryListContext } from './CategoryListContext.js';