@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,14 @@
1
+ import { ComponentType } from "react";
2
+ import { IconProps } from "@salt-ds/icons";
3
+ import { TextProps } from "../text";
4
+ import "./Link.css";
5
+ /**
6
+ * Links are a fundamental navigation element. When clicked, they take the user to an entirely different page.
7
+ *
8
+ * @example
9
+ * <LinkExample to="#link">Action</LinkExample>
10
+ */
11
+ export interface LinkProps extends Omit<TextProps<"a">, "as"> {
12
+ IconComponent?: ComponentType<IconProps>;
13
+ }
14
+ export declare const Link: import("react").ForwardRefExoticComponent<Pick<LinkProps, "slot" | "style" | "title" | "download" | "href" | "hrefLang" | "media" | "ping" | "rel" | "target" | "type" | "referrerPolicy" | "className" | "color" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "variant" | "maxRows" | "styleAs" | "IconComponent"> & import("react").RefAttributes<HTMLAnchorElement>>;
@@ -0,0 +1 @@
1
+ export * from "./Link";
@@ -0,0 +1,39 @@
1
+ import React, { ReactElement, ReactNode } from "react";
2
+ import { Breakpoints } from "../breakpoints";
3
+ import { Density, Mode, ThemeName } from "../theme";
4
+ import "./SaltProvider.css";
5
+ export declare const DEFAULT_DENSITY = "medium";
6
+ export interface ThemeContextProps {
7
+ theme: ThemeName;
8
+ mode: Mode;
9
+ }
10
+ export declare const DensityContext: React.Context<"touch" | "high" | "low" | "medium">;
11
+ export declare const ThemeContext: React.Context<ThemeContextProps>;
12
+ export declare const BreakpointContext: React.Context<Breakpoints>;
13
+ declare type TargetElement = "root" | "scope" | "child";
14
+ declare type SaltProviderBaseProps = {
15
+ applyClassesTo?: TargetElement;
16
+ density?: Density;
17
+ theme?: ThemeName;
18
+ mode?: Mode;
19
+ breakpoints?: Breakpoints;
20
+ };
21
+ interface SaltProviderThatAppliesClassesToChild extends SaltProviderBaseProps {
22
+ children: ReactElement;
23
+ applyClassesTo: "child";
24
+ }
25
+ interface SaltProviderThatInjectsThemeElement extends SaltProviderBaseProps {
26
+ children: ReactNode;
27
+ }
28
+ interface SaltProviderThatClassesToRoot extends SaltProviderThatInjectsThemeElement {
29
+ applyClassesTo: "root";
30
+ }
31
+ declare type SaltProviderProps = SaltProviderThatAppliesClassesToChild | SaltProviderThatInjectsThemeElement | SaltProviderThatClassesToRoot;
32
+ export declare function SaltProvider({ applyClassesTo: applyClassesToProp, children, density: densityProp, theme: themeProp, mode: modeProp, breakpoints: breakpointsProp, }: SaltProviderProps): JSX.Element;
33
+ export declare const useTheme: () => ThemeContextProps;
34
+ /**
35
+ * `useDensity` merges density value from `DensityContext` with the one from component's props.
36
+ */
37
+ export declare function useDensity(density?: Density): Density;
38
+ export declare const useBreakpoints: () => Breakpoints;
39
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./SaltProvider";
@@ -0,0 +1,17 @@
1
+ import { ElementType, HTMLAttributes } from "react";
2
+ import { FlexLayoutProps } from "../flex-layout";
3
+ export interface StackLayoutProps extends HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * Defines the default behavior for how flex items are laid out along the cross axis on the current line, default is "stretch".
6
+ */
7
+ align?: FlexLayoutProps<ElementType>["align"];
8
+ /**
9
+ * Controls the space between items, default is 3.
10
+ */
11
+ gap?: FlexLayoutProps<ElementType>["gap"];
12
+ /**
13
+ * Adds a separator between elements, default is false.
14
+ */
15
+ separators?: FlexLayoutProps<ElementType>["separators"];
16
+ }
17
+ export declare const StackLayout: import("react").ForwardRefExoticComponent<StackLayoutProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export * from "./StackLayout";
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { IconProps } from "@salt-ds/icons";
3
+ import { ValidationStatus } from "./ValidationStatus";
4
+ import "./StatusIndicator.css";
5
+ export interface StatusIndicatorProps extends IconProps {
6
+ /**
7
+ * Status indicator to be displayed.
8
+ */
9
+ status: ValidationStatus;
10
+ }
11
+ export declare const StatusIndicator: import("react").ForwardRefExoticComponent<StatusIndicatorProps & import("react").RefAttributes<SVGSVGElement>>;
@@ -0,0 +1,2 @@
1
+ export declare const VALIDATION_NAMED_STATUS: readonly ["error", "warning", "success", "info"];
2
+ export declare type ValidationStatus = typeof VALIDATION_NAMED_STATUS[number];
@@ -0,0 +1,2 @@
1
+ export * from "./StatusIndicator";
2
+ export * from "./ValidationStatus";
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { TextProps } from "./Text";
3
+ export declare const Display1: import("react").ForwardRefExoticComponent<Pick<Omit<TextProps<"span">, "as">, "key" | keyof import("react").HTMLAttributes<HTMLSpanElement> | "variant" | "maxRows" | "styleAs"> & import("react").RefAttributes<HTMLSpanElement>>;
4
+ export declare const Display2: import("react").ForwardRefExoticComponent<Pick<Omit<TextProps<"span">, "as">, "key" | keyof import("react").HTMLAttributes<HTMLSpanElement> | "variant" | "maxRows" | "styleAs"> & import("react").RefAttributes<HTMLSpanElement>>;
5
+ export declare const Display3: import("react").ForwardRefExoticComponent<Pick<Omit<TextProps<"span">, "as">, "key" | keyof import("react").HTMLAttributes<HTMLSpanElement> | "variant" | "maxRows" | "styleAs"> & import("react").RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { TextProps } from "./Text";
3
+ export declare const H1: import("react").ForwardRefExoticComponent<Pick<Omit<TextProps<"h1">, "as">, "key" | keyof import("react").HTMLAttributes<HTMLHeadingElement> | "variant" | "maxRows" | "styleAs"> & import("react").RefAttributes<HTMLHeadingElement>>;
4
+ export declare const H2: import("react").ForwardRefExoticComponent<Pick<Omit<TextProps<"h2">, "as">, "key" | keyof import("react").HTMLAttributes<HTMLHeadingElement> | "variant" | "maxRows" | "styleAs"> & import("react").RefAttributes<HTMLHeadingElement>>;
5
+ export declare const H3: import("react").ForwardRefExoticComponent<Pick<Omit<TextProps<"h3">, "as">, "key" | keyof import("react").HTMLAttributes<HTMLHeadingElement> | "variant" | "maxRows" | "styleAs"> & import("react").RefAttributes<HTMLHeadingElement>>;
6
+ export declare const H4: import("react").ForwardRefExoticComponent<Pick<Omit<TextProps<"h4">, "as">, "key" | keyof import("react").HTMLAttributes<HTMLHeadingElement> | "variant" | "maxRows" | "styleAs"> & import("react").RefAttributes<HTMLHeadingElement>>;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { TextProps } from "./Text";
3
+ export declare const Label: import("react").ForwardRefExoticComponent<Pick<Omit<TextProps<"label">, "as">, "key" | keyof import("react").LabelHTMLAttributes<HTMLLabelElement> | "variant" | "maxRows" | "styleAs"> & import("react").RefAttributes<HTMLLabelElement>>;
@@ -0,0 +1,20 @@
1
+ import { PolymorphicComponentPropWithRef } from "../utils";
2
+ import { ElementType, ReactElement } from "react";
3
+ import "./Text.css";
4
+ export declare type TextProps<T extends ElementType> = PolymorphicComponentPropWithRef<T, {
5
+ /**
6
+ * Apply text truncation by mentioning number of rows to be displayed
7
+ */
8
+ maxRows?: number;
9
+ /**
10
+ * Match styling to another text component's style
11
+ */
12
+ styleAs?: "h1" | "h2" | "h3" | "h4" | "label" | "display1" | "display2" | "display3";
13
+ /**
14
+ * Change text color palette
15
+ */
16
+ variant?: "primary" | "secondary";
17
+ }>;
18
+ declare type TextComponent = <T extends ElementType = "div">(props: TextProps<T>) => ReactElement | null;
19
+ export declare const Text: TextComponent;
20
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from "./Text";
2
+ export * from "./Display";
3
+ export * from "./Headings";
4
+ export * from "./Label";
@@ -0,0 +1,2 @@
1
+ export declare const DensityValues: readonly ["high", "medium", "low", "touch"];
2
+ export declare type Density = typeof DensityValues[number];
@@ -0,0 +1,2 @@
1
+ export declare const ModeValues: readonly ["light", "dark"];
2
+ export declare type Mode = typeof ModeValues[number];
@@ -0,0 +1,3 @@
1
+ export declare type characteristic = "accent" | "actionable" | "container" | "delay" | "disabled" | "draggable" | "target" | "editable" | "focused" | "measured" | "navigable" | "overlayable" | "selectable" | "separable" | "taggable" | "text" | "status" | "icon" | "shadow" | "size" | "spacing";
2
+ export declare type ThemeName = string;
3
+ export declare const getCharacteristicValue: (themeName: ThemeName, characteristicName: characteristic, variant: string, scopeElement?: HTMLElement | undefined) => string | null;
@@ -0,0 +1,3 @@
1
+ export * from "./Density";
2
+ export * from "./Theme";
3
+ export * from "./Mode";
@@ -0,0 +1,3 @@
1
+ declare type ChainedFunction<Args extends any[], This> = ((this: This, ...args: Args) => any) | undefined | null;
2
+ export declare function createChainedFunction<Args extends any[], This>(...funcs: ChainedFunction<Args, This>[]): (this: This, ...args: Args) => any;
3
+ export {};
@@ -0,0 +1,2 @@
1
+ import { Context } from "react";
2
+ export declare function createContext<ContextValueType>(name: string, defaultValue: ContextValueType): Context<ContextValueType>;
@@ -0,0 +1,4 @@
1
+ export interface Cancelable {
2
+ clear(): void;
3
+ }
4
+ export declare function debounce<T extends (...args: any[]) => any>(func: T, wait?: number, leading?: boolean): T & Cancelable;
@@ -0,0 +1,17 @@
1
+ export * from "./createChainedFunction";
2
+ export * from "./createContext";
3
+ export * from "./debounce";
4
+ export * from "./inferElementType";
5
+ export * from "./makePrefixer";
6
+ export * from "./marginMiddleware";
7
+ export * from "./ownerDocument";
8
+ export * from "./ownerWindow";
9
+ export * from "./polymorphicTypes";
10
+ export * from "./setRef";
11
+ export * from "./useControlled";
12
+ export * from "./useForkRef";
13
+ export * from "./useId";
14
+ export * from "./useIsFocusVisible";
15
+ export * from "./useIsomorphicLayoutEffect";
16
+ export * from "./usePrevious";
17
+ export * from "./useResponsiveProp";
@@ -0,0 +1,2 @@
1
+ import type { DetailedHTMLProps, AnchorHTMLAttributes } from "react";
2
+ export declare type inferElementType<T> = T extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[T] extends DetailedHTMLProps<AnchorHTMLAttributes<any>, infer Elem> ? Elem : never : HTMLElement;
@@ -0,0 +1,2 @@
1
+ export declare type ClassNamePrefixer = (...names: string[]) => string;
2
+ export declare const makePrefixer: (prefix: string) => ClassNamePrefixer;
@@ -0,0 +1,2 @@
1
+ import { Middleware } from "@floating-ui/core";
2
+ export declare const margin: (value?: number) => Middleware;
@@ -0,0 +1 @@
1
+ export declare function ownerDocument(node: Node | null | undefined): Document;
@@ -0,0 +1 @@
1
+ export declare function ownerWindow(node: Node | null | undefined): Window;
@@ -0,0 +1,14 @@
1
+ import { ComponentPropsWithoutRef, ComponentPropsWithRef, ElementType, PropsWithChildren } from "react";
2
+ declare type AsProp<T extends ElementType> = {
3
+ /**
4
+ * The HTML element used for the root node.
5
+ */
6
+ as?: T;
7
+ };
8
+ declare type PropsToOmit<T extends ElementType, P> = keyof (AsProp<T> & P);
9
+ declare type PolymorphicComponentProp<T extends ElementType, Props> = PropsWithChildren<Props & AsProp<T>> & Omit<ComponentPropsWithoutRef<T>, PropsToOmit<T, Props>>;
10
+ export declare type PolymorphicRef<T extends ElementType> = ComponentPropsWithRef<T>["ref"];
11
+ export declare type PolymorphicComponentPropWithRef<T extends ElementType, Props> = PolymorphicComponentProp<T, Props> & {
12
+ ref?: PolymorphicRef<T>;
13
+ };
14
+ export {};
@@ -0,0 +1,2 @@
1
+ import { MutableRefObject } from "react";
2
+ export declare function setRef<T>(ref: MutableRefObject<T | null> | ((instance: T | null) => void) | null | undefined, value: T | null): void;
@@ -0,0 +1,24 @@
1
+ import { Dispatch, SetStateAction } from "react";
2
+ export interface UseControlledProps<T> {
3
+ /**
4
+ * Holds the component value when it's controlled.
5
+ */
6
+ controlled?: T;
7
+ /**
8
+ * The default value when uncontrolled.
9
+ */
10
+ default: T;
11
+ /**
12
+ * The component name displayed in warnings.
13
+ */
14
+ name: string;
15
+ /**
16
+ * The name of the state variable displayed in warnings.
17
+ */
18
+ state?: string;
19
+ }
20
+ /**
21
+ * Copied from MUI (v5) useControlled hook with one additional returned value
22
+ * @see https://github.com/mui-org/material-ui/blob/0979e6a54ba47c278d1f535953c0520a86349811/packages/material-ui-utils/src/useControlled.js
23
+ */
24
+ export declare function useControlled<S>({ controlled, default: defaultProp, name, state, }: UseControlledProps<S>): [S, Dispatch<SetStateAction<S>>, boolean];
@@ -0,0 +1,2 @@
1
+ import { Ref } from "react";
2
+ export declare function useForkRef<Instance>(refA: Ref<Instance> | null | undefined, refB: Ref<Instance> | null | undefined): Ref<Instance> | null;
@@ -0,0 +1,2 @@
1
+ export declare function useId(idOverride?: string): string | undefined;
2
+ export declare function useIdMemo(idOverride?: string): string;
@@ -0,0 +1,8 @@
1
+ import { FocusEvent, MutableRefObject, Ref } from "react";
2
+ export declare function teardown(doc: Document): void;
3
+ export declare function useIsFocusVisible<T extends HTMLElement = HTMLElement>(): {
4
+ isFocusVisibleRef: MutableRefObject<boolean>;
5
+ onBlur: () => void;
6
+ onFocus: (event: FocusEvent<T>) => void;
7
+ ref: Ref<T>;
8
+ };
@@ -0,0 +1,2 @@
1
+ import { useEffect } from "react";
2
+ export declare const useIsomorphicLayoutEffect: typeof useEffect;
@@ -0,0 +1,2 @@
1
+ import { DependencyList } from "react";
2
+ export declare function usePrevious<T>(value: T, deps?: DependencyList, initialValue?: T): T | undefined;
@@ -0,0 +1,10 @@
1
+ import { Breakpoints } from "../breakpoints";
2
+ declare type BreakpointProp<T> = {
3
+ [K in keyof Breakpoints]?: T;
4
+ };
5
+ export declare type ResponsiveProp<T> = T | BreakpointProp<T>;
6
+ export declare const getCurrentBreakpoint: (breakpoints: Breakpoints, width: number) => keyof Breakpoints;
7
+ export declare const useCurrentBreakpoint: () => keyof Breakpoints;
8
+ export declare const useOrderedBreakpoints: () => string[];
9
+ export declare const useResponsiveProp: <T>(value: ResponsiveProp<T>, defaultValue: T) => T;
10
+ export {};
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from "react";
2
+ declare const ViewportContext: import("react").Context<number | null>;
3
+ declare type ViewportProviderProps = {
4
+ children?: ReactNode;
5
+ };
6
+ declare const ViewportProvider: ({ children }: ViewportProviderProps) => JSX.Element;
7
+ declare const useViewport: () => number;
8
+ export { ViewportProvider, ViewportContext, useViewport };
@@ -0,0 +1 @@
1
+ export * from "./ViewportProvider";
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@salt-ds/core",
3
+ "version": "1.0.0",
4
+ "license": "Apache-2.0",
5
+ "main": "dist-cjs/packages/core/src/index.js",
6
+ "sideEffects": [
7
+ "**/*.css",
8
+ "**/*.css.js"
9
+ ],
10
+ "peerDependencies": {
11
+ "@types/react": ">=16.8.6",
12
+ "react": ">=16.8.0",
13
+ "react-dom": ">=16.8.0"
14
+ },
15
+ "peerDependenciesMeta": {
16
+ "@types/react": {
17
+ "optional": true
18
+ }
19
+ },
20
+ "publishConfig": {
21
+ "directory": "../../dist/salt-ds-core"
22
+ },
23
+ "module": "dist-es/packages/core/src/index.js",
24
+ "typings": "dist-types/index.d.ts",
25
+ "dependencies": {
26
+ "classnames": "^2.2.6",
27
+ "@salt-ds/icons": "1.0.0"
28
+ },
29
+ "files": [
30
+ "dist-cjs",
31
+ "dist-es",
32
+ "dist-types",
33
+ "README.md"
34
+ ],
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/jpmorganchase/salt-ds",
38
+ "directory": "packages/core"
39
+ }
40
+ }