@salt-ds/core 1.0.0

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 (281) hide show
  1. package/README.md +1 -0
  2. package/dist-cjs/node_modules/style-inject/dist/style-inject.es.js +31 -0
  3. package/dist-cjs/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  4. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnounce.js +22 -0
  5. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnounce.js.map +1 -0
  6. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnouncerContext.js +12 -0
  7. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnouncerContext.js.map +1 -0
  8. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnouncerProvider.js +78 -0
  9. package/dist-cjs/packages/core/src/aria-announcer/AriaAnnouncerProvider.js.map +1 -0
  10. package/dist-cjs/packages/core/src/aria-announcer/useAriaAnnouncer.js +65 -0
  11. package/dist-cjs/packages/core/src/aria-announcer/useAriaAnnouncer.js.map +1 -0
  12. package/dist-cjs/packages/core/src/border-item/BorderItem.css.js +9 -0
  13. package/dist-cjs/packages/core/src/border-item/BorderItem.css.js.map +1 -0
  14. package/dist-cjs/packages/core/src/border-item/BorderItem.js +54 -0
  15. package/dist-cjs/packages/core/src/border-item/BorderItem.js.map +1 -0
  16. package/dist-cjs/packages/core/src/border-layout/BorderLayout.js +59 -0
  17. package/dist-cjs/packages/core/src/border-layout/BorderLayout.js.map +1 -0
  18. package/dist-cjs/packages/core/src/breakpoints/Breakpoints.js +15 -0
  19. package/dist-cjs/packages/core/src/breakpoints/Breakpoints.js.map +1 -0
  20. package/dist-cjs/packages/core/src/button/Button.css.js +9 -0
  21. package/dist-cjs/packages/core/src/button/Button.css.js.map +1 -0
  22. package/dist-cjs/packages/core/src/button/Button.js +60 -0
  23. package/dist-cjs/packages/core/src/button/Button.js.map +1 -0
  24. package/dist-cjs/packages/core/src/button/useButton.js +65 -0
  25. package/dist-cjs/packages/core/src/button/useButton.js.map +1 -0
  26. package/dist-cjs/packages/core/src/flex-item/FlexItem.css.js +9 -0
  27. package/dist-cjs/packages/core/src/flex-item/FlexItem.css.js.map +1 -0
  28. package/dist-cjs/packages/core/src/flex-item/FlexItem.js +56 -0
  29. package/dist-cjs/packages/core/src/flex-item/FlexItem.js.map +1 -0
  30. package/dist-cjs/packages/core/src/flex-layout/FlexLayout.css.js +9 -0
  31. package/dist-cjs/packages/core/src/flex-layout/FlexLayout.css.js.map +1 -0
  32. package/dist-cjs/packages/core/src/flex-layout/FlexLayout.js +77 -0
  33. package/dist-cjs/packages/core/src/flex-layout/FlexLayout.js.map +1 -0
  34. package/dist-cjs/packages/core/src/flow-layout/FlowLayout.js +21 -0
  35. package/dist-cjs/packages/core/src/flow-layout/FlowLayout.js.map +1 -0
  36. package/dist-cjs/packages/core/src/grid-item/GridItem.css.js +9 -0
  37. package/dist-cjs/packages/core/src/grid-item/GridItem.css.js.map +1 -0
  38. package/dist-cjs/packages/core/src/grid-item/GridItem.js +68 -0
  39. package/dist-cjs/packages/core/src/grid-item/GridItem.js.map +1 -0
  40. package/dist-cjs/packages/core/src/grid-layout/GridLayout.css.js +9 -0
  41. package/dist-cjs/packages/core/src/grid-layout/GridLayout.css.js.map +1 -0
  42. package/dist-cjs/packages/core/src/grid-layout/GridLayout.js +55 -0
  43. package/dist-cjs/packages/core/src/grid-layout/GridLayout.js.map +1 -0
  44. package/dist-cjs/packages/core/src/index.js +118 -0
  45. package/dist-cjs/packages/core/src/index.js.map +1 -0
  46. package/dist-cjs/packages/core/src/link/Link.css.js +9 -0
  47. package/dist-cjs/packages/core/src/link/Link.css.js.map +1 -0
  48. package/dist-cjs/packages/core/src/link/Link.js +60 -0
  49. package/dist-cjs/packages/core/src/link/Link.js.map +1 -0
  50. package/dist-cjs/packages/core/src/salt-provider/SaltProvider.css.js +9 -0
  51. package/dist-cjs/packages/core/src/salt-provider/SaltProvider.css.js.map +1 -0
  52. package/dist-cjs/packages/core/src/salt-provider/SaltProvider.js +158 -0
  53. package/dist-cjs/packages/core/src/salt-provider/SaltProvider.js.map +1 -0
  54. package/dist-cjs/packages/core/src/stack-layout/StackLayout.js +20 -0
  55. package/dist-cjs/packages/core/src/stack-layout/StackLayout.js.map +1 -0
  56. package/dist-cjs/packages/core/src/status-indicator/StatusIndicator.css.js +9 -0
  57. package/dist-cjs/packages/core/src/status-indicator/StatusIndicator.css.js.map +1 -0
  58. package/dist-cjs/packages/core/src/status-indicator/StatusIndicator.js +47 -0
  59. package/dist-cjs/packages/core/src/status-indicator/StatusIndicator.js.map +1 -0
  60. package/dist-cjs/packages/core/src/status-indicator/ValidationStatus.js +13 -0
  61. package/dist-cjs/packages/core/src/status-indicator/ValidationStatus.js.map +1 -0
  62. package/dist-cjs/packages/core/src/text/Display.js +50 -0
  63. package/dist-cjs/packages/core/src/text/Display.js.map +1 -0
  64. package/dist-cjs/packages/core/src/text/Headings.js +54 -0
  65. package/dist-cjs/packages/core/src/text/Headings.js.map +1 -0
  66. package/dist-cjs/packages/core/src/text/Label.js +19 -0
  67. package/dist-cjs/packages/core/src/text/Label.js.map +1 -0
  68. package/dist-cjs/packages/core/src/text/Text.css.js +9 -0
  69. package/dist-cjs/packages/core/src/text/Text.css.js.map +1 -0
  70. package/dist-cjs/packages/core/src/text/Text.js +47 -0
  71. package/dist-cjs/packages/core/src/text/Text.js.map +1 -0
  72. package/dist-cjs/packages/core/src/theme/Density.js +8 -0
  73. package/dist-cjs/packages/core/src/theme/Density.js.map +1 -0
  74. package/dist-cjs/packages/core/src/theme/Mode.js +8 -0
  75. package/dist-cjs/packages/core/src/theme/Mode.js.map +1 -0
  76. package/dist-cjs/packages/core/src/theme/Theme.js +19 -0
  77. package/dist-cjs/packages/core/src/theme/Theme.js.map +1 -0
  78. package/dist-cjs/packages/core/src/utils/createChainedFunction.js +22 -0
  79. package/dist-cjs/packages/core/src/utils/createChainedFunction.js.map +1 -0
  80. package/dist-cjs/packages/core/src/utils/createContext.js +16 -0
  81. package/dist-cjs/packages/core/src/utils/createContext.js.map +1 -0
  82. package/dist-cjs/packages/core/src/utils/debounce.js +24 -0
  83. package/dist-cjs/packages/core/src/utils/debounce.js.map +1 -0
  84. package/dist-cjs/packages/core/src/utils/makePrefixer.js +8 -0
  85. package/dist-cjs/packages/core/src/utils/makePrefixer.js.map +1 -0
  86. package/dist-cjs/packages/core/src/utils/marginMiddleware.js +22 -0
  87. package/dist-cjs/packages/core/src/utils/marginMiddleware.js.map +1 -0
  88. package/dist-cjs/packages/core/src/utils/ownerDocument.js +10 -0
  89. package/dist-cjs/packages/core/src/utils/ownerDocument.js.map +1 -0
  90. package/dist-cjs/packages/core/src/utils/ownerWindow.js +13 -0
  91. package/dist-cjs/packages/core/src/utils/ownerWindow.js.map +1 -0
  92. package/dist-cjs/packages/core/src/utils/setRef.js +14 -0
  93. package/dist-cjs/packages/core/src/utils/setRef.js.map +1 -0
  94. package/dist-cjs/packages/core/src/utils/useControlled.js +60 -0
  95. package/dist-cjs/packages/core/src/utils/useControlled.js.map +1 -0
  96. package/dist-cjs/packages/core/src/utils/useForkRef.js +21 -0
  97. package/dist-cjs/packages/core/src/utils/useForkRef.js.map +1 -0
  98. package/dist-cjs/packages/core/src/utils/useId.js +55 -0
  99. package/dist-cjs/packages/core/src/utils/useId.js.map +1 -0
  100. package/dist-cjs/packages/core/src/utils/useIsFocusVisible.js +108 -0
  101. package/dist-cjs/packages/core/src/utils/useIsFocusVisible.js.map +1 -0
  102. package/dist-cjs/packages/core/src/utils/useIsomorphicLayoutEffect.js +10 -0
  103. package/dist-cjs/packages/core/src/utils/useIsomorphicLayoutEffect.js.map +1 -0
  104. package/dist-cjs/packages/core/src/utils/usePrevious.js +16 -0
  105. package/dist-cjs/packages/core/src/utils/usePrevious.js.map +1 -0
  106. package/dist-cjs/packages/core/src/utils/useResponsiveProp.js +71 -0
  107. package/dist-cjs/packages/core/src/utils/useResponsiveProp.js.map +1 -0
  108. package/dist-cjs/packages/core/src/viewport/ViewportProvider.js +43 -0
  109. package/dist-cjs/packages/core/src/viewport/ViewportProvider.js.map +1 -0
  110. package/dist-es/node_modules/style-inject/dist/style-inject.es.js +29 -0
  111. package/dist-es/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  112. package/dist-es/packages/core/src/aria-announcer/AriaAnnounce.js +18 -0
  113. package/dist-es/packages/core/src/aria-announcer/AriaAnnounce.js.map +1 -0
  114. package/dist-es/packages/core/src/aria-announcer/AriaAnnouncerContext.js +8 -0
  115. package/dist-es/packages/core/src/aria-announcer/AriaAnnouncerContext.js.map +1 -0
  116. package/dist-es/packages/core/src/aria-announcer/AriaAnnouncerProvider.js +73 -0
  117. package/dist-es/packages/core/src/aria-announcer/AriaAnnouncerProvider.js.map +1 -0
  118. package/dist-es/packages/core/src/aria-announcer/useAriaAnnouncer.js +61 -0
  119. package/dist-es/packages/core/src/aria-announcer/useAriaAnnouncer.js.map +1 -0
  120. package/dist-es/packages/core/src/border-item/BorderItem.css.js +7 -0
  121. package/dist-es/packages/core/src/border-item/BorderItem.css.js.map +1 -0
  122. package/dist-es/packages/core/src/border-item/BorderItem.js +45 -0
  123. package/dist-es/packages/core/src/border-item/BorderItem.js.map +1 -0
  124. package/dist-es/packages/core/src/border-layout/BorderLayout.js +51 -0
  125. package/dist-es/packages/core/src/border-layout/BorderLayout.js.map +1 -0
  126. package/dist-es/packages/core/src/breakpoints/Breakpoints.js +11 -0
  127. package/dist-es/packages/core/src/breakpoints/Breakpoints.js.map +1 -0
  128. package/dist-es/packages/core/src/button/Button.css.js +7 -0
  129. package/dist-es/packages/core/src/button/Button.css.js.map +1 -0
  130. package/dist-es/packages/core/src/button/Button.js +51 -0
  131. package/dist-es/packages/core/src/button/Button.js.map +1 -0
  132. package/dist-es/packages/core/src/button/useButton.js +61 -0
  133. package/dist-es/packages/core/src/button/useButton.js.map +1 -0
  134. package/dist-es/packages/core/src/flex-item/FlexItem.css.js +7 -0
  135. package/dist-es/packages/core/src/flex-item/FlexItem.css.js.map +1 -0
  136. package/dist-es/packages/core/src/flex-item/FlexItem.js +47 -0
  137. package/dist-es/packages/core/src/flex-item/FlexItem.js.map +1 -0
  138. package/dist-es/packages/core/src/flex-layout/FlexLayout.css.js +7 -0
  139. package/dist-es/packages/core/src/flex-layout/FlexLayout.css.js.map +1 -0
  140. package/dist-es/packages/core/src/flex-layout/FlexLayout.js +67 -0
  141. package/dist-es/packages/core/src/flex-layout/FlexLayout.js.map +1 -0
  142. package/dist-es/packages/core/src/flow-layout/FlowLayout.js +17 -0
  143. package/dist-es/packages/core/src/flow-layout/FlowLayout.js.map +1 -0
  144. package/dist-es/packages/core/src/grid-item/GridItem.css.js +7 -0
  145. package/dist-es/packages/core/src/grid-item/GridItem.css.js.map +1 -0
  146. package/dist-es/packages/core/src/grid-item/GridItem.js +59 -0
  147. package/dist-es/packages/core/src/grid-item/GridItem.js.map +1 -0
  148. package/dist-es/packages/core/src/grid-layout/GridLayout.css.js +7 -0
  149. package/dist-es/packages/core/src/grid-layout/GridLayout.css.js.map +1 -0
  150. package/dist-es/packages/core/src/grid-layout/GridLayout.js +47 -0
  151. package/dist-es/packages/core/src/grid-layout/GridLayout.js.map +1 -0
  152. package/dist-es/packages/core/src/index.js +43 -0
  153. package/dist-es/packages/core/src/index.js.map +1 -0
  154. package/dist-es/packages/core/src/link/Link.css.js +7 -0
  155. package/dist-es/packages/core/src/link/Link.css.js.map +1 -0
  156. package/dist-es/packages/core/src/link/Link.js +52 -0
  157. package/dist-es/packages/core/src/link/Link.js.map +1 -0
  158. package/dist-es/packages/core/src/salt-provider/SaltProvider.css.js +7 -0
  159. package/dist-es/packages/core/src/salt-provider/SaltProvider.css.js.map +1 -0
  160. package/dist-es/packages/core/src/salt-provider/SaltProvider.js +142 -0
  161. package/dist-es/packages/core/src/salt-provider/SaltProvider.js.map +1 -0
  162. package/dist-es/packages/core/src/stack-layout/StackLayout.js +16 -0
  163. package/dist-es/packages/core/src/stack-layout/StackLayout.js.map +1 -0
  164. package/dist-es/packages/core/src/status-indicator/StatusIndicator.css.js +7 -0
  165. package/dist-es/packages/core/src/status-indicator/StatusIndicator.css.js.map +1 -0
  166. package/dist-es/packages/core/src/status-indicator/StatusIndicator.js +39 -0
  167. package/dist-es/packages/core/src/status-indicator/StatusIndicator.js.map +1 -0
  168. package/dist-es/packages/core/src/status-indicator/ValidationStatus.js +9 -0
  169. package/dist-es/packages/core/src/status-indicator/ValidationStatus.js.map +1 -0
  170. package/dist-es/packages/core/src/text/Display.js +40 -0
  171. package/dist-es/packages/core/src/text/Display.js.map +1 -0
  172. package/dist-es/packages/core/src/text/Headings.js +47 -0
  173. package/dist-es/packages/core/src/text/Headings.js.map +1 -0
  174. package/dist-es/packages/core/src/text/Label.js +15 -0
  175. package/dist-es/packages/core/src/text/Label.js.map +1 -0
  176. package/dist-es/packages/core/src/text/Text.css.js +7 -0
  177. package/dist-es/packages/core/src/text/Text.css.js.map +1 -0
  178. package/dist-es/packages/core/src/text/Text.js +39 -0
  179. package/dist-es/packages/core/src/text/Text.js.map +1 -0
  180. package/dist-es/packages/core/src/theme/Density.js +4 -0
  181. package/dist-es/packages/core/src/theme/Density.js.map +1 -0
  182. package/dist-es/packages/core/src/theme/Mode.js +4 -0
  183. package/dist-es/packages/core/src/theme/Mode.js.map +1 -0
  184. package/dist-es/packages/core/src/theme/Theme.js +15 -0
  185. package/dist-es/packages/core/src/theme/Theme.js.map +1 -0
  186. package/dist-es/packages/core/src/utils/createChainedFunction.js +18 -0
  187. package/dist-es/packages/core/src/utils/createChainedFunction.js.map +1 -0
  188. package/dist-es/packages/core/src/utils/createContext.js +12 -0
  189. package/dist-es/packages/core/src/utils/createContext.js.map +1 -0
  190. package/dist-es/packages/core/src/utils/debounce.js +20 -0
  191. package/dist-es/packages/core/src/utils/debounce.js.map +1 -0
  192. package/dist-es/packages/core/src/utils/makePrefixer.js +4 -0
  193. package/dist-es/packages/core/src/utils/makePrefixer.js.map +1 -0
  194. package/dist-es/packages/core/src/utils/marginMiddleware.js +18 -0
  195. package/dist-es/packages/core/src/utils/marginMiddleware.js.map +1 -0
  196. package/dist-es/packages/core/src/utils/ownerDocument.js +6 -0
  197. package/dist-es/packages/core/src/utils/ownerDocument.js.map +1 -0
  198. package/dist-es/packages/core/src/utils/ownerWindow.js +9 -0
  199. package/dist-es/packages/core/src/utils/ownerWindow.js.map +1 -0
  200. package/dist-es/packages/core/src/utils/setRef.js +10 -0
  201. package/dist-es/packages/core/src/utils/setRef.js.map +1 -0
  202. package/dist-es/packages/core/src/utils/useControlled.js +56 -0
  203. package/dist-es/packages/core/src/utils/useControlled.js.map +1 -0
  204. package/dist-es/packages/core/src/utils/useForkRef.js +17 -0
  205. package/dist-es/packages/core/src/utils/useForkRef.js.map +1 -0
  206. package/dist-es/packages/core/src/utils/useId.js +30 -0
  207. package/dist-es/packages/core/src/utils/useId.js.map +1 -0
  208. package/dist-es/packages/core/src/utils/useIsFocusVisible.js +103 -0
  209. package/dist-es/packages/core/src/utils/useIsFocusVisible.js.map +1 -0
  210. package/dist-es/packages/core/src/utils/useIsomorphicLayoutEffect.js +6 -0
  211. package/dist-es/packages/core/src/utils/useIsomorphicLayoutEffect.js.map +1 -0
  212. package/dist-es/packages/core/src/utils/usePrevious.js +12 -0
  213. package/dist-es/packages/core/src/utils/usePrevious.js.map +1 -0
  214. package/dist-es/packages/core/src/utils/useResponsiveProp.js +64 -0
  215. package/dist-es/packages/core/src/utils/useResponsiveProp.js.map +1 -0
  216. package/dist-es/packages/core/src/viewport/ViewportProvider.js +37 -0
  217. package/dist-es/packages/core/src/viewport/ViewportProvider.js.map +1 -0
  218. package/dist-types/aria-announcer/AriaAnnounce.d.ts +8 -0
  219. package/dist-types/aria-announcer/AriaAnnouncerContext.d.ts +6 -0
  220. package/dist-types/aria-announcer/AriaAnnouncerProvider.d.ts +10 -0
  221. package/dist-types/aria-announcer/index.d.ts +4 -0
  222. package/dist-types/aria-announcer/useAriaAnnouncer.d.ts +6 -0
  223. package/dist-types/border-item/BorderItem.d.ts +27 -0
  224. package/dist-types/border-item/index.d.ts +1 -0
  225. package/dist-types/border-layout/BorderLayout.d.ts +25 -0
  226. package/dist-types/border-layout/index.d.ts +1 -0
  227. package/dist-types/breakpoints/Breakpoints.d.ts +8 -0
  228. package/dist-types/breakpoints/index.d.ts +1 -0
  229. package/dist-types/button/Button.d.ts +20 -0
  230. package/dist-types/button/index.d.ts +2 -0
  231. package/dist-types/button/useButton.d.ts +22 -0
  232. package/dist-types/flex-item/FlexItem.d.ts +23 -0
  233. package/dist-types/flex-item/index.d.ts +1 -0
  234. package/dist-types/flex-layout/FlexLayout.d.ts +38 -0
  235. package/dist-types/flex-layout/index.d.ts +1 -0
  236. package/dist-types/flow-layout/FlowLayout.d.ts +17 -0
  237. package/dist-types/flow-layout/index.d.ts +1 -0
  238. package/dist-types/grid-item/GridItem.d.ts +27 -0
  239. package/dist-types/grid-item/index.d.ts +1 -0
  240. package/dist-types/grid-layout/GridLayout.d.ts +28 -0
  241. package/dist-types/grid-layout/index.d.ts +1 -0
  242. package/dist-types/index.d.ts +18 -0
  243. package/dist-types/link/Link.d.ts +14 -0
  244. package/dist-types/link/index.d.ts +1 -0
  245. package/dist-types/salt-provider/SaltProvider.d.ts +39 -0
  246. package/dist-types/salt-provider/index.d.ts +1 -0
  247. package/dist-types/stack-layout/StackLayout.d.ts +17 -0
  248. package/dist-types/stack-layout/index.d.ts +1 -0
  249. package/dist-types/status-indicator/StatusIndicator.d.ts +11 -0
  250. package/dist-types/status-indicator/ValidationStatus.d.ts +2 -0
  251. package/dist-types/status-indicator/index.d.ts +2 -0
  252. package/dist-types/text/Display.d.ts +5 -0
  253. package/dist-types/text/Headings.d.ts +6 -0
  254. package/dist-types/text/Label.d.ts +3 -0
  255. package/dist-types/text/Text.d.ts +20 -0
  256. package/dist-types/text/index.d.ts +4 -0
  257. package/dist-types/theme/Density.d.ts +2 -0
  258. package/dist-types/theme/Mode.d.ts +2 -0
  259. package/dist-types/theme/Theme.d.ts +3 -0
  260. package/dist-types/theme/index.d.ts +3 -0
  261. package/dist-types/utils/createChainedFunction.d.ts +3 -0
  262. package/dist-types/utils/createContext.d.ts +2 -0
  263. package/dist-types/utils/debounce.d.ts +4 -0
  264. package/dist-types/utils/index.d.ts +17 -0
  265. package/dist-types/utils/inferElementType.d.ts +2 -0
  266. package/dist-types/utils/makePrefixer.d.ts +2 -0
  267. package/dist-types/utils/marginMiddleware.d.ts +2 -0
  268. package/dist-types/utils/ownerDocument.d.ts +1 -0
  269. package/dist-types/utils/ownerWindow.d.ts +1 -0
  270. package/dist-types/utils/polymorphicTypes.d.ts +14 -0
  271. package/dist-types/utils/setRef.d.ts +2 -0
  272. package/dist-types/utils/useControlled.d.ts +24 -0
  273. package/dist-types/utils/useForkRef.d.ts +2 -0
  274. package/dist-types/utils/useId.d.ts +2 -0
  275. package/dist-types/utils/useIsFocusVisible.d.ts +8 -0
  276. package/dist-types/utils/useIsomorphicLayoutEffect.d.ts +2 -0
  277. package/dist-types/utils/usePrevious.d.ts +2 -0
  278. package/dist-types/utils/useResponsiveProp.d.ts +10 -0
  279. package/dist-types/viewport/ViewportProvider.d.ts +8 -0
  280. package/dist-types/viewport/index.d.ts +1 -0
  281. package/package.json +40 -0
@@ -0,0 +1,39 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { DEFAULT_ICON_SIZE, ErrorSolidIcon, SuccessTickIcon, WarningSolidIcon, InfoSolidIcon } from '@salt-ds/icons';
3
+ import cx from 'classnames';
4
+ import { forwardRef } from 'react';
5
+ import { makePrefixer } from '../utils/makePrefixer.js';
6
+ import '../utils/useId.js';
7
+ import '../salt-provider/SaltProvider.js';
8
+ import '../viewport/ViewportProvider.js';
9
+ import './StatusIndicator.css.js';
10
+
11
+ const icons = {
12
+ error: ErrorSolidIcon,
13
+ success: SuccessTickIcon,
14
+ warning: WarningSolidIcon,
15
+ info: InfoSolidIcon
16
+ };
17
+ const statusToAriaLabelMap = {
18
+ error: "error",
19
+ success: "success",
20
+ warning: "warning",
21
+ info: "info"
22
+ };
23
+ const withBaseName = makePrefixer("saltStatusIndicator");
24
+ const StatusIndicator = forwardRef(
25
+ function StatusIndicator2({ className, status, size = DEFAULT_ICON_SIZE, ...restProps }, ref) {
26
+ const IconComponent = icons[status];
27
+ const ariaLabel = statusToAriaLabelMap[status];
28
+ return /* @__PURE__ */ jsx(IconComponent, {
29
+ className: cx(withBaseName(), withBaseName(status), className),
30
+ size,
31
+ "aria-label": ariaLabel,
32
+ ...restProps,
33
+ ref
34
+ });
35
+ }
36
+ );
37
+
38
+ export { StatusIndicator };
39
+ //# sourceMappingURL=StatusIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusIndicator.js","sources":["../src/status-indicator/StatusIndicator.tsx"],"sourcesContent":["import {\n DEFAULT_ICON_SIZE,\n ErrorSolidIcon,\n IconProps,\n InfoSolidIcon,\n SuccessTickIcon,\n WarningSolidIcon,\n} from \"@salt-ds/icons\";\nimport classnames from \"classnames\";\nimport { forwardRef } from \"react\";\nimport { makePrefixer } from \"../utils\";\nimport { ValidationStatus } from \"./ValidationStatus\";\n\nimport \"./StatusIndicator.css\";\n\nconst icons = {\n error: ErrorSolidIcon,\n success: SuccessTickIcon,\n warning: WarningSolidIcon,\n info: InfoSolidIcon,\n};\n\nexport interface StatusIndicatorProps extends IconProps {\n /**\n * Status indicator to be displayed.\n */\n status: ValidationStatus;\n}\n\nconst statusToAriaLabelMap: Record<ValidationStatus, string> = {\n error: \"error\",\n success: \"success\",\n warning: \"warning\",\n info: \"info\",\n};\n\nconst withBaseName = makePrefixer(\"saltStatusIndicator\");\n\nexport const StatusIndicator = forwardRef<SVGSVGElement, StatusIndicatorProps>(\n function StatusIndicator(\n { className, status, size = DEFAULT_ICON_SIZE, ...restProps },\n ref\n ) {\n const IconComponent = icons[status];\n const ariaLabel = statusToAriaLabelMap[status];\n\n return (\n <IconComponent\n className={classnames(withBaseName(), withBaseName(status), className)}\n size={size}\n aria-label={ariaLabel}\n {...restProps}\n ref={ref}\n />\n );\n }\n);\n"],"names":["StatusIndicator","classnames"],"mappings":";;;;;;;;;;AAeA,MAAM,KAAQ,GAAA;AAAA,EACZ,KAAO,EAAA,cAAA;AAAA,EACP,OAAS,EAAA,eAAA;AAAA,EACT,OAAS,EAAA,gBAAA;AAAA,EACT,IAAM,EAAA,aAAA;AACR,CAAA,CAAA;AASA,MAAM,oBAAyD,GAAA;AAAA,EAC7D,KAAO,EAAA,OAAA;AAAA,EACP,OAAS,EAAA,SAAA;AAAA,EACT,OAAS,EAAA,SAAA;AAAA,EACT,IAAM,EAAA,MAAA;AACR,CAAA,CAAA;AAEA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA,CAAA;AAEhD,MAAM,eAAkB,GAAA,UAAA;AAAA,EAC7B,SAASA,iBACP,EAAE,SAAA,EAAW,QAAQ,IAAO,GAAA,iBAAA,EAAA,GAAsB,SAAU,EAAA,EAC5D,GACA,EAAA;AACA,IAAA,MAAM,gBAAgB,KAAM,CAAA,MAAA,CAAA,CAAA;AAC5B,IAAA,MAAM,YAAY,oBAAqB,CAAA,MAAA,CAAA,CAAA;AAEvC,IAAA,uBACG,GAAA,CAAA,aAAA,EAAA;AAAA,MACC,WAAWC,EAAW,CAAA,YAAA,IAAgB,YAAa,CAAA,MAAM,GAAG,SAAS,CAAA;AAAA,MACrE,IAAA;AAAA,MACA,YAAY,EAAA,SAAA;AAAA,MACX,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -0,0 +1,9 @@
1
+ const VALIDATION_NAMED_STATUS = [
2
+ "error",
3
+ "warning",
4
+ "success",
5
+ "info"
6
+ ];
7
+
8
+ export { VALIDATION_NAMED_STATUS };
9
+ //# sourceMappingURL=ValidationStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidationStatus.js","sources":["../src/status-indicator/ValidationStatus.ts"],"sourcesContent":["export const VALIDATION_NAMED_STATUS = [\n \"error\",\n \"warning\",\n \"success\",\n \"info\",\n] as const;\n\nexport type ValidationStatus = typeof VALIDATION_NAMED_STATUS[number];\n"],"names":[],"mappings":"AAAO,MAAM,uBAA0B,GAAA;AAAA,EACrC,OAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AACF;;;;"}
@@ -0,0 +1,40 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { makePrefixer } from '../utils/makePrefixer.js';
4
+ import '../utils/useId.js';
5
+ import '../salt-provider/SaltProvider.js';
6
+ import '../viewport/ViewportProvider.js';
7
+ import cx from 'classnames';
8
+ import { Text } from './Text.js';
9
+
10
+ const withBaseName = makePrefixer("saltText");
11
+ const Display1 = forwardRef(function Display12({ children, className, ...rest }, ref) {
12
+ return /* @__PURE__ */ jsx(Text, {
13
+ as: "span",
14
+ className: cx(className, withBaseName(`display1`)),
15
+ ref,
16
+ ...rest,
17
+ children
18
+ });
19
+ });
20
+ const Display2 = forwardRef(function Display22({ children, className, ...rest }, ref) {
21
+ return /* @__PURE__ */ jsx(Text, {
22
+ as: "span",
23
+ className: cx(className, withBaseName(`display2`)),
24
+ ref,
25
+ ...rest,
26
+ children
27
+ });
28
+ });
29
+ const Display3 = forwardRef(function Display32({ children, className, ...rest }, ref) {
30
+ return /* @__PURE__ */ jsx(Text, {
31
+ as: "span",
32
+ className: cx(className, withBaseName(`display3`)),
33
+ ref,
34
+ ...rest,
35
+ children
36
+ });
37
+ });
38
+
39
+ export { Display1, Display2, Display3 };
40
+ //# sourceMappingURL=Display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Display.js","sources":["../src/text/Display.tsx"],"sourcesContent":["import { makePrefixer } from \"../utils\";\nimport cx from \"classnames\";\nimport { forwardRef } from \"react\";\nimport { Text, TextProps } from \"./Text\";\n\nconst withBaseName = makePrefixer(\"saltText\");\n\nexport const Display1 = forwardRef<\n HTMLSpanElement,\n Omit<TextProps<\"span\">, \"as\">\n>(function Display1({ children, className, ...rest }, ref) {\n return (\n <Text\n as=\"span\"\n className={cx(className, withBaseName(`display1`))}\n ref={ref}\n {...rest}\n >\n {children}\n </Text>\n );\n});\n\nexport const Display2 = forwardRef<\n HTMLSpanElement,\n Omit<TextProps<\"span\">, \"as\">\n>(function Display2({ children, className, ...rest }, ref) {\n return (\n <Text\n as=\"span\"\n className={cx(className, withBaseName(`display2`))}\n ref={ref}\n {...rest}\n >\n {children}\n </Text>\n );\n});\n\nexport const Display3 = forwardRef<\n HTMLSpanElement,\n Omit<TextProps<\"span\">, \"as\">\n>(function Display3({ children, className, ...rest }, ref) {\n return (\n <Text\n as=\"span\"\n className={cx(className, withBaseName(`display3`))}\n ref={ref}\n {...rest}\n >\n {children}\n </Text>\n );\n});\n"],"names":["Display1","Display2","Display3"],"mappings":";;;;;;;;;AAKA,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA,CAAA;AAE/B,MAAA,QAAA,GAAW,WAGtB,SAASA,SAAAA,CAAS,EAAE,QAAU,EAAA,SAAA,EAAA,GAAc,IAAK,EAAA,EAAG,GAAK,EAAA;AACzD,EAAA,uBACG,GAAA,CAAA,IAAA,EAAA;AAAA,IACC,EAAG,EAAA,MAAA;AAAA,IACH,SAAW,EAAA,EAAA,CAAG,SAAW,EAAA,YAAA,CAAa,UAAU,CAAC,CAAA;AAAA,IACjD,GAAA;AAAA,IACC,GAAG,IAAA;AAAA,IAEH,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC,EAAA;AAEY,MAAA,QAAA,GAAW,WAGtB,SAASC,SAAAA,CAAS,EAAE,QAAU,EAAA,SAAA,EAAA,GAAc,IAAK,EAAA,EAAG,GAAK,EAAA;AACzD,EAAA,uBACG,GAAA,CAAA,IAAA,EAAA;AAAA,IACC,EAAG,EAAA,MAAA;AAAA,IACH,SAAW,EAAA,EAAA,CAAG,SAAW,EAAA,YAAA,CAAa,UAAU,CAAC,CAAA;AAAA,IACjD,GAAA;AAAA,IACC,GAAG,IAAA;AAAA,IAEH,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC,EAAA;AAEY,MAAA,QAAA,GAAW,WAGtB,SAASC,SAAAA,CAAS,EAAE,QAAU,EAAA,SAAA,EAAA,GAAc,IAAK,EAAA,EAAG,GAAK,EAAA;AACzD,EAAA,uBACG,GAAA,CAAA,IAAA,EAAA;AAAA,IACC,EAAG,EAAA,MAAA;AAAA,IACH,SAAW,EAAA,EAAA,CAAG,SAAW,EAAA,YAAA,CAAa,UAAU,CAAC,CAAA;AAAA,IACjD,GAAA;AAAA,IACC,GAAG,IAAA;AAAA,IAEH,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,47 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { Text } from './Text.js';
4
+
5
+ const H1 = forwardRef(
6
+ function H12({ children, ...rest }, ref) {
7
+ return /* @__PURE__ */ jsx(Text, {
8
+ as: "h1",
9
+ ref,
10
+ ...rest,
11
+ children
12
+ });
13
+ }
14
+ );
15
+ const H2 = forwardRef(
16
+ function H22({ children, ...rest }, ref) {
17
+ return /* @__PURE__ */ jsx(Text, {
18
+ as: "h2",
19
+ ref,
20
+ ...rest,
21
+ children
22
+ });
23
+ }
24
+ );
25
+ const H3 = forwardRef(
26
+ function H32({ children, ...rest }, ref) {
27
+ return /* @__PURE__ */ jsx(Text, {
28
+ as: "h3",
29
+ ref,
30
+ ...rest,
31
+ children
32
+ });
33
+ }
34
+ );
35
+ const H4 = forwardRef(
36
+ function H42({ children, ...rest }, ref) {
37
+ return /* @__PURE__ */ jsx(Text, {
38
+ as: "h4",
39
+ ref,
40
+ ...rest,
41
+ children
42
+ });
43
+ }
44
+ );
45
+
46
+ export { H1, H2, H3, H4 };
47
+ //# sourceMappingURL=Headings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Headings.js","sources":["../src/text/Headings.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { Text, TextProps } from \"./Text\";\n\nexport const H1 = forwardRef<HTMLHeadingElement, Omit<TextProps<\"h1\">, \"as\">>(\n function H1({ children, ...rest }, ref) {\n return (\n <Text as=\"h1\" ref={ref} {...rest}>\n {children}\n </Text>\n );\n }\n);\n\nexport const H2 = forwardRef<HTMLHeadingElement, Omit<TextProps<\"h2\">, \"as\">>(\n function H2({ children, ...rest }, ref) {\n return (\n <Text as=\"h2\" ref={ref} {...rest}>\n {children}\n </Text>\n );\n }\n);\n\nexport const H3 = forwardRef<HTMLHeadingElement, Omit<TextProps<\"h3\">, \"as\">>(\n function H3({ children, ...rest }, ref) {\n return (\n <Text as=\"h3\" ref={ref} {...rest}>\n {children}\n </Text>\n );\n }\n);\n\nexport const H4 = forwardRef<HTMLHeadingElement, Omit<TextProps<\"h4\">, \"as\">>(\n function H4({ children, ...rest }, ref) {\n return (\n <Text as=\"h4\" ref={ref} {...rest}>\n {children}\n </Text>\n );\n }\n);\n"],"names":["H1","H2","H3","H4"],"mappings":";;;;AAIO,MAAM,EAAK,GAAA,UAAA;AAAA,EAChB,SAASA,GAAG,CAAA,EAAE,QAAa,EAAA,GAAA,IAAA,IAAQ,GAAK,EAAA;AACtC,IAAA,uBACG,GAAA,CAAA,IAAA,EAAA;AAAA,MAAK,EAAG,EAAA,IAAA;AAAA,MAAK,GAAA;AAAA,MAAW,GAAG,IAAA;AAAA,MACzB,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF,EAAA;AAEO,MAAM,EAAK,GAAA,UAAA;AAAA,EAChB,SAASC,GAAG,CAAA,EAAE,QAAa,EAAA,GAAA,IAAA,IAAQ,GAAK,EAAA;AACtC,IAAA,uBACG,GAAA,CAAA,IAAA,EAAA;AAAA,MAAK,EAAG,EAAA,IAAA;AAAA,MAAK,GAAA;AAAA,MAAW,GAAG,IAAA;AAAA,MACzB,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF,EAAA;AAEO,MAAM,EAAK,GAAA,UAAA;AAAA,EAChB,SAASC,GAAG,CAAA,EAAE,QAAa,EAAA,GAAA,IAAA,IAAQ,GAAK,EAAA;AACtC,IAAA,uBACG,GAAA,CAAA,IAAA,EAAA;AAAA,MAAK,EAAG,EAAA,IAAA;AAAA,MAAK,GAAA;AAAA,MAAW,GAAG,IAAA;AAAA,MACzB,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF,EAAA;AAEO,MAAM,EAAK,GAAA,UAAA;AAAA,EAChB,SAASC,GAAG,CAAA,EAAE,QAAa,EAAA,GAAA,IAAA,IAAQ,GAAK,EAAA;AACtC,IAAA,uBACG,GAAA,CAAA,IAAA,EAAA;AAAA,MAAK,EAAG,EAAA,IAAA;AAAA,MAAK,GAAA;AAAA,MAAW,GAAG,IAAA;AAAA,MACzB,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -0,0 +1,15 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { Text } from './Text.js';
4
+
5
+ const Label = forwardRef(function Label2({ children, ...rest }, ref) {
6
+ return /* @__PURE__ */ jsx(Text, {
7
+ as: "label",
8
+ ref,
9
+ ...rest,
10
+ children
11
+ });
12
+ });
13
+
14
+ export { Label };
15
+ //# sourceMappingURL=Label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Label.js","sources":["../src/text/Label.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { Text, TextProps } from \"./Text\";\n\nexport const Label = forwardRef<\n HTMLLabelElement,\n Omit<TextProps<\"label\">, \"as\">\n>(function Label({ children, ...rest }, ref) {\n return (\n <Text as=\"label\" ref={ref} {...rest}>\n {children}\n </Text>\n );\n});\n"],"names":["Label"],"mappings":";;;;AAGa,MAAA,KAAA,GAAQ,WAGnB,SAASA,MAAAA,CAAM,EAAE,QAAa,EAAA,GAAA,IAAA,IAAQ,GAAK,EAAA;AAC3C,EAAA,uBACG,GAAA,CAAA,IAAA,EAAA;AAAA,IAAK,EAAG,EAAA,OAAA;AAAA,IAAQ,GAAA;AAAA,IAAW,GAAG,IAAA;AAAA,IAC5B,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,7 @@
1
+ import styleInject from '../../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = "/* Main css class. Style for body text */\n.saltText {\n font-size: var(--salt-text-fontSize);\n line-height: var(--salt-text-lineHeight);\n color: var(--saltText-color, var(--text-color));\n}\n\n/* Allows truncation */\n.saltText-lineClamp {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--text-max-rows, 0);\n overflow: hidden;\n word-break: break-word;\n}\n\n/* Primary variant */\n.saltText-primary {\n --text-color: var(--salt-text-primary-foreground);\n}\n\n/* Secondary variant */\n.saltText-secondary {\n --text-color: var(--salt-text-secondary-foreground);\n}\n\n/* Body emphasis strong */\n.saltText strong {\n font-weight: var(--salt-text-fontWeight-strong);\n}\n/* Body emphasis small */\n.saltText small {\n font-size: inherit;\n font-weight: var(--salt-text-fontWeight-small);\n}\n\n/* Display 1 */\n.saltText-display1.saltText {\n font-size: var(--salt-text-display1-fontSize);\n font-weight: var(--salt-text-display1-fontWeight);\n line-height: var(--salt-text-display1-lineHeight);\n}\n\n/* Display 2 */\n.saltText-display2.saltText {\n font-size: var(--salt-text-display2-fontSize);\n font-weight: var(--salt-text-display2-fontWeight);\n line-height: var(--salt-text-display2-lineHeight);\n}\n\n/* Display 3 */\n.saltText-display3.saltText {\n font-size: var(--salt-text-display3-fontSize);\n font-weight: var(--salt-text-display3-fontWeight);\n line-height: var(--salt-text-display3-lineHeight);\n}\n\n/* Heading 1 */\nh1.saltText,\n.saltText-h1.saltText {\n font-size: var(--salt-text-h1-fontSize);\n font-weight: var(--salt-text-h1-fontWeight);\n line-height: var(--salt-text-h1-lineHeight);\n}\n\n/* H1 emphasis strong */\nh1.saltText strong,\n.saltText-h1.saltText strong {\n font-weight: var(--salt-text-h1-fontWeight-strong);\n}\n/* H1 emphasis small */\nh1.saltText small,\n.saltText-h1.saltText small {\n font-size: inherit;\n font-weight: var(--salt-text-h1-fontWeight-small);\n}\n\n/* Heading 2 */\nh2.saltText,\n.saltText-h2.saltText {\n font-size: var(--salt-text-h2-fontSize);\n font-weight: var(--salt-text-h2-fontWeight);\n line-height: var(--salt-text-h2-lineHeight);\n}\n\n/* H2 emphasis strong */\nh2.saltText strong,\n.saltText-h2.saltText strong {\n font-weight: var(--salt-text-h2-fontWeight-strong);\n}\n/* H2 emphasis small */\nh2.saltText small,\n.saltText-h2.saltText small {\n font-size: inherit;\n font-weight: var(--salt-text-h2-fontWeight-small);\n}\n\n/* Heading 3 */\nh3.saltText,\n.saltText-h3.saltText {\n font-size: var(--salt-text-h3-fontSize);\n font-weight: var(--salt-text-h3-fontWeight);\n line-height: var(--salt-text-h3-lineHeight);\n}\n\n/* H3 emphasis strong */\nh3.saltText strong,\n.saltText-h3.saltText strong {\n font-weight: var(--salt-text-h3-fontWeight-strong);\n}\n/* H3 emphasis small */\nh3.saltText small,\n.saltText-h3.saltText small {\n font-size: inherit;\n font-weight: var(--salt-text-h3-fontWeight-small);\n}\n\n/* Heading 4 */\nh4.saltText,\n.saltText-h4.saltText {\n font-size: var(--salt-text-h4-fontSize);\n font-weight: var(--salt-text-h4-fontWeight);\n line-height: var(--salt-text-h4-lineHeight);\n}\n\n/* H4 emphasis strong */\nh4.saltText strong,\n.saltText-h4.saltText strong {\n font-weight: var(--salt-text-h4-fontWeight-strong);\n}\n/* H4 emphasis small */\nh4.saltText small,\n.saltText-h4.saltText small {\n font-size: inherit;\n font-weight: var(--salt-text-h4-fontWeight-small);\n}\n\n/* Label */\nlabel.saltText,\n.saltText-label.saltText {\n font-size: var(--salt-text-label-fontSize);\n line-height: var(--salt-text-label-lineHeight);\n font-weight: var(--salt-text-fontWeight);\n}\n\n/* Label emphasis strong */\nlabel.saltText strong,\n.saltText-label.saltText strong {\n font-weight: var(--salt-text-fontWeight-strong);\n}\n/* Label emphasis small */\nlabel.saltText small,\n.saltText-label.saltText small {\n font-size: inherit;\n font-weight: var(--salt-text-fontWeight-small);\n}\n";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
7
+ //# sourceMappingURL=Text.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,39 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { makePrefixer } from '../utils/makePrefixer.js';
4
+ import '../utils/useId.js';
5
+ import '../salt-provider/SaltProvider.js';
6
+ import '../viewport/ViewportProvider.js';
7
+ import cx from 'classnames';
8
+ import './Text.css.js';
9
+
10
+ const withBaseName = makePrefixer("saltText");
11
+ const Text = forwardRef(
12
+ ({
13
+ children,
14
+ className,
15
+ as,
16
+ maxRows,
17
+ styleAs,
18
+ variant = "primary",
19
+ style,
20
+ ...restProps
21
+ }, ref) => {
22
+ const Component = as || "div";
23
+ const textStyles = { "--text-max-rows": maxRows, ...style };
24
+ return /* @__PURE__ */ jsx(Component, {
25
+ className: cx(withBaseName(), className, {
26
+ [withBaseName("lineClamp")]: maxRows,
27
+ [withBaseName(styleAs || "")]: styleAs,
28
+ [withBaseName(variant)]: variant
29
+ }),
30
+ ...restProps,
31
+ ref,
32
+ style: textStyles,
33
+ children
34
+ });
35
+ }
36
+ );
37
+
38
+ export { Text };
39
+ //# sourceMappingURL=Text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.js","sources":["../src/text/Text.tsx"],"sourcesContent":["import {\n makePrefixer,\n PolymorphicComponentPropWithRef,\n PolymorphicRef,\n} from \"../utils\";\nimport cx from \"classnames\";\nimport { ElementType, forwardRef, ReactElement } from \"react\";\n\nimport \"./Text.css\";\n\nexport type TextProps<T extends ElementType> = PolymorphicComponentPropWithRef<\n T,\n {\n /**\n * Apply text truncation by mentioning number of rows to be displayed\n */\n maxRows?: number;\n /**\n * Match styling to another text component's style\n */\n styleAs?:\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"label\"\n | \"display1\"\n | \"display2\"\n | \"display3\";\n /**\n * Change text color palette\n */\n variant?: \"primary\" | \"secondary\";\n }\n>;\n\ntype TextComponent = <T extends ElementType = \"div\">(\n props: TextProps<T>\n) => ReactElement | null;\n\nconst withBaseName = makePrefixer(\"saltText\");\n\nexport const Text: TextComponent = forwardRef(\n <T extends ElementType = \"div\">(\n {\n children,\n className,\n as,\n maxRows,\n styleAs,\n variant = \"primary\",\n style,\n ...restProps\n }: TextProps<T>,\n ref?: PolymorphicRef<T>\n ) => {\n const Component = as || \"div\";\n\n const textStyles = { \"--text-max-rows\": maxRows, ...style };\n\n return (\n <Component\n className={cx(withBaseName(), className, {\n [withBaseName(\"lineClamp\")]: maxRows,\n [withBaseName(styleAs || \"\")]: styleAs,\n [withBaseName(variant)]: variant,\n })}\n {...restProps}\n ref={ref}\n style={textStyles}\n >\n {children}\n </Component>\n );\n }\n);\n"],"names":[],"mappings":";;;;;;;;;AAwCA,MAAM,YAAA,GAAe,aAAa,UAAU,CAAA,CAAA;AAErC,MAAM,IAAsB,GAAA,UAAA;AAAA,EACjC,CACE;AAAA,IACE,QAAA;AAAA,IACA,SAAA;AAAA,IACA,EAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAU,GAAA,SAAA;AAAA,IACV,KAAA;AAAA,IACG,GAAA,SAAA;AAAA,KAEL,GACG,KAAA;AACH,IAAA,MAAM,YAAY,EAAM,IAAA,KAAA,CAAA;AAExB,IAAA,MAAM,UAAa,GAAA,EAAE,iBAAmB,EAAA,OAAA,EAAS,GAAG,KAAM,EAAA,CAAA;AAE1D,IAAA,uBACG,GAAA,CAAA,SAAA,EAAA;AAAA,MACC,SAAW,EAAA,EAAA,CAAG,YAAa,EAAA,EAAG,SAAW,EAAA;AAAA,QACvC,CAAC,YAAa,CAAA,WAAW,CAAI,GAAA,OAAA;AAAA,QAC7B,CAAC,YAAA,CAAa,OAAW,IAAA,EAAE,CAAI,GAAA,OAAA;AAAA,QAC/B,CAAC,YAAa,CAAA,OAAO,CAAI,GAAA,OAAA;AAAA,OAC1B,CAAA;AAAA,MACA,GAAG,SAAA;AAAA,MACJ,GAAA;AAAA,MACA,KAAO,EAAA,UAAA;AAAA,MAEN,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -0,0 +1,4 @@
1
+ const DensityValues = ["high", "medium", "low", "touch"];
2
+
3
+ export { DensityValues };
4
+ //# sourceMappingURL=Density.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Density.js","sources":["../src/theme/Density.ts"],"sourcesContent":["export const DensityValues = [\"high\", \"medium\", \"low\", \"touch\"] as const;\n\nexport type Density = typeof DensityValues[number];\n"],"names":[],"mappings":"AAAO,MAAM,aAAgB,GAAA,CAAC,MAAQ,EAAA,QAAA,EAAU,OAAO,OAAO;;;;"}
@@ -0,0 +1,4 @@
1
+ const ModeValues = ["light", "dark"];
2
+
3
+ export { ModeValues };
4
+ //# sourceMappingURL=Mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mode.js","sources":["../src/theme/Mode.ts"],"sourcesContent":["export const ModeValues = [\"light\", \"dark\"] as const;\n\nexport type Mode = typeof ModeValues[number];\n"],"names":[],"mappings":"AAAa,MAAA,UAAA,GAAa,CAAC,OAAA,EAAS,MAAM;;;;"}
@@ -0,0 +1,15 @@
1
+ const getCharacteristicValue = (themeName, characteristicName, variant, scopeElement) => {
2
+ const cssVariableName = `--salt-${characteristicName}-${variant}`;
3
+ const scopeTarget = scopeElement || document.body.querySelector(`.${themeName}`);
4
+ if (scopeTarget) {
5
+ const style = getComputedStyle(scopeTarget);
6
+ const variableValue = style.getPropertyValue(cssVariableName);
7
+ if (variableValue) {
8
+ return variableValue;
9
+ }
10
+ }
11
+ return null;
12
+ };
13
+
14
+ export { getCharacteristicValue };
15
+ //# sourceMappingURL=Theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Theme.js","sources":["../src/theme/Theme.ts"],"sourcesContent":["export type characteristic =\n | \"accent\"\n | \"actionable\"\n | \"container\"\n | \"delay\"\n | \"disabled\"\n | \"draggable\"\n | \"target\"\n | \"editable\"\n | \"focused\"\n | \"measured\"\n | \"navigable\"\n | \"overlayable\"\n | \"selectable\"\n | \"separable\"\n | \"taggable\"\n | \"text\"\n | \"status\"\n // The next 4 are foundations, should they really be here?\n | \"icon\"\n | \"shadow\"\n | \"size\"\n | \"spacing\";\n\nexport type ThemeName = string;\n\nexport const getCharacteristicValue = (\n themeName: ThemeName,\n characteristicName: characteristic,\n variant: string,\n scopeElement?: HTMLElement\n): string | null => {\n const cssVariableName = `--salt-${characteristicName}-${variant}`;\n const scopeTarget =\n scopeElement || document.body.querySelector(`.${themeName}`);\n if (scopeTarget) {\n const style = getComputedStyle(scopeTarget);\n const variableValue = style.getPropertyValue(cssVariableName);\n if (variableValue) {\n return variableValue;\n }\n }\n return null;\n};\n"],"names":[],"mappings":"AA0BO,MAAM,sBAAyB,GAAA,CACpC,SACA,EAAA,kBAAA,EACA,SACA,YACkB,KAAA;AAClB,EAAM,MAAA,eAAA,GAAkB,UAAU,kBAAsB,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,CAAA;AACxD,EAAA,MAAM,cACJ,YAAgB,IAAA,QAAA,CAAS,IAAK,CAAA,aAAA,CAAc,IAAI,SAAW,CAAA,CAAA,CAAA,CAAA;AAC7D,EAAA,IAAI,WAAa,EAAA;AACf,IAAM,MAAA,KAAA,GAAQ,iBAAiB,WAAW,CAAA,CAAA;AAC1C,IAAM,MAAA,aAAA,GAAgB,KAAM,CAAA,gBAAA,CAAiB,eAAe,CAAA,CAAA;AAC5D,IAAA,IAAI,aAAe,EAAA;AACjB,MAAO,OAAA,aAAA,CAAA;AAAA,KACT;AAAA,GACF;AACA,EAAO,OAAA,IAAA,CAAA;AACT;;;;"}
@@ -0,0 +1,18 @@
1
+ function createChainedFunction(...funcs) {
2
+ return funcs.reduce(
3
+ (acc, func) => {
4
+ if (func == null) {
5
+ return acc;
6
+ }
7
+ return function chainedFunction(...args) {
8
+ acc.apply(this, args);
9
+ func.apply(this, args);
10
+ };
11
+ },
12
+ () => {
13
+ }
14
+ );
15
+ }
16
+
17
+ export { createChainedFunction };
18
+ //# sourceMappingURL=createChainedFunction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createChainedFunction.js","sources":["../src/utils/createChainedFunction.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\ntype ChainedFunction<Args extends any[], This> =\n | ((this: This, ...args: Args) => any)\n | undefined\n | null;\n\nexport function createChainedFunction<Args extends any[], This>(\n ...funcs: ChainedFunction<Args, This>[]\n): (this: This, ...args: Args) => any {\n return funcs.reduce<(this: This, ...args: Args) => any>(\n (acc, func) => {\n if (func == null) {\n return acc;\n }\n\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {}\n );\n}\n"],"names":[],"mappings":"AAOO,SAAS,yBACX,KACiC,EAAA;AACpC,EAAA,OAAO,KAAM,CAAA,MAAA;AAAA,IACX,CAAC,KAAK,IAAS,KAAA;AACb,MAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,QAAO,OAAA,GAAA,CAAA;AAAA,OACT;AAEA,MAAO,OAAA,SAAS,mBAAmB,IAAM,EAAA;AACvC,QAAI,GAAA,CAAA,KAAA,CAAM,MAAM,IAAI,CAAA,CAAA;AACpB,QAAK,IAAA,CAAA,KAAA,CAAM,MAAM,IAAI,CAAA,CAAA;AAAA,OACvB,CAAA;AAAA,KACF;AAAA,IAEA,MAAM;AAAA,KAAC;AAAA,GACT,CAAA;AACF;;;;"}
@@ -0,0 +1,12 @@
1
+ import { createContext as createContext$1 } from 'react';
2
+
3
+ function createContext(name, defaultValue) {
4
+ const context = createContext$1(defaultValue);
5
+ if (process.env.NODE_ENV !== "production") {
6
+ context.displayName = name;
7
+ }
8
+ return context;
9
+ }
10
+
11
+ export { createContext };
12
+ //# sourceMappingURL=createContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createContext.js","sources":["../src/utils/createContext.ts"],"sourcesContent":["import { createContext as createReactContext, Context } from \"react\";\n\nexport function createContext<ContextValueType>(\n name: string,\n defaultValue: ContextValueType\n): Context<ContextValueType> {\n const context = createReactContext<ContextValueType>(defaultValue);\n if (process.env.NODE_ENV !== \"production\") {\n context.displayName = name;\n }\n return context;\n}\n"],"names":["createReactContext"],"mappings":";;AAEgB,SAAA,aAAA,CACd,MACA,YAC2B,EAAA;AAC3B,EAAM,MAAA,OAAA,GAAUA,gBAAqC,YAAY,CAAA,CAAA;AACjE,EAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,IAAA,OAAA,CAAQ,WAAc,GAAA,IAAA,CAAA;AAAA,GACxB;AACA,EAAO,OAAA,OAAA,CAAA;AACT;;;;"}
@@ -0,0 +1,20 @@
1
+ function debounce(func, wait = 166, leading = false) {
2
+ let timeout;
3
+ const debounced = function debounced2(...args) {
4
+ const later = () => {
5
+ func.apply(this, args);
6
+ };
7
+ clearTimeout(timeout);
8
+ if (leading) {
9
+ later();
10
+ }
11
+ timeout = window.setTimeout(later, wait);
12
+ };
13
+ debounced.clear = () => {
14
+ clearTimeout(timeout);
15
+ };
16
+ return debounced;
17
+ }
18
+
19
+ export { debounce };
20
+ //# sourceMappingURL=debounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.js","sources":["../src/utils/debounce.ts"],"sourcesContent":["export interface Cancelable {\n clear(): void;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function debounce<T extends (...args: any[]) => any>(\n func: T,\n // Corresponds to 10 frames at 60 Hz.\n wait = 166,\n leading = false\n): T & Cancelable {\n let timeout: number;\n const debounced: T & Cancelable = function debounced(\n this: typeof debounced,\n ...args\n ) {\n const later = () => {\n func.apply(this, args);\n };\n clearTimeout(timeout);\n if (leading) {\n later();\n }\n timeout = window.setTimeout(later, wait);\n } as T & Cancelable;\n\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n\n return debounced;\n}\n"],"names":["debounced"],"mappings":"AAKO,SAAS,QACd,CAAA,IAAA,EAEA,IAAO,GAAA,GAAA,EACP,UAAU,KACM,EAAA;AAChB,EAAI,IAAA,OAAA,CAAA;AACJ,EAAM,MAAA,SAAA,GAA4B,SAASA,UAAAA,CAAAA,GAEtC,IACH,EAAA;AACA,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAK,IAAA,CAAA,KAAA,CAAM,MAAM,IAAI,CAAA,CAAA;AAAA,KACvB,CAAA;AACA,IAAA,YAAA,CAAa,OAAO,CAAA,CAAA;AACpB,IAAA,IAAI,OAAS,EAAA;AACX,MAAM,KAAA,EAAA,CAAA;AAAA,KACR;AACA,IAAU,OAAA,GAAA,MAAA,CAAO,UAAW,CAAA,KAAA,EAAO,IAAI,CAAA,CAAA;AAAA,GACzC,CAAA;AAEA,EAAA,SAAA,CAAU,QAAQ,MAAM;AACtB,IAAA,YAAA,CAAa,OAAO,CAAA,CAAA;AAAA,GACtB,CAAA;AAEA,EAAO,OAAA,SAAA,CAAA;AACT;;;;"}
@@ -0,0 +1,4 @@
1
+ const makePrefixer = (prefix) => (...names) => [prefix, ...names].join("-");
2
+
3
+ export { makePrefixer };
4
+ //# sourceMappingURL=makePrefixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makePrefixer.js","sources":["../src/utils/makePrefixer.ts"],"sourcesContent":["export type ClassNamePrefixer = (...names: string[]) => string;\nexport const makePrefixer =\n (prefix: string): ClassNamePrefixer =>\n (...names: string[]): string =>\n [prefix, ...names].join(\"-\");\n"],"names":[],"mappings":"AACa,MAAA,YAAA,GACX,CAAC,MAAA,KACD,CAAI,GAAA,KAAA,KACF,CAAC,MAAA,EAAQ,GAAG,KAAK,CAAE,CAAA,IAAA,CAAK,GAAG;;;;"}
@@ -0,0 +1,18 @@
1
+ const margin = (value = 0) => ({
2
+ name: "margin",
3
+ options: value,
4
+ fn(middlewareArguments) {
5
+ const { x, y, elements } = middlewareArguments;
6
+ if (elements.floating.children.length > 0) {
7
+ const rootChildElement = elements.floating.children[0];
8
+ rootChildElement.style.setProperty("margin", value.toString());
9
+ }
10
+ return {
11
+ x,
12
+ y
13
+ };
14
+ }
15
+ });
16
+
17
+ export { margin };
18
+ //# sourceMappingURL=marginMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marginMiddleware.js","sources":["../src/utils/marginMiddleware.ts"],"sourcesContent":["import { Middleware } from \"@floating-ui/core\";\nimport { MiddlewareArguments } from \"@floating-ui/react-dom-interactions\";\n\nexport const margin = (value = 0): Middleware => ({\n name: \"margin\",\n options: value,\n fn(middlewareArguments: MiddlewareArguments) {\n const { x, y, elements } = middlewareArguments;\n\n if (elements.floating.children.length > 0) {\n const rootChildElement = elements.floating.children[0] as HTMLElement;\n rootChildElement.style.setProperty(\"margin\", value.toString());\n }\n return {\n x: x,\n y: y,\n };\n },\n});\n"],"names":[],"mappings":"AAGa,MAAA,MAAA,GAAS,CAAC,KAAA,GAAQ,CAAmB,MAAA;AAAA,EAChD,IAAM,EAAA,QAAA;AAAA,EACN,OAAS,EAAA,KAAA;AAAA,EACT,GAAG,mBAA0C,EAAA;AAC3C,IAAA,MAAM,EAAE,CAAA,EAAG,CAAG,EAAA,QAAA,EAAa,GAAA,mBAAA,CAAA;AAE3B,IAAA,IAAI,QAAS,CAAA,QAAA,CAAS,QAAS,CAAA,MAAA,GAAS,CAAG,EAAA;AACzC,MAAM,MAAA,gBAAA,GAAmB,QAAS,CAAA,QAAA,CAAS,QAAS,CAAA,CAAA,CAAA,CAAA;AACpD,MAAA,gBAAA,CAAiB,KAAM,CAAA,WAAA,CAAY,QAAU,EAAA,KAAA,CAAM,UAAU,CAAA,CAAA;AAAA,KAC/D;AACA,IAAO,OAAA;AAAA,MACL,CAAA;AAAA,MACA,CAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAA;;;;"}
@@ -0,0 +1,6 @@
1
+ function ownerDocument(node) {
2
+ return (node == null ? void 0 : node.ownerDocument) || document;
3
+ }
4
+
5
+ export { ownerDocument };
6
+ //# sourceMappingURL=ownerDocument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownerDocument.js","sources":["../src/utils/ownerDocument.ts"],"sourcesContent":["export function ownerDocument(node: Node | null | undefined): Document {\n return node?.ownerDocument || document;\n}\n"],"names":[],"mappings":"AAAO,SAAS,cAAc,IAAyC,EAAA;AACrE,EAAA,OAAA,CAAO,6BAAM,aAAiB,KAAA,QAAA,CAAA;AAChC;;;;"}
@@ -0,0 +1,9 @@
1
+ import { ownerDocument } from './ownerDocument.js';
2
+
3
+ function ownerWindow(node) {
4
+ const doc = ownerDocument(node);
5
+ return doc.defaultView || window;
6
+ }
7
+
8
+ export { ownerWindow };
9
+ //# sourceMappingURL=ownerWindow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownerWindow.js","sources":["../src/utils/ownerWindow.ts"],"sourcesContent":["import { ownerDocument } from \"./ownerDocument\";\n\nexport function ownerWindow(node: Node | null | undefined): Window {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}\n"],"names":[],"mappings":";;AAEO,SAAS,YAAY,IAAuC,EAAA;AACjE,EAAM,MAAA,GAAA,GAAM,cAAc,IAAI,CAAA,CAAA;AAC9B,EAAA,OAAO,IAAI,WAAe,IAAA,MAAA,CAAA;AAC5B;;;;"}
@@ -0,0 +1,10 @@
1
+ function setRef(ref, value) {
2
+ if (typeof ref === "function") {
3
+ ref(value);
4
+ } else if (ref) {
5
+ ref.current = value;
6
+ }
7
+ }
8
+
9
+ export { setRef };
10
+ //# sourceMappingURL=setRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setRef.js","sources":["../src/utils/setRef.ts"],"sourcesContent":["import { MutableRefObject } from \"react\";\n\nexport function setRef<T>(\n ref:\n | MutableRefObject<T | null>\n | ((instance: T | null) => void)\n | null\n | undefined,\n value: T | null\n): void {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n"],"names":[],"mappings":"AAEgB,SAAA,MAAA,CACd,KAKA,KACM,EAAA;AACN,EAAI,IAAA,OAAO,QAAQ,UAAY,EAAA;AAC7B,IAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAAA,aACA,GAAK,EAAA;AACd,IAAA,GAAA,CAAI,OAAU,GAAA,KAAA,CAAA;AAAA,GAChB;AACF;;;;"}
@@ -0,0 +1,56 @@
1
+ import { useRef, useState, useEffect, useCallback, isValidElement } from 'react';
2
+
3
+ function useControlled({
4
+ controlled,
5
+ default: defaultProp,
6
+ name,
7
+ state = "value"
8
+ }) {
9
+ const { current: isControlled } = useRef(controlled !== void 0);
10
+ const [valueState, setValue] = useState(defaultProp);
11
+ const value = controlled !== void 0 ? controlled : valueState;
12
+ const { current: defaultValue } = useRef(defaultProp);
13
+ useEffect(() => {
14
+ if (process.env.NODE_ENV !== "production") {
15
+ if (isControlled !== (controlled !== void 0)) {
16
+ console.error(
17
+ [
18
+ `Salt: A component is changing the ${isControlled ? "" : "un"}controlled ${state} state of ${name} to be ${isControlled ? "un" : ""}controlled.`,
19
+ "Elements should not switch from uncontrolled to controlled (or vice versa).",
20
+ `Decide between using a controlled or uncontrolled ${name} element for the lifetime of the component.`,
21
+ "The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.",
22
+ "More info: https://fb.me/react-controlled-components"
23
+ ].join("\n")
24
+ );
25
+ }
26
+ }
27
+ return void 0;
28
+ }, [state, name, controlled]);
29
+ useEffect(() => {
30
+ if (process.env.NODE_ENV !== "production") {
31
+ if (!isControlled && defaultValue !== defaultProp) {
32
+ console.error(
33
+ [
34
+ `Salt: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. To suppress this warning opt to use a controlled ${name}.`
35
+ ].join("\n")
36
+ );
37
+ }
38
+ }
39
+ return void 0;
40
+ }, [JSON.stringify(defaultProp, ignoreReactElements)]);
41
+ const setValueIfUncontrolled = useCallback(
42
+ (newValue) => {
43
+ if (!isControlled) {
44
+ setValue(newValue);
45
+ }
46
+ },
47
+ [isControlled]
48
+ );
49
+ return [value, setValueIfUncontrolled, isControlled];
50
+ }
51
+ function ignoreReactElements(key, value) {
52
+ return isValidElement(value) ? null : value;
53
+ }
54
+
55
+ export { useControlled };
56
+ //# sourceMappingURL=useControlled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControlled.js","sources":["../src/utils/useControlled.ts"],"sourcesContent":["import {\n Dispatch,\n isValidElement,\n SetStateAction,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nexport interface UseControlledProps<T> {\n /**\n * Holds the component value when it's controlled.\n */\n controlled?: T;\n /**\n * The default value when uncontrolled.\n */\n default: T;\n /**\n * The component name displayed in warnings.\n */\n name: string;\n /**\n * The name of the state variable displayed in warnings.\n */\n state?: string;\n}\n\n/**\n * Copied from MUI (v5) useControlled hook with one additional returned value\n * @see https://github.com/mui-org/material-ui/blob/0979e6a54ba47c278d1f535953c0520a86349811/packages/material-ui-utils/src/useControlled.js\n */\nexport function useControlled<S>({\n controlled,\n default: defaultProp,\n name,\n state = \"value\",\n}: UseControlledProps<S>): [S, Dispatch<SetStateAction<S>>, boolean] {\n const { current: isControlled } = useRef(controlled !== undefined);\n const [valueState, setValue] = useState<S>(defaultProp);\n const value = controlled !== undefined ? controlled : valueState;\n const { current: defaultValue } = useRef(defaultProp);\n\n useEffect(() => {\n if (process.env.NODE_ENV !== \"production\") {\n if (isControlled !== (controlled !== undefined)) {\n console.error(\n [\n `Salt: A component is changing the ${\n isControlled ? \"\" : \"un\"\n }controlled ${state} state of ${name} to be ${\n isControlled ? \"un\" : \"\"\n }controlled.`,\n \"Elements should not switch from uncontrolled to controlled (or vice versa).\",\n `Decide between using a controlled or uncontrolled ${name} ` +\n \"element for the lifetime of the component.\",\n \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\",\n \"More info: https://fb.me/react-controlled-components\",\n ].join(\"\\n\")\n );\n }\n }\n return undefined;\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, [state, name, controlled]);\n\n useEffect(() => {\n if (process.env.NODE_ENV !== \"production\") {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error(\n [\n `Salt: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` +\n `To suppress this warning opt to use a controlled ${name}.`,\n ].join(\"\\n\")\n );\n }\n }\n return undefined;\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n }, [JSON.stringify(defaultProp, ignoreReactElements)]);\n\n const setValueIfUncontrolled: Dispatch<SetStateAction<S>> = useCallback(\n (newValue) => {\n if (!isControlled) {\n setValue(newValue);\n }\n },\n [isControlled]\n );\n\n return [value, setValueIfUncontrolled, isControlled];\n}\n\n// Ignore ReactElements in JSON, they contain circular refs\nfunction ignoreReactElements<T>(key: string, value: T): T | null {\n return isValidElement(value) ? null : value;\n}\n"],"names":[],"mappings":";;AAiCO,SAAS,aAAiB,CAAA;AAAA,EAC/B,UAAA;AAAA,EACA,OAAS,EAAA,WAAA;AAAA,EACT,IAAA;AAAA,EACA,KAAQ,GAAA,OAAA;AACV,CAAqE,EAAA;AACnE,EAAA,MAAM,EAAE,OAAS,EAAA,YAAA,EAAiB,GAAA,MAAA,CAAO,eAAe,KAAS,CAAA,CAAA,CAAA;AACjE,EAAA,MAAM,CAAC,UAAA,EAAY,QAAQ,CAAA,GAAI,SAAY,WAAW,CAAA,CAAA;AACtD,EAAM,MAAA,KAAA,GAAQ,UAAe,KAAA,KAAA,CAAA,GAAY,UAAa,GAAA,UAAA,CAAA;AACtD,EAAA,MAAM,EAAE,OAAA,EAAS,YAAa,EAAA,GAAI,OAAO,WAAW,CAAA,CAAA;AAEpD,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,MAAI,IAAA,YAAA,MAAkB,eAAe,KAAY,CAAA,CAAA,EAAA;AAC/C,QAAQ,OAAA,CAAA,KAAA;AAAA,UACN;AAAA,YACE,qCACE,YAAe,GAAA,EAAA,GAAK,kBACR,KAAkB,CAAA,UAAA,EAAA,IAAA,CAAA,OAAA,EAC9B,eAAe,IAAO,GAAA,EAAA,CAAA,WAAA,CAAA;AAAA,YAExB,6EAAA;AAAA,YACA,CAAqD,kDAAA,EAAA,IAAA,CAAA,2CAAA,CAAA;AAAA,YAErD,4HAAA;AAAA,YACA,sDAAA;AAAA,WACF,CAAE,KAAK,IAAI,CAAA;AAAA,SACb,CAAA;AAAA,OACF;AAAA,KACF;AACA,IAAO,OAAA,KAAA,CAAA,CAAA;AAAA,GAEN,EAAA,CAAC,KAAO,EAAA,IAAA,EAAM,UAAU,CAAC,CAAA,CAAA;AAE5B,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,MAAI,IAAA,CAAC,YAAgB,IAAA,YAAA,KAAiB,WAAa,EAAA;AACjD,QAAQ,OAAA,CAAA,KAAA;AAAA,UACN;AAAA,YACE,CAAA,0CAAA,EAA6C,kCAAkC,IACzB,CAAA,2EAAA,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,WACxD,CAAE,KAAK,IAAI,CAAA;AAAA,SACb,CAAA;AAAA,OACF;AAAA,KACF;AACA,IAAO,OAAA,KAAA,CAAA,CAAA;AAAA,KAEN,CAAC,IAAA,CAAK,UAAU,WAAa,EAAA,mBAAmB,CAAC,CAAC,CAAA,CAAA;AAErD,EAAA,MAAM,sBAAsD,GAAA,WAAA;AAAA,IAC1D,CAAC,QAAa,KAAA;AACZ,MAAA,IAAI,CAAC,YAAc,EAAA;AACjB,QAAA,QAAA,CAAS,QAAQ,CAAA,CAAA;AAAA,OACnB;AAAA,KACF;AAAA,IACA,CAAC,YAAY,CAAA;AAAA,GACf,CAAA;AAEA,EAAO,OAAA,CAAC,KAAO,EAAA,sBAAA,EAAwB,YAAY,CAAA,CAAA;AACrD,CAAA;AAGA,SAAS,mBAAA,CAAuB,KAAa,KAAoB,EAAA;AAC/D,EAAO,OAAA,cAAA,CAAe,KAAK,CAAA,GAAI,IAAO,GAAA,KAAA,CAAA;AACxC;;;;"}
@@ -0,0 +1,17 @@
1
+ import { useMemo } from 'react';
2
+ import { setRef } from './setRef.js';
3
+
4
+ function useForkRef(refA, refB) {
5
+ return useMemo(() => {
6
+ if (refA == null && refB == null) {
7
+ return () => null;
8
+ }
9
+ return (refValue) => {
10
+ setRef(refA, refValue);
11
+ setRef(refB, refValue);
12
+ };
13
+ }, [refA, refB]);
14
+ }
15
+
16
+ export { useForkRef };
17
+ //# sourceMappingURL=useForkRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useForkRef.js","sources":["../src/utils/useForkRef.ts"],"sourcesContent":["import { Ref, useMemo } from \"react\";\nimport { setRef } from \"./setRef\";\n\nexport function useForkRef<Instance>(\n refA: Ref<Instance> | null | undefined,\n refB: Ref<Instance> | null | undefined\n): Ref<Instance> | null {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means React will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return useMemo(() => {\n if (refA == null && refB == null) {\n return () => null;\n }\n return (refValue) => {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}\n"],"names":[],"mappings":";;;AAGgB,SAAA,UAAA,CACd,MACA,IACsB,EAAA;AAMtB,EAAA,OAAO,QAAQ,MAAM;AACnB,IAAI,IAAA,IAAA,IAAQ,IAAQ,IAAA,IAAA,IAAQ,IAAM,EAAA;AAChC,MAAA,OAAO,MAAM,IAAA,CAAA;AAAA,KACf;AACA,IAAA,OAAO,CAAC,QAAa,KAAA;AACnB,MAAA,MAAA,CAAO,MAAM,QAAQ,CAAA,CAAA;AACrB,MAAA,MAAA,CAAO,MAAM,QAAQ,CAAA,CAAA;AAAA,KACvB,CAAA;AAAA,GACC,EAAA,CAAC,IAAM,EAAA,IAAI,CAAC,CAAA,CAAA;AACjB;;;;"}
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+
3
+ const maybeReactUseId = React[`${"useId"}${""}`];
4
+ let globalId = BigInt(0);
5
+ function useIdLegacy(idOverride) {
6
+ const [defaultId, setDefaultId] = React.useState(idOverride);
7
+ const id = idOverride || defaultId;
8
+ React.useEffect(() => {
9
+ if (defaultId == null) {
10
+ setDefaultId(`salt-${++globalId}`);
11
+ }
12
+ }, [defaultId]);
13
+ return id;
14
+ }
15
+ function useId(idOverride) {
16
+ if (maybeReactUseId !== void 0) {
17
+ const reactId = maybeReactUseId();
18
+ return idOverride != null ? idOverride : reactId;
19
+ }
20
+ return useIdLegacy(idOverride);
21
+ }
22
+ function useIdMemo(idOverride) {
23
+ const id = React.useMemo(() => {
24
+ return idOverride != null ? idOverride : `salt-${++globalId}`;
25
+ }, [idOverride]);
26
+ return id;
27
+ }
28
+
29
+ export { useId, useIdMemo };
30
+ //# sourceMappingURL=useId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useId.js","sources":["../src/utils/useId.ts"],"sourcesContent":["import * as React from \"react\";\n\n// eslint-disable-next-line -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId: undefined | (() => string) = (React as any)[\n `${\"useId\"}${\"\"}`\n];\n\nlet globalId = BigInt(0);\nfunction useIdLegacy(idOverride?: string): string | undefined {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n setDefaultId(`salt-${++globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\nexport function useId(idOverride?: string): string | undefined {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride ?? reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useIdLegacy(idOverride);\n}\n\n// Note: Some usages require that an id is returned on first call, not only post-first-render\n// (as with the useEffect solution). This can go away once we totally move to React 18\nexport function useIdMemo(idOverride?: string): string {\n const id = React.useMemo(() => {\n return idOverride ?? `salt-${++globalId}`;\n }, [idOverride]);\n return id;\n}\n"],"names":[],"mappings":";;AAGA,MAAM,eAAA,GAA+C,KACnD,CAAA,CAAA,EAAG,OAAU,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAGf,IAAI,QAAA,GAAW,OAAO,CAAC,CAAA,CAAA;AACvB,SAAS,YAAY,UAAyC,EAAA;AAC5D,EAAA,MAAM,CAAC,SAAW,EAAA,YAAY,CAAI,GAAA,KAAA,CAAM,SAAS,UAAU,CAAA,CAAA;AAC3D,EAAA,MAAM,KAAK,UAAc,IAAA,SAAA,CAAA;AACzB,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,aAAa,IAAM,EAAA;AACrB,MAAa,YAAA,CAAA,CAAA,KAAA,EAAQ,EAAE,QAAU,CAAA,CAAA,CAAA,CAAA;AAAA,KACnC;AAAA,GACF,EAAG,CAAC,SAAS,CAAC,CAAA,CAAA;AACd,EAAO,OAAA,EAAA,CAAA;AACT,CAAA;AAEO,SAAS,MAAM,UAAyC,EAAA;AAC7D,EAAA,IAAI,oBAAoB,KAAW,CAAA,EAAA;AACjC,IAAA,MAAM,UAAU,eAAgB,EAAA,CAAA;AAChC,IAAA,OAAO,UAAc,IAAA,IAAA,GAAA,UAAA,GAAA,OAAA,CAAA;AAAA,GACvB;AAEA,EAAA,OAAO,YAAY,UAAU,CAAA,CAAA;AAC/B,CAAA;AAIO,SAAS,UAAU,UAA6B,EAAA;AACrD,EAAM,MAAA,EAAA,GAAK,KAAM,CAAA,OAAA,CAAQ,MAAM;AAC7B,IAAO,OAAA,UAAA,IAAA,IAAA,GAAA,UAAA,GAAc,QAAQ,EAAE,QAAA,CAAA,CAAA,CAAA;AAAA,GACjC,EAAG,CAAC,UAAU,CAAC,CAAA,CAAA;AACf,EAAO,OAAA,EAAA,CAAA;AACT;;;;"}