@eventuras/ratio-ui 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 (505) hide show
  1. package/README.md +34 -0
  2. package/dist/blocks/Error/Error.d.ts +46 -0
  3. package/dist/blocks/Error/Error.d.ts.map +1 -0
  4. package/dist/blocks/Error/Error.js +121 -0
  5. package/dist/blocks/Error/index.d.ts +3 -0
  6. package/dist/blocks/Error/index.d.ts.map +1 -0
  7. package/dist/blocks/Error/index.js +2 -0
  8. package/dist/blocks/NotFound/NotFound.d.ts +27 -0
  9. package/dist/blocks/NotFound/NotFound.d.ts.map +1 -0
  10. package/dist/blocks/NotFound/NotFound.js +18 -0
  11. package/dist/blocks/NotFound/index.d.ts +3 -0
  12. package/dist/blocks/NotFound/index.d.ts.map +1 -0
  13. package/dist/blocks/NotFound/index.js +2 -0
  14. package/dist/blocks/SessionWarning/SessionWarning.d.ts +53 -0
  15. package/dist/blocks/SessionWarning/SessionWarning.d.ts.map +1 -0
  16. package/dist/blocks/SessionWarning/SessionWarning.js +45 -0
  17. package/dist/blocks/SessionWarning/index.d.ts +3 -0
  18. package/dist/blocks/SessionWarning/index.d.ts.map +1 -0
  19. package/dist/blocks/SessionWarning/index.js +2 -0
  20. package/dist/blocks/Story/Story.d.ts +8 -0
  21. package/dist/blocks/Story/Story.d.ts.map +1 -0
  22. package/dist/blocks/Story/Story.js +16 -0
  23. package/dist/blocks/Story/StoryBody.d.ts +7 -0
  24. package/dist/blocks/Story/StoryBody.d.ts.map +1 -0
  25. package/dist/blocks/Story/StoryBody.js +19 -0
  26. package/dist/blocks/Story/StoryFooter.d.ts +7 -0
  27. package/dist/blocks/Story/StoryFooter.d.ts.map +1 -0
  28. package/dist/blocks/Story/StoryFooter.js +19 -0
  29. package/dist/blocks/Story/StoryHeader.d.ts +7 -0
  30. package/dist/blocks/Story/StoryHeader.d.ts.map +1 -0
  31. package/dist/blocks/Story/StoryHeader.js +21 -0
  32. package/dist/blocks/Story/index.d.ts +10 -0
  33. package/dist/blocks/Story/index.d.ts.map +1 -0
  34. package/dist/blocks/Story/index.js +6 -0
  35. package/dist/blocks/Story/utils.d.ts +29 -0
  36. package/dist/blocks/Story/utils.d.ts.map +1 -0
  37. package/dist/blocks/Story/utils.js +19 -0
  38. package/dist/blocks/Unauthorized/Unauthorized.d.ts +7 -0
  39. package/dist/blocks/Unauthorized/Unauthorized.d.ts.map +1 -0
  40. package/dist/blocks/Unauthorized/Unauthorized.js +39 -0
  41. package/dist/blocks/Unauthorized/index.d.ts +2 -0
  42. package/dist/blocks/Unauthorized/index.d.ts.map +1 -0
  43. package/dist/blocks/Unauthorized/index.js +2 -0
  44. package/dist/commerce/CartLineItem/CartLineItem.d.ts +58 -0
  45. package/dist/commerce/CartLineItem/CartLineItem.d.ts.map +1 -0
  46. package/dist/commerce/CartLineItem/CartLineItem.js +63 -0
  47. package/dist/commerce/CartLineItem/index.d.ts +3 -0
  48. package/dist/commerce/CartLineItem/index.d.ts.map +1 -0
  49. package/dist/commerce/CartLineItem/index.js +2 -0
  50. package/dist/commerce/OrderSummary/OrderSummary.d.ts +47 -0
  51. package/dist/commerce/OrderSummary/OrderSummary.d.ts.map +1 -0
  52. package/dist/commerce/OrderSummary/OrderSummary.js +37 -0
  53. package/dist/commerce/OrderSummary/index.d.ts +3 -0
  54. package/dist/commerce/OrderSummary/index.d.ts.map +1 -0
  55. package/dist/commerce/OrderSummary/index.js +2 -0
  56. package/dist/commerce/index.d.ts +3 -0
  57. package/dist/commerce/index.d.ts.map +1 -0
  58. package/dist/commerce/index.js +5 -0
  59. package/dist/core/Badge/Badge.d.ts +12 -0
  60. package/dist/core/Badge/Badge.d.ts.map +1 -0
  61. package/dist/core/Badge/Badge.js +28 -0
  62. package/dist/core/Badge/index.d.ts +2 -0
  63. package/dist/core/Badge/index.d.ts.map +1 -0
  64. package/dist/core/Badge/index.js +2 -0
  65. package/dist/core/Blockquote/Blockquote.d.ts +11 -0
  66. package/dist/core/Blockquote/Blockquote.d.ts.map +1 -0
  67. package/dist/core/Blockquote/Blockquote2.js +11 -0
  68. package/dist/core/Blockquote/index.d.ts +2 -0
  69. package/dist/core/Blockquote/index.d.ts.map +1 -0
  70. package/dist/core/Blockquote/index.js +2 -0
  71. package/dist/core/Breadcrumbs/Breadcrumbs.d.ts +42 -0
  72. package/dist/core/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  73. package/dist/core/Breadcrumbs/Breadcrumbs.js +40 -0
  74. package/dist/core/Breadcrumbs/index.d.ts +3 -0
  75. package/dist/core/Breadcrumbs/index.d.ts.map +1 -0
  76. package/dist/core/Breadcrumbs/index.js +2 -0
  77. package/dist/core/Button/Button.d.ts +26 -0
  78. package/dist/core/Button/Button.d.ts.map +1 -0
  79. package/dist/core/Button/Button.js +54 -0
  80. package/dist/core/Button/ButtonGroup.d.ts +12 -0
  81. package/dist/core/Button/ButtonGroup.d.ts.map +1 -0
  82. package/dist/core/Button/ButtonGroup.js +20 -0
  83. package/dist/core/Button/index.d.ts +5 -0
  84. package/dist/core/Button/index.d.ts.map +1 -0
  85. package/dist/core/Button/index.js +3 -0
  86. package/dist/core/Card/Card.d.ts +17 -0
  87. package/dist/core/Card/Card.d.ts.map +1 -0
  88. package/dist/core/Card/Card.js +41 -0
  89. package/dist/core/Card/index.d.ts +2 -0
  90. package/dist/core/Card/index.d.ts.map +1 -0
  91. package/dist/core/Card/index.js +2 -0
  92. package/dist/core/CommandPalette/CommandPalette.d.ts +30 -0
  93. package/dist/core/CommandPalette/CommandPalette.d.ts.map +1 -0
  94. package/dist/core/CommandPalette/CommandPalette.js +138 -0
  95. package/dist/core/CommandPalette/index.d.ts +3 -0
  96. package/dist/core/CommandPalette/index.d.ts.map +1 -0
  97. package/dist/core/CommandPalette/index.js +2 -0
  98. package/dist/core/DescriptionList/DescriptionList.d.ts +26 -0
  99. package/dist/core/DescriptionList/DescriptionList.d.ts.map +1 -0
  100. package/dist/core/DescriptionList/DescriptionList.js +39 -0
  101. package/dist/core/DescriptionList/index.d.ts +3 -0
  102. package/dist/core/DescriptionList/index.d.ts.map +1 -0
  103. package/dist/core/DescriptionList/index.js +2 -0
  104. package/dist/core/Footer/Footer.d.ts +15 -0
  105. package/dist/core/Footer/Footer.d.ts.map +1 -0
  106. package/dist/core/Footer/Footer.js +33 -0
  107. package/dist/core/Footer/index.d.ts +2 -0
  108. package/dist/core/Footer/index.d.ts.map +1 -0
  109. package/dist/core/Footer/index.js +2 -0
  110. package/dist/core/Heading/Heading.d.ts +15 -0
  111. package/dist/core/Heading/Heading.d.ts.map +1 -0
  112. package/dist/core/Heading/Heading.js +11 -0
  113. package/dist/core/Heading/index.d.ts +2 -0
  114. package/dist/core/Heading/index.d.ts.map +1 -0
  115. package/dist/core/Heading/index.js +2 -0
  116. package/dist/core/Image/Image.d.ts +48 -0
  117. package/dist/core/Image/Image.d.ts.map +1 -0
  118. package/dist/core/Image/Image.js +31 -0
  119. package/dist/core/Image/index.d.ts +3 -0
  120. package/dist/core/Image/index.d.ts.map +1 -0
  121. package/dist/core/Image/index.js +2 -0
  122. package/dist/core/Kbd/Kbd.d.ts +12 -0
  123. package/dist/core/Kbd/Kbd.d.ts.map +1 -0
  124. package/dist/core/Kbd/Kbd.js +11 -0
  125. package/dist/core/Kbd/index.d.ts +3 -0
  126. package/dist/core/Kbd/index.d.ts.map +1 -0
  127. package/dist/core/Kbd/index.js +2 -0
  128. package/dist/core/Lead/Lead.d.ts +28 -0
  129. package/dist/core/Lead/Lead.d.ts.map +1 -0
  130. package/dist/core/Lead/Lead.js +30 -0
  131. package/dist/core/Lead/index.d.ts +3 -0
  132. package/dist/core/Lead/index.d.ts.map +1 -0
  133. package/dist/core/Lead/index.js +2 -0
  134. package/dist/core/Link/Link.d.ts +16 -0
  135. package/dist/core/Link/Link.d.ts.map +1 -0
  136. package/dist/core/Link/Link2.js +49 -0
  137. package/dist/core/Link/index.d.ts +3 -0
  138. package/dist/core/Link/index.d.ts.map +1 -0
  139. package/dist/core/Link/index.js +2 -0
  140. package/dist/core/List/List.d.ts +25 -0
  141. package/dist/core/List/List.d.ts.map +1 -0
  142. package/dist/core/List/List.js +47 -0
  143. package/dist/core/List/index.d.ts +3 -0
  144. package/dist/core/List/index.d.ts.map +1 -0
  145. package/dist/core/List/index.js +2 -0
  146. package/dist/core/Loading/Loading.d.ts +2 -0
  147. package/dist/core/Loading/Loading.d.ts.map +1 -0
  148. package/dist/core/Loading/Loading.js +12 -0
  149. package/dist/core/Loading/index.d.ts +2 -0
  150. package/dist/core/Loading/index.d.ts.map +1 -0
  151. package/dist/core/Loading/index.js +2 -0
  152. package/dist/core/Lookup/Lookup.d.ts +92 -0
  153. package/dist/core/Lookup/Lookup.d.ts.map +1 -0
  154. package/dist/core/Lookup/Lookup.js +87 -0
  155. package/dist/core/Lookup/index.d.ts +3 -0
  156. package/dist/core/Lookup/index.d.ts.map +1 -0
  157. package/dist/core/Lookup/index.js +2 -0
  158. package/dist/core/Menu/Menu.d.ts +30 -0
  159. package/dist/core/Menu/Menu.d.ts.map +1 -0
  160. package/dist/core/Menu/Menu.js +79 -0
  161. package/dist/core/Menu/index.d.ts +2 -0
  162. package/dist/core/Menu/index.d.ts.map +1 -0
  163. package/dist/core/Menu/index.js +2 -0
  164. package/dist/core/NavList/NavList.d.ts +18 -0
  165. package/dist/core/NavList/NavList.d.ts.map +1 -0
  166. package/dist/core/NavList/NavList.js +19 -0
  167. package/dist/core/NavList/index.d.ts +3 -0
  168. package/dist/core/NavList/index.d.ts.map +1 -0
  169. package/dist/core/NavList/index.js +2 -0
  170. package/dist/core/Navbar/Navbar.d.ts +28 -0
  171. package/dist/core/Navbar/Navbar.d.ts.map +1 -0
  172. package/dist/core/Navbar/Navbar.js +19 -0
  173. package/dist/core/Navbar/index.d.ts +3 -0
  174. package/dist/core/Navbar/index.d.ts.map +1 -0
  175. package/dist/core/Navbar/index.js +2 -0
  176. package/dist/core/ObfuscatedEmail/ObfuscatedEmail.d.ts +20 -0
  177. package/dist/core/ObfuscatedEmail/ObfuscatedEmail.d.ts.map +1 -0
  178. package/dist/core/ObfuscatedEmail/ObfuscatedEmail.js +53 -0
  179. package/dist/core/ObfuscatedEmail/index.d.ts +3 -0
  180. package/dist/core/ObfuscatedEmail/index.d.ts.map +1 -0
  181. package/dist/core/ObfuscatedEmail/index.js +2 -0
  182. package/dist/core/PageOverlay/PageOverlay.d.ts +34 -0
  183. package/dist/core/PageOverlay/PageOverlay.d.ts.map +1 -0
  184. package/dist/core/PageOverlay/PageOverlay.js +25 -0
  185. package/dist/core/PageOverlay/index.d.ts +2 -0
  186. package/dist/core/PageOverlay/index.d.ts.map +1 -0
  187. package/dist/core/PageOverlay/index.js +2 -0
  188. package/dist/core/Pagination/Pagination.d.ts +8 -0
  189. package/dist/core/Pagination/Pagination.d.ts.map +1 -0
  190. package/dist/core/Pagination/Pagination.js +36 -0
  191. package/dist/core/Pagination/index.d.ts +2 -0
  192. package/dist/core/Pagination/index.d.ts.map +1 -0
  193. package/dist/core/Pagination/index.js +2 -0
  194. package/dist/core/Panel/Panel.d.ts +12 -0
  195. package/dist/core/Panel/Panel.d.ts.map +1 -0
  196. package/dist/core/Panel/Panel.js +38 -0
  197. package/dist/core/Panel/index.d.ts +3 -0
  198. package/dist/core/Panel/index.d.ts.map +1 -0
  199. package/dist/core/Panel/index.js +2 -0
  200. package/dist/core/ProductCard/ProductCard.d.ts +24 -0
  201. package/dist/core/ProductCard/ProductCard.d.ts.map +1 -0
  202. package/dist/core/ProductCard/ProductCard.js +56 -0
  203. package/dist/core/ProductCard/index.d.ts +2 -0
  204. package/dist/core/ProductCard/index.d.ts.map +1 -0
  205. package/dist/core/ProductCard/index.js +2 -0
  206. package/dist/core/Schedule/Schedule.d.ts +20 -0
  207. package/dist/core/Schedule/Schedule.d.ts.map +1 -0
  208. package/dist/core/Schedule/Schedule2.js +27 -0
  209. package/dist/core/Schedule/index.d.ts +3 -0
  210. package/dist/core/Schedule/index.d.ts.map +1 -0
  211. package/dist/core/Schedule/index.js +2 -0
  212. package/dist/core/Spinner/Spinner.d.ts +2 -0
  213. package/dist/core/Spinner/Spinner.d.ts.map +1 -0
  214. package/dist/core/Spinner/Spinner.js +22 -0
  215. package/dist/core/Spinner/index.d.ts +2 -0
  216. package/dist/core/Spinner/index.d.ts.map +1 -0
  217. package/dist/core/Spinner/index.js +2 -0
  218. package/dist/core/SplitButton/SplitButton.d.ts +30 -0
  219. package/dist/core/SplitButton/SplitButton.d.ts.map +1 -0
  220. package/dist/core/SplitButton/SplitButton.js +50 -0
  221. package/dist/core/SplitButton/index.d.ts +2 -0
  222. package/dist/core/SplitButton/index.d.ts.map +1 -0
  223. package/dist/core/SplitButton/index.js +2 -0
  224. package/dist/core/Stepper/Stepper.d.ts +19 -0
  225. package/dist/core/Stepper/Stepper.d.ts.map +1 -0
  226. package/dist/core/Stepper/Stepper.js +95 -0
  227. package/dist/core/Stepper/index.d.ts +3 -0
  228. package/dist/core/Stepper/index.d.ts.map +1 -0
  229. package/dist/core/Stepper/index.js +2 -0
  230. package/dist/core/Table/Table.d.ts +37 -0
  231. package/dist/core/Table/Table.d.ts.map +1 -0
  232. package/dist/core/Table/Table.js +28 -0
  233. package/dist/core/Table/index.d.ts +2 -0
  234. package/dist/core/Table/index.d.ts.map +1 -0
  235. package/dist/core/Table/index.js +2 -0
  236. package/dist/core/TableOfContents/TableOfContents.d.ts +17 -0
  237. package/dist/core/TableOfContents/TableOfContents.d.ts.map +1 -0
  238. package/dist/core/TableOfContents/TableOfContents.js +40 -0
  239. package/dist/core/TableOfContents/index.d.ts +3 -0
  240. package/dist/core/TableOfContents/index.d.ts.map +1 -0
  241. package/dist/core/TableOfContents/index.js +2 -0
  242. package/dist/core/Tabs/Tabs.d.ts +19 -0
  243. package/dist/core/Tabs/Tabs.d.ts.map +1 -0
  244. package/dist/core/Tabs/Tabs.js +45 -0
  245. package/dist/core/Tabs/index.d.ts +3 -0
  246. package/dist/core/Tabs/index.d.ts.map +1 -0
  247. package/dist/core/Tabs/index.js +2 -0
  248. package/dist/core/Text/Text.d.ts +27 -0
  249. package/dist/core/Text/Text.d.ts.map +1 -0
  250. package/dist/core/Text/Text.js +57 -0
  251. package/dist/core/Text/index.d.ts +2 -0
  252. package/dist/core/Text/index.d.ts.map +1 -0
  253. package/dist/core/Text/index.js +2 -0
  254. package/dist/core/ThemeToggle/ThemeToggle.d.ts +23 -0
  255. package/dist/core/ThemeToggle/ThemeToggle.d.ts.map +1 -0
  256. package/dist/core/ThemeToggle/ThemeToggle.js +45 -0
  257. package/dist/core/ThemeToggle/index.d.ts +3 -0
  258. package/dist/core/ThemeToggle/index.d.ts.map +1 -0
  259. package/dist/core/ThemeToggle/index.js +2 -0
  260. package/dist/core/ToggleButton/ToggleButton.d.ts +39 -0
  261. package/dist/core/ToggleButton/ToggleButton.d.ts.map +1 -0
  262. package/dist/core/ToggleButton/ToggleButton.js +34 -0
  263. package/dist/core/ToggleButton/index.d.ts +2 -0
  264. package/dist/core/ToggleButton/index.d.ts.map +1 -0
  265. package/dist/core/ToggleButton/index.js +2 -0
  266. package/dist/core/ToggleButtonGroup/ToggleButtonGroup.d.ts +13 -0
  267. package/dist/core/ToggleButtonGroup/ToggleButtonGroup.d.ts.map +1 -0
  268. package/dist/core/ToggleButtonGroup/ToggleButtonGroup.js +31 -0
  269. package/dist/core/ToggleButtonGroup/index.d.ts +2 -0
  270. package/dist/core/ToggleButtonGroup/index.d.ts.map +1 -0
  271. package/dist/core/ToggleButtonGroup/index.js +2 -0
  272. package/dist/core/TreeView/TreeView.d.ts +29 -0
  273. package/dist/core/TreeView/TreeView.d.ts.map +1 -0
  274. package/dist/core/TreeView/TreeView.js +78 -0
  275. package/dist/core/TreeView/index.d.ts +3 -0
  276. package/dist/core/TreeView/index.d.ts.map +1 -0
  277. package/dist/core/TreeView/index.js +2 -0
  278. package/dist/css.d.ts +1 -0
  279. package/dist/forms/Autocomplete/AutoComplete.d.ts +81 -0
  280. package/dist/forms/Autocomplete/AutoComplete.d.ts.map +1 -0
  281. package/dist/forms/Autocomplete/AutoComplete.js +16 -0
  282. package/dist/forms/Autocomplete/StyledComponents.d.ts +11 -0
  283. package/dist/forms/Autocomplete/StyledComponents.d.ts.map +1 -0
  284. package/dist/forms/Autocomplete/StyledComponents.js +7 -0
  285. package/dist/forms/Autocomplete/index.d.ts +7 -0
  286. package/dist/forms/Autocomplete/index.d.ts.map +1 -0
  287. package/dist/forms/Autocomplete/index.js +7 -0
  288. package/dist/forms/Input/Checkbox.d.ts +32 -0
  289. package/dist/forms/Input/Checkbox.d.ts.map +1 -0
  290. package/dist/forms/Input/Checkbox.js +34 -0
  291. package/dist/forms/Input/Input.d.ts +40 -0
  292. package/dist/forms/Input/Input.d.ts.map +1 -0
  293. package/dist/forms/Input/Input.js +12 -0
  294. package/dist/forms/Input/InputProps.d.ts +57 -0
  295. package/dist/forms/Input/InputProps.d.ts.map +1 -0
  296. package/dist/forms/Input/PhoneInput.d.ts +45 -0
  297. package/dist/forms/Input/PhoneInput.d.ts.map +1 -0
  298. package/dist/forms/Input/PhoneInput.js +197 -0
  299. package/dist/forms/Input/PhoneInputCountryCodes.d.ts +11 -0
  300. package/dist/forms/Input/PhoneInputCountryCodes.d.ts.map +1 -0
  301. package/dist/forms/Input/PhoneInputCountryCodes.js +575 -0
  302. package/dist/forms/Input/TextField.d.ts +33 -0
  303. package/dist/forms/Input/TextField.d.ts.map +1 -0
  304. package/dist/forms/Input/TextField.js +49 -0
  305. package/dist/forms/Input/index.d.ts +3 -0
  306. package/dist/forms/Input/index.d.ts.map +1 -0
  307. package/dist/forms/Input/index.js +2 -0
  308. package/dist/forms/ListBox/ListBox.d.ts +13 -0
  309. package/dist/forms/ListBox/ListBox.d.ts.map +1 -0
  310. package/dist/forms/ListBox/ListBox.js +18 -0
  311. package/dist/forms/ListBox/index.d.ts +3 -0
  312. package/dist/forms/ListBox/index.d.ts.map +1 -0
  313. package/dist/forms/ListBox/index.js +2 -0
  314. package/dist/forms/NumberField/NumberField.d.ts +20 -0
  315. package/dist/forms/NumberField/NumberField.d.ts.map +1 -0
  316. package/dist/forms/NumberField/NumberField.js +126 -0
  317. package/dist/forms/NumberField/index.d.ts +3 -0
  318. package/dist/forms/NumberField/index.d.ts.map +1 -0
  319. package/dist/forms/NumberField/index.js +2 -0
  320. package/dist/forms/RadioGroup/RadioGroup.d.ts +44 -0
  321. package/dist/forms/RadioGroup/RadioGroup.d.ts.map +1 -0
  322. package/dist/forms/RadioGroup/RadioGroup.js +52 -0
  323. package/dist/forms/RadioGroup/index.d.ts +3 -0
  324. package/dist/forms/RadioGroup/index.d.ts.map +1 -0
  325. package/dist/forms/RadioGroup/index.js +2 -0
  326. package/dist/forms/SearchField/SearchField.d.ts +31 -0
  327. package/dist/forms/SearchField/SearchField.d.ts.map +1 -0
  328. package/dist/forms/SearchField/SearchField.js +39 -0
  329. package/dist/forms/SearchField/index.d.ts +3 -0
  330. package/dist/forms/SearchField/index.d.ts.map +1 -0
  331. package/dist/forms/SearchField/index.js +2 -0
  332. package/dist/forms/Select/Select.d.ts +44 -0
  333. package/dist/forms/Select/Select.d.ts.map +1 -0
  334. package/dist/forms/Select/Select.js +101 -0
  335. package/dist/forms/Select/index.d.ts +3 -0
  336. package/dist/forms/Select/index.d.ts.map +1 -0
  337. package/dist/forms/Select/index.js +2 -0
  338. package/dist/forms/common/Fieldset.d.ts +15 -0
  339. package/dist/forms/common/Fieldset.d.ts.map +1 -0
  340. package/dist/forms/common/Fieldset.js +16 -0
  341. package/dist/forms/common/Form.d.ts +11 -0
  342. package/dist/forms/common/Form.d.ts.map +1 -0
  343. package/dist/forms/common/Form.js +11 -0
  344. package/dist/forms/common/InputDescription.d.ts +18 -0
  345. package/dist/forms/common/InputDescription.d.ts.map +1 -0
  346. package/dist/forms/common/InputDescription.js +9 -0
  347. package/dist/forms/common/InputError.d.ts +13 -0
  348. package/dist/forms/common/InputError.d.ts.map +1 -0
  349. package/dist/forms/common/InputError.js +14 -0
  350. package/dist/forms/common/Label.d.ts +41 -0
  351. package/dist/forms/common/Label.d.ts.map +1 -0
  352. package/dist/forms/common/Label.js +14 -0
  353. package/dist/forms/index.d.ts +21 -0
  354. package/dist/forms/index.d.ts.map +1 -0
  355. package/dist/forms/index.js +20 -0
  356. package/dist/forms/styles/formStyles.d.ts +59 -0
  357. package/dist/forms/styles/formStyles.d.ts.map +1 -0
  358. package/dist/forms/styles/formStyles.js +77 -0
  359. package/dist/global.d.ts +10 -0
  360. package/dist/icons/index.d.ts +8 -0
  361. package/dist/icons/index.d.ts.map +1 -0
  362. package/dist/icons/index.js +2 -0
  363. package/dist/index.d.ts +1 -0
  364. package/dist/index.d.ts.map +1 -0
  365. package/dist/index.js +1 -0
  366. package/dist/layout/ActionBar/ActionBar.d.ts +9 -0
  367. package/dist/layout/ActionBar/ActionBar.d.ts.map +1 -0
  368. package/dist/layout/ActionBar/ActionBar.js +7 -0
  369. package/dist/layout/ActionBar/index.d.ts +3 -0
  370. package/dist/layout/ActionBar/index.d.ts.map +1 -0
  371. package/dist/layout/ActionBar/index.js +2 -0
  372. package/dist/layout/Box/Box.d.ts +12 -0
  373. package/dist/layout/Box/Box.d.ts.map +1 -0
  374. package/dist/layout/Box/Box.js +32 -0
  375. package/dist/layout/Box/index.d.ts +3 -0
  376. package/dist/layout/Box/index.d.ts.map +1 -0
  377. package/dist/layout/Box/index.js +2 -0
  378. package/dist/layout/Container/Container.d.ts +7 -0
  379. package/dist/layout/Container/Container.d.ts.map +1 -0
  380. package/dist/layout/Container/Container.js +17 -0
  381. package/dist/layout/Container/index.d.ts +2 -0
  382. package/dist/layout/Container/index.d.ts.map +1 -0
  383. package/dist/layout/Container/index.js +2 -0
  384. package/dist/layout/Dialog/Dialog.d.ts +10 -0
  385. package/dist/layout/Dialog/Dialog.d.ts.map +1 -0
  386. package/dist/layout/Dialog/Dialog.js +41 -0
  387. package/dist/layout/Dialog/index.d.ts +3 -0
  388. package/dist/layout/Dialog/index.d.ts.map +1 -0
  389. package/dist/layout/Dialog/index.js +2 -0
  390. package/dist/layout/Drawer/Drawer.d.ts +44 -0
  391. package/dist/layout/Drawer/Drawer.d.ts.map +1 -0
  392. package/dist/layout/Drawer/Drawer.js +54 -0
  393. package/dist/layout/Drawer/index.d.ts +2 -0
  394. package/dist/layout/Drawer/index.d.ts.map +1 -0
  395. package/dist/layout/Drawer/index.js +2 -0
  396. package/dist/layout/FileDrawer/FileDrawer.d.ts +24 -0
  397. package/dist/layout/FileDrawer/FileDrawer.d.ts.map +1 -0
  398. package/dist/layout/FileDrawer/FileDrawer.js +54 -0
  399. package/dist/layout/FileDrawer/index.d.ts +3 -0
  400. package/dist/layout/FileDrawer/index.d.ts.map +1 -0
  401. package/dist/layout/FileDrawer/index.js +2 -0
  402. package/dist/layout/Grid/Grid.d.ts +15 -0
  403. package/dist/layout/Grid/Grid.d.ts.map +1 -0
  404. package/dist/layout/Grid/Grid.js +22 -0
  405. package/dist/layout/Grid/index.d.ts +2 -0
  406. package/dist/layout/Grid/index.d.ts.map +1 -0
  407. package/dist/layout/Grid/index.js +2 -0
  408. package/dist/layout/Portal/Portal.d.ts +9 -0
  409. package/dist/layout/Portal/Portal.d.ts.map +1 -0
  410. package/dist/layout/Portal/Portal.js +11 -0
  411. package/dist/layout/Portal/index.d.ts +2 -0
  412. package/dist/layout/Portal/index.d.ts.map +1 -0
  413. package/dist/layout/Portal/index.js +2 -0
  414. package/dist/layout/Section/Section.d.ts +9 -0
  415. package/dist/layout/Section/Section.d.ts.map +1 -0
  416. package/dist/layout/Section/Section.js +18 -0
  417. package/dist/layout/Section/index.d.ts +2 -0
  418. package/dist/layout/Section/index.d.ts.map +1 -0
  419. package/dist/layout/Section/index.js +2 -0
  420. package/dist/layout/Stack/Stack.d.ts +73 -0
  421. package/dist/layout/Stack/Stack.d.ts.map +1 -0
  422. package/dist/layout/Stack/Stack.js +40 -0
  423. package/dist/layout/Stack/index.d.ts +3 -0
  424. package/dist/layout/Stack/index.d.ts.map +1 -0
  425. package/dist/layout/Stack/index.js +2 -0
  426. package/dist/node_modules/.pnpm/tailwind-merge@3.5.0/node_modules/tailwind-merge/dist/bundle-mjs.js +1672 -0
  427. package/dist/pages/ErrorPage/ErrorPage.d.ts +34 -0
  428. package/dist/pages/ErrorPage/ErrorPage.d.ts.map +1 -0
  429. package/dist/pages/ErrorPage/ErrorPage.js +101 -0
  430. package/dist/pages/ErrorPage/index.d.ts +2 -0
  431. package/dist/pages/ErrorPage/index.d.ts.map +1 -0
  432. package/dist/pages/ErrorPage/index.js +2 -0
  433. package/dist/pages/ThreeColumnLayout/ThreeColumnLayout.d.ts +19 -0
  434. package/dist/pages/ThreeColumnLayout/ThreeColumnLayout.d.ts.map +1 -0
  435. package/dist/pages/ThreeColumnLayout/ThreeColumnLayout.js +29 -0
  436. package/dist/pages/ThreeColumnLayout/index.d.ts +3 -0
  437. package/dist/pages/ThreeColumnLayout/index.d.ts.map +1 -0
  438. package/dist/pages/ThreeColumnLayout/index.js +2 -0
  439. package/dist/ratio-ui.css +2 -0
  440. package/dist/toast/ToastRenderer.d.ts +3 -0
  441. package/dist/toast/ToastRenderer.d.ts.map +1 -0
  442. package/dist/toast/ToastRenderer.js +43 -0
  443. package/dist/toast/index.d.ts +6 -0
  444. package/dist/toast/index.d.ts.map +1 -0
  445. package/dist/toast/index.js +4 -0
  446. package/dist/toast/toastQueue.d.ts +9 -0
  447. package/dist/toast/toastQueue.d.ts.map +1 -0
  448. package/dist/toast/toastQueue.js +5 -0
  449. package/dist/toast/useToast.d.ts +17 -0
  450. package/dist/toast/useToast.d.ts.map +1 -0
  451. package/dist/toast/useToast.js +22 -0
  452. package/dist/tokens/borders.d.ts +9 -0
  453. package/dist/tokens/borders.d.ts.map +1 -0
  454. package/dist/tokens/borders.js +41 -0
  455. package/dist/tokens/colors.d.ts +10 -0
  456. package/dist/tokens/colors.d.ts.map +1 -0
  457. package/dist/tokens/colors.js +13 -0
  458. package/dist/tokens/index.d.ts +4 -0
  459. package/dist/tokens/index.d.ts.map +1 -0
  460. package/dist/tokens/index.js +3 -0
  461. package/dist/tokens/spacing.d.ts +19 -0
  462. package/dist/tokens/spacing.d.ts.map +1 -0
  463. package/dist/tokens/spacing.js +32 -0
  464. package/dist/utils/buildCoverImageStyle.d.ts +7 -0
  465. package/dist/utils/buildCoverImageStyle.d.ts.map +1 -0
  466. package/dist/utils/buildCoverImageStyle.js +11 -0
  467. package/dist/utils/cn.d.ts +4 -0
  468. package/dist/utils/cn.d.ts.map +1 -0
  469. package/dist/utils/cn.js +8 -0
  470. package/dist/utils/index.d.ts +3 -0
  471. package/dist/utils/index.d.ts.map +1 -0
  472. package/dist/utils/index.js +3 -0
  473. package/dist/visuals/NumberCard/NumberCard.d.ts +9 -0
  474. package/dist/visuals/NumberCard/NumberCard.d.ts.map +1 -0
  475. package/dist/visuals/NumberCard/NumberCard.js +20 -0
  476. package/dist/visuals/NumberCard/index.d.ts +2 -0
  477. package/dist/visuals/NumberCard/index.d.ts.map +1 -0
  478. package/dist/visuals/NumberCard/index.js +2 -0
  479. package/dist/visuals/Progress/ProgressBar.d.ts +14 -0
  480. package/dist/visuals/Progress/ProgressBar.d.ts.map +1 -0
  481. package/dist/visuals/Progress/ProgressBar.js +44 -0
  482. package/dist/visuals/Progress/ProgressRing.d.ts +16 -0
  483. package/dist/visuals/Progress/ProgressRing.d.ts.map +1 -0
  484. package/dist/visuals/Progress/ProgressRing.js +48 -0
  485. package/dist/visuals/Progress/index.d.ts +3 -0
  486. package/dist/visuals/Progress/index.d.ts.map +1 -0
  487. package/dist/visuals/Progress/index.js +3 -0
  488. package/dist/visuals/Progress/useProgressAnimation.d.ts +15 -0
  489. package/dist/visuals/Progress/useProgressAnimation.d.ts.map +1 -0
  490. package/dist/visuals/Progress/useProgressAnimation.js +25 -0
  491. package/package.json +135 -0
  492. package/src/global.css +333 -0
  493. package/src/tokens/Border.stories.tsx +129 -0
  494. package/src/tokens/Colors.stories.tsx +170 -0
  495. package/src/tokens/Spacing.stories.tsx +142 -0
  496. package/src/tokens/Typography.stories.tsx +75 -0
  497. package/src/tokens/border.css +7 -0
  498. package/src/tokens/borders.ts +70 -0
  499. package/src/tokens/colors.ts +29 -0
  500. package/src/tokens/index.css +5 -0
  501. package/src/tokens/index.ts +3 -0
  502. package/src/tokens/spacing.css +19 -0
  503. package/src/tokens/spacing.ts +65 -0
  504. package/src/tokens/theme.css +311 -0
  505. package/src/tokens/typography.css +22 -0
package/src/global.css ADDED
@@ -0,0 +1,333 @@
1
+ /**
2
+ * Ratio UI - Complete styling
3
+ * Includes Tailwind, design tokens, fonts, and base styles
4
+ */
5
+
6
+ /* Fonts */
7
+ @import url("https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@300;400;600&family=Source+Serif+4:wght@400;600;700&display=swap");
8
+
9
+ /* Tailwind + plugins */
10
+ @import "tailwindcss";
11
+ @plugin 'tailwindcss-react-aria-components';
12
+ @source '**/*.tsx';
13
+
14
+ /* Dark mode variant */
15
+ @custom-variant dark (&:where(html[data-theme="dark"] &, body[data-theme="dark"] &, [data-theme="dark"] *));
16
+
17
+ /* Design tokens */
18
+ @import "./tokens/index.css";
19
+
20
+ /* Base styles */
21
+ @layer base {
22
+ /* Prevent FOUC during theme initialization */
23
+ html {
24
+ opacity: 0;
25
+ font-size: var(--font-size-base);
26
+ }
27
+
28
+ html[data-theme="dark"],
29
+ html[data-theme="light"] {
30
+ opacity: 1;
31
+ }
32
+
33
+ main {
34
+ @apply grow;
35
+ }
36
+
37
+ /* Typography - base styles for semantic HTML */
38
+ html {
39
+ font-family: var(--font-body);
40
+ }
41
+
42
+ body {
43
+ font-family: var(--font-body);
44
+ line-height: 1.6;
45
+ letter-spacing: 0;
46
+ }
47
+
48
+ h1,
49
+ h2,
50
+ h3 {
51
+ /* Display warmth */
52
+ font-family: var(--font-display);
53
+ font-weight: 650;
54
+ line-height: 1.12;
55
+ letter-spacing: -0.02em;
56
+ }
57
+
58
+ h4,
59
+ h5,
60
+ h6 {
61
+ /* Keep smaller headings crisp */
62
+ font-family: var(--font-body);
63
+ font-weight: 600;
64
+ line-height: 1.25;
65
+ letter-spacing: -0.01em;
66
+ }
67
+
68
+ h1 {
69
+ font-size: var(--font-size-6xl);
70
+ margin-top: var(--space-2xl);
71
+ margin-bottom: var(--space-xs);
72
+ }
73
+
74
+ h2 {
75
+ font-size: var(--font-size-4xl);
76
+ margin-top: var(--space-xl);
77
+ margin-bottom: var(--space-2xs);
78
+ }
79
+
80
+ h3 {
81
+ font-size: var(--font-size-2xl);
82
+ margin-top: var(--space-md);
83
+ margin-bottom: var(--space-3xs);
84
+ }
85
+
86
+ h4 {
87
+ font-size: var(--font-size-base);
88
+ font-weight: 650;
89
+ margin-top: var(--space-s);
90
+ margin-bottom: 0;
91
+ }
92
+
93
+ h5 {
94
+ font-size: var(--font-size-base);
95
+ margin-top: var(--space-s);
96
+ margin-bottom: 0;
97
+ }
98
+
99
+ h6 {
100
+ font-size: var(--font-size-base);
101
+ margin-top: var(--space-s);
102
+ margin-bottom: 0;
103
+ text-transform: none;
104
+ }
105
+
106
+ /* Reduce gap when headings stack (e.g. h2 immediately followed by h3) */
107
+ :is(h1, h2, h3, h4, h5, h6) + :is(h1, h2, h3, h4, h5, h6) {
108
+ margin-top: var(--space-xs);
109
+ }
110
+
111
+ /* Keep text tight against its heading */
112
+ :is(h1, h2, h3, h4, h5, h6) + p {
113
+ margin-top: 0;
114
+ }
115
+
116
+ p {
117
+ margin-top: var(--space-s);
118
+ margin-bottom: var(--space-s);
119
+ max-width: 70ch;
120
+ }
121
+ }
122
+
123
+ @layer base {
124
+ body {
125
+ @apply h-full m-0 flex flex-col min-h-screen antialiased;
126
+ overflow-x: hidden;
127
+ }
128
+
129
+ /* Main animated gradient background */
130
+ body::before {
131
+ content: "";
132
+ position: fixed;
133
+ inset: -15%;
134
+ z-index: -1;
135
+ pointer-events: none;
136
+ will-change: transform;
137
+
138
+ background-image:
139
+ /* Organic blob 1 - Ocean teal */
140
+ radial-gradient(
141
+ ellipse 1200px 800px at 15% 20%,
142
+ rgba(91, 163, 181, 0.3),
143
+ transparent 75%
144
+ ),
145
+
146
+ /* Organic blob 2 - Sunny yellow */
147
+ radial-gradient(
148
+ ellipse 900px 1100px at 85% 15%,
149
+ rgba(255, 194, 32, 0.22),
150
+ transparent 80%
151
+ ),
152
+
153
+ /* Warm accent - Terracotta */
154
+ radial-gradient(
155
+ ellipse 700px 600px at 75% 80%,
156
+ rgba(244, 137, 109, 0.18),
157
+ transparent 85%
158
+ ),
159
+
160
+ /* Support color - subtle sage */
161
+ radial-gradient(
162
+ ellipse 1000px 700px at 25% 75%,
163
+ rgba(159, 183, 176, 0.15),
164
+ transparent 88%
165
+ ),
166
+
167
+ /* Spotlight effect (subtle white glow) */
168
+ radial-gradient(
169
+ circle 600px at 50% 10%,
170
+ rgba(255, 255, 255, 0.14),
171
+ transparent 75%
172
+ ),
173
+
174
+ /* Fine grain texture */
175
+ radial-gradient(
176
+ 1px 1px,
177
+ rgba(22, 20, 18, 0.05),
178
+ transparent 60%
179
+ );
180
+
181
+ background-size: auto, auto, auto, auto, auto, 5px 5px;
182
+ background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, repeat;
183
+ background-blend-mode: normal, normal, normal, normal, screen, multiply;
184
+ background-color: #fafcfd;
185
+
186
+ /* Elegant mask to blend edges */
187
+ -webkit-mask-image: radial-gradient(
188
+ 130% 130% at 50% 30%,
189
+ #000 52%,
190
+ transparent 90%
191
+ );
192
+ mask-image: radial-gradient(
193
+ 130% 130% at 50% 30%,
194
+ #000 52%,
195
+ transparent 90%
196
+ );
197
+ }
198
+
199
+ /* Dark mode variant - more dramatic and moody */
200
+ :root[data-theme="dark"] body::before {
201
+ background-image:
202
+ /* Ocean teal - deeper */
203
+ radial-gradient(
204
+ ellipse 1300px 900px at 12% 18%,
205
+ rgba(58, 114, 135, 0.35),
206
+ transparent 78%
207
+ ),
208
+
209
+ /* Sunny yellow - warmer glow */
210
+ radial-gradient(
211
+ ellipse 800px 1000px at 88% 12%,
212
+ rgba(187, 99, 9, 0.25),
213
+ transparent 82%
214
+ ),
215
+
216
+ /* Terracotta - warm bottom accent */
217
+ radial-gradient(
218
+ ellipse 800px 700px at 72% 85%,
219
+ rgba(200, 93, 63, 0.22),
220
+ transparent 84%
221
+ ),
222
+
223
+ /* Support sage - subtle atmospheric */
224
+ radial-gradient(
225
+ ellipse 1100px 800px at 28% 78%,
226
+ rgba(76, 101, 96, 0.18),
227
+ transparent 86%
228
+ ),
229
+
230
+ /* Subtle highlight */
231
+ radial-gradient(
232
+ circle 500px at 50% 8%,
233
+ rgba(255, 255, 255, 0.06),
234
+ transparent 78%
235
+ ),
236
+
237
+ /* Grain - more visible in dark */
238
+ radial-gradient(
239
+ 1px 1px,
240
+ rgba(250, 247, 243, 0.08),
241
+ transparent 60%
242
+ );
243
+
244
+ background-size: auto, auto, auto, auto, auto, 5px 5px;
245
+ background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, repeat;
246
+ background-blend-mode: normal, normal, normal, normal, screen, screen;
247
+ background-color: #08141a;
248
+ }
249
+
250
+ /* Smooth organic drift animation */
251
+ @media (prefers-reduced-motion: no-preference) {
252
+ body::before {
253
+ animation: losol-organic-flow 90s ease-in-out infinite alternate;
254
+ }
255
+
256
+ :root[data-theme="dark"] body::before {
257
+ animation-duration: 110s;
258
+ }
259
+
260
+ @keyframes losol-organic-flow {
261
+ 0% {
262
+ transform: translate3d(0, 0, 0) scale(1);
263
+ }
264
+ 33% {
265
+ transform: translate3d(25px, -15px, 0) scale(1.02);
266
+ }
267
+ 66% {
268
+ transform: translate3d(-20px, 20px, 0) scale(0.98);
269
+ }
270
+ 100% {
271
+ transform: translate3d(15px, -10px, 0) scale(1.01);
272
+ }
273
+ }
274
+ }
275
+
276
+ @media (prefers-reduced-motion: reduce) {
277
+ body::before {
278
+ animation: none !important;
279
+ }
280
+ }
281
+
282
+ /* Optional: Add a secondary layer for extra depth */
283
+ body::after {
284
+ content: "";
285
+ position: fixed;
286
+ inset: 0;
287
+ z-index: -1;
288
+ pointer-events: none;
289
+ opacity: 0.4;
290
+
291
+ background-image:
292
+ /* Subtle mesh pattern overlay */
293
+ repeating-linear-gradient(
294
+ 0deg,
295
+ transparent,
296
+ transparent 2px,
297
+ rgba(22, 20, 18, 0.01) 2px,
298
+ rgba(22, 20, 18, 0.01) 4px
299
+ ),
300
+ repeating-linear-gradient(
301
+ 90deg,
302
+ transparent,
303
+ transparent 2px,
304
+ rgba(22, 20, 18, 0.01) 2px,
305
+ rgba(22, 20, 18, 0.01) 4px
306
+ );
307
+ }
308
+
309
+ :root[data-theme="dark"] body::after {
310
+ opacity: 0.2;
311
+ background-image:
312
+ repeating-linear-gradient(
313
+ 0deg,
314
+ transparent,
315
+ transparent 2px,
316
+ rgba(250, 247, 243, 0.015) 2px,
317
+ rgba(250, 247, 243, 0.015) 4px
318
+ ),
319
+ repeating-linear-gradient(
320
+ 90deg,
321
+ transparent,
322
+ transparent 2px,
323
+ rgba(250, 247, 243, 0.015) 2px,
324
+ rgba(250, 247, 243, 0.015) 4px
325
+ );
326
+ }
327
+
328
+ @media (prefers-reduced-motion: reduce) {
329
+ body::after {
330
+ display: none;
331
+ }
332
+ }
333
+ }
@@ -0,0 +1,129 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import type { BorderProps } from './borders';
3
+ import { buildBorderClasses } from './borders';
4
+
5
+ const radii = [
6
+ { name: 'sm', token: '--radius-sm' },
7
+ { name: 'default', token: '--radius' },
8
+ { name: 'lg', token: '--radius-lg' },
9
+ { name: 'xl', token: '--radius-xl' },
10
+ { name: 'full', token: '9999px' },
11
+ ];
12
+
13
+ const AllBorders = () => (
14
+ <div className="p-6 max-w-5xl">
15
+ <h2 className="text-lg font-bold mb-1">Border Tokens</h2>
16
+ <p className="text-sm text-text-muted mb-6">Border radius scale.</p>
17
+
18
+ <h3 className="text-sm font-semibold mb-3">Radius</h3>
19
+ <div className="flex gap-6 items-end">
20
+ {radii.map(({ name, token }) => (
21
+ <div key={name} className="flex flex-col items-center gap-2">
22
+ <div
23
+ className="h-20 w-20"
24
+ style={{
25
+ borderRadius: token.startsWith('--') ? `var(${token})` : token,
26
+ backgroundColor: 'var(--color-primary-400)',
27
+ border: '2px solid var(--color-primary-600)',
28
+ }}
29
+ />
30
+ <span className="text-xs font-mono text-text-subtle">
31
+ {token.startsWith('--') ? token : 'rounded-full'}
32
+ </span>
33
+ <span className="text-xs text-text-muted">{name}</span>
34
+ </div>
35
+ ))}
36
+ </div>
37
+
38
+ <h3 className="text-sm font-semibold mt-8 mb-3">Border Colors</h3>
39
+ <div className="flex gap-4">
40
+ <div className="flex flex-col items-center gap-2">
41
+ <div
42
+ className="h-16 w-32 rounded-lg"
43
+ style={{ border: '2px solid var(--border-1)' }}
44
+ />
45
+ <span className="text-xs font-mono text-text-subtle">--border-1</span>
46
+ <span className="text-xs text-text-muted">Default</span>
47
+ </div>
48
+ <div className="flex flex-col items-center gap-2">
49
+ <div
50
+ className="h-16 w-32 rounded-lg"
51
+ style={{ border: '2px solid var(--border-2)' }}
52
+ />
53
+ <span className="text-xs font-mono text-text-subtle">--border-2</span>
54
+ <span className="text-xs text-text-muted">Emphasis</span>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ );
59
+
60
+ const meta: Meta = {
61
+ title: 'Tokens/Borders',
62
+ };
63
+
64
+ export default meta;
65
+ type Story = StoryObj;
66
+
67
+ export const Overview: Story = {
68
+ render: () => <AllBorders />,
69
+ };
70
+
71
+ /* ------------------------------------------------------------------ */
72
+ /* BorderProps API */
73
+ /* ------------------------------------------------------------------ */
74
+
75
+ const BorderBox = ({ label, props }: { label: string; props: BorderProps }) => (
76
+ <div className="flex flex-col items-center gap-2">
77
+ <div className={`h-20 w-32 bg-neutral-50 dark:bg-neutral-900 ${buildBorderClasses(props)}`} />
78
+ <span className="text-xs font-mono text-text-subtle text-center">{label}</span>
79
+ </div>
80
+ );
81
+
82
+ const BorderPropsDemo = () => (
83
+ <div className="p-6 max-w-5xl">
84
+ <h2 className="text-lg font-bold mb-1">BorderProps API</h2>
85
+ <p className="text-sm text-text-muted mb-6">
86
+ Typed border props: <code className="bg-neutral-100 dark:bg-neutral-800 px-1 rounded">border</code>,{' '}
87
+ <code className="bg-neutral-100 dark:bg-neutral-800 px-1 rounded">borderColor</code>,{' '}
88
+ <code className="bg-neutral-100 dark:bg-neutral-800 px-1 rounded">radius</code>.
89
+ </p>
90
+
91
+ {/* Border variants */}
92
+ <h3 className="text-sm font-semibold mb-3">Variants</h3>
93
+ <div className="flex gap-6 mb-8 flex-wrap">
94
+ <BorderBox label='border={true}' props={{ border: true, radius: 'md' }} />
95
+ <BorderBox label='border="default"' props={{ border: 'default', radius: 'md' }} />
96
+ <BorderBox label='border="strong"' props={{ border: 'strong', radius: 'md' }} />
97
+ <BorderBox label='border="subtle"' props={{ border: 'subtle', radius: 'md' }} />
98
+ </div>
99
+
100
+ {/* Border colors */}
101
+ <h3 className="text-sm font-semibold mb-3">Colors</h3>
102
+ <div className="flex gap-4 mb-8 flex-wrap">
103
+ {(['default', 'subtle', 'strong', 'primary', 'success', 'warning', 'error', 'info'] as const).map(color => (
104
+ <BorderBox
105
+ key={color}
106
+ label={`borderColor="${color}"`}
107
+ props={{ border: true, borderColor: color, radius: 'md' }}
108
+ />
109
+ ))}
110
+ </div>
111
+
112
+ {/* Radius scale */}
113
+ <h3 className="text-sm font-semibold mb-3">Radius</h3>
114
+ <div className="flex gap-6 flex-wrap">
115
+ {(['none', 'sm', 'md', 'lg', 'xl', 'full'] as const).map(r => (
116
+ <BorderBox
117
+ key={r}
118
+ label={`radius="${r}"`}
119
+ props={{ border: true, radius: r }}
120
+ />
121
+ ))}
122
+ </div>
123
+ </div>
124
+ );
125
+
126
+ export const PropAPI: Story = {
127
+ name: 'BorderProps API',
128
+ render: () => <BorderPropsDemo />,
129
+ };
@@ -0,0 +1,170 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+
3
+ type ScaleConfig = {
4
+ label: string;
5
+ steps: number[];
6
+ /** Tailwind bg classes keyed by step — needed because dynamic class names aren't scanned */
7
+ bg: Record<number, string>;
8
+ };
9
+
10
+ /* Tailwind classes must be written out statically so the scanner picks them up */
11
+ const scales: Record<string, ScaleConfig> = {
12
+ primary: {
13
+ label: 'Primary — Ocean Teal',
14
+ steps: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950],
15
+ bg: {
16
+ 50: 'bg-primary-50', 100: 'bg-primary-100', 200: 'bg-primary-200', 300: 'bg-primary-300',
17
+ 400: 'bg-primary-400', 500: 'bg-primary-500', 600: 'bg-primary-600', 700: 'bg-primary-700',
18
+ 800: 'bg-primary-800', 900: 'bg-primary-900', 950: 'bg-primary-950',
19
+ },
20
+ },
21
+ secondary: {
22
+ label: 'Secondary — Sunny Yellow',
23
+ steps: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950],
24
+ bg: {
25
+ 50: 'bg-secondary-50', 100: 'bg-secondary-100', 200: 'bg-secondary-200', 300: 'bg-secondary-300',
26
+ 400: 'bg-secondary-400', 500: 'bg-secondary-500', 600: 'bg-secondary-600', 700: 'bg-secondary-700',
27
+ 800: 'bg-secondary-800', 900: 'bg-secondary-900', 950: 'bg-secondary-950',
28
+ },
29
+ },
30
+ accent: {
31
+ label: 'Accent — Warm Terracotta',
32
+ steps: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950],
33
+ bg: {
34
+ 50: 'bg-accent-50', 100: 'bg-accent-100', 200: 'bg-accent-200', 300: 'bg-accent-300',
35
+ 400: 'bg-accent-400', 500: 'bg-accent-500', 600: 'bg-accent-600', 700: 'bg-accent-700',
36
+ 800: 'bg-accent-800', 900: 'bg-accent-900', 950: 'bg-accent-950',
37
+ },
38
+ },
39
+ neutral: {
40
+ label: 'Neutral',
41
+ steps: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950],
42
+ bg: {
43
+ 50: 'bg-neutral-50', 100: 'bg-neutral-100', 200: 'bg-neutral-200', 300: 'bg-neutral-300',
44
+ 400: 'bg-neutral-400', 500: 'bg-neutral-500', 600: 'bg-neutral-600', 700: 'bg-neutral-700',
45
+ 800: 'bg-neutral-800', 900: 'bg-neutral-900', 950: 'bg-neutral-950',
46
+ },
47
+ },
48
+ success: {
49
+ label: 'Success — Mint Green',
50
+ steps: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950],
51
+ bg: {
52
+ 50: 'bg-success-50', 100: 'bg-success-100', 200: 'bg-success-200', 300: 'bg-success-300',
53
+ 400: 'bg-success-400', 500: 'bg-success-500', 600: 'bg-success-600', 700: 'bg-success-700',
54
+ 800: 'bg-success-800', 900: 'bg-success-900', 950: 'bg-success-950',
55
+ },
56
+ },
57
+ warning: {
58
+ label: 'Warning — Amber',
59
+ steps: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950],
60
+ bg: {
61
+ 50: 'bg-warning-50', 100: 'bg-warning-100', 200: 'bg-warning-200', 300: 'bg-warning-300',
62
+ 400: 'bg-warning-400', 500: 'bg-warning-500', 600: 'bg-warning-600', 700: 'bg-warning-700',
63
+ 800: 'bg-warning-800', 900: 'bg-warning-900', 950: 'bg-warning-950',
64
+ },
65
+ },
66
+ error: {
67
+ label: 'Error — Coral Red',
68
+ steps: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950],
69
+ bg: {
70
+ 50: 'bg-error-50', 100: 'bg-error-100', 200: 'bg-error-200', 300: 'bg-error-300',
71
+ 400: 'bg-error-400', 500: 'bg-error-500', 600: 'bg-error-600', 700: 'bg-error-700',
72
+ 800: 'bg-error-800', 900: 'bg-error-900', 950: 'bg-error-950',
73
+ },
74
+ },
75
+ info: {
76
+ label: 'Info — Sky Blue',
77
+ steps: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950],
78
+ bg: {
79
+ 50: 'bg-info-50', 100: 'bg-info-100', 200: 'bg-info-200', 300: 'bg-info-300',
80
+ 400: 'bg-info-400', 500: 'bg-info-500', 600: 'bg-info-600', 700: 'bg-info-700',
81
+ 800: 'bg-info-800', 900: 'bg-info-900', 950: 'bg-info-950',
82
+ },
83
+ },
84
+ support: {
85
+ label: 'Support — Sage Green',
86
+ steps: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950],
87
+ bg: {
88
+ 50: 'bg-support-50', 100: 'bg-support-100', 200: 'bg-support-200', 300: 'bg-support-300',
89
+ 400: 'bg-support-400', 500: 'bg-support-500', 600: 'bg-support-600', 700: 'bg-support-700',
90
+ 800: 'bg-support-800', 900: 'bg-support-900', 950: 'bg-support-950',
91
+ },
92
+ },
93
+ };
94
+
95
+ const Swatch = ({ name, step, bgClass }: { name: string; step: number; bgClass: string }) => (
96
+ <div className="flex flex-col items-center gap-1">
97
+ <div className={`h-12 w-full rounded border border-neutral-300 dark:border-neutral-700 ${bgClass}`} />
98
+ <span className="text-xs font-mono text-text-muted">{step}</span>
99
+ <span className="text-[10px] font-mono text-text-subtle">{name}-{step}</span>
100
+ </div>
101
+ );
102
+
103
+ const ColorScale = ({ name, config }: { name: string; config: ScaleConfig }) => (
104
+ <div className="mb-8">
105
+ <h3 className="text-sm font-semibold mb-2">{config.label}</h3>
106
+ <div className="grid grid-cols-11 gap-1">
107
+ {config.steps.map((step) => (
108
+ <Swatch key={step} name={name} step={step} bgClass={config.bg[step] ?? ''} />
109
+ ))}
110
+ </div>
111
+ </div>
112
+ );
113
+
114
+ /* Opacity demo — static class names for Tailwind scanner */
115
+ const OpacityDemo = () => (
116
+ <div className="mb-8">
117
+ <h3 className="text-sm font-semibold mb-2">Opacity Modifiers</h3>
118
+ <p className="text-xs text-text-muted mb-3">
119
+ With oklch in <code className="bg-neutral-100 dark:bg-neutral-800 px-1 rounded">@theme</code>,
120
+ opacity modifiers like <code className="bg-neutral-100 dark:bg-neutral-800 px-1 rounded">bg-primary-500/50</code> work at build time.
121
+ </p>
122
+ <div className="flex gap-2 items-end">
123
+ <div className="flex flex-col items-center gap-1">
124
+ <div className="h-12 w-16 rounded bg-primary-500" />
125
+ <span className="text-xs font-mono text-text-muted">100%</span>
126
+ </div>
127
+ <div className="flex flex-col items-center gap-1">
128
+ <div className="h-12 w-16 rounded bg-primary-500/75" />
129
+ <span className="text-xs font-mono text-text-muted">75%</span>
130
+ </div>
131
+ <div className="flex flex-col items-center gap-1">
132
+ <div className="h-12 w-16 rounded bg-primary-500/50" />
133
+ <span className="text-xs font-mono text-text-muted">50%</span>
134
+ </div>
135
+ <div className="flex flex-col items-center gap-1">
136
+ <div className="h-12 w-16 rounded bg-primary-500/25" />
137
+ <span className="text-xs font-mono text-text-muted">25%</span>
138
+ </div>
139
+ <div className="flex flex-col items-center gap-1">
140
+ <div className="h-12 w-16 rounded bg-primary-500/10" />
141
+ <span className="text-xs font-mono text-text-muted">10%</span>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ );
146
+
147
+ const AllColors = () => (
148
+ <div className="p-6 max-w-5xl">
149
+ <h2 className="text-lg font-bold mb-1">Color Tokens</h2>
150
+ <p className="text-sm text-text-muted mb-6">
151
+ Color scales defined in oklch. Supports Tailwind v4 opacity modifiers.
152
+ </p>
153
+ <OpacityDemo />
154
+ {Object.entries(scales).map(([name, config]) => (
155
+ <ColorScale key={name} name={name} config={config} />
156
+ ))}
157
+ </div>
158
+ );
159
+
160
+ const meta: Meta = {
161
+ title: 'Tokens/Colors',
162
+ tags: ['autodocs'],
163
+ };
164
+
165
+ export default meta;
166
+ type Story = StoryObj;
167
+
168
+ export const Palette: Story = {
169
+ render: () => <AllColors />,
170
+ };