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

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 (287) hide show
  1. package/dist-cjs/badge/Badge.css.js +1 -1
  2. package/dist-cjs/badge/Badge.js +7 -23
  3. package/dist-cjs/badge/Badge.js.map +1 -1
  4. package/dist-cjs/combo-box-next/ComboBoxNext.css.js +6 -0
  5. package/dist-cjs/combo-box-next/ComboBoxNext.css.js.map +1 -0
  6. package/dist-cjs/combo-box-next/ComboBoxNext.js +177 -0
  7. package/dist-cjs/combo-box-next/ComboBoxNext.js.map +1 -0
  8. package/dist-cjs/combo-box-next/useComboBox.js +137 -0
  9. package/dist-cjs/combo-box-next/useComboBox.js.map +1 -0
  10. package/dist-cjs/combo-box-next/useComboboxPortal.js +69 -0
  11. package/dist-cjs/combo-box-next/useComboboxPortal.js.map +1 -0
  12. package/dist-cjs/combo-box-next/utils.js +40 -0
  13. package/dist-cjs/combo-box-next/utils.js.map +1 -0
  14. package/dist-cjs/content-status/ContentStatus.js +0 -2
  15. package/dist-cjs/content-status/ContentStatus.js.map +1 -1
  16. package/dist-cjs/content-status/internal/StatusIndicator.js +0 -2
  17. package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
  18. package/dist-cjs/dialog/Dialog.css.js +1 -1
  19. package/dist-cjs/dialog/Dialog.js +53 -56
  20. package/dist-cjs/dialog/Dialog.js.map +1 -1
  21. package/dist-cjs/dialog/DialogActions.css.js +1 -1
  22. package/dist-cjs/dialog/DialogActions.js +15 -17
  23. package/dist-cjs/dialog/DialogActions.js.map +1 -1
  24. package/dist-cjs/dialog/DialogCloseButton.css.js +6 -0
  25. package/dist-cjs/dialog/DialogCloseButton.css.js.map +1 -0
  26. package/dist-cjs/dialog/DialogCloseButton.js +39 -0
  27. package/dist-cjs/dialog/DialogCloseButton.js.map +1 -0
  28. package/dist-cjs/dialog/DialogContent.css.js +1 -1
  29. package/dist-cjs/dialog/DialogContent.js +20 -29
  30. package/dist-cjs/dialog/DialogContent.js.map +1 -1
  31. package/dist-cjs/dialog/{internal/DialogContext.js → DialogContext.js} +4 -0
  32. package/dist-cjs/dialog/DialogContext.js.map +1 -0
  33. package/dist-cjs/dialog/DialogTitle.css.js +1 -1
  34. package/dist-cjs/dialog/DialogTitle.js +40 -41
  35. package/dist-cjs/dialog/DialogTitle.js.map +1 -1
  36. package/dist-cjs/dialog/useDialog.js +31 -0
  37. package/dist-cjs/dialog/useDialog.js.map +1 -0
  38. package/dist-cjs/drawer/Drawer.css.js +1 -1
  39. package/dist-cjs/drawer/Drawer.js +39 -45
  40. package/dist-cjs/drawer/Drawer.js.map +1 -1
  41. package/dist-cjs/drawer/useDrawer.js +31 -0
  42. package/dist-cjs/drawer/useDrawer.js.map +1 -0
  43. package/dist-cjs/dropdown-next/DropdownNext.css.js +6 -0
  44. package/dist-cjs/dropdown-next/DropdownNext.css.js.map +1 -0
  45. package/dist-cjs/dropdown-next/DropdownNext.js +181 -0
  46. package/dist-cjs/dropdown-next/DropdownNext.js.map +1 -0
  47. package/dist-cjs/dropdown-next/useDropdownNext.js +169 -0
  48. package/dist-cjs/dropdown-next/useDropdownNext.js.map +1 -0
  49. package/dist-cjs/form-field-legacy/FormFieldLegacy.css.js +1 -1
  50. package/dist-cjs/index.js +19 -13
  51. package/dist-cjs/index.js.map +1 -1
  52. package/dist-cjs/list/Highlighter.js +1 -1
  53. package/dist-cjs/list/Highlighter.js.map +1 -1
  54. package/dist-cjs/list-next/ListItemNext.css.js +1 -1
  55. package/dist-cjs/list-next/ListItemNext.js +17 -6
  56. package/dist-cjs/list-next/ListItemNext.js.map +1 -1
  57. package/dist-cjs/list-next/ListNext.js +21 -10
  58. package/dist-cjs/list-next/ListNext.js.map +1 -1
  59. package/dist-cjs/list-next/ListNextContext.js.map +1 -1
  60. package/dist-cjs/list-next/useList.js +96 -37
  61. package/dist-cjs/list-next/useList.js.map +1 -1
  62. package/dist-cjs/logo/Logo.css.js +1 -1
  63. package/dist-cjs/logo/LogoImage.css.js +6 -0
  64. package/dist-cjs/logo/LogoImage.css.js.map +1 -0
  65. package/dist-cjs/logo/LogoImage.js +9 -0
  66. package/dist-cjs/logo/LogoImage.js.map +1 -1
  67. package/dist-cjs/logo/LogoSeparator.css.js +1 -1
  68. package/dist-cjs/{nav-item/ExpansionButton.js → navigation-item/ExpansionIcon.js} +8 -13
  69. package/dist-cjs/navigation-item/ExpansionIcon.js.map +1 -0
  70. package/dist-cjs/navigation-item/NavigationItem.css.js +6 -0
  71. package/dist-cjs/navigation-item/NavigationItem.css.js.map +1 -0
  72. package/dist-cjs/navigation-item/NavigationItem.js +96 -0
  73. package/dist-cjs/navigation-item/NavigationItem.js.map +1 -0
  74. package/dist-cjs/progress/CircularProgress/CircularProgress.css.js +1 -1
  75. package/dist-cjs/progress/CircularProgress/CircularProgress.js +44 -51
  76. package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
  77. package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +1 -1
  78. package/dist-cjs/progress/LinearProgress/LinearProgress.js +9 -49
  79. package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
  80. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.css.js +1 -1
  81. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js +5 -13
  82. package/dist-cjs/stepped-tracker/StepLabel/StepLabel.js.map +1 -1
  83. package/dist-cjs/stepped-tracker/SteppedTracker.css.js +1 -1
  84. package/dist-cjs/stepped-tracker/SteppedTracker.js +0 -5
  85. package/dist-cjs/stepped-tracker/SteppedTracker.js.map +1 -1
  86. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js +1 -7
  87. package/dist-cjs/stepped-tracker/SteppedTrackerContext.js.map +1 -1
  88. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js +1 -1
  89. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js +1 -1
  90. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +2 -14
  91. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
  92. package/dist-cjs/switch/Switch.css.js +1 -1
  93. package/dist-cjs/switch/Switch.js +67 -72
  94. package/dist-cjs/switch/Switch.js.map +1 -1
  95. package/dist-cjs/toast-group/ToastGroup.css.js +6 -0
  96. package/dist-cjs/toast-group/ToastGroup.css.js.map +1 -0
  97. package/dist-cjs/toast-group/ToastGroup.js +32 -0
  98. package/dist-cjs/toast-group/ToastGroup.js.map +1 -0
  99. package/dist-es/badge/Badge.css.js +1 -1
  100. package/dist-es/badge/Badge.js +9 -25
  101. package/dist-es/badge/Badge.js.map +1 -1
  102. package/dist-es/combo-box-next/ComboBoxNext.css.js +4 -0
  103. package/dist-es/combo-box-next/ComboBoxNext.css.js.map +1 -0
  104. package/dist-es/combo-box-next/ComboBoxNext.js +173 -0
  105. package/dist-es/combo-box-next/ComboBoxNext.js.map +1 -0
  106. package/dist-es/combo-box-next/useComboBox.js +133 -0
  107. package/dist-es/combo-box-next/useComboBox.js.map +1 -0
  108. package/dist-es/combo-box-next/useComboboxPortal.js +65 -0
  109. package/dist-es/combo-box-next/useComboboxPortal.js.map +1 -0
  110. package/dist-es/combo-box-next/utils.js +35 -0
  111. package/dist-es/combo-box-next/utils.js.map +1 -0
  112. package/dist-es/content-status/ContentStatus.js +0 -2
  113. package/dist-es/content-status/ContentStatus.js.map +1 -1
  114. package/dist-es/content-status/internal/StatusIndicator.js +0 -2
  115. package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
  116. package/dist-es/dialog/Dialog.css.js +1 -1
  117. package/dist-es/dialog/Dialog.js +53 -56
  118. package/dist-es/dialog/Dialog.js.map +1 -1
  119. package/dist-es/dialog/DialogActions.css.js +1 -1
  120. package/dist-es/dialog/DialogActions.js +15 -17
  121. package/dist-es/dialog/DialogActions.js.map +1 -1
  122. package/dist-es/dialog/DialogCloseButton.css.js +4 -0
  123. package/dist-es/dialog/DialogCloseButton.css.js.map +1 -0
  124. package/dist-es/dialog/DialogCloseButton.js +31 -0
  125. package/dist-es/dialog/DialogCloseButton.js.map +1 -0
  126. package/dist-es/dialog/DialogContent.css.js +1 -1
  127. package/dist-es/dialog/DialogContent.js +20 -29
  128. package/dist-es/dialog/DialogContent.js.map +1 -1
  129. package/dist-es/dialog/DialogContext.js +9 -0
  130. package/dist-es/dialog/DialogContext.js.map +1 -0
  131. package/dist-es/dialog/DialogTitle.css.js +1 -1
  132. package/dist-es/dialog/DialogTitle.js +37 -42
  133. package/dist-es/dialog/DialogTitle.js.map +1 -1
  134. package/dist-es/dialog/useDialog.js +27 -0
  135. package/dist-es/dialog/useDialog.js.map +1 -0
  136. package/dist-es/drawer/Drawer.css.js +1 -1
  137. package/dist-es/drawer/Drawer.js +40 -46
  138. package/dist-es/drawer/Drawer.js.map +1 -1
  139. package/dist-es/drawer/useDrawer.js +27 -0
  140. package/dist-es/drawer/useDrawer.js.map +1 -0
  141. package/dist-es/dropdown-next/DropdownNext.css.js +4 -0
  142. package/dist-es/dropdown-next/DropdownNext.css.js.map +1 -0
  143. package/dist-es/dropdown-next/DropdownNext.js +177 -0
  144. package/dist-es/dropdown-next/DropdownNext.js.map +1 -0
  145. package/dist-es/dropdown-next/useDropdownNext.js +165 -0
  146. package/dist-es/dropdown-next/useDropdownNext.js.map +1 -0
  147. package/dist-es/form-field-legacy/FormFieldLegacy.css.js +1 -1
  148. package/dist-es/index.js +9 -6
  149. package/dist-es/index.js.map +1 -1
  150. package/dist-es/list/Highlighter.js +1 -1
  151. package/dist-es/list/Highlighter.js.map +1 -1
  152. package/dist-es/list-next/ListItemNext.css.js +1 -1
  153. package/dist-es/list-next/ListItemNext.js +17 -6
  154. package/dist-es/list-next/ListItemNext.js.map +1 -1
  155. package/dist-es/list-next/ListNext.js +21 -10
  156. package/dist-es/list-next/ListNext.js.map +1 -1
  157. package/dist-es/list-next/ListNextContext.js.map +1 -1
  158. package/dist-es/list-next/useList.js +98 -39
  159. package/dist-es/list-next/useList.js.map +1 -1
  160. package/dist-es/logo/Logo.css.js +1 -1
  161. package/dist-es/logo/LogoImage.css.js +4 -0
  162. package/dist-es/logo/LogoImage.css.js.map +1 -0
  163. package/dist-es/logo/LogoImage.js +9 -0
  164. package/dist-es/logo/LogoImage.js.map +1 -1
  165. package/dist-es/logo/LogoSeparator.css.js +1 -1
  166. package/dist-es/navigation-item/ExpansionIcon.js +27 -0
  167. package/dist-es/navigation-item/ExpansionIcon.js.map +1 -0
  168. package/dist-es/navigation-item/NavigationItem.css.js +4 -0
  169. package/dist-es/navigation-item/NavigationItem.css.js.map +1 -0
  170. package/dist-es/navigation-item/NavigationItem.js +92 -0
  171. package/dist-es/navigation-item/NavigationItem.js.map +1 -0
  172. package/dist-es/progress/CircularProgress/CircularProgress.css.js +1 -1
  173. package/dist-es/progress/CircularProgress/CircularProgress.js +45 -52
  174. package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
  175. package/dist-es/progress/LinearProgress/LinearProgress.css.js +1 -1
  176. package/dist-es/progress/LinearProgress/LinearProgress.js +9 -49
  177. package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
  178. package/dist-es/stepped-tracker/StepLabel/StepLabel.css.js +1 -1
  179. package/dist-es/stepped-tracker/StepLabel/StepLabel.js +7 -15
  180. package/dist-es/stepped-tracker/StepLabel/StepLabel.js.map +1 -1
  181. package/dist-es/stepped-tracker/SteppedTracker.css.js +1 -1
  182. package/dist-es/stepped-tracker/SteppedTracker.js +1 -6
  183. package/dist-es/stepped-tracker/SteppedTracker.js.map +1 -1
  184. package/dist-es/stepped-tracker/SteppedTrackerContext.js +1 -7
  185. package/dist-es/stepped-tracker/SteppedTrackerContext.js.map +1 -1
  186. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js +1 -1
  187. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js +1 -1
  188. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +3 -15
  189. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
  190. package/dist-es/switch/Switch.css.js +1 -1
  191. package/dist-es/switch/Switch.js +70 -75
  192. package/dist-es/switch/Switch.js.map +1 -1
  193. package/dist-es/toast-group/ToastGroup.css.js +4 -0
  194. package/dist-es/toast-group/ToastGroup.css.js.map +1 -0
  195. package/dist-es/toast-group/ToastGroup.js +28 -0
  196. package/dist-es/toast-group/ToastGroup.js.map +1 -0
  197. package/dist-types/badge/Badge.d.ts +5 -16
  198. package/dist-types/combo-box-next/ComboBoxNext.d.ts +70 -0
  199. package/dist-types/combo-box-next/index.d.ts +1 -0
  200. package/dist-types/combo-box-next/useComboBox.d.ts +34 -0
  201. package/dist-types/combo-box-next/useComboboxPortal.d.ts +15 -0
  202. package/dist-types/combo-box-next/utils.d.ts +8 -0
  203. package/dist-types/content-status/internal/StatusIndicator.d.ts +2 -2
  204. package/dist-types/dialog/Dialog.d.ts +17 -12
  205. package/dist-types/dialog/DialogActions.d.ts +1 -3
  206. package/dist-types/dialog/DialogCloseButton.d.ts +3 -0
  207. package/dist-types/dialog/DialogContent.d.ts +1 -3
  208. package/dist-types/dialog/DialogContext.d.ts +9 -0
  209. package/dist-types/dialog/DialogTitle.d.ts +7 -8
  210. package/dist-types/dialog/index.d.ts +4 -2
  211. package/dist-types/dialog/useDialog.d.ts +27 -0
  212. package/dist-types/drawer/Drawer.d.ts +3 -12
  213. package/dist-types/drawer/index.d.ts +1 -0
  214. package/dist-types/drawer/useDrawer.d.ts +27 -0
  215. package/dist-types/dropdown-next/DropdownNext.d.ts +42 -0
  216. package/dist-types/dropdown-next/index.d.ts +1 -0
  217. package/dist-types/dropdown-next/useDropdownNext.d.ts +31 -0
  218. package/dist-types/index.d.ts +4 -3
  219. package/dist-types/list-next/ListItemNext.d.ts +6 -1
  220. package/dist-types/list-next/ListNext.d.ts +7 -2
  221. package/dist-types/list-next/ListNextContext.d.ts +4 -2
  222. package/dist-types/list-next/useList.d.ts +16 -9
  223. package/dist-types/navigation-item/ExpansionIcon.d.ts +3 -0
  224. package/dist-types/navigation-item/NavigationItem.d.ts +36 -0
  225. package/dist-types/navigation-item/index.d.ts +1 -0
  226. package/dist-types/progress/CircularProgress/CircularProgress.d.ts +1 -21
  227. package/dist-types/progress/LinearProgress/LinearProgress.d.ts +1 -26
  228. package/dist-types/stepped-tracker/StepLabel/StepLabel.d.ts +3 -5
  229. package/dist-types/stepped-tracker/SteppedTrackerContext.d.ts +1 -4
  230. package/dist-types/stepped-tracker/TrackerStep/index.d.ts +0 -1
  231. package/dist-types/switch/Switch.d.ts +43 -6
  232. package/dist-types/toast-group/ToastGroup.d.ts +5 -0
  233. package/dist-types/toast-group/index.d.ts +1 -0
  234. package/package.json +5 -5
  235. package/dist-cjs/control-label/ControlLabel.css.js +0 -6
  236. package/dist-cjs/control-label/ControlLabel.css.js.map +0 -1
  237. package/dist-cjs/control-label/ControlLabel.js +0 -48
  238. package/dist-cjs/control-label/ControlLabel.js.map +0 -1
  239. package/dist-cjs/dialog/internal/DialogContext.js.map +0 -1
  240. package/dist-cjs/multiline-input/MultilineInput.css.js +0 -6
  241. package/dist-cjs/multiline-input/MultilineInput.css.js.map +0 -1
  242. package/dist-cjs/multiline-input/MultilineInput.js +0 -162
  243. package/dist-cjs/multiline-input/MultilineInput.js.map +0 -1
  244. package/dist-cjs/nav-item/ExpansionButton.js.map +0 -1
  245. package/dist-cjs/nav-item/NavItem.css.js +0 -6
  246. package/dist-cjs/nav-item/NavItem.css.js.map +0 -1
  247. package/dist-cjs/nav-item/NavItem.js +0 -78
  248. package/dist-cjs/nav-item/NavItem.js.map +0 -1
  249. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js +0 -21
  250. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js.map +0 -1
  251. package/dist-cjs/stepped-tracker/useDetectTruncatedText.js +0 -71
  252. package/dist-cjs/stepped-tracker/useDetectTruncatedText.js.map +0 -1
  253. package/dist-cjs/switch/assets/CheckedIcon.js +0 -34
  254. package/dist-cjs/switch/assets/CheckedIcon.js.map +0 -1
  255. package/dist-es/control-label/ControlLabel.css.js +0 -4
  256. package/dist-es/control-label/ControlLabel.css.js.map +0 -1
  257. package/dist-es/control-label/ControlLabel.js +0 -43
  258. package/dist-es/control-label/ControlLabel.js.map +0 -1
  259. package/dist-es/dialog/internal/DialogContext.js +0 -6
  260. package/dist-es/dialog/internal/DialogContext.js.map +0 -1
  261. package/dist-es/multiline-input/MultilineInput.css.js +0 -4
  262. package/dist-es/multiline-input/MultilineInput.css.js.map +0 -1
  263. package/dist-es/multiline-input/MultilineInput.js +0 -158
  264. package/dist-es/multiline-input/MultilineInput.js.map +0 -1
  265. package/dist-es/nav-item/ExpansionButton.js +0 -32
  266. package/dist-es/nav-item/ExpansionButton.js.map +0 -1
  267. package/dist-es/nav-item/NavItem.css.js +0 -4
  268. package/dist-es/nav-item/NavItem.css.js.map +0 -1
  269. package/dist-es/nav-item/NavItem.js +0 -74
  270. package/dist-es/nav-item/NavItem.js.map +0 -1
  271. package/dist-es/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js +0 -16
  272. package/dist-es/stepped-tracker/TrackerStep/TrackerStepTooltipContext.js.map +0 -1
  273. package/dist-es/stepped-tracker/useDetectTruncatedText.js +0 -69
  274. package/dist-es/stepped-tracker/useDetectTruncatedText.js.map +0 -1
  275. package/dist-es/switch/assets/CheckedIcon.js +0 -30
  276. package/dist-es/switch/assets/CheckedIcon.js.map +0 -1
  277. package/dist-types/control-label/ControlLabel.d.ts +0 -8
  278. package/dist-types/control-label/index.d.ts +0 -1
  279. package/dist-types/dialog/internal/DialogContext.d.ts +0 -6
  280. package/dist-types/multiline-input/MultilineInput.d.ts +0 -40
  281. package/dist-types/multiline-input/index.d.ts +0 -1
  282. package/dist-types/nav-item/ExpansionButton.d.ts +0 -3
  283. package/dist-types/nav-item/NavItem.d.ts +0 -17
  284. package/dist-types/nav-item/index.d.ts +0 -1
  285. package/dist-types/stepped-tracker/TrackerStep/TrackerStepTooltipContext.d.ts +0 -7
  286. package/dist-types/stepped-tracker/useDetectTruncatedText.d.ts +0 -11
  287. package/dist-types/switch/assets/CheckedIcon.d.ts +0 -4
@@ -1,4 +0,0 @@
1
- var css_248z = "/* Style applied to the root element */\n.saltMultilineInput {\n --multilineInput-borderColor: var(--salt-editable-borderColor);\n --multilineInput-borderStyle: var(--salt-editable-borderStyle);\n --multilineInput-outlineColor: var(--salt-focused-outlineColor);\n --multilineInput-paddingInline: var(--salt-spacing-100);\n --multilineInput-border: none;\n --multilineInput-activationIndicator-borderWidth: var(--salt-size-border);\n\n align-items: center;\n background: var(--multilineInput-background);\n border: var(--multilineInput-border);\n color: var(--salt-text-primary-foreground);\n display: inline-flex;\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-fontSize);\n height: auto;\n line-height: var(--salt-text-lineHeight);\n min-height: var(--salt-size-base);\n min-width: 4em;\n padding-inline: var(--multilineInput-paddingInline);\n position: relative;\n width: 100%;\n}\n\n/* Style applied on hover */\n.saltMultilineInput:hover {\n --multilineInput-borderStyle: var(--salt-editable-borderStyle-hover);\n --multilineInput-borderColor: var(--salt-editable-borderColor-hover);\n\n background: var(--multilineInput-background-hover);\n cursor: var(--salt-editable-cursor-hover);\n}\n\n/* Style applied when active */\n.saltMultilineInput:active {\n --multilineInput-borderColor: var(--salt-editable-borderColor-active);\n --multilineInput-borderStyle: var(--salt-editable-borderStyle-active);\n --multilineInput-activationIndicator-borderWidth: var(--salt-editable-borderWidth-active);\n\n background: var(--multilineInput-background-active);\n cursor: var(--salt-editable-cursor-active);\n}\n\n/* Class applied if `variant=\"primary\"` */\n.saltMultilineInput-primary {\n --multilineInput-background: var(--salt-editable-primary-background);\n --multilineInput-background-active: var(--salt-editable-primary-background-active);\n --multilineInput-background-hover: var(--salt-editable-primary-background-hover);\n --multilineInput-background-disabled: var(--salt-editable-primary-background-disabled);\n --multilineInput-background-readonly: var(--salt-editable-primary-background-readonly);\n}\n\n/* Class applied if `variant=\"secondary\"` */\n.saltMultilineInput-secondary {\n --multilineInput-background: var(--salt-editable-secondary-background);\n --multilineInput-background-active: var(--salt-editable-secondary-background-active);\n --multilineInput-background-hover: var(--salt-editable-secondary-background-active);\n --multilineInput-background-disabled: var(--salt-editable-secondary-background-disabled);\n --multilineInput-background-readonly: var(--salt-editable-secondary-background-readonly);\n}\n\n/* Style applied to input if `validationState=\"error\"` */\n.saltMultilineInput-error,\n.saltMultilineInput-error:hover {\n --multilineInput-background: var(--salt-status-error-background);\n --multilineInput-background-active: var(--salt-status-error-background);\n --multilineInput-background-hover: var(--salt-status-error-background);\n --multilineInput-borderColor: var(--salt-status-error-borderColor);\n --multilineInput-outlineColor: var(--salt-status-error-borderColor);\n}\n\n/* Style applied to input if `validationState=\"warning\"` */\n.saltMultilineInput-warning,\n.saltMultilineInput-warning:hover {\n --multilineInput-background: var(--salt-status-warning-background);\n --multilineInput-background-active: var(--salt-status-warning-background);\n --multilineInput-background-hover: var(--salt-status-warning-background);\n --multilineInput-borderColor: var(--salt-status-warning-borderColor);\n --multilineInput-outlineColor: var(--salt-status-warning-borderColor);\n}\n\n/* Style applied to input if `validationState=\"success\"` */\n.saltMultilineInput-success,\n.saltMultilineInput-success:hover {\n --multilineInput-background: var(--salt-status-success-background);\n --multilineInput-background-active: var(--salt-status-success-background);\n --multilineInput-background-hover: var(--salt-status-success-background);\n --multilineInput-borderColor: var(--salt-status-success-borderColor);\n --multilineInput-outlineColor: var(--salt-status-success-borderColor);\n}\n\n.saltMultilineInput.saltMultilineInput-withAdornmentRow {\n display: flex;\n flex-wrap: wrap;\n}\n\n/* Style applied to inner textarea element */\n.saltMultilineInput-textarea {\n background: none;\n border: none;\n box-sizing: content-box;\n color: inherit;\n cursor: inherit;\n display: inline-flex;\n height: calc(var(--saltMultilineInput-rows, 3) * var(--salt-text-lineHeight));\n flex-grow: 1;\n font: inherit;\n letter-spacing: 0;\n margin: var(--salt-spacing-75) 0;\n min-width: 0;\n overflow: hidden;\n resize: none;\n padding: 0;\n}\n\n/* Style applied to placeholder */\n.saltMultilineInput-textarea::placeholder {\n font-weight: var(--salt-text-fontWeight-small);\n}\n\n/* Reset in the class */\n.saltMultilineInput-textarea:focus {\n outline: none;\n}\n\n/* Style applied to selected input */\n.saltMultilineInput-textarea::selection {\n background: var(--salt-text-background-selected);\n}\n\n/* Styling when focused */\n.saltMultilineInput-focused {\n --multilineInput-borderColor: var(--multilineInput-outlineColor);\n --multilineInput-activationIndicator-borderWidth: var(--salt-editable-borderWidth-active);\n\n outline: var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) var(--multilineInput-outlineColor);\n}\n\n/* Style applied if `readOnly={true}` */\n.saltMultilineInput-readOnly,\n.saltMultilineInput-readOnly:active,\n.saltMultilineInput-readOnly:hover {\n --multilineInput-borderColor: var(--salt-editable-borderColor-readonly);\n --multilineInput-borderStyle: var(--salt-editable-borderStyle-readonly);\n --multilineInput-activationIndicator-borderWidth: var(--salt-size-border);\n --multilineInput-paddingInline: 0;\n\n background: var(--multilineInput-background-readonly);\n cursor: var(--salt-editable-cursor-readonly);\n}\n\n/* Style applied to selected text if `disabled={true}` */\n.saltMultilineInput-disabled .saltMultilineInput-textarea::selection {\n background: none;\n}\n\n/* Style applied when `disabled={true}` */\n.saltMultilineInput-disabled,\n.saltMultilineInput-disabled:hover,\n.saltMultilineInput-disabled:active {\n --multilineInput-borderColor: var(--salt-editable-borderColor-disabled);\n --multilineInput-borderStyle: var(--salt-editable-borderStyle-disabled);\n --multilineInput-activationIndicator-borderWidth: var(--salt-size-border);\n\n background: var(--multilineInput-background-disabled);\n cursor: var(--salt-editable-cursor-disabled);\n color: var(--salt-text-primary-foreground-disabled);\n}\n\n/* Style for activation indicator */\n.saltMultilineInput-activationIndicator {\n left: 0;\n bottom: 0;\n width: 100%;\n position: absolute;\n border-bottom: var(--multilineInput-activationIndicator-borderWidth) var(--multilineInput-borderStyle) var(--multilineInput-borderColor);\n}\n\n/* Style applied if `bordered={true}` */\n.saltMultilineInput.saltMultilineInput-bordered {\n --multilineInput-border: var(--salt-size-border) var(--salt-container-borderStyle) var(--multilineInput-borderColor);\n --multilineInput-paddingInline: var(--salt-spacing-100);\n --multilineInput-activationIndicator-borderWidth: 0;\n}\n\n/* Style applied if active or focused when `bordered={true}` */\n.saltMultilineInput-bordered:active,\n.saltMultilineInput-bordered.saltMultilineInput-focused {\n --multilineInput-activationIndicator-borderWidth: var(--salt-editable-borderWidth-active);\n}\n\n/* Styling when focused if `disabled={true}` or `readOnly={true}` when `bordered={true}` */\n.saltMultilineInput-bordered.saltMultilineInput-readOnly:hover,\n.saltMultilineInput-bordered.saltMultilineInput-disabled:hover {\n --multilineInput-activationIndicator-borderWidth: 0;\n}\n\n/* Style applied to adornment containers */\n.saltMultilineInput-endAdornmentContainer,\n.saltMultilineInput-startAdornmentContainer {\n align-items: center;\n display: inline-flex;\n min-height: var(--salt-size-base);\n column-gap: var(--salt-spacing-100);\n}\n\n/* Style applied to start adornment container */\n.saltMultilineInput-startAdornmentContainer {\n align-self: self-start;\n padding-right: var(--salt-spacing-100);\n}\n\n/* Style applied to suffix adornment container */\n.saltMultilineInput-suffixAdornments {\n align-self: self-end;\n}\n\n/* Style applied to suffix adornment container when end adornments are provided */\n.saltMultilineInput-withAdornmentRow .saltMultilineInput-suffixAdornments {\n display: inline-flex;\n flex-basis: 100%;\n justify-content: flex-end;\n}\n\n/* Style applied to end adornment container */\n.saltMultilineInput-endAdornmentContainer {\n padding-left: var(--multilineInput-paddingInline);\n}\n\n/* Style applied to status adornment container */\n.saltMultilineInput-statusAdornmentContainer {\n align-self: self-end;\n display: inline-flex;\n min-height: var(--salt-size-base);\n}\n\n/* Style applied to button start adornment if first child */\n.saltMultilineInput-startAdornmentContainer .saltButton:first-child {\n margin-left: calc(var(--salt-spacing-50) * -1);\n}\n\n/* Style applied to button end adornment if last child */\n.saltMultilineInput-endAdornmentContainer .saltButton:last-child {\n margin-right: calc(var(--salt-spacing-50) * -1);\n}\n/* Style applied to button end adornment if last child */\n.saltMultilineInput-readOnly .saltMultilineInput-endAdornmentContainer .saltButton:last-child {\n margin-right: 0;\n}\n\n/* Styles for button adornment */\n.saltMultilineInput .saltButton {\n --saltButton-padding: 0;\n --saltButton-height: calc(var(--salt-size-base) - var(--salt-spacing-50));\n --saltButton-width: calc(var(--salt-size-base) - var(--salt-spacing-50));\n}\n";
2
-
3
- export { css_248z as default };
4
- //# sourceMappingURL=MultilineInput.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MultilineInput.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,158 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { clsx } from 'clsx';
3
- import { forwardRef, useState } from 'react';
4
- import { makePrefixer, useFormFieldProps, useControlled, StatusAdornment } from '@salt-ds/core';
5
- import { useComponentCssInjection } from '@salt-ds/styles';
6
- import { useWindow } from '@salt-ds/window';
7
- import css_248z from './MultilineInput.css.js';
8
-
9
- const withBaseName = makePrefixer("saltMultilineInput");
10
- const MultilineInput = forwardRef(
11
- function MultilineInput2({
12
- "aria-activedescendant": ariaActiveDescendant,
13
- "aria-expanded": ariaExpanded,
14
- "aria-owns": ariaOwns,
15
- bordered = false,
16
- className: classNameProp,
17
- disabled,
18
- endAdornment,
19
- id,
20
- placeholder,
21
- readOnly,
22
- role,
23
- rows = 3,
24
- startAdornment,
25
- style,
26
- textAreaProps = {},
27
- textAreaRef,
28
- value: valueProp,
29
- defaultValue: defaultValueProp = valueProp === void 0 ? "" : void 0,
30
- validationStatus: validationStatusProp,
31
- variant = "primary",
32
- ...other
33
- }, ref) {
34
- const targetWindow = useWindow();
35
- useComponentCssInjection({
36
- testId: "salt-multiline-input",
37
- css: css_248z,
38
- window: targetWindow
39
- });
40
- const restA11yProps = {
41
- "aria-activedescendant": ariaActiveDescendant,
42
- "aria-expanded": ariaExpanded,
43
- "aria-owns": ariaOwns
44
- };
45
- const [focused, setFocused] = useState(false);
46
- const {
47
- "aria-describedby": textAreaDescribedBy,
48
- "aria-labelledby": textAreaLabelledBy,
49
- onBlur,
50
- onChange,
51
- onFocus,
52
- required: textAreaRequired,
53
- ...restTextAreaProps
54
- } = textAreaProps;
55
- const {
56
- a11yProps: {
57
- "aria-describedby": formFieldDescribedBy,
58
- "aria-labelledby": formFieldLabelledBy
59
- } = {},
60
- disabled: formFieldDisabled,
61
- readOnly: formFieldReadOnly,
62
- necessity: formFieldRequired,
63
- validationStatus: formFieldValidationStatus
64
- } = useFormFieldProps();
65
- const isDisabled = disabled || formFieldDisabled;
66
- const isReadOnly = readOnly || formFieldReadOnly;
67
- const validationStatus = formFieldValidationStatus != null ? formFieldValidationStatus : validationStatusProp;
68
- const isRequired = formFieldRequired ? ["required", "asterisk"].includes(formFieldRequired) : textAreaRequired;
69
- const [value, setValue] = useControlled({
70
- controlled: valueProp,
71
- default: defaultValueProp,
72
- name: "MultilineInput",
73
- state: "value"
74
- });
75
- const handleChange = (event) => {
76
- const value2 = event.target.value;
77
- setValue(value2);
78
- onChange == null ? void 0 : onChange(event);
79
- };
80
- const handleBlur = (event) => {
81
- onBlur == null ? void 0 : onBlur(event);
82
- setFocused(false);
83
- };
84
- const handleFocus = (event) => {
85
- onFocus == null ? void 0 : onFocus(event);
86
- setFocused(true);
87
- };
88
- const multilineInputStyles = {
89
- "--saltMultilineInput-rows": rows,
90
- ...style
91
- };
92
- return /* @__PURE__ */ jsxs("div", {
93
- className: clsx(
94
- withBaseName(),
95
- withBaseName(variant),
96
- {
97
- [withBaseName("withAdornmentRow")]: endAdornment,
98
- [withBaseName("bordered")]: bordered,
99
- [withBaseName("focused")]: !isDisabled && !isReadOnly && focused,
100
- [withBaseName("disabled")]: isDisabled,
101
- [withBaseName("readOnly")]: isReadOnly,
102
- [withBaseName(validationStatus || "")]: validationStatus
103
- },
104
- classNameProp
105
- ),
106
- ref,
107
- style: multilineInputStyles,
108
- ...other,
109
- children: [
110
- startAdornment && /* @__PURE__ */ jsx("div", {
111
- className: withBaseName("startAdornmentContainer"),
112
- children: startAdornment
113
- }),
114
- /* @__PURE__ */ jsx("textarea", {
115
- "aria-describedby": clsx(formFieldDescribedBy, textAreaDescribedBy),
116
- "aria-labelledby": clsx(formFieldLabelledBy, textAreaLabelledBy),
117
- className: clsx(withBaseName("textarea"), textAreaProps == null ? void 0 : textAreaProps.className),
118
- disabled: isDisabled,
119
- id,
120
- readOnly: isReadOnly,
121
- ref: textAreaRef,
122
- required: isRequired,
123
- role,
124
- rows,
125
- tabIndex: isReadOnly || isDisabled ? -1 : 0,
126
- onBlur: handleBlur,
127
- onChange: handleChange,
128
- onFocus: !isDisabled && !isReadOnly ? handleFocus : void 0,
129
- placeholder,
130
- value,
131
- ...restA11yProps,
132
- ...restTextAreaProps
133
- }),
134
- /* @__PURE__ */ jsxs("div", {
135
- className: withBaseName("suffixAdornments"),
136
- children: [
137
- !isDisabled && !isReadOnly && validationStatus && /* @__PURE__ */ jsx("div", {
138
- className: withBaseName("statusAdornmentContainer"),
139
- children: /* @__PURE__ */ jsx(StatusAdornment, {
140
- status: validationStatus
141
- })
142
- }),
143
- endAdornment && /* @__PURE__ */ jsx("div", {
144
- className: withBaseName("endAdornmentContainer"),
145
- children: endAdornment
146
- })
147
- ]
148
- }),
149
- /* @__PURE__ */ jsx("div", {
150
- className: withBaseName("activationIndicator")
151
- })
152
- ]
153
- });
154
- }
155
- );
156
-
157
- export { MultilineInput };
158
- //# sourceMappingURL=MultilineInput.js.map
@@ -1 +0,0 @@
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":["MultilineInput","multilineInputCss","value"],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { ChevronDownIcon, ChevronRightIcon, ChevronUpIcon } from '@salt-ds/icons';
3
- import { Button } from '@salt-ds/core';
4
-
5
- const iconExpansionMap = {
6
- vertical: {
7
- expanded: ChevronDownIcon,
8
- collapsed: ChevronRightIcon
9
- },
10
- horizontal: {
11
- expanded: ChevronDownIcon,
12
- collapsed: ChevronUpIcon
13
- }
14
- };
15
- function ExpansionButton({
16
- expanded = false,
17
- orientation = "horizontal",
18
- ...rest
19
- }) {
20
- const Icon = iconExpansionMap[orientation][expanded ? "expanded" : "collapsed"];
21
- return /* @__PURE__ */ jsx(Button, {
22
- "aria-label": "expand",
23
- variant: "secondary",
24
- ...rest,
25
- children: /* @__PURE__ */ jsx(Icon, {
26
- "aria-hidden": "true"
27
- })
28
- });
29
- }
30
-
31
- export { ExpansionButton };
32
- //# sourceMappingURL=ExpansionButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExpansionButton.js","sources":["../src/nav-item/ExpansionButton.tsx"],"sourcesContent":["import {\n ChevronDownIcon,\n ChevronRightIcon,\n ChevronUpIcon,\n} from \"@salt-ds/icons\";\nimport { ComponentPropsWithoutRef } from \"react\";\nimport { Button } from \"@salt-ds/core\";\nimport { NavItemProps } from \"./NavItem\";\n\nconst iconExpansionMap = {\n vertical: {\n expanded: ChevronDownIcon,\n collapsed: ChevronRightIcon,\n },\n horizontal: {\n expanded: ChevronDownIcon,\n collapsed: ChevronUpIcon,\n },\n};\n\nexport function ExpansionButton({\n expanded = false,\n orientation = \"horizontal\",\n ...rest\n}: Pick<NavItemProps, \"expanded\" | \"orientation\"> &\n ComponentPropsWithoutRef<\"button\">) {\n const Icon =\n iconExpansionMap[orientation][expanded ? \"expanded\" : \"collapsed\"];\n return (\n <Button aria-label=\"expand\" variant=\"secondary\" {...rest}>\n <Icon aria-hidden=\"true\" />\n </Button>\n );\n}\n"],"names":[],"mappings":";;;;AASA,MAAM,gBAAmB,GAAA;AAAA,EACvB,QAAU,EAAA;AAAA,IACR,QAAU,EAAA,eAAA;AAAA,IACV,SAAW,EAAA,gBAAA;AAAA,GACb;AAAA,EACA,UAAY,EAAA;AAAA,IACV,QAAU,EAAA,eAAA;AAAA,IACV,SAAW,EAAA,aAAA;AAAA,GACb;AACF,CAAA,CAAA;AAEO,SAAS,eAAgB,CAAA;AAAA,EAC9B,QAAW,GAAA,KAAA;AAAA,EACX,WAAc,GAAA,YAAA;AAAA,EACX,GAAA,IAAA;AACL,CACsC,EAAA;AACpC,EAAA,MAAM,IACJ,GAAA,gBAAA,CAAiB,WAAa,CAAA,CAAA,QAAA,GAAW,UAAa,GAAA,WAAA,CAAA,CAAA;AACxD,EAAA,uBACG,GAAA,CAAA,MAAA,EAAA;AAAA,IAAO,YAAW,EAAA,QAAA;AAAA,IAAS,OAAQ,EAAA,WAAA;AAAA,IAAa,GAAG,IAAA;AAAA,IAClD,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA;AAAA,MAAK,aAAY,EAAA,MAAA;AAAA,KAAO,CAAA;AAAA,GAC3B,CAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +0,0 @@
1
- var css_248z = ".saltNavItem {\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n background: var(--salt-navigable-primary-background);\n gap: var(--salt-spacing-75);\n}\n\n.saltNavItem-horizontal {\n min-height: calc(var(--salt-size-stackable) + var(--salt-size-accent) + var(--salt-spacing-100));\n padding: var(--salt-spacing-100);\n}\n\n.saltNavItem-vertical {\n min-height: var(--salt-size-stackable);\n}\n\n.saltNavItem-label,\n.saltNavItem-label:hover {\n color: var(--salt-text-primary-foreground);\n line-height: var(--salt-text-lineHeight);\n font-family: var(--salt-text-fontFamily);\n padding-left: calc(var(--saltNavItem-level, 0) * var(--salt-spacing-150));\n text-decoration: none;\n}\n\n.saltNavItem-vertical .saltNavItem-expandButton {\n justify-self: end;\n margin: calc((var(--salt-size-stackable) - var(--salt-size-base)) / 2);\n}\n\n.saltNavItem-horizontal {\n padding-top: calc(var(--salt-spacing-100) + var(--salt-size-accent));\n}\n\n.saltNavItem-vertical {\n padding-left: calc(var(--salt-spacing-200) + var(--salt-size-accent));\n}\n\n.saltNavItem:hover,\n.saltNavItem:focus {\n background: var(--salt-navigable-primary-background-hover);\n}\n\n.saltNavItem:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n.saltNavItem-active {\n background: var(--salt-navigable-primary-background-active);\n}\n\n.saltNavItem::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n}\n\n.saltNavItem-horizontal::after {\n width: 100%;\n height: var(--salt-size-accent);\n}\n\n.saltNavItem-vertical::after {\n width: var(--salt-size-accent);\n height: 100%;\n}\n\n.saltNavItem-horizontal:hover::after,\n.saltNavItem-horizontal:focus::after {\n background: var(--salt-navigable-indicator-hover);\n}\n\n.saltNavItem.saltNavItem-active::after,\n.saltNavItem.saltNavItem-active:hover::after,\n.saltNavItem.saltNavItem-active:focus::after {\n background: var(--saltNavItem-indicator-color, var(--salt-navigable-indicator-active));\n}\n";
2
-
3
- export { css_248z as default };
4
- //# sourceMappingURL=NavItem.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavItem.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,74 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { forwardRef } from 'react';
3
- import { makePrefixer, Link } from '@salt-ds/core';
4
- import { clsx } from 'clsx';
5
- import { ExpansionButton } from './ExpansionButton.js';
6
- import css_248z from './NavItem.css.js';
7
- import { useWindow } from '@salt-ds/window';
8
- import { useComponentCssInjection } from '@salt-ds/styles';
9
-
10
- const withBaseName = makePrefixer("saltNavItem");
11
- const NavItem = forwardRef(
12
- function NavItem2(props, ref) {
13
- const {
14
- active,
15
- children,
16
- className,
17
- expanded = false,
18
- orientation = "horizontal",
19
- parent,
20
- level = 0,
21
- onExpand,
22
- href,
23
- style: styleProp,
24
- ...rest
25
- } = props;
26
- const targetWindow = useWindow();
27
- useComponentCssInjection({
28
- testId: "salt-nav-item",
29
- css: css_248z,
30
- window: targetWindow
31
- });
32
- const style = {
33
- ...styleProp,
34
- "--saltNavItem-level": `${level}`
35
- };
36
- const handleExpand = (event) => {
37
- event.stopPropagation();
38
- onExpand == null ? void 0 : onExpand(event);
39
- };
40
- return /* @__PURE__ */ jsxs("div", {
41
- className: clsx(
42
- withBaseName(),
43
- {
44
- [withBaseName("active")]: active
45
- },
46
- withBaseName(orientation),
47
- className
48
- ),
49
- ref,
50
- style,
51
- ...rest,
52
- children: [
53
- /* @__PURE__ */ jsx(Link, {
54
- className: withBaseName("label"),
55
- "aria-current": active ? "page" : void 0,
56
- href,
57
- children: /* @__PURE__ */ jsx("span", {
58
- children
59
- })
60
- }),
61
- parent && /* @__PURE__ */ jsx(ExpansionButton, {
62
- "aria-expanded": expanded,
63
- className: withBaseName("expandButton"),
64
- expanded,
65
- onClick: handleExpand,
66
- orientation
67
- })
68
- ]
69
- });
70
- }
71
- );
72
-
73
- export { NavItem };
74
- //# sourceMappingURL=NavItem.js.map
@@ -1 +0,0 @@
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,16 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { createContext, useContext } from 'react';
3
-
4
- const TrackerStepTooltipContext = createContext(false);
5
- const TrackStepTooltipProvider = ({
6
- children
7
- }) => {
8
- return /* @__PURE__ */ jsx(TrackerStepTooltipContext.Provider, {
9
- value: true,
10
- children
11
- });
12
- };
13
- const useTrackerStepTooltipContext = () => useContext(TrackerStepTooltipContext);
14
-
15
- export { TrackStepTooltipProvider, useTrackerStepTooltipContext };
16
- //# sourceMappingURL=TrackerStepTooltipContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TrackerStepTooltipContext.js","sources":["../src/stepped-tracker/TrackerStep/TrackerStepTooltipContext.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext } from \"react\";\n\nconst TrackerStepTooltipContext = createContext<boolean>(false);\n\ntype TrackStepTooltipProps = {\n children: ReactNode;\n};\n\nexport const TrackStepTooltipProvider = ({\n children,\n}: TrackStepTooltipProps) => {\n return (\n <TrackerStepTooltipContext.Provider value={true}>\n {children}\n </TrackerStepTooltipContext.Provider>\n );\n};\n\nexport const useTrackerStepTooltipContext = () =>\n useContext(TrackerStepTooltipContext);\n"],"names":[],"mappings":";;;AAEA,MAAM,yBAAA,GAA4B,cAAuB,KAAK,CAAA,CAAA;AAMvD,MAAM,2BAA2B,CAAC;AAAA,EACvC,QAAA;AACF,CAA6B,KAAA;AAC3B,EACE,uBAAA,GAAA,CAAC,0BAA0B,QAA1B,EAAA;AAAA,IAAmC,KAAO,EAAA,IAAA;AAAA,IACxC,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,EAAA;AAEa,MAAA,4BAAA,GAA+B,MAC1C,UAAA,CAAW,yBAAyB;;;;"}
@@ -1,69 +0,0 @@
1
- import { useState, useRef, useEffect, useCallback } from 'react';
2
-
3
- const useDetectTruncatedText = (callback) => {
4
- const [observedMap] = useState(() => /* @__PURE__ */ new Map());
5
- const callbackRef = useRef(callback);
6
- useEffect(() => {
7
- callbackRef.current = callback;
8
- }, [callback]);
9
- const isTruncatedRef = useRef(false);
10
- const checkEntries = useCallback(() => {
11
- let anyEntriesTruncated = false;
12
- observedMap.forEach((entry) => {
13
- if (entry.offsetWidth < entry.scrollWidth) {
14
- anyEntriesTruncated = true;
15
- }
16
- });
17
- if (anyEntriesTruncated !== isTruncatedRef.current) {
18
- isTruncatedRef.current = anyEntriesTruncated;
19
- callbackRef.current(anyEntriesTruncated);
20
- }
21
- }, [observedMap]);
22
- const getRo = useCallback(() => {
23
- return new ResizeObserver(checkEntries);
24
- }, [checkEntries]);
25
- const [ro, setRo] = useState(() => getRo());
26
- useEffect(() => {
27
- return () => {
28
- ro.disconnect();
29
- };
30
- }, [ro]);
31
- useEffect(() => {
32
- setRo(getRo());
33
- }, [getRo]);
34
- const observeAndUnobserveRef = useCallback(
35
- (id, el) => {
36
- if (!el) {
37
- const existingRef = observedMap.get(id);
38
- if (existingRef) {
39
- ro.unobserve(existingRef);
40
- observedMap.delete(id);
41
- }
42
- } else {
43
- const existingRef = observedMap.get(id);
44
- if (el === existingRef) {
45
- return;
46
- }
47
- if (existingRef) {
48
- ro.unobserve(existingRef);
49
- }
50
- observedMap.set(id, el);
51
- ro.observe(el);
52
- checkEntries();
53
- }
54
- },
55
- [observedMap, ro, checkEntries]
56
- );
57
- const getOverflowRef = useCallback(
58
- (id) => {
59
- return (el) => {
60
- observeAndUnobserveRef(id, el);
61
- };
62
- },
63
- [observeAndUnobserveRef]
64
- );
65
- return getOverflowRef;
66
- };
67
-
68
- export { useDetectTruncatedText as default };
69
- //# sourceMappingURL=useDetectTruncatedText.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDetectTruncatedText.js","sources":["../src/stepped-tracker/useDetectTruncatedText.ts"],"sourcesContent":["import { useState, useRef, useEffect, useCallback, RefCallback } from \"react\";\n\ntype OnTruncatedCallback = (isTruncated: boolean) => void;\nexport type GetOverflowRef = (id: string) => RefCallback<HTMLElement>;\n\n/**\n * Hook to detect truncation of any child TrackerStep components, using a ResizeObserver to update on element resizes.\n * The desired behaviour is whenever any of the individual steps is truncated, all steps become foccusable with Tooltips.\n * @param {OnTruncatedCallback} callback - The callback which will called when the isTruncated state changes\n * @returns {GetOverflowRef} getOverflowRef - A factory function which when passed a child index will return an appropriate ref callback for observing am element\n */\nconst useDetectTruncatedText = (\n callback: OnTruncatedCallback\n): GetOverflowRef => {\n // Used for tracking creation/destruction of child elements\n const [observedMap] = useState(() => new Map<string, HTMLElement>());\n\n // Store callback as a ref to prevent re-creating ResizeObserver, update using an effect\n const callbackRef = useRef<(isOverflowing: boolean) => void>(callback);\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n const isTruncatedRef = useRef(false);\n\n const checkEntries = useCallback(() => {\n let anyEntriesTruncated = false;\n\n observedMap.forEach((entry) => {\n if (entry.offsetWidth < entry.scrollWidth) {\n anyEntriesTruncated = true;\n }\n });\n\n if (anyEntriesTruncated !== isTruncatedRef.current) {\n isTruncatedRef.current = anyEntriesTruncated;\n callbackRef.current(anyEntriesTruncated);\n }\n }, [observedMap]);\n\n // Creation of the ResizeObserver, should only happen once\n const getRo = useCallback(() => {\n return new ResizeObserver(checkEntries);\n }, [checkEntries]);\n\n // Management of the ResizeObserver lifecycle. It should only be created once for each StepTracker compoenent\n const [ro, setRo] = useState(() => getRo());\n useEffect(() => {\n return () => {\n ro.disconnect();\n };\n }, [ro]);\n useEffect(() => {\n setRo(getRo());\n }, [getRo]);\n\n // Function for managing the observing/unobserving of elements based on their ref callbacks\n const observeAndUnobserveRef = useCallback(\n (id: string, el: HTMLElement | null) => {\n if (!el) {\n const existingRef = observedMap.get(id);\n if (existingRef) {\n ro.unobserve(existingRef);\n observedMap.delete(id);\n }\n } else {\n const existingRef = observedMap.get(id);\n if (el === existingRef) {\n return;\n }\n\n if (existingRef) {\n ro.unobserve(existingRef);\n }\n\n observedMap.set(id, el);\n ro.observe(el);\n checkEntries();\n }\n },\n [observedMap, ro, checkEntries]\n );\n\n // Factory function which creates a suitable html ref callback which includes the index\n const getOverflowRef = useCallback<GetOverflowRef>(\n (id: string) => {\n return (el: HTMLElement | null) => {\n observeAndUnobserveRef(id, el);\n };\n },\n [observeAndUnobserveRef]\n );\n\n return getOverflowRef;\n};\n\nexport default useDetectTruncatedText;\n"],"names":[],"mappings":";;AAWM,MAAA,sBAAA,GAAyB,CAC7B,QACmB,KAAA;AAEnB,EAAA,MAAM,CAAC,WAAW,CAAA,GAAI,SAAS,sBAAM,IAAI,KAA0B,CAAA,CAAA;AAGnE,EAAM,MAAA,WAAA,GAAc,OAAyC,QAAQ,CAAA,CAAA;AACrE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,WAAA,CAAY,OAAU,GAAA,QAAA,CAAA;AAAA,GACxB,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AACb,EAAM,MAAA,cAAA,GAAiB,OAAO,KAAK,CAAA,CAAA;AAEnC,EAAM,MAAA,YAAA,GAAe,YAAY,MAAM;AACrC,IAAA,IAAI,mBAAsB,GAAA,KAAA,CAAA;AAE1B,IAAY,WAAA,CAAA,OAAA,CAAQ,CAAC,KAAU,KAAA;AAC7B,MAAI,IAAA,KAAA,CAAM,WAAc,GAAA,KAAA,CAAM,WAAa,EAAA;AACzC,QAAsB,mBAAA,GAAA,IAAA,CAAA;AAAA,OACxB;AAAA,KACD,CAAA,CAAA;AAED,IAAI,IAAA,mBAAA,KAAwB,eAAe,OAAS,EAAA;AAClD,MAAA,cAAA,CAAe,OAAU,GAAA,mBAAA,CAAA;AACzB,MAAA,WAAA,CAAY,QAAQ,mBAAmB,CAAA,CAAA;AAAA,KACzC;AAAA,GACF,EAAG,CAAC,WAAW,CAAC,CAAA,CAAA;AAGhB,EAAM,MAAA,KAAA,GAAQ,YAAY,MAAM;AAC9B,IAAO,OAAA,IAAI,eAAe,YAAY,CAAA,CAAA;AAAA,GACxC,EAAG,CAAC,YAAY,CAAC,CAAA,CAAA;AAGjB,EAAA,MAAM,CAAC,EAAI,EAAA,KAAK,IAAI,QAAS,CAAA,MAAM,OAAO,CAAA,CAAA;AAC1C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,OAAO,MAAM;AACX,MAAA,EAAA,CAAG,UAAW,EAAA,CAAA;AAAA,KAChB,CAAA;AAAA,GACF,EAAG,CAAC,EAAE,CAAC,CAAA,CAAA;AACP,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,GACf,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AAGV,EAAA,MAAM,sBAAyB,GAAA,WAAA;AAAA,IAC7B,CAAC,IAAY,EAA2B,KAAA;AACtC,MAAA,IAAI,CAAC,EAAI,EAAA;AACP,QAAM,MAAA,WAAA,GAAc,WAAY,CAAA,GAAA,CAAI,EAAE,CAAA,CAAA;AACtC,QAAA,IAAI,WAAa,EAAA;AACf,UAAA,EAAA,CAAG,UAAU,WAAW,CAAA,CAAA;AACxB,UAAA,WAAA,CAAY,OAAO,EAAE,CAAA,CAAA;AAAA,SACvB;AAAA,OACK,MAAA;AACL,QAAM,MAAA,WAAA,GAAc,WAAY,CAAA,GAAA,CAAI,EAAE,CAAA,CAAA;AACtC,QAAA,IAAI,OAAO,WAAa,EAAA;AACtB,UAAA,OAAA;AAAA,SACF;AAEA,QAAA,IAAI,WAAa,EAAA;AACf,UAAA,EAAA,CAAG,UAAU,WAAW,CAAA,CAAA;AAAA,SAC1B;AAEA,QAAY,WAAA,CAAA,GAAA,CAAI,IAAI,EAAE,CAAA,CAAA;AACtB,QAAA,EAAA,CAAG,QAAQ,EAAE,CAAA,CAAA;AACb,QAAa,YAAA,EAAA,CAAA;AAAA,OACf;AAAA,KACF;AAAA,IACA,CAAC,WAAa,EAAA,EAAA,EAAI,YAAY,CAAA;AAAA,GAChC,CAAA;AAGA,EAAA,MAAM,cAAiB,GAAA,WAAA;AAAA,IACrB,CAAC,EAAe,KAAA;AACd,MAAA,OAAO,CAAC,EAA2B,KAAA;AACjC,QAAA,sBAAA,CAAuB,IAAI,EAAE,CAAA,CAAA;AAAA,OAC/B,CAAA;AAAA,KACF;AAAA,IACA,CAAC,sBAAsB,CAAA;AAAA,GACzB,CAAA;AAEA,EAAO,OAAA,cAAA,CAAA;AACT;;;;"}
@@ -1,30 +0,0 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
-
3
- function CheckedIcon({ className }) {
4
- return /* @__PURE__ */ jsx("svg", {
5
- "aria-hidden": "true",
6
- className,
7
- focusable: "false",
8
- shapeRendering: "crispEdges",
9
- viewBox: "0 0 14 14",
10
- children: /* @__PURE__ */ jsxs("g", {
11
- fillRule: "evenodd",
12
- children: [
13
- /* @__PURE__ */ jsx("rect", {
14
- height: "14",
15
- width: "14",
16
- x: "0",
17
- y: "0"
18
- }),
19
- /* @__PURE__ */ jsx("polygon", {
20
- className: `${className}Tick`,
21
- fillRule: "nonzero",
22
- points: "12 4.22226066 10.6259221 3 5.58277771 8.37894955 3.3179086 6.13993399 2 7.40754746 5.63993779 11"
23
- })
24
- ]
25
- })
26
- });
27
- }
28
-
29
- export { CheckedIcon };
30
- //# sourceMappingURL=CheckedIcon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CheckedIcon.js","sources":["../src/switch/assets/CheckedIcon.tsx"],"sourcesContent":["export function CheckedIcon({ className }: { className: string }) {\n return (\n <svg\n aria-hidden=\"true\"\n className={className}\n focusable=\"false\"\n shapeRendering=\"crispEdges\"\n viewBox=\"0 0 14 14\"\n >\n <g fillRule=\"evenodd\">\n <rect height=\"14\" width=\"14\" x=\"0\" y=\"0\" />\n <polygon\n className={`${className}Tick`}\n fillRule=\"nonzero\"\n points=\"12 4.22226066 10.6259221 3 5.58277771 8.37894955 3.3179086 6.13993399 2 7.40754746 5.63993779 11\"\n />\n </g>\n </svg>\n );\n}\n"],"names":[],"mappings":";;AAAgB,SAAA,WAAA,CAAY,EAAE,SAAA,EAAoC,EAAA;AAChE,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,aAAY,EAAA,MAAA;AAAA,IACZ,SAAA;AAAA,IACA,SAAU,EAAA,OAAA;AAAA,IACV,cAAe,EAAA,YAAA;AAAA,IACf,OAAQ,EAAA,WAAA;AAAA,IAER,QAAC,kBAAA,IAAA,CAAA,GAAA,EAAA;AAAA,MAAE,QAAS,EAAA,SAAA;AAAA,MACV,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,MAAA,EAAA;AAAA,UAAK,MAAO,EAAA,IAAA;AAAA,UAAK,KAAM,EAAA,IAAA;AAAA,UAAK,CAAE,EAAA,GAAA;AAAA,UAAI,CAAE,EAAA,GAAA;AAAA,SAAI,CAAA;AAAA,wBACxC,GAAA,CAAA,SAAA,EAAA;AAAA,UACC,WAAW,CAAG,EAAA,SAAA,CAAA,IAAA,CAAA;AAAA,UACd,QAAS,EAAA,SAAA;AAAA,UACT,MAAO,EAAA,kGAAA;AAAA,SACT,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
@@ -1,8 +0,0 @@
1
- import React, { LabelHTMLAttributes, ReactNode } from "react";
2
- export interface ControlLabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
3
- disabled?: boolean;
4
- label?: ReactNode;
5
- labelPlacement?: "left" | "right";
6
- }
7
- export declare const baseName = "saltControlLabel";
8
- export declare const ControlLabel: React.ForwardRefExoticComponent<ControlLabelProps & React.RefAttributes<HTMLLabelElement>>;
@@ -1 +0,0 @@
1
- export * from "./ControlLabel";
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const DialogContext: import("react").Context<{
3
- status?: "error" | "info" | "success" | "warning" | undefined;
4
- dialogId?: string | undefined;
5
- setContentElement?: ((node: HTMLDivElement) => void) | undefined;
6
- }>;
@@ -1,40 +0,0 @@
1
- import { ComponentPropsWithoutRef, ReactNode, Ref, TextareaHTMLAttributes } from "react";
2
- export interface MultilineInputProps extends Omit<ComponentPropsWithoutRef<"div">, "defaultValue">, Pick<ComponentPropsWithoutRef<"input">, "disabled" | "value" | "defaultValue" | "placeholder"> {
3
- /**
4
- * Styling variant with full border. Defaults to false
5
- */
6
- bordered?: boolean;
7
- /**
8
- * End adornment component
9
- */
10
- endAdornment?: ReactNode;
11
- /**
12
- * If `true`, the component is read only.
13
- */
14
- readOnly?: boolean;
15
- /**
16
- * Number of rows. Defaults to 3
17
- */
18
- rows?: number;
19
- /**
20
- * Start adornment component
21
- */
22
- startAdornment?: ReactNode;
23
- /**
24
- * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#Attributes) applied to the `textarea` element.
25
- */
26
- textAreaProps?: TextareaHTMLAttributes<HTMLTextAreaElement>;
27
- /**
28
- * Optional ref for the textarea component
29
- */
30
- textAreaRef?: Ref<HTMLTextAreaElement>;
31
- /**
32
- * Validation status.
33
- */
34
- validationStatus?: "error" | "warning" | "success";
35
- /**
36
- * Styling variant. Defaults to "primary".
37
- */
38
- variant?: "primary" | "secondary";
39
- }
40
- export declare const MultilineInput: import("react").ForwardRefExoticComponent<MultilineInputProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +0,0 @@
1
- export * from "./MultilineInput";
@@ -1,3 +0,0 @@
1
- import { ComponentPropsWithoutRef } from "react";
2
- import { NavItemProps } from "./NavItem";
3
- export declare function ExpansionButton({ expanded, orientation, ...rest }: Pick<NavItemProps, "expanded" | "orientation"> & ComponentPropsWithoutRef<"button">): JSX.Element;
@@ -1,17 +0,0 @@
1
- import { ComponentPropsWithoutRef, MouseEventHandler } from "react";
2
- export interface NavItemProps extends ComponentPropsWithoutRef<"div"> {
3
- /**
4
- * Whether the nav item is active.
5
- */
6
- active?: boolean;
7
- expanded?: boolean;
8
- level?: number;
9
- /**
10
- * The orientation of the nav item.
11
- */
12
- orientation?: "horizontal" | "vertical";
13
- parent?: boolean;
14
- onExpand?: MouseEventHandler<HTMLButtonElement>;
15
- href?: string;
16
- }
17
- export declare const NavItem: import("react").ForwardRefExoticComponent<NavItemProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +0,0 @@
1
- export * from "./NavItem";
@@ -1,7 +0,0 @@
1
- import { ReactNode } from "react";
2
- declare type TrackStepTooltipProps = {
3
- children: ReactNode;
4
- };
5
- export declare const TrackStepTooltipProvider: ({ children, }: TrackStepTooltipProps) => JSX.Element;
6
- export declare const useTrackerStepTooltipContext: () => boolean;
7
- export {};
@@ -1,11 +0,0 @@
1
- import { RefCallback } from "react";
2
- declare type OnTruncatedCallback = (isTruncated: boolean) => void;
3
- export declare type GetOverflowRef = (id: string) => RefCallback<HTMLElement>;
4
- /**
5
- * Hook to detect truncation of any child TrackerStep components, using a ResizeObserver to update on element resizes.
6
- * The desired behaviour is whenever any of the individual steps is truncated, all steps become foccusable with Tooltips.
7
- * @param {OnTruncatedCallback} callback - The callback which will called when the isTruncated state changes
8
- * @returns {GetOverflowRef} getOverflowRef - A factory function which when passed a child index will return an appropriate ref callback for observing am element
9
- */
10
- declare const useDetectTruncatedText: (callback: OnTruncatedCallback) => GetOverflowRef;
11
- export default useDetectTruncatedText;
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- export declare function CheckedIcon({ className }: {
3
- className: string;
4
- }): JSX.Element;