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

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 (342) 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/calendar/internal/CalendarNavigation.js +0 -1
  4. package/dist-cjs/calendar/internal/CalendarNavigation.js.map +1 -1
  5. package/dist-cjs/calendar/useSelection.js +0 -1
  6. package/dist-cjs/calendar/useSelection.js.map +1 -1
  7. package/dist-cjs/carousel/Carousel.js +0 -1
  8. package/dist-cjs/carousel/Carousel.js.map +1 -1
  9. package/dist-cjs/cascading-menu/CascadingMenu.js +0 -1
  10. package/dist-cjs/cascading-menu/CascadingMenu.js.map +1 -1
  11. package/dist-cjs/cascading-menu/CascadingMenuItem.js +0 -1
  12. package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
  13. package/dist-cjs/cascading-menu/CascadingMenuList.js +0 -1
  14. package/dist-cjs/cascading-menu/CascadingMenuList.js.map +1 -1
  15. package/dist-cjs/cascading-menu/internal/useClickAway.js +0 -1
  16. package/dist-cjs/cascading-menu/internal/useClickAway.js.map +1 -1
  17. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js +0 -1
  18. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  19. package/dist-cjs/combo-box/ComboBox.js +0 -1
  20. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  21. package/dist-cjs/combo-box/useCombobox.js +0 -1
  22. package/dist-cjs/combo-box/useCombobox.js.map +1 -1
  23. package/dist-cjs/combo-box-deprecated/filterHelpers.js +0 -1
  24. package/dist-cjs/combo-box-deprecated/filterHelpers.js.map +1 -1
  25. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js +0 -1
  26. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  27. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js +0 -1
  28. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  29. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js +0 -1
  30. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  31. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js +0 -1
  32. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  33. package/dist-cjs/common-hooks/useViewportTracking.js +0 -1
  34. package/dist-cjs/common-hooks/useViewportTracking.js.map +1 -1
  35. package/dist-cjs/common-hooks/utils/filter-utils.js +0 -1
  36. package/dist-cjs/common-hooks/utils/filter-utils.js.map +1 -1
  37. package/dist-cjs/contact-details/MailLinkComponent.js +0 -1
  38. package/dist-cjs/contact-details/MailLinkComponent.js.map +1 -1
  39. package/dist-cjs/content-status/internal/StatusIndicator.js +0 -1
  40. package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
  41. package/dist-cjs/deck-layout/DeckLayout.js +0 -1
  42. package/dist-cjs/deck-layout/DeckLayout.js.map +1 -1
  43. package/dist-cjs/drawer/Drawer.css.js +6 -0
  44. package/dist-cjs/drawer/Drawer.css.js.map +1 -0
  45. package/dist-cjs/drawer/Drawer.js +83 -0
  46. package/dist-cjs/drawer/Drawer.js.map +1 -0
  47. package/dist-cjs/dropdown/Dropdown.js +0 -1
  48. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  49. package/dist-cjs/dropdown/DropdownBase.js +0 -1
  50. package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
  51. package/dist-cjs/dropdown/useDropdown.js +0 -1
  52. package/dist-cjs/dropdown/useDropdown.js.map +1 -1
  53. package/dist-cjs/dropdown/useDropdownBase.js +0 -1
  54. package/dist-cjs/dropdown/useDropdownBase.js.map +1 -1
  55. package/dist-cjs/index.js +13 -8
  56. package/dist-cjs/index.js.map +1 -1
  57. package/dist-cjs/layer-layout/LayerLayout.js +0 -1
  58. package/dist-cjs/layer-layout/LayerLayout.js.map +1 -1
  59. package/dist-cjs/list/Highlighter.js +0 -1
  60. package/dist-cjs/list/Highlighter.js.map +1 -1
  61. package/dist-cjs/list/List.js +0 -1
  62. package/dist-cjs/list/List.js.map +1 -1
  63. package/dist-cjs/list/VirtualizedList.js +0 -1
  64. package/dist-cjs/list/VirtualizedList.js.map +1 -1
  65. package/dist-cjs/list/useList.js +0 -1
  66. package/dist-cjs/list/useList.js.map +1 -1
  67. package/dist-cjs/list/useListHeight.js +0 -1
  68. package/dist-cjs/list/useListHeight.js.map +1 -1
  69. package/dist-cjs/list-deprecated/ListItemBase.js +0 -1
  70. package/dist-cjs/list-deprecated/ListItemBase.js.map +1 -1
  71. package/dist-cjs/list-deprecated/internal/Highlighter.js +0 -1
  72. package/dist-cjs/list-deprecated/internal/Highlighter.js.map +1 -1
  73. package/dist-cjs/list-deprecated/useTypeSelect.js +0 -1
  74. package/dist-cjs/list-deprecated/useTypeSelect.js.map +1 -1
  75. package/dist-cjs/list-next/ListItemNext.css.js +1 -1
  76. package/dist-cjs/multiline-input/MultilineInput.css.js +1 -1
  77. package/dist-cjs/multiline-input/MultilineInput.js +25 -13
  78. package/dist-cjs/multiline-input/MultilineInput.js.map +1 -1
  79. package/dist-cjs/parent-child-layout/ParentChildLayout.js +0 -1
  80. package/dist-cjs/parent-child-layout/ParentChildLayout.js.map +1 -1
  81. package/dist-cjs/pill-next/PillNext.css.js +6 -0
  82. package/dist-cjs/pill-next/PillNext.css.js.map +1 -0
  83. package/dist-cjs/pill-next/PillNext.js +58 -0
  84. package/dist-cjs/pill-next/PillNext.js.map +1 -0
  85. package/dist-cjs/progress/CircularProgress/CircularProgress.css.js +1 -1
  86. package/dist-cjs/progress/CircularProgress/CircularProgress.js +36 -75
  87. package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
  88. package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +1 -1
  89. package/dist-cjs/progress/LinearProgress/LinearProgress.js +16 -24
  90. package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
  91. package/dist-cjs/query-input/internal/CategoryList.js +0 -1
  92. package/dist-cjs/query-input/internal/CategoryList.js.map +1 -1
  93. package/dist-cjs/query-input/internal/CategoryListItem.js +0 -1
  94. package/dist-cjs/query-input/internal/CategoryListItem.js.map +1 -1
  95. package/dist-cjs/query-input/internal/QueryInputBody.js +0 -1
  96. package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
  97. package/dist-cjs/query-input/internal/SearchList.js +0 -1
  98. package/dist-cjs/query-input/internal/SearchList.js.map +1 -1
  99. package/dist-cjs/query-input/internal/ValueList.js +0 -1
  100. package/dist-cjs/query-input/internal/ValueList.js.map +1 -1
  101. package/dist-cjs/query-input/useQueryInput.js +0 -1
  102. package/dist-cjs/query-input/useQueryInput.js.map +1 -1
  103. package/dist-cjs/responsive/useOverflow.js +0 -1
  104. package/dist-cjs/responsive/useOverflow.js.map +1 -1
  105. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js +6 -0
  106. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js.map +1 -0
  107. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js +42 -0
  108. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js.map +1 -0
  109. package/dist-cjs/stepped-tracker/SteppedTracker.css.js +6 -0
  110. package/dist-cjs/stepped-tracker/SteppedTracker.css.js.map +1 -0
  111. package/dist-cjs/stepped-tracker/SteppedTracker.js +64 -0
  112. package/dist-cjs/stepped-tracker/SteppedTracker.js.map +1 -0
  113. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js +57 -0
  114. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js.map +1 -0
  115. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js +6 -0
  116. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js.map +1 -0
  117. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js +26 -0
  118. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.js.map +1 -0
  119. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js +6 -0
  120. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js.map +1 -0
  121. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +111 -0
  122. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -0
  123. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js +21 -0
  124. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js.map +1 -0
  125. package/dist-cjs/stepped-tracker/useDetectTruncatedText.js +71 -0
  126. package/dist-cjs/stepped-tracker/useDetectTruncatedText.js.map +1 -0
  127. package/dist-cjs/tabs/Tabstrip.js +0 -1
  128. package/dist-cjs/tabs/Tabstrip.js.map +1 -1
  129. package/dist-cjs/tabs/useActivationIndicator.js +0 -1
  130. package/dist-cjs/tabs/useActivationIndicator.js.map +1 -1
  131. package/dist-cjs/tabs/useKeyboardNavigation.js +0 -1
  132. package/dist-cjs/tabs/useKeyboardNavigation.js.map +1 -1
  133. package/dist-cjs/tabs-next/OverflowMenu.js +0 -1
  134. package/dist-cjs/tabs-next/OverflowMenu.js.map +1 -1
  135. package/dist-cjs/tokenized-input/useTokenizedInput.js +0 -1
  136. package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
  137. package/dist-cjs/toolbar/Toolbar.js +0 -1
  138. package/dist-cjs/toolbar/Toolbar.js.map +1 -1
  139. package/dist-cjs/toolbar/internal/renderToolbarItems.js +0 -1
  140. package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
  141. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js +0 -1
  142. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  143. package/dist-cjs/tree/Tree.js +0 -1
  144. package/dist-cjs/tree/Tree.js.map +1 -1
  145. package/dist-cjs/tree/useTree.js +0 -1
  146. package/dist-cjs/tree/useTree.js.map +1 -1
  147. package/dist-es/app-header/AppHeader.js +0 -1
  148. package/dist-es/app-header/AppHeader.js.map +1 -1
  149. package/dist-es/calendar/internal/CalendarNavigation.js +0 -1
  150. package/dist-es/calendar/internal/CalendarNavigation.js.map +1 -1
  151. package/dist-es/calendar/useSelection.js +0 -1
  152. package/dist-es/calendar/useSelection.js.map +1 -1
  153. package/dist-es/carousel/Carousel.js +0 -1
  154. package/dist-es/carousel/Carousel.js.map +1 -1
  155. package/dist-es/cascading-menu/CascadingMenu.js +0 -1
  156. package/dist-es/cascading-menu/CascadingMenu.js.map +1 -1
  157. package/dist-es/cascading-menu/CascadingMenuItem.js +0 -1
  158. package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
  159. package/dist-es/cascading-menu/CascadingMenuList.js +0 -1
  160. package/dist-es/cascading-menu/CascadingMenuList.js.map +1 -1
  161. package/dist-es/cascading-menu/internal/useClickAway.js +0 -1
  162. package/dist-es/cascading-menu/internal/useClickAway.js.map +1 -1
  163. package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js +0 -1
  164. package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  165. package/dist-es/combo-box/ComboBox.js +0 -1
  166. package/dist-es/combo-box/ComboBox.js.map +1 -1
  167. package/dist-es/combo-box/useCombobox.js +0 -1
  168. package/dist-es/combo-box/useCombobox.js.map +1 -1
  169. package/dist-es/combo-box-deprecated/filterHelpers.js +0 -1
  170. package/dist-es/combo-box-deprecated/filterHelpers.js.map +1 -1
  171. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js +0 -1
  172. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  173. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js +0 -1
  174. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  175. package/dist-es/combo-box-deprecated/internal/useComboBox.js +0 -1
  176. package/dist-es/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  177. package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js +0 -1
  178. package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  179. package/dist-es/common-hooks/useViewportTracking.js +0 -1
  180. package/dist-es/common-hooks/useViewportTracking.js.map +1 -1
  181. package/dist-es/common-hooks/utils/filter-utils.js +0 -1
  182. package/dist-es/common-hooks/utils/filter-utils.js.map +1 -1
  183. package/dist-es/contact-details/MailLinkComponent.js +0 -1
  184. package/dist-es/contact-details/MailLinkComponent.js.map +1 -1
  185. package/dist-es/content-status/internal/StatusIndicator.js +0 -1
  186. package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
  187. package/dist-es/deck-layout/DeckLayout.js +0 -1
  188. package/dist-es/deck-layout/DeckLayout.js.map +1 -1
  189. package/dist-es/drawer/Drawer.css.js +4 -0
  190. package/dist-es/drawer/Drawer.css.js.map +1 -0
  191. package/dist-es/drawer/Drawer.js +78 -0
  192. package/dist-es/drawer/Drawer.js.map +1 -0
  193. package/dist-es/dropdown/Dropdown.js +0 -1
  194. package/dist-es/dropdown/Dropdown.js.map +1 -1
  195. package/dist-es/dropdown/DropdownBase.js +0 -1
  196. package/dist-es/dropdown/DropdownBase.js.map +1 -1
  197. package/dist-es/dropdown/useDropdown.js +0 -1
  198. package/dist-es/dropdown/useDropdown.js.map +1 -1
  199. package/dist-es/dropdown/useDropdownBase.js +0 -1
  200. package/dist-es/dropdown/useDropdownBase.js.map +1 -1
  201. package/dist-es/index.js +7 -4
  202. package/dist-es/index.js.map +1 -1
  203. package/dist-es/layer-layout/LayerLayout.js +0 -1
  204. package/dist-es/layer-layout/LayerLayout.js.map +1 -1
  205. package/dist-es/list/Highlighter.js +0 -1
  206. package/dist-es/list/Highlighter.js.map +1 -1
  207. package/dist-es/list/List.js +0 -1
  208. package/dist-es/list/List.js.map +1 -1
  209. package/dist-es/list/VirtualizedList.js +0 -1
  210. package/dist-es/list/VirtualizedList.js.map +1 -1
  211. package/dist-es/list/useList.js +0 -1
  212. package/dist-es/list/useList.js.map +1 -1
  213. package/dist-es/list/useListHeight.js +0 -1
  214. package/dist-es/list/useListHeight.js.map +1 -1
  215. package/dist-es/list-deprecated/ListItemBase.js +0 -1
  216. package/dist-es/list-deprecated/ListItemBase.js.map +1 -1
  217. package/dist-es/list-deprecated/internal/Highlighter.js +0 -1
  218. package/dist-es/list-deprecated/internal/Highlighter.js.map +1 -1
  219. package/dist-es/list-deprecated/useTypeSelect.js +0 -1
  220. package/dist-es/list-deprecated/useTypeSelect.js.map +1 -1
  221. package/dist-es/list-next/ListItemNext.css.js +1 -1
  222. package/dist-es/multiline-input/MultilineInput.css.js +1 -1
  223. package/dist-es/multiline-input/MultilineInput.js +25 -13
  224. package/dist-es/multiline-input/MultilineInput.js.map +1 -1
  225. package/dist-es/parent-child-layout/ParentChildLayout.js +0 -1
  226. package/dist-es/parent-child-layout/ParentChildLayout.js.map +1 -1
  227. package/dist-es/pill-next/PillNext.css.js +4 -0
  228. package/dist-es/pill-next/PillNext.css.js.map +1 -0
  229. package/dist-es/pill-next/PillNext.js +50 -0
  230. package/dist-es/pill-next/PillNext.js.map +1 -0
  231. package/dist-es/progress/CircularProgress/CircularProgress.css.js +1 -1
  232. package/dist-es/progress/CircularProgress/CircularProgress.js +37 -75
  233. package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
  234. package/dist-es/progress/LinearProgress/LinearProgress.css.js +1 -1
  235. package/dist-es/progress/LinearProgress/LinearProgress.js +16 -24
  236. package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
  237. package/dist-es/query-input/internal/CategoryList.js +0 -1
  238. package/dist-es/query-input/internal/CategoryList.js.map +1 -1
  239. package/dist-es/query-input/internal/CategoryListItem.js +0 -1
  240. package/dist-es/query-input/internal/CategoryListItem.js.map +1 -1
  241. package/dist-es/query-input/internal/QueryInputBody.js +0 -1
  242. package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
  243. package/dist-es/query-input/internal/SearchList.js +0 -1
  244. package/dist-es/query-input/internal/SearchList.js.map +1 -1
  245. package/dist-es/query-input/internal/ValueList.js +0 -1
  246. package/dist-es/query-input/internal/ValueList.js.map +1 -1
  247. package/dist-es/query-input/useQueryInput.js +0 -1
  248. package/dist-es/query-input/useQueryInput.js.map +1 -1
  249. package/dist-es/responsive/useOverflow.js +0 -1
  250. package/dist-es/responsive/useOverflow.js.map +1 -1
  251. package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js +4 -0
  252. package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js.map +1 -0
  253. package/dist-es/stepped-tracker/StepLabel/StepLabel.js +38 -0
  254. package/dist-es/stepped-tracker/StepLabel/StepLabel.js.map +1 -0
  255. package/dist-es/stepped-tracker/SteppedTracker.css.js +4 -0
  256. package/dist-es/stepped-tracker/SteppedTracker.css.js.map +1 -0
  257. package/dist-es/stepped-tracker/SteppedTracker.js +60 -0
  258. package/dist-es/stepped-tracker/SteppedTracker.js.map +1 -0
  259. package/dist-es/stepped-tracker/SteppedTrackerContext.js +50 -0
  260. package/dist-es/stepped-tracker/SteppedTrackerContext.js.map +1 -0
  261. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js +4 -0
  262. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js.map +1 -0
  263. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js +22 -0
  264. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.js.map +1 -0
  265. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js +4 -0
  266. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js.map +1 -0
  267. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +107 -0
  268. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -0
  269. package/dist-es/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js +16 -0
  270. package/dist-es/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js.map +1 -0
  271. package/dist-es/stepped-tracker/useDetectTruncatedText.js +69 -0
  272. package/dist-es/stepped-tracker/useDetectTruncatedText.js.map +1 -0
  273. package/dist-es/tabs/Tabstrip.js +0 -1
  274. package/dist-es/tabs/Tabstrip.js.map +1 -1
  275. package/dist-es/tabs/useActivationIndicator.js +0 -1
  276. package/dist-es/tabs/useActivationIndicator.js.map +1 -1
  277. package/dist-es/tabs/useKeyboardNavigation.js +0 -1
  278. package/dist-es/tabs/useKeyboardNavigation.js.map +1 -1
  279. package/dist-es/tabs-next/OverflowMenu.js +0 -1
  280. package/dist-es/tabs-next/OverflowMenu.js.map +1 -1
  281. package/dist-es/tokenized-input/useTokenizedInput.js +0 -1
  282. package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
  283. package/dist-es/toolbar/Toolbar.js +0 -1
  284. package/dist-es/toolbar/Toolbar.js.map +1 -1
  285. package/dist-es/toolbar/internal/renderToolbarItems.js +0 -1
  286. package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
  287. package/dist-es/toolbar/overflow-panel/OverflowPanel.js +0 -1
  288. package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  289. package/dist-es/tree/Tree.js +0 -1
  290. package/dist-es/tree/Tree.js.map +1 -1
  291. package/dist-es/tree/useTree.js +0 -1
  292. package/dist-es/tree/useTree.js.map +1 -1
  293. package/dist-types/drawer/Drawer.d.ts +31 -0
  294. package/dist-types/drawer/index.d.ts +1 -0
  295. package/dist-types/index.d.ts +3 -1
  296. package/dist-types/multiline-input/MultilineInput.d.ts +14 -14
  297. package/dist-types/pill-next/PillNext.d.ts +7 -0
  298. package/dist-types/pill-next/index.d.ts +1 -0
  299. package/dist-types/progress/CircularProgress/CircularProgress.d.ts +7 -24
  300. package/dist-types/progress/LinearProgress/LinearProgress.d.ts +7 -11
  301. package/dist-types/stepped-tracker/StepLabel/StepLabel.d.ts +5 -0
  302. package/dist-types/stepped-tracker/StepLabel/index.d.ts +1 -0
  303. package/dist-types/stepped-tracker/SteppedTracker.d.ts +12 -0
  304. package/dist-types/stepped-tracker/SteppedTrackerContext.d.ts +21 -0
  305. package/dist-types/stepped-tracker/TrackerConnector/TrackerConnector.d.ts +10 -0
  306. package/dist-types/stepped-tracker/TrackerConnector/index.d.ts +1 -0
  307. package/dist-types/stepped-tracker/TrackerStep/TrackerStep.d.ts +10 -0
  308. package/dist-types/stepped-tracker/TrackerStep/TrackerStepTooltipContext.d.ts +7 -0
  309. package/dist-types/stepped-tracker/TrackerStep/index.d.ts +3 -0
  310. package/dist-types/stepped-tracker/index.d.ts +3 -0
  311. package/dist-types/stepped-tracker/useDetectTruncatedText.d.ts +11 -0
  312. package/dist-types/utils/index.d.ts +0 -1
  313. package/package.json +8 -8
  314. package/dist-cjs/progress/CircularProgress/CircularProgressParts.js +0 -72
  315. package/dist-cjs/progress/CircularProgress/CircularProgressParts.js.map +0 -1
  316. package/dist-cjs/toast/Toast.css.js +0 -6
  317. package/dist-cjs/toast/Toast.css.js.map +0 -1
  318. package/dist-cjs/toast/Toast.js +0 -38
  319. package/dist-cjs/toast/Toast.js.map +0 -1
  320. package/dist-cjs/toast/ToastContent.css.js +0 -6
  321. package/dist-cjs/toast/ToastContent.css.js.map +0 -1
  322. package/dist-cjs/toast/ToastContent.js +0 -30
  323. package/dist-cjs/toast/ToastContent.js.map +0 -1
  324. package/dist-cjs/utils/useFloatingUI.js +0 -38
  325. package/dist-cjs/utils/useFloatingUI.js.map +0 -1
  326. package/dist-es/progress/CircularProgress/CircularProgressParts.js +0 -64
  327. package/dist-es/progress/CircularProgress/CircularProgressParts.js.map +0 -1
  328. package/dist-es/toast/Toast.css.js +0 -4
  329. package/dist-es/toast/Toast.css.js.map +0 -1
  330. package/dist-es/toast/Toast.js +0 -34
  331. package/dist-es/toast/Toast.js.map +0 -1
  332. package/dist-es/toast/ToastContent.css.js +0 -4
  333. package/dist-es/toast/ToastContent.css.js.map +0 -1
  334. package/dist-es/toast/ToastContent.js +0 -26
  335. package/dist-es/toast/ToastContent.js.map +0 -1
  336. package/dist-es/utils/useFloatingUI.js +0 -33
  337. package/dist-es/utils/useFloatingUI.js.map +0 -1
  338. package/dist-types/progress/CircularProgress/CircularProgressParts.d.ts +0 -13
  339. package/dist-types/toast/Toast.d.ts +0 -9
  340. package/dist-types/toast/ToastContent.d.ts +0 -2
  341. package/dist-types/toast/index.d.ts +0 -2
  342. package/dist-types/utils/useFloatingUI.d.ts +0 -34
@@ -16,18 +16,19 @@ const MultilineInput = React.forwardRef(
16
16
  "aria-activedescendant": ariaActiveDescendant,
17
17
  "aria-expanded": ariaExpanded,
18
18
  "aria-owns": ariaOwns,
19
+ bordered = false,
19
20
  className: classNameProp,
20
21
  disabled,
21
22
  endAdornment,
22
- fullBorder = false,
23
23
  id,
24
- textAreaProps = {},
25
- textAreaRef,
26
24
  placeholder,
27
25
  readOnly,
28
26
  role,
29
27
  rows = 3,
30
28
  startAdornment,
29
+ style,
30
+ textAreaProps = {},
31
+ textAreaRef,
31
32
  value: valueProp,
32
33
  defaultValue: defaultValueProp = valueProp === void 0 ? "" : void 0,
33
34
  validationStatus: validationStatusProp,
@@ -88,12 +89,17 @@ const MultilineInput = React.forwardRef(
88
89
  onFocus == null ? void 0 : onFocus(event);
89
90
  setFocused(true);
90
91
  };
92
+ const multilineInputStyles = {
93
+ "--saltMultilineInput-rows": rows,
94
+ ...style
95
+ };
91
96
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
92
97
  className: clsx.clsx(
93
98
  withBaseName(),
94
99
  withBaseName(variant),
95
100
  {
96
- [withBaseName("fullBorder")]: fullBorder,
101
+ [withBaseName("withAdornmentRow")]: endAdornment,
102
+ [withBaseName("bordered")]: bordered,
97
103
  [withBaseName("focused")]: !isDisabled && !isReadOnly && focused,
98
104
  [withBaseName("disabled")]: isDisabled,
99
105
  [withBaseName("readOnly")]: isReadOnly,
@@ -102,6 +108,7 @@ const MultilineInput = React.forwardRef(
102
108
  classNameProp
103
109
  ),
104
110
  ref,
111
+ style: multilineInputStyles,
105
112
  ...other,
106
113
  children: [
107
114
  startAdornment && /* @__PURE__ */ jsxRuntime.jsx("div", {
@@ -128,15 +135,20 @@ const MultilineInput = React.forwardRef(
128
135
  ...restA11yProps,
129
136
  ...restTextAreaProps
130
137
  }),
131
- !isDisabled && !isReadOnly && validationStatus && /* @__PURE__ */ jsxRuntime.jsx("div", {
132
- className: withBaseName("statusAdornmentContainer"),
133
- children: /* @__PURE__ */ jsxRuntime.jsx(core.StatusAdornment, {
134
- status: validationStatus
135
- })
136
- }),
137
- endAdornment && /* @__PURE__ */ jsxRuntime.jsx("div", {
138
- className: withBaseName("endAdornmentContainer"),
139
- children: endAdornment
138
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
139
+ className: withBaseName("suffixAdornments"),
140
+ children: [
141
+ !isDisabled && !isReadOnly && validationStatus && /* @__PURE__ */ jsxRuntime.jsx("div", {
142
+ className: withBaseName("statusAdornmentContainer"),
143
+ children: /* @__PURE__ */ jsxRuntime.jsx(core.StatusAdornment, {
144
+ status: validationStatus
145
+ })
146
+ }),
147
+ endAdornment && /* @__PURE__ */ jsxRuntime.jsx("div", {
148
+ className: withBaseName("endAdornmentContainer"),
149
+ children: endAdornment
150
+ })
151
+ ]
140
152
  }),
141
153
  /* @__PURE__ */ jsxRuntime.jsx("div", {
142
154
  className: withBaseName("activationIndicator")
@@ -1 +1 @@
1
- {"version":3,"file":"MultilineInput.js","sources":["../src/multiline-input/MultilineInput.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n FocusEvent,\n forwardRef,\n ReactNode,\n Ref,\n TextareaHTMLAttributes,\n useState,\n} from \"react\";\nimport {\n makePrefixer,\n StatusAdornment,\n useControlled,\n useFormFieldProps,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport multilineInputCss from \"./MultilineInput.css\";\n\nconst withBaseName = makePrefixer(\"saltMultilineInput\");\n\nexport interface MultilineInputProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"defaultValue\">,\n Pick<\n ComponentPropsWithoutRef<\"input\">,\n \"disabled\" | \"value\" | \"defaultValue\" | \"placeholder\"\n > {\n /**\n * End adornment component\n */\n endAdornment?: ReactNode;\n /**\n * Styling variant with full border. Defaults to false\n */\n fullBorder?: boolean;\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#Attributes) applied to the `textarea` element.\n */\n textAreaProps?: TextareaHTMLAttributes<HTMLTextAreaElement>;\n /**\n * Optional ref for the textarea component\n */\n textAreaRef?: Ref<HTMLTextAreaElement>;\n /**\n * If `true`, the component is read only.\n */\n readOnly?: boolean;\n /**\n * Start adornment component\n */\n startAdornment?: ReactNode;\n /**\n * Validation status.\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n /**\n * Styling variant. Defaults to \"primary\".\n */\n variant?: \"primary\" | \"secondary\";\n /**\n * Number of rows. Defaults to 3\n */\n rows?: number;\n}\n\nexport const MultilineInput = forwardRef<HTMLDivElement, MultilineInputProps>(\n function MultilineInput(\n {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n className: classNameProp,\n disabled,\n endAdornment,\n fullBorder = false,\n id,\n textAreaProps = {},\n textAreaRef,\n placeholder,\n readOnly,\n role,\n rows = 3,\n startAdornment,\n value: valueProp,\n defaultValue: defaultValueProp = valueProp === undefined ? \"\" : undefined,\n validationStatus: validationStatusProp,\n variant = \"primary\",\n ...other\n },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-multiline-input\",\n css: multilineInputCss,\n window: targetWindow,\n });\n\n const restA11yProps = {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n };\n\n const [focused, setFocused] = useState(false);\n\n const {\n \"aria-describedby\": textAreaDescribedBy,\n \"aria-labelledby\": textAreaLabelledBy,\n onBlur,\n onChange,\n onFocus,\n required: textAreaRequired,\n ...restTextAreaProps\n } = textAreaProps;\n\n const {\n a11yProps: {\n \"aria-describedby\": formFieldDescribedBy,\n \"aria-labelledby\": formFieldLabelledBy,\n } = {},\n disabled: formFieldDisabled,\n readOnly: formFieldReadOnly,\n necessity: formFieldRequired,\n validationStatus: formFieldValidationStatus,\n } = useFormFieldProps();\n\n const isDisabled = disabled || formFieldDisabled;\n const isReadOnly = readOnly || formFieldReadOnly;\n const validationStatus = formFieldValidationStatus ?? validationStatusProp;\n const isRequired = formFieldRequired\n ? [\"required\", \"asterisk\"].includes(formFieldRequired)\n : undefined ?? textAreaRequired;\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValueProp,\n name: \"MultilineInput\",\n state: \"value\",\n });\n\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n const value = event.target.value;\n setValue(value);\n onChange?.(event);\n };\n\n const handleBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n onBlur?.(event);\n setFocused(false);\n };\n\n const handleFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n onFocus?.(event);\n setFocused(true);\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n {\n [withBaseName(\"fullBorder\")]: fullBorder,\n [withBaseName(\"focused\")]: !isDisabled && !isReadOnly && focused,\n [withBaseName(\"disabled\")]: isDisabled,\n [withBaseName(\"readOnly\")]: isReadOnly,\n [withBaseName(validationStatus || \"\")]: validationStatus,\n },\n classNameProp\n )}\n ref={ref}\n {...other}\n >\n {startAdornment && (\n <div className={withBaseName(\"startAdornmentContainer\")}>\n {startAdornment}\n </div>\n )}\n <textarea\n aria-describedby={clsx(formFieldDescribedBy, textAreaDescribedBy)}\n aria-labelledby={clsx(formFieldLabelledBy, textAreaLabelledBy)}\n className={clsx(withBaseName(\"textarea\"), textAreaProps?.className)}\n disabled={isDisabled}\n id={id}\n readOnly={isReadOnly}\n ref={textAreaRef}\n required={isRequired}\n role={role}\n rows={rows}\n tabIndex={isReadOnly || isDisabled ? -1 : 0}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={!isDisabled && !isReadOnly ? handleFocus : undefined}\n placeholder={placeholder}\n value={value}\n {...restA11yProps}\n {...restTextAreaProps}\n />\n {!isDisabled && !isReadOnly && validationStatus && (\n <div className={withBaseName(\"statusAdornmentContainer\")}>\n <StatusAdornment status={validationStatus} />\n </div>\n )}\n {endAdornment && (\n <div className={withBaseName(\"endAdornmentContainer\")}>\n {endAdornment}\n </div>\n )}\n <div className={withBaseName(\"activationIndicator\")} />\n </div>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","MultilineInput","useWindow","useComponentCssInjection","multilineInputCss","useState","useFormFieldProps","useControlled","value","jsxs","clsx","jsx","StatusAdornment"],"mappings":"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"}
1
+ {"version":3,"file":"MultilineInput.js","sources":["../src/multiline-input/MultilineInput.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n FocusEvent,\n forwardRef,\n ReactNode,\n Ref,\n TextareaHTMLAttributes,\n useState,\n} from \"react\";\nimport {\n makePrefixer,\n StatusAdornment,\n useControlled,\n useFormFieldProps,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport multilineInputCss from \"./MultilineInput.css\";\n\nconst withBaseName = makePrefixer(\"saltMultilineInput\");\n\nexport interface MultilineInputProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"defaultValue\">,\n Pick<\n ComponentPropsWithoutRef<\"input\">,\n \"disabled\" | \"value\" | \"defaultValue\" | \"placeholder\"\n > {\n /**\n * Styling variant with full border. Defaults to false\n */\n bordered?: boolean;\n /**\n * End adornment component\n */\n endAdornment?: ReactNode;\n /**\n * If `true`, the component is read only.\n */\n readOnly?: boolean;\n /**\n * Number of rows. Defaults to 3\n */\n rows?: number;\n /**\n * Start adornment component\n */\n startAdornment?: ReactNode;\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#Attributes) applied to the `textarea` element.\n */\n textAreaProps?: TextareaHTMLAttributes<HTMLTextAreaElement>;\n /**\n * Optional ref for the textarea component\n */\n textAreaRef?: Ref<HTMLTextAreaElement>;\n /**\n * Validation status.\n */\n validationStatus?: \"error\" | \"warning\" | \"success\";\n /**\n * Styling variant. Defaults to \"primary\".\n */\n variant?: \"primary\" | \"secondary\";\n}\n\nexport const MultilineInput = forwardRef<HTMLDivElement, MultilineInputProps>(\n function MultilineInput(\n {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n bordered = false,\n className: classNameProp,\n disabled,\n endAdornment,\n id,\n placeholder,\n readOnly,\n role,\n rows = 3,\n startAdornment,\n style,\n textAreaProps = {},\n textAreaRef,\n value: valueProp,\n defaultValue: defaultValueProp = valueProp === undefined ? \"\" : undefined,\n validationStatus: validationStatusProp,\n variant = \"primary\",\n ...other\n },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-multiline-input\",\n css: multilineInputCss,\n window: targetWindow,\n });\n\n const restA11yProps = {\n \"aria-activedescendant\": ariaActiveDescendant,\n \"aria-expanded\": ariaExpanded,\n \"aria-owns\": ariaOwns,\n };\n\n const [focused, setFocused] = useState(false);\n\n const {\n \"aria-describedby\": textAreaDescribedBy,\n \"aria-labelledby\": textAreaLabelledBy,\n onBlur,\n onChange,\n onFocus,\n required: textAreaRequired,\n ...restTextAreaProps\n } = textAreaProps;\n\n const {\n a11yProps: {\n \"aria-describedby\": formFieldDescribedBy,\n \"aria-labelledby\": formFieldLabelledBy,\n } = {},\n disabled: formFieldDisabled,\n readOnly: formFieldReadOnly,\n necessity: formFieldRequired,\n validationStatus: formFieldValidationStatus,\n } = useFormFieldProps();\n\n const isDisabled = disabled || formFieldDisabled;\n const isReadOnly = readOnly || formFieldReadOnly;\n const validationStatus = formFieldValidationStatus ?? validationStatusProp;\n const isRequired = formFieldRequired\n ? [\"required\", \"asterisk\"].includes(formFieldRequired)\n : undefined ?? textAreaRequired;\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValueProp,\n name: \"MultilineInput\",\n state: \"value\",\n });\n\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n const value = event.target.value;\n setValue(value);\n onChange?.(event);\n };\n\n const handleBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n onBlur?.(event);\n setFocused(false);\n };\n\n const handleFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n onFocus?.(event);\n setFocused(true);\n };\n\n const multilineInputStyles = {\n \"--saltMultilineInput-rows\": rows,\n ...style,\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n {\n [withBaseName(\"withAdornmentRow\")]: endAdornment,\n [withBaseName(\"bordered\")]: bordered,\n [withBaseName(\"focused\")]: !isDisabled && !isReadOnly && focused,\n [withBaseName(\"disabled\")]: isDisabled,\n [withBaseName(\"readOnly\")]: isReadOnly,\n [withBaseName(validationStatus || \"\")]: validationStatus,\n },\n classNameProp\n )}\n ref={ref}\n style={multilineInputStyles}\n {...other}\n >\n {startAdornment && (\n <div className={withBaseName(\"startAdornmentContainer\")}>\n {startAdornment}\n </div>\n )}\n <textarea\n aria-describedby={clsx(formFieldDescribedBy, textAreaDescribedBy)}\n aria-labelledby={clsx(formFieldLabelledBy, textAreaLabelledBy)}\n className={clsx(withBaseName(\"textarea\"), textAreaProps?.className)}\n disabled={isDisabled}\n id={id}\n readOnly={isReadOnly}\n ref={textAreaRef}\n required={isRequired}\n role={role}\n rows={rows}\n tabIndex={isReadOnly || isDisabled ? -1 : 0}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={!isDisabled && !isReadOnly ? handleFocus : undefined}\n placeholder={placeholder}\n value={value}\n {...restA11yProps}\n {...restTextAreaProps}\n />\n <div className={withBaseName(\"suffixAdornments\")}>\n {!isDisabled && !isReadOnly && validationStatus && (\n <div className={withBaseName(\"statusAdornmentContainer\")}>\n <StatusAdornment status={validationStatus} />\n </div>\n )}\n {endAdornment && (\n <div className={withBaseName(\"endAdornmentContainer\")}>\n {endAdornment}\n </div>\n )}\n </div>\n <div className={withBaseName(\"activationIndicator\")} />\n </div>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","MultilineInput","useWindow","useComponentCssInjection","multilineInputCss","useState","useFormFieldProps","useControlled","value","jsxs","clsx","jsx","StatusAdornment"],"mappings":"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"}
@@ -7,7 +7,6 @@ var core = require('@salt-ds/core');
7
7
  var clsx = require('clsx');
8
8
  var React = require('react');
9
9
  var ParentChildItem = require('../parent-child-item/ParentChildItem.js');
10
- require('../utils/useFloatingUI.js');
11
10
  var useIsViewportLargerThanBreakpoint = require('../utils/useIsViewportLargerThanBreakpoint.js');
12
11
  var window = require('@salt-ds/window');
13
12
  var styles = require('@salt-ds/styles');
@@ -1 +1 @@
1
- {"version":3,"file":"ParentChildLayout.js","sources":["../src/parent-child-layout/ParentChildLayout.tsx"],"sourcesContent":["import {\n Breakpoints,\n FlexLayout,\n FlexLayoutProps,\n makePrefixer,\n} from \"@salt-ds/core\";\n\nimport { clsx } from \"clsx\";\nimport { ElementType, forwardRef, HTMLAttributes, ReactNode } from \"react\";\nimport { ParentChildItem, SlideDirection } from \"../parent-child-item\";\nimport { useIsViewportLargerThanBreakpoint } from \"../utils\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport parentChildLayoutCss from \"./ParentChildLayout.css\";\n\nexport type StackedViewElement = \"parent\" | \"child\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\n\nexport interface ParentChildLayoutProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Breakpoint at which the parent and child will stack.\n */\n stackedAtBreakpoint?: keyof Breakpoints;\n /**\n * Change element that is displayed when in staked view.\n */\n stackedViewElement?: StackedViewElement;\n /**\n * Disable all animations.\n */\n disableAnimations?: boolean;\n /**\n * Orientation for slide animations.\n */\n orientation?: Orientation;\n /**\n * Controls the space between columns.\n */\n gap?: FlexLayoutProps<ElementType>[\"gap\"];\n /**\n * Parent component to be rendered\n */\n parent: ReactNode;\n /**\n * Child component to be rendered\n */\n child: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltParentChildLayout\");\n\nconst getDirection = (\n orientation: Orientation,\n stackedViewElement: StackedViewElement\n) => {\n let direction: SlideDirection = \"right\";\n\n if (orientation === \"horizontal\") {\n if (stackedViewElement === \"parent\") {\n direction = \"left\";\n } else {\n direction = \"right\";\n }\n } else {\n if (stackedViewElement === \"parent\") {\n direction = \"bottom\";\n } else {\n direction = \"top\";\n }\n }\n\n return direction;\n};\n\nexport const ParentChildLayout = forwardRef<\n HTMLDivElement,\n ParentChildLayoutProps\n>(function ParentChildLayout(\n {\n stackedAtBreakpoint = \"sm\",\n stackedViewElement = \"parent\",\n disableAnimations = false,\n parent,\n child,\n className,\n orientation = \"horizontal\",\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-parent-child-layout\",\n css: parentChildLayoutCss,\n window: targetWindow,\n });\n\n const stackedView = useIsViewportLargerThanBreakpoint(stackedAtBreakpoint);\n\n const parentChildDirection = getDirection(orientation, stackedViewElement);\n\n const stackedViewChildren = {\n parent: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {parent}\n </ParentChildItem>\n ),\n child: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {child}\n </ParentChildItem>\n ),\n };\n\n return (\n <FlexLayout className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n {stackedView ? (\n stackedViewChildren[stackedViewElement]\n ) : (\n <>\n <ParentChildItem grow={0} disableAnimations={disableAnimations}>\n {parent}\n </ParentChildItem>\n <ParentChildItem grow={2} disableAnimations={disableAnimations}>\n {child}\n </ParentChildItem>\n </>\n )}\n </FlexLayout>\n );\n});\n"],"names":["makePrefixer","forwardRef","ParentChildLayout","useWindow","useComponentCssInjection","parentChildLayoutCss","useIsViewportLargerThanBreakpoint","jsx","ParentChildItem","FlexLayout","clsx","jsxs","Fragment"],"mappings":";;;;;;;;;;;;;;;AAoDA,MAAM,YAAA,GAAeA,kBAAa,uBAAuB,CAAA,CAAA;AAEzD,MAAM,YAAA,GAAe,CACnB,WAAA,EACA,kBACG,KAAA;AACH,EAAA,IAAI,SAA4B,GAAA,OAAA,CAAA;AAEhC,EAAA,IAAI,gBAAgB,YAAc,EAAA;AAChC,IAAA,IAAI,uBAAuB,QAAU,EAAA;AACnC,MAAY,SAAA,GAAA,MAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAY,SAAA,GAAA,OAAA,CAAA;AAAA,KACd;AAAA,GACK,MAAA;AACL,IAAA,IAAI,uBAAuB,QAAU,EAAA;AACnC,MAAY,SAAA,GAAA,QAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAY,SAAA,GAAA,KAAA,CAAA;AAAA,KACd;AAAA,GACF;AAEA,EAAO,OAAA,SAAA,CAAA;AACT,CAAA,CAAA;AAEa,MAAA,iBAAA,GAAoBC,gBAG/B,CAAA,SAASC,kBACT,CAAA;AAAA,EACE,mBAAsB,GAAA,IAAA;AAAA,EACtB,kBAAqB,GAAA,QAAA;AAAA,EACrB,iBAAoB,GAAA,KAAA;AAAA,EACpB,MAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAc,GAAA,YAAA;AAAA,EACX,GAAA,IAAA;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,mBAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,WAAA,GAAcC,oEAAkC,mBAAmB,CAAA,CAAA;AAEzE,EAAM,MAAA,oBAAA,GAAuB,YAAa,CAAA,WAAA,EAAa,kBAAkB,CAAA,CAAA;AAEzE,EAAA,MAAM,mBAAsB,GAAA;AAAA,IAC1B,wBACGC,cAAA,CAAAC,+BAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,MAAA;AAAA,KACH,CAAA;AAAA,IAEF,uBACGD,cAAA,CAAAC,+BAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,KAAA;AAAA,KACH,CAAA;AAAA,GAEJ,CAAA;AAEA,EAAA,uBACGD,cAAA,CAAAE,eAAA,EAAA;AAAA,IAAW,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IAAG,GAAA;AAAA,IAAW,GAAG,IAAA;AAAA,IACnE,QAAA,EAAA,WAAA,GACC,oBAAoB,kBAEpB,CAAA,mBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAACL,cAAA,CAAAC,+BAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,MAAA;AAAA,SACH,CAAA;AAAA,wBACCD,cAAA,CAAAC,+BAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,KAAA;AAAA,SACH,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"ParentChildLayout.js","sources":["../src/parent-child-layout/ParentChildLayout.tsx"],"sourcesContent":["import {\n Breakpoints,\n FlexLayout,\n FlexLayoutProps,\n makePrefixer,\n} from \"@salt-ds/core\";\n\nimport { clsx } from \"clsx\";\nimport { ElementType, forwardRef, HTMLAttributes, ReactNode } from \"react\";\nimport { ParentChildItem, SlideDirection } from \"../parent-child-item\";\nimport { useIsViewportLargerThanBreakpoint } from \"../utils\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport parentChildLayoutCss from \"./ParentChildLayout.css\";\n\nexport type StackedViewElement = \"parent\" | \"child\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\n\nexport interface ParentChildLayoutProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Breakpoint at which the parent and child will stack.\n */\n stackedAtBreakpoint?: keyof Breakpoints;\n /**\n * Change element that is displayed when in staked view.\n */\n stackedViewElement?: StackedViewElement;\n /**\n * Disable all animations.\n */\n disableAnimations?: boolean;\n /**\n * Orientation for slide animations.\n */\n orientation?: Orientation;\n /**\n * Controls the space between columns.\n */\n gap?: FlexLayoutProps<ElementType>[\"gap\"];\n /**\n * Parent component to be rendered\n */\n parent: ReactNode;\n /**\n * Child component to be rendered\n */\n child: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltParentChildLayout\");\n\nconst getDirection = (\n orientation: Orientation,\n stackedViewElement: StackedViewElement\n) => {\n let direction: SlideDirection = \"right\";\n\n if (orientation === \"horizontal\") {\n if (stackedViewElement === \"parent\") {\n direction = \"left\";\n } else {\n direction = \"right\";\n }\n } else {\n if (stackedViewElement === \"parent\") {\n direction = \"bottom\";\n } else {\n direction = \"top\";\n }\n }\n\n return direction;\n};\n\nexport const ParentChildLayout = forwardRef<\n HTMLDivElement,\n ParentChildLayoutProps\n>(function ParentChildLayout(\n {\n stackedAtBreakpoint = \"sm\",\n stackedViewElement = \"parent\",\n disableAnimations = false,\n parent,\n child,\n className,\n orientation = \"horizontal\",\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-parent-child-layout\",\n css: parentChildLayoutCss,\n window: targetWindow,\n });\n\n const stackedView = useIsViewportLargerThanBreakpoint(stackedAtBreakpoint);\n\n const parentChildDirection = getDirection(orientation, stackedViewElement);\n\n const stackedViewChildren = {\n parent: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {parent}\n </ParentChildItem>\n ),\n child: (\n <ParentChildItem\n disableAnimations={disableAnimations}\n direction={parentChildDirection}\n isStacked={stackedView}\n >\n {child}\n </ParentChildItem>\n ),\n };\n\n return (\n <FlexLayout className={clsx(withBaseName(), className)} ref={ref} {...rest}>\n {stackedView ? (\n stackedViewChildren[stackedViewElement]\n ) : (\n <>\n <ParentChildItem grow={0} disableAnimations={disableAnimations}>\n {parent}\n </ParentChildItem>\n <ParentChildItem grow={2} disableAnimations={disableAnimations}>\n {child}\n </ParentChildItem>\n </>\n )}\n </FlexLayout>\n );\n});\n"],"names":["makePrefixer","forwardRef","ParentChildLayout","useWindow","useComponentCssInjection","parentChildLayoutCss","useIsViewportLargerThanBreakpoint","jsx","ParentChildItem","FlexLayout","clsx","jsxs","Fragment"],"mappings":";;;;;;;;;;;;;;AAoDA,MAAM,YAAA,GAAeA,kBAAa,uBAAuB,CAAA,CAAA;AAEzD,MAAM,YAAA,GAAe,CACnB,WAAA,EACA,kBACG,KAAA;AACH,EAAA,IAAI,SAA4B,GAAA,OAAA,CAAA;AAEhC,EAAA,IAAI,gBAAgB,YAAc,EAAA;AAChC,IAAA,IAAI,uBAAuB,QAAU,EAAA;AACnC,MAAY,SAAA,GAAA,MAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAY,SAAA,GAAA,OAAA,CAAA;AAAA,KACd;AAAA,GACK,MAAA;AACL,IAAA,IAAI,uBAAuB,QAAU,EAAA;AACnC,MAAY,SAAA,GAAA,QAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAY,SAAA,GAAA,KAAA,CAAA;AAAA,KACd;AAAA,GACF;AAEA,EAAO,OAAA,SAAA,CAAA;AACT,CAAA,CAAA;AAEa,MAAA,iBAAA,GAAoBC,gBAG/B,CAAA,SAASC,kBACT,CAAA;AAAA,EACE,mBAAsB,GAAA,IAAA;AAAA,EACtB,kBAAqB,GAAA,QAAA;AAAA,EACrB,iBAAoB,GAAA,KAAA;AAAA,EACpB,MAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAc,GAAA,YAAA;AAAA,EACX,GAAA,IAAA;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,mBAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,WAAA,GAAcC,oEAAkC,mBAAmB,CAAA,CAAA;AAEzE,EAAM,MAAA,oBAAA,GAAuB,YAAa,CAAA,WAAA,EAAa,kBAAkB,CAAA,CAAA;AAEzE,EAAA,MAAM,mBAAsB,GAAA;AAAA,IAC1B,wBACGC,cAAA,CAAAC,+BAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,MAAA;AAAA,KACH,CAAA;AAAA,IAEF,uBACGD,cAAA,CAAAC,+BAAA,EAAA;AAAA,MACC,iBAAA;AAAA,MACA,SAAW,EAAA,oBAAA;AAAA,MACX,SAAW,EAAA,WAAA;AAAA,MAEV,QAAA,EAAA,KAAA;AAAA,KACH,CAAA;AAAA,GAEJ,CAAA;AAEA,EAAA,uBACGD,cAAA,CAAAE,eAAA,EAAA;AAAA,IAAW,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IAAG,GAAA;AAAA,IAAW,GAAG,IAAA;AAAA,IACnE,QAAA,EAAA,WAAA,GACC,oBAAoB,kBAEpB,CAAA,mBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAACL,cAAA,CAAAC,+BAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,MAAA;AAAA,SACH,CAAA;AAAA,wBACCD,cAAA,CAAAC,+BAAA,EAAA;AAAA,UAAgB,IAAM,EAAA,CAAA;AAAA,UAAG,iBAAA;AAAA,UACvB,QAAA,EAAA,KAAA;AAAA,SACH,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = "/* Styles applied to the root element */\n.saltPillNext {\n --pillNext-background: var(--salt-actionable-primary-background);\n --pillNext-background-active: var(--salt-actionable-primary-background-active);\n --pillNext-background-disabled: var(--salt-actionable-primary-background-disabled);\n --pillNext-background-hover: var(--salt-actionable-primary-background-hover);\n --pillNext-text-color: var(--salt-actionable-primary-foreground);\n --pillNext-text-color-active: var(--salt-actionable-primary-foreground-active);\n --pillNext-text-color-hover: var(--salt-actionable-primary-foreground-hover);\n --pillNext-text-color-disabled: var(--salt-actionable-primary-foreground-disabled);\n}\n\n.saltPillNext {\n appearance: none;\n display: inline-flex;\n align-items: center;\n background: var(--pillNext-background);\n border-radius: 0;\n border: 0;\n height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n min-width: 4em;\n min-height: var(--salt-text-minHeight);\n outline: 0;\n position: relative;\n gap: var(--salt-spacing-50);\n padding-inline: var(--salt-spacing-50);\n color: var(--pillNext-text-color);\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-label-lineHeight);\n}\n\n.saltPillNext-label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.saltPillNext .saltIcon {\n --saltIcon-color: currentColor;\n}\n\n/* Style applied to Pill if `onClick` prop is provided */\n.saltPillNext-clickable {\n cursor: var(--salt-selectable-cursor-hover);\n}\n\n.saltPillNext-clickable:hover {\n color: var(--pillNext-text-color-hover);\n background: var(--pillNext-background-hover);\n}\n\n.saltPillNext-clickable.saltPillNext-disabled:hover {\n color: var(--pillNext-text-color);\n background: var(--pillNext-background);\n}\n\n.saltPillNext-clickable.saltPillNext-active,\n.saltPillNext-clickable:active {\n background: var(--pillNext-background-active);\n color: var(--pillNext-text-color-active);\n}\n\n.saltPillNext-clickable.saltPillNext-disabled.saltPillNext-active,\n.saltPillNext-clickable.saltPillNext-disabled:active {\n background: var(--pillNext-background);\n color: var(--pillNext-text-color);\n}\n\n/* Style applied to Pill on focus */\n.saltPillNext:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n/* Style applied to Pill when disabled */\n.saltPillNext.saltPillNext-disabled,\n.saltPillNext.saltPillNext-disabled:hover,\n.saltPillNext.saltPillNext-disabled:active {\n color: var(--pillNext-text-color-disabled);\n background: var(--pillNext-background-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=PillNext.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PillNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var React = require('react');
7
+ var clsx = require('clsx');
8
+ var window = require('@salt-ds/window');
9
+ var styles = require('@salt-ds/styles');
10
+ var core = require('@salt-ds/core');
11
+ var PillNext$1 = require('./PillNext.css.js');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var clsx__default = /*#__PURE__*/_interopDefaultLegacy(clsx);
16
+
17
+ const withBaseName = core.makePrefixer("saltPillNext");
18
+ const PillNext = React.forwardRef(
19
+ function PillNext2({ children, className, icon, disabled, ...restProps }, ref) {
20
+ const targetWindow = window.useWindow();
21
+ styles.useComponentCssInjection({
22
+ testId: "salt-pill-next",
23
+ css: PillNext$1,
24
+ window: targetWindow
25
+ });
26
+ const { buttonProps, active } = core.useButton({
27
+ disabled,
28
+ ...restProps
29
+ });
30
+ const { tabIndex, ...restButtonProps } = buttonProps;
31
+ return /* @__PURE__ */ jsxRuntime.jsxs("button", {
32
+ "data-testid": "pill",
33
+ ref,
34
+ type: "button",
35
+ className: clsx__default["default"](
36
+ withBaseName(),
37
+ withBaseName("clickable"),
38
+ {
39
+ [withBaseName("active")]: active,
40
+ [withBaseName("disabled")]: disabled
41
+ },
42
+ className
43
+ ),
44
+ ...restButtonProps,
45
+ ...restProps,
46
+ children: [
47
+ icon,
48
+ /* @__PURE__ */ jsxRuntime.jsx("span", {
49
+ className: withBaseName("label"),
50
+ children
51
+ })
52
+ ]
53
+ });
54
+ }
55
+ );
56
+
57
+ exports.PillNext = PillNext;
58
+ //# sourceMappingURL=PillNext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PillNext.js","sources":["../src/pill-next/PillNext.tsx"],"sourcesContent":["import {\n forwardRef,\n MouseEvent,\n KeyboardEvent,\n ComponentPropsWithoutRef,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { makePrefixer, useButton } from \"@salt-ds/core\";\nimport pillCss from \"./PillNext.css\";\n\nexport type PillClickEvent =\n | MouseEvent<Element, globalThis.MouseEvent>\n | KeyboardEvent<HTMLDivElement>;\n\nexport interface PillNextProps extends ComponentPropsWithoutRef<\"button\"> {\n /* If true the pill will be disabled */\n disabled?: boolean;\n /* Pass an element to render an icon descriptor on the left of the label */\n icon?: React.ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltPillNext\");\n\nexport const PillNext = forwardRef<HTMLButtonElement, PillNextProps>(\n function PillNext(\n { children, className, icon, disabled, ...restProps },\n ref\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-pill-next\",\n css: pillCss,\n window: targetWindow,\n });\n const { buttonProps, active } = useButton<HTMLButtonElement>({\n disabled,\n ...restProps,\n });\n // we do not want to spread tab index in this case because the button element\n // does not require tabindex=\"0\" attribute\n const { tabIndex, ...restButtonProps } = buttonProps;\n\n return (\n <button\n data-testid=\"pill\"\n ref={ref}\n type=\"button\"\n className={clsx(\n withBaseName(),\n withBaseName(\"clickable\"),\n {\n [withBaseName(\"active\")]: active,\n [withBaseName(\"disabled\")]: disabled,\n },\n className\n )}\n {...restButtonProps}\n {...restProps}\n >\n {icon}\n <span className={withBaseName(\"label\")}>{children}</span>\n </button>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","PillNext","useWindow","useComponentCssInjection","pillCss","useButton","jsxs","clsx","jsx"],"mappings":";;;;;;;;;;;;;;;;AAuBA,MAAM,YAAA,GAAeA,kBAAa,cAAc,CAAA,CAAA;AAEzC,MAAM,QAAW,GAAAC,gBAAA;AAAA,EACtB,SAASC,UACP,EAAE,QAAA,EAAU,WAAW,IAAM,EAAA,QAAA,EAAA,GAAa,SAAU,EAAA,EACpD,GACA,EAAA;AACA,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,gBAAA;AAAA,MACR,GAAK,EAAAC,UAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AACD,IAAA,MAAM,EAAE,WAAA,EAAa,MAAO,EAAA,GAAIC,cAA6B,CAAA;AAAA,MAC3D,QAAA;AAAA,MACA,GAAG,SAAA;AAAA,KACJ,CAAA,CAAA;AAGD,IAAM,MAAA,EAAE,QAAa,EAAA,GAAA,eAAA,EAAoB,GAAA,WAAA,CAAA;AAEzC,IAAA,uBACGC,eAAA,CAAA,QAAA,EAAA;AAAA,MACC,aAAY,EAAA,MAAA;AAAA,MACZ,GAAA;AAAA,MACA,IAAK,EAAA,QAAA;AAAA,MACL,SAAW,EAAAC,wBAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb,aAAa,WAAW,CAAA;AAAA,QACxB;AAAA,UACE,CAAC,YAAa,CAAA,QAAQ,CAAI,GAAA,MAAA;AAAA,UAC1B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,QAAA;AAAA,SAC9B;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,eAAA;AAAA,MACH,GAAG,SAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,IAAA;AAAA,wBACAC,cAAA,CAAA,MAAA,EAAA;AAAA,UAAK,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAAI,QAAA;AAAA,SAAS,CAAA;AAAA,OAAA;AAAA,KACpD,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = ".saltCircularProgress {\n --circularProgress-gradient-color: var(--salt-accent-background);\n\n color: var(--salt-text-primary-foreground);\n display: inline-flex;\n position: relative;\n}\n\n.saltCircularProgress-disabled .saltCircularProgress-progressValue,\n.saltCircularProgress-disabled circle {\n color: var(--salt-text-primary-foreground-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n\n.saltCircularProgress-circle {\n stroke: url(\"#salt-circular-progress-gradient\");\n stroke-width: 2px;\n}\n\n.saltCircularProgress-small {\n font-size: 11px;\n}\n\n.saltCircularProgress-medium {\n font-size: 14px;\n}\n\n.saltCircularProgress-large {\n font-size: 16px;\n}\n\n.saltCircularProgress-progressValue {\n align-items: center;\n color: var(--salt-text-primary-foreground);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n position: absolute;\n width: 100%;\n}\n\n.saltCircularProgress-disabled {\n}\n\n.saltCircularProgress-completed {\n}\n\n.saltCircularProgress-railCircle {\n stroke: var(--salt-track-borderColor);\n stroke-width: var(--salt-size-border);\n}\n\n.saltCircularProgress-gradientStart,\n.saltCircularProgress-gradientStop {\n stop-color: var(--saltCircularProgress-gradient-color, var(--circularProgress-gradient-color));\n}\n\n.saltCircularProgress-container {\n display: inline-block;\n}\n\n.saltCircularProgress-static {\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0s;\n}\n\n.saltCircularProgress-indeterminate {\n animation: circular-rotate 1.4s linear infinite;\n}\n\n.saltCircularProgress-svg {\n fill: var(--salt-accent-background);\n display: block;\n}\n\n.saltCircularProgress-circle {\n stroke: url(\"#salt-circular-progress-gradient\");\n}\n\n.saltCircularProgress-circleStatic {\n transition: stroke-dashoffset 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0s;\n}\n\n.saltCircularProgress-circleIndeterminate {\n animation: circular-dash 1.4s ease-in-out infinite;\n}\n\n@keyframes circular-rotate {\n 0% {\n transform-origin: 50% 50%;\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes circular-dash {\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n}\n";
3
+ var css_248z = ".saltCircularProgress {\n --circularProgress-progressCircle-radius: calc(var(--salt-size-base) - (var(--salt-size-adornment) * 0.25));\n --circularProgress-progressCircle-circumference: calc(var(--circularProgress-progressCircle-radius) * 2 * PI);\n --circularProgress-railCircle-radius: calc(var(--salt-size-base) - (var(--salt-track-borderWidth) * 0.5));\n --circularProgress-railCircle-circumference: calc(var(--circularProgress-railCircle-radius) * 2 * PI);\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-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-disabled .saltCircularProgress-circle {\n stroke: var(--salt-accent-background-disabled);\n}\n\n.saltCircularProgress-disabled .saltCircularProgress-railCircle {\n stroke: var(--salt-track-borderColor-disabled);\n}\n\n.saltCircularProgress-railCircle {\n stroke: var(--salt-track-borderColor);\n stroke-width: var(--salt-track-borderWidth);\n r: var(--circularProgress-railCircle-radius);\n}\n\n.saltCircularProgress-svg {\n height: calc(var(--salt-size-base) * 2);\n width: calc(var(--salt-size-base) * 2);\n fill: var(--salt-accent-background);\n transform: rotate(-90deg);\n display: block;\n}\n\n.saltCircularProgress-circle {\n r: var(--circularProgress-progressCircle-radius);\n stroke-width: calc(var(--salt-size-adornment) * 0.5);\n stroke: var(--salt-accent-background);\n transition: stroke-dashoffset 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0s;\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=CircularProgress.css.js.map
@@ -7,46 +7,20 @@ var React = require('react');
7
7
  var clsx = require('clsx');
8
8
  var core = require('@salt-ds/core');
9
9
  var Info = require('../Info.js');
10
- var CircularProgressParts = require('./CircularProgressParts.js');
11
10
  var window = require('@salt-ds/window');
12
11
  var styles = require('@salt-ds/styles');
13
12
  var CircularProgress$1 = require('./CircularProgress.css.js');
14
13
 
15
- const MAX = 100;
16
- const MIN = 0;
17
14
  const withBaseName = core.makePrefixer("saltCircularProgress");
18
- const SIZE_OPTIONS = {
19
- small: {
20
- container: 36
21
- },
22
- medium: {
23
- container: 48
24
- },
25
- large: {
26
- container: 60
27
- }
28
- };
29
- function getRelativeValue(value, min, max) {
30
- return (Math.min(Math.max(min, value), max) - min) / (max - min);
31
- }
32
- function easeOut(t) {
33
- t = getRelativeValue(t, 0, 1);
34
- t = (t -= 1) * t * t + 1;
35
- return t;
36
- }
37
- function easeIn(t) {
38
- return t * t;
39
- }
40
15
  const CircularProgress = React.forwardRef(function CircularProgress2({
41
16
  "aria-label": ariaLabel,
42
17
  className,
43
18
  disabled,
19
+ max = 100,
44
20
  showInfo = true,
45
- size = "small",
46
21
  renderInfo,
47
22
  value = 0,
48
23
  unit = "%",
49
- variant = "static",
50
24
  ...rest
51
25
  }, ref) {
52
26
  const targetWindow = window.useWindow();
@@ -56,20 +30,15 @@ const CircularProgress = React.forwardRef(function CircularProgress2({
56
30
  window: targetWindow
57
31
  });
58
32
  const circleStyle = {};
59
- const rootStyle = {};
60
- if (variant === "determinate" || variant === "static") {
61
- const circumference = 2 * Math.PI * ((CircularProgressParts.SIZE - 2) * 0.5);
62
- circleStyle.strokeDasharray = circumference.toFixed(3);
63
- if (variant === "static") {
64
- circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;
65
- rootStyle.transform = "rotate(-90deg)";
66
- } else {
67
- circleStyle.strokeDashoffset = `${(easeIn((100 - value) / 100) * circumference).toFixed(3)}px`;
68
- rootStyle.transform = `rotate(${(easeOut(value / 70) * 270).toFixed(
69
- 3
70
- )}deg)`;
71
- }
72
- }
33
+ const railCircleStyle = {};
34
+ const progress = value / max * 100;
35
+ const progressStrokeLength = `calc(${progress} * var(--circularProgress-progressCircle-circumference) / 100)`;
36
+ const progressGapLength = `calc((100 - ${progress}) * var(--circularProgress-progressCircle-circumference) / 100)`;
37
+ const railStrokeLength = `calc((100 - ${progress}) * var(--circularProgress-railCircle-circumference) / 100)`;
38
+ const railGapLength = `calc((${progress}) * var(--circularProgress-railCircle-circumference) / 100)`;
39
+ circleStyle.strokeDasharray = `${progressStrokeLength} ${progressGapLength}`;
40
+ railCircleStyle.strokeDashoffset = `${railStrokeLength}`;
41
+ railCircleStyle.strokeDasharray = `${railStrokeLength} ${railGapLength}`;
73
42
  React.useEffect(() => {
74
43
  if (process.env.NODE_ENV !== "production" && !ariaLabel) {
75
44
  console.error(
@@ -77,7 +46,6 @@ const CircularProgress = React.forwardRef(function CircularProgress2({
77
46
  );
78
47
  }
79
48
  }, [ariaLabel]);
80
- const containerSize = SIZE_OPTIONS[size].container;
81
49
  const getValueProps = () => ({
82
50
  unit,
83
51
  value,
@@ -91,49 +59,43 @@ const CircularProgress = React.forwardRef(function CircularProgress2({
91
59
  progressInfo = renderInfo ? renderInfo(getValueProps()) : /* @__PURE__ */ jsxRuntime.jsx(Info.Info, {
92
60
  className: withBaseName("progressValue"),
93
61
  unit,
94
- value,
62
+ value: Math.round(progress),
95
63
  ...rest
96
64
  });
97
65
  }
98
66
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
99
- className: clsx.clsx(className, "saltCircularProgress", {
100
- [withBaseName("small")]: size === "small",
101
- [withBaseName("medium")]: size === "medium",
102
- [withBaseName("large")]: size === "large",
103
- [withBaseName("disabled")]: disabled
104
- }),
67
+ className: clsx.clsx(
68
+ withBaseName(),
69
+ { [withBaseName("disabled")]: disabled },
70
+ className
71
+ ),
105
72
  "data-testid": "circular-progress",
106
73
  ref,
107
74
  role: "progressbar",
108
75
  "aria-label": ariaLabel,
109
- "aria-valuemax": MAX,
110
- "aria-valuemin": MIN,
76
+ "aria-valuemax": max,
77
+ "aria-valuemin": 0,
111
78
  "aria-valuenow": value,
112
79
  ...rest,
113
80
  children: [
114
- /* @__PURE__ */ jsxRuntime.jsx("div", {
115
- className: clsx.clsx(withBaseName("container"), {
116
- [withBaseName("indeterminate")]: variant === "indeterminate",
117
- [withBaseName("static")]: variant === "static"
118
- }),
119
- style: { width: containerSize, height: containerSize, ...rootStyle },
120
- children: /* @__PURE__ */ jsxRuntime.jsxs(CircularProgressParts.ViewBox, {
121
- children: [
122
- /* @__PURE__ */ jsxRuntime.jsx(CircularProgressParts.LinearGradient, {}),
123
- /* @__PURE__ */ jsxRuntime.jsx(CircularProgressParts.Circle, {
124
- className: withBaseName("railCircle"),
125
- strokeWidth: 1
126
- }),
127
- /* @__PURE__ */ jsxRuntime.jsx(CircularProgressParts.Circle, {
128
- strokeWidth: 2,
129
- style: circleStyle,
130
- className: clsx.clsx(withBaseName("circle"), {
131
- [withBaseName("circleIndeterminate")]: variant === "indeterminate",
132
- [withBaseName("circleStatic")]: variant === "static"
133
- })
134
- })
135
- ]
136
- })
81
+ /* @__PURE__ */ jsxRuntime.jsxs("svg", {
82
+ className: withBaseName("svg"),
83
+ children: [
84
+ /* @__PURE__ */ jsxRuntime.jsx("circle", {
85
+ cx: "50%",
86
+ cy: "50%",
87
+ fill: "none",
88
+ style: railCircleStyle,
89
+ className: withBaseName("railCircle")
90
+ }),
91
+ /* @__PURE__ */ jsxRuntime.jsx("circle", {
92
+ cx: "50%",
93
+ cy: "50%",
94
+ fill: "none",
95
+ style: circleStyle,
96
+ className: withBaseName("circle")
97
+ })
98
+ ]
137
99
  }),
138
100
  progressInfo
139
101
  ]
@@ -141,5 +103,4 @@ const CircularProgress = React.forwardRef(function CircularProgress2({
141
103
  });
142
104
 
143
105
  exports.CircularProgress = CircularProgress;
144
- exports.SIZE_OPTIONS = SIZE_OPTIONS;
145
106
  //# 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":["makePrefixer","forwardRef","CircularProgress","useWindow","useComponentCssInjection","circularProgressCSS","SIZE","useEffect","jsx","DefaultInfo","jsxs","clsx","ViewBox","LinearGradient","Circle"],"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 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 { 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 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 * Disabled flag, true when the component is disabled.\n */\n disabled?: boolean;\n /**\n * The value of the max progress indicator.\n * Default value is 100.\n */\n max?: number;\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 * 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 * 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 {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 max = 100,\n showInfo = true,\n renderInfo,\n value = 0,\n unit = \"%\",\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 railCircleStyle: CSSProperties = {};\n const rootStyle: CSSProperties = {};\n const rootProps: HTMLAttributes<any> = {};\n\n const progress = (value / max) * 100;\n\n rootProps[\"aria-valuenow\"] = Math.round(value);\n\n const progressStrokeLength = `calc(${progress} * var(--circularProgress-progressCircle-circumference) / 100)`;\n const progressGapLength = `calc((100 - ${progress}) * var(--circularProgress-progressCircle-circumference) / 100)`;\n const railStrokeLength = `calc((100 - ${progress}) * var(--circularProgress-railCircle-circumference) / 100)`;\n const railGapLength = `calc((${progress}) * var(--circularProgress-railCircle-circumference) / 100)`;\n\n circleStyle.strokeDasharray = `${progressStrokeLength} ${progressGapLength}`;\n railCircleStyle.strokeDashoffset = `${railStrokeLength}`;\n railCircleStyle.strokeDasharray = `${railStrokeLength} ${railGapLength}`;\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 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={Math.round(progress)}\n {...rest}\n />\n );\n }\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"disabled\")]: disabled },\n className\n )}\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={value}\n {...rest}\n >\n <svg className={withBaseName(\"svg\")}>\n <circle\n cx=\"50%\"\n cy=\"50%\"\n fill=\"none\"\n style={railCircleStyle}\n className={withBaseName(\"railCircle\")}\n />\n\n <circle\n cx=\"50%\"\n cy=\"50%\"\n fill=\"none\"\n style={circleStyle}\n className={withBaseName(\"circle\")}\n />\n </svg>\n {progressInfo}\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","CircularProgress","useWindow","useComponentCssInjection","circularProgressCSS","useEffect","jsx","DefaultInfo","jsxs","clsx"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- 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";
3
+ 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-disabled .saltLinearProgress-bar {\n background: var(--salt-accent-background-disabled);\n}\n\n.saltLinearProgress-disabled .saltLinearProgress-track {\n background: var(--salt-track-borderColor-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(--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";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=LinearProgress.css.js.map
@@ -28,10 +28,9 @@ const LinearProgress = React.forwardRef(
28
28
  function LinearProgress2({
29
29
  className,
30
30
  disabled,
31
+ max = 100,
31
32
  renderInfo,
32
33
  showInfo = true,
33
- size = "small",
34
- variant = "determinate",
35
34
  unit = "%",
36
35
  value = 0,
37
36
  ...rest
@@ -45,6 +44,7 @@ const LinearProgress = React.forwardRef(
45
44
  let progressInfo = null;
46
45
  const progressUnit = withBaseName("progressUnit");
47
46
  const progressValue = withBaseName("progressValue");
47
+ const progress = value / max * 100;
48
48
  if (showInfo) {
49
49
  progressInfo = renderInfo ? renderInfo(
50
50
  getUnitAndValueProps(
@@ -59,27 +59,22 @@ const LinearProgress = React.forwardRef(
59
59
  )
60
60
  ) : /* @__PURE__ */ jsxRuntime.jsx(Info.Info, {
61
61
  unit,
62
- value,
62
+ value: Math.round(progress),
63
63
  className: progressValue
64
64
  });
65
65
  }
66
66
  const rootProps = {};
67
67
  const barStyle = {};
68
- if (variant === "determinate") {
69
- rootProps["aria-valuenow"] = Math.round(value);
70
- rootProps["aria-valuemin"] = 0;
71
- rootProps["aria-valuemax"] = 100;
72
- barStyle.transform = `translateX(${value - 100}%)`;
73
- }
68
+ const trackStyle = {};
69
+ rootProps["aria-valuenow"] = Math.round(value);
70
+ rootProps["aria-valuemin"] = 0;
71
+ rootProps["aria-valuemax"] = 100;
72
+ barStyle.transform = `translateX(${progress - 100}%)`;
73
+ trackStyle.transform = `translateX(${progress}%)`;
74
74
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
75
75
  className: clsx.clsx(
76
76
  withBaseName(),
77
- {
78
- [withBaseName("disabled")]: disabled,
79
- [withBaseName("small")]: size === "small",
80
- [withBaseName("medium")]: size === "medium",
81
- [withBaseName("large")]: size === "large"
82
- },
77
+ { [withBaseName("disabled")]: disabled },
83
78
  className
84
79
  ),
85
80
  ref,
@@ -89,18 +84,15 @@ const LinearProgress = React.forwardRef(
89
84
  ...rest,
90
85
  children: [
91
86
  /* @__PURE__ */ jsxRuntime.jsxs("div", {
92
- className: clsx.clsx(withBaseName("barContainer"), {
93
- [withBaseName("determinate")]: variant === "determinate",
94
- [withBaseName("indeterminate")]: variant === "indeterminate",
95
- [withBaseName("query")]: variant === "query"
96
- }),
87
+ className: withBaseName("barContainer"),
97
88
  children: [
98
- /* @__PURE__ */ jsxRuntime.jsx("div", {
99
- className: clsx.clsx(withBaseName("bar"), withBaseName("bar1")),
89
+ progress !== 0 && /* @__PURE__ */ jsxRuntime.jsx("div", {
90
+ className: withBaseName("bar"),
100
91
  style: barStyle
101
92
  }),
102
- variant === "determinate" ? null : /* @__PURE__ */ jsxRuntime.jsx("div", {
103
- className: clsx.clsx(withBaseName("bar"), withBaseName("bar2"))
93
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
94
+ className: withBaseName("track"),
95
+ style: trackStyle
104
96
  })
105
97
  ]
106
98
  }),