@saas-ui/react 3.0.0-alpha.0 → 3.0.0-alpha.10

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 (397) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/dist/chunk-2EUACKRH.js +26 -0
  3. package/dist/chunk-32JGENDB.js +19 -0
  4. package/dist/chunk-3MO37LYW.js +326 -0
  5. package/dist/chunk-4TR3AOMG.js +33 -0
  6. package/dist/chunk-6LOMIKR5.js +69 -0
  7. package/dist/chunk-6ZNR6N2K.js +45 -0
  8. package/dist/chunk-7VSTNV2B.js +53 -0
  9. package/dist/chunk-BCNPBZZK.js +45 -0
  10. package/dist/chunk-CB52LBJK.js +71 -0
  11. package/dist/chunk-CD2JUFI2.js +231 -0
  12. package/dist/chunk-FJFNGSPL.js +23 -0
  13. package/dist/chunk-FZW2DYK3.js +19 -0
  14. package/dist/chunk-GGAKUS66.js +141 -0
  15. package/dist/chunk-H6TFEHY4.js +63 -0
  16. package/dist/chunk-HELHPHIQ.js +35 -0
  17. package/dist/chunk-I2RXEKTB.js +38 -0
  18. package/dist/chunk-JGHXJ3PI.js +102 -0
  19. package/dist/chunk-KTLWEUNW.js +1 -0
  20. package/dist/chunk-L356FPLY.js +20 -0
  21. package/dist/chunk-LIYUBUOP.js +119 -0
  22. package/dist/chunk-M7FOBCOV.js +184 -0
  23. package/dist/chunk-NSD5HRIP.js +46 -0
  24. package/dist/chunk-O2WVT2BP.js +35 -0
  25. package/dist/chunk-PKI6YH2V.js +31 -0
  26. package/dist/chunk-Q6SNJJO2.js +63 -0
  27. package/dist/chunk-QSNSWCTM.js +32 -0
  28. package/dist/chunk-RTMS5TJN.js +10 -0
  29. package/dist/chunk-S3CQW7GD.js +100 -0
  30. package/dist/chunk-SA3OGTOO.js +23 -0
  31. package/dist/chunk-SKXSBAOS.js +35 -0
  32. package/dist/chunk-TT4C5VXB.js +36 -0
  33. package/dist/chunk-TZBAM4AD.js +20 -0
  34. package/dist/chunk-UCQ3LZIE.js +43 -0
  35. package/dist/chunk-ULAJ3JEO.js +32 -0
  36. package/dist/chunk-VDXTEASE.js +117 -0
  37. package/dist/chunk-WYLMBMAH.js +22 -0
  38. package/dist/components/app-shell/index.cjs +68 -0
  39. package/dist/components/app-shell/index.d.cts +30 -0
  40. package/dist/components/app-shell/index.d.ts +30 -0
  41. package/dist/components/app-shell/index.js +8 -0
  42. package/dist/components/avatar/index.cjs +69 -0
  43. package/dist/components/avatar/index.d.cts +18 -0
  44. package/dist/components/avatar/index.d.ts +18 -0
  45. package/dist/components/avatar/index.js +10 -0
  46. package/dist/components/breadcrumb/index.cjs +58 -0
  47. package/dist/components/breadcrumb/index.d.cts +17 -0
  48. package/dist/components/breadcrumb/index.d.ts +17 -0
  49. package/dist/components/breadcrumb/index.js +8 -0
  50. package/dist/components/button/index.cjs +65 -0
  51. package/dist/components/button/index.d.cts +12 -0
  52. package/dist/components/button/index.d.ts +12 -0
  53. package/dist/components/button/index.js +8 -0
  54. package/dist/components/checkbox/index.cjs +45 -0
  55. package/dist/components/checkbox/index.d.cts +11 -0
  56. package/dist/components/checkbox/index.d.ts +11 -0
  57. package/dist/components/checkbox/index.js +8 -0
  58. package/dist/components/close-button/index.cjs +142 -0
  59. package/dist/components/close-button/index.d.cts +8 -0
  60. package/dist/components/close-button/index.d.ts +8 -0
  61. package/dist/components/close-button/index.js +9 -0
  62. package/dist/components/command/index.cjs +56 -0
  63. package/dist/components/command/index.d.cts +6 -0
  64. package/dist/components/command/index.d.ts +6 -0
  65. package/dist/components/command/index.js +8 -0
  66. package/dist/components/dialog/index.cjs +204 -0
  67. package/dist/components/dialog/index.d.cts +27 -0
  68. package/dist/components/dialog/index.d.ts +27 -0
  69. package/dist/components/dialog/index.js +10 -0
  70. package/dist/components/drawer/index.cjs +196 -0
  71. package/dist/components/drawer/index.d.cts +28 -0
  72. package/dist/components/drawer/index.d.ts +28 -0
  73. package/dist/components/drawer/index.js +10 -0
  74. package/dist/components/empty-state/index.cjs +48 -0
  75. package/dist/components/empty-state/index.d.cts +11 -0
  76. package/dist/components/empty-state/index.d.ts +11 -0
  77. package/dist/components/empty-state/index.js +8 -0
  78. package/dist/components/grid-list/index.cjs +68 -0
  79. package/dist/components/grid-list/index.d.cts +22 -0
  80. package/dist/components/grid-list/index.d.ts +22 -0
  81. package/dist/components/grid-list/index.js +8 -0
  82. package/dist/components/icon-badge/index.cjs +70 -0
  83. package/dist/components/icon-badge/index.d.cts +16 -0
  84. package/dist/components/icon-badge/index.d.ts +16 -0
  85. package/dist/components/icon-badge/index.js +8 -0
  86. package/dist/components/icons/index.cjs +155 -0
  87. package/dist/components/icons/index.d.cts +19 -0
  88. package/dist/components/icons/index.d.ts +19 -0
  89. package/dist/components/icons/index.js +35 -0
  90. package/dist/components/input-group/index.cjs +56 -0
  91. package/dist/components/input-group/index.d.cts +13 -0
  92. package/dist/components/input-group/index.d.ts +13 -0
  93. package/dist/components/input-group/index.js +8 -0
  94. package/dist/components/link/index.cjs +71 -0
  95. package/dist/components/link/index.d.cts +13 -0
  96. package/dist/components/link/index.d.ts +13 -0
  97. package/dist/components/link/index.js +9 -0
  98. package/dist/components/loading-overlay/index.cjs +84 -0
  99. package/dist/components/loading-overlay/index.d.cts +26 -0
  100. package/dist/components/loading-overlay/index.d.ts +26 -0
  101. package/dist/components/loading-overlay/index.js +11 -0
  102. package/dist/components/menu/index.cjs +249 -0
  103. package/dist/components/menu/index.d.cts +39 -0
  104. package/dist/components/menu/index.d.ts +39 -0
  105. package/dist/components/menu/index.js +11 -0
  106. package/dist/components/navbar/index.cjs +111 -0
  107. package/dist/components/navbar/index.d.cts +21 -0
  108. package/dist/components/navbar/index.d.ts +21 -0
  109. package/dist/components/navbar/index.js +9 -0
  110. package/dist/components/number-input/index.cjs +82 -0
  111. package/dist/components/number-input/index.d.cts +13 -0
  112. package/dist/components/number-input/index.d.ts +13 -0
  113. package/dist/components/number-input/index.js +9 -0
  114. package/dist/components/password-input/index.cjs +284 -0
  115. package/dist/components/password-input/index.d.cts +18 -0
  116. package/dist/components/password-input/index.d.ts +18 -0
  117. package/dist/components/password-input/index.js +9 -0
  118. package/dist/components/persona/index.cjs +218 -0
  119. package/dist/components/persona/index.d.cts +113 -0
  120. package/dist/components/persona/index.d.ts +113 -0
  121. package/dist/components/persona/index.js +12 -0
  122. package/dist/components/pin-input/index.cjs +51 -0
  123. package/dist/components/pin-input/index.d.cts +12 -0
  124. package/dist/components/pin-input/index.d.ts +12 -0
  125. package/dist/components/pin-input/index.js +8 -0
  126. package/dist/components/radio/index.cjs +48 -0
  127. package/dist/components/radio/index.d.cts +12 -0
  128. package/dist/components/radio/index.d.ts +12 -0
  129. package/dist/components/radio/index.js +10 -0
  130. package/dist/components/search-input/index.cjs +244 -0
  131. package/dist/components/search-input/index.d.cts +15 -0
  132. package/dist/components/search-input/index.d.ts +15 -0
  133. package/dist/components/search-input/index.js +10 -0
  134. package/dist/components/segmented-control/index.cjs +60 -0
  135. package/dist/components/segmented-control/index.d.cts +14 -0
  136. package/dist/components/segmented-control/index.d.ts +14 -0
  137. package/dist/components/segmented-control/index.js +8 -0
  138. package/dist/components/select/index.cjs +233 -0
  139. package/dist/components/select/index.d.cts +32 -0
  140. package/dist/components/select/index.d.ts +32 -0
  141. package/dist/components/select/index.js +10 -0
  142. package/dist/components/sidebar/index.cjs +166 -0
  143. package/dist/components/sidebar/index.d.cts +86 -0
  144. package/dist/components/sidebar/index.d.ts +86 -0
  145. package/dist/components/sidebar/index.js +14 -0
  146. package/dist/components/spinner/index.cjs +44 -0
  147. package/dist/components/spinner/index.d.cts +10 -0
  148. package/dist/components/spinner/index.d.ts +10 -0
  149. package/dist/components/spinner/index.js +8 -0
  150. package/dist/components/steps/index.cjs +189 -0
  151. package/dist/components/steps/index.d.cts +31 -0
  152. package/dist/components/steps/index.d.ts +31 -0
  153. package/dist/components/steps/index.js +10 -0
  154. package/dist/components/switch/index.cjs +48 -0
  155. package/dist/components/switch/index.d.cts +18 -0
  156. package/dist/components/switch/index.d.ts +18 -0
  157. package/dist/components/switch/index.js +8 -0
  158. package/dist/components/toaster/index.cjs +54 -0
  159. package/dist/components/toaster/index.d.cts +10 -0
  160. package/dist/components/toaster/index.d.ts +10 -0
  161. package/dist/components/toaster/index.js +10 -0
  162. package/dist/components/tooltip/index.cjs +57 -0
  163. package/dist/components/tooltip/index.d.cts +14 -0
  164. package/dist/components/tooltip/index.d.ts +14 -0
  165. package/dist/components/tooltip/index.js +8 -0
  166. package/dist/index.cjs +2358 -222
  167. package/dist/index.d.cts +46 -10
  168. package/dist/index.d.ts +46 -10
  169. package/dist/index.js +523 -305
  170. package/dist/theme/tokens/colors.cjs +349 -0
  171. package/dist/theme/tokens/colors.d.cts +856 -0
  172. package/dist/theme/tokens/colors.d.ts +856 -0
  173. package/dist/theme/tokens/colors.js +8 -0
  174. package/package.json +15 -9
  175. package/dist/index.cjs.map +0 -1
  176. package/dist/index.js.map +0 -1
  177. package/src/components/accordion.tsx +0 -47
  178. package/src/components/action-bar.tsx +0 -40
  179. package/src/components/alert.tsx +0 -51
  180. package/src/components/app-shell/app-shell.recipe.ts +0 -52
  181. package/src/components/app-shell/app-shell.stories.tsx +0 -51
  182. package/src/components/app-shell/app-shell.tsx +0 -94
  183. package/src/components/app-shell/index.ts +0 -3
  184. package/src/components/avatar.tsx +0 -74
  185. package/src/components/blockquote.tsx +0 -31
  186. package/src/components/breadcrumbs/breadcrumb.stories.tsx +0 -17
  187. package/src/components/breadcrumbs/breadcrumb.tsx +0 -36
  188. package/src/components/breadcrumbs/index.ts +0 -1
  189. package/src/components/breadcrumbs/namespace.ts +0 -8
  190. package/src/components/button/button.recipe.ts +0 -182
  191. package/src/components/button/button.stories.tsx +0 -99
  192. package/src/components/button/button.tsx +0 -55
  193. package/src/components/button/index.ts +0 -2
  194. package/src/components/checkbox/checkbox.tsx +0 -26
  195. package/src/components/checkbox/index.ts +0 -2
  196. package/src/components/checkbox-card.tsx +0 -57
  197. package/src/components/checkbox.tsx +0 -25
  198. package/src/components/clipboard.tsx +0 -107
  199. package/src/components/close-button/close-button.stories.tsx +0 -12
  200. package/src/components/close-button/close-button.tsx +0 -18
  201. package/src/components/close-button/index.ts +0 -2
  202. package/src/components/color-mode.tsx +0 -65
  203. package/src/components/command/command.recipe.ts +0 -17
  204. package/src/components/command/command.stories.tsx +0 -47
  205. package/src/components/command/command.tsx +0 -50
  206. package/src/components/command/index.ts +0 -1
  207. package/src/components/data-list.tsx +0 -37
  208. package/src/components/dialog/dialog.tsx +0 -66
  209. package/src/components/dialog/index.ts +0 -1
  210. package/src/components/dialog/namespace.ts +0 -18
  211. package/src/components/drawer/drawer.tsx +0 -56
  212. package/src/components/drawer/index.ts +0 -3
  213. package/src/components/drawer/namespace.ts +0 -19
  214. package/src/components/empty-state.tsx +0 -34
  215. package/src/components/field.tsx +0 -33
  216. package/src/components/file-button.tsx +0 -166
  217. package/src/components/grid-list/grid-list.recipe.ts +0 -113
  218. package/src/components/hover-card.tsx +0 -35
  219. package/src/components/icon-badge/icon-badge.recipe.ts +0 -57
  220. package/src/components/icon-badge/icon-badge.stories.tsx +0 -38
  221. package/src/components/icon-badge/icon-badge.tsx +0 -59
  222. package/src/components/icon-badge/index.ts +0 -2
  223. package/src/components/icons/create-icon.tsx +0 -41
  224. package/src/components/icons/icons.tsx +0 -121
  225. package/src/components/icons/index.ts +0 -1
  226. package/src/components/input-group/index.ts +0 -1
  227. package/src/components/input-group/input-group.tsx +0 -46
  228. package/src/components/link/index.ts +0 -2
  229. package/src/components/link/link.stories.tsx +0 -17
  230. package/src/components/link/link.test.tsx +0 -33
  231. package/src/components/link/link.tsx +0 -27
  232. package/src/components/link-button.tsx +0 -12
  233. package/src/components/loading-overlay/index.ts +0 -1
  234. package/src/components/loading-overlay/loading-overlay.recipe.ts +0 -61
  235. package/src/components/loading-overlay/loading-overlay.stories.tsx +0 -68
  236. package/src/components/loading-overlay/loading-overlay.tsx +0 -54
  237. package/src/components/loading-overlay/namespace.ts +0 -7
  238. package/src/components/menu.tsx +0 -108
  239. package/src/components/native-select.tsx +0 -57
  240. package/src/components/navbar/index.ts +0 -1
  241. package/src/components/navbar/namespace.ts +0 -9
  242. package/src/components/navbar/navbar.recipe.ts +0 -109
  243. package/src/components/navbar/navbar.stories.tsx +0 -435
  244. package/src/components/navbar/navbar.test.tsx +0 -49
  245. package/src/components/navbar/navbar.tsx +0 -39
  246. package/src/components/number-input/index.ts +0 -2
  247. package/src/components/number-input/number-input.tsx +0 -41
  248. package/src/components/pagination.tsx +0 -207
  249. package/src/components/password-input/index.ts +0 -2
  250. package/src/components/password-input/password-input.tsx +0 -98
  251. package/src/components/persona/index.ts +0 -2
  252. package/src/components/persona/namespace.ts +0 -18
  253. package/src/components/persona/persona-primitive.tsx +0 -220
  254. package/src/components/persona/persona.recipe.ts +0 -94
  255. package/src/components/persona/persona.stories.tsx +0 -101
  256. package/src/components/persona/persona.tsx +0 -143
  257. package/src/components/pin-input/index.ts +0 -2
  258. package/src/components/pin-input/pin-input.tsx +0 -36
  259. package/src/components/popover.tsx +0 -58
  260. package/src/components/progress-circle.tsx +0 -37
  261. package/src/components/progress.tsx +0 -40
  262. package/src/components/prose.tsx +0 -264
  263. package/src/components/provider.tsx +0 -12
  264. package/src/components/radio/index.ts +0 -2
  265. package/src/components/radio/radio.tsx +0 -27
  266. package/src/components/radio-card.tsx +0 -57
  267. package/src/components/radio.tsx +0 -24
  268. package/src/components/rating.tsx +0 -27
  269. package/src/components/search-input/index.ts +0 -2
  270. package/src/components/search-input/search-input.stories.tsx +0 -63
  271. package/src/components/search-input/search-input.tsx +0 -134
  272. package/src/components/segmented-control.tsx +0 -47
  273. package/src/components/select/index.ts +0 -1
  274. package/src/components/select/namespace.ts +0 -18
  275. package/src/components/select/select.tsx +0 -135
  276. package/src/components/sidebar/index.ts +0 -7
  277. package/src/components/sidebar/namespace.ts +0 -27
  278. package/src/components/sidebar/sidebar-item.recipe.ts +0 -65
  279. package/src/components/sidebar/sidebar.recipe.ts +0 -237
  280. package/src/components/sidebar/sidebar.stories.tsx +0 -903
  281. package/src/components/sidebar/sidebar.tsx +0 -204
  282. package/src/components/skeleton.tsx +0 -44
  283. package/src/components/slider.tsx +0 -53
  284. package/src/components/spinner/index.ts +0 -2
  285. package/src/components/spinner/spinner.stories.tsx +0 -19
  286. package/src/components/spinner/spinner.tsx +0 -21
  287. package/src/components/stat.tsx +0 -75
  288. package/src/components/status.tsx +0 -29
  289. package/src/components/stepper-input.tsx +0 -49
  290. package/src/components/steps/index.ts +0 -1
  291. package/src/components/steps/namespace.ts +0 -16
  292. package/src/components/steps/steps.tsx +0 -82
  293. package/src/components/switch/index.ts +0 -3
  294. package/src/components/switch/switch.tsx +0 -39
  295. package/src/components/tag.tsx +0 -39
  296. package/src/components/timeline.tsx +0 -17
  297. package/src/components/toaster.tsx +0 -43
  298. package/src/components/toggle-tip.tsx +0 -62
  299. package/src/components/tooltip.tsx +0 -46
  300. package/src/index.ts +0 -7
  301. package/src/preset.ts +0 -9
  302. package/src/provider/index.ts +0 -4
  303. package/src/provider/sui-provider.tsx +0 -34
  304. package/src/provider/use-link.test.tsx +0 -60
  305. package/src/provider/use-link.tsx +0 -13
  306. package/src/theme/animation-styles.ts +0 -53
  307. package/src/theme/breakpoints.ts +0 -11
  308. package/src/theme/conditions.ts +0 -26
  309. package/src/theme/fluid-font-sizes.ts +0 -65
  310. package/src/theme/global-css.ts +0 -94
  311. package/src/theme/index.ts +0 -72
  312. package/src/theme/layer-styles.ts +0 -116
  313. package/src/theme/recipes/chakra/accordion.ts +0 -145
  314. package/src/theme/recipes/chakra/action-bar.ts +0 -62
  315. package/src/theme/recipes/chakra/alert.ts +0 -157
  316. package/src/theme/recipes/chakra/avatar.ts +0 -141
  317. package/src/theme/recipes/chakra/badge.ts +0 -67
  318. package/src/theme/recipes/chakra/blockquote.ts +0 -83
  319. package/src/theme/recipes/chakra/breadcrumb.ts +0 -94
  320. package/src/theme/recipes/chakra/card.ts +0 -99
  321. package/src/theme/recipes/chakra/checkbox-card.ts +0 -212
  322. package/src/theme/recipes/chakra/checkbox.ts +0 -70
  323. package/src/theme/recipes/chakra/checkmark.ts +0 -83
  324. package/src/theme/recipes/chakra/code.ts +0 -17
  325. package/src/theme/recipes/chakra/collapsible.ts +0 -20
  326. package/src/theme/recipes/chakra/container.ts +0 -26
  327. package/src/theme/recipes/chakra/data-list.ts +0 -80
  328. package/src/theme/recipes/chakra/dialog.ts +0 -225
  329. package/src/theme/recipes/chakra/drawer.ts +0 -201
  330. package/src/theme/recipes/chakra/editable.ts +0 -88
  331. package/src/theme/recipes/chakra/empty-state.ts +0 -88
  332. package/src/theme/recipes/chakra/field.ts +0 -68
  333. package/src/theme/recipes/chakra/fieldset.ts +0 -62
  334. package/src/theme/recipes/chakra/file-upload.ts +0 -96
  335. package/src/theme/recipes/chakra/heading.ts +0 -27
  336. package/src/theme/recipes/chakra/hover-card.ts +0 -68
  337. package/src/theme/recipes/chakra/icon.ts +0 -30
  338. package/src/theme/recipes/chakra/input-addon.ts +0 -40
  339. package/src/theme/recipes/chakra/input.ts +0 -96
  340. package/src/theme/recipes/chakra/kbd.ts +0 -60
  341. package/src/theme/recipes/chakra/link.ts +0 -37
  342. package/src/theme/recipes/chakra/list.ts +0 -67
  343. package/src/theme/recipes/chakra/mark.ts +0 -27
  344. package/src/theme/recipes/chakra/menu.ts +0 -124
  345. package/src/theme/recipes/chakra/native-select.ts +0 -140
  346. package/src/theme/recipes/chakra/number-input.ts +0 -115
  347. package/src/theme/recipes/chakra/pin-input.ts +0 -27
  348. package/src/theme/recipes/chakra/popover.ts +0 -86
  349. package/src/theme/recipes/chakra/progress-circle.ts +0 -94
  350. package/src/theme/recipes/chakra/progress.ts +0 -127
  351. package/src/theme/recipes/chakra/radio-card.ts +0 -220
  352. package/src/theme/recipes/chakra/radio-group.ts +0 -72
  353. package/src/theme/recipes/chakra/radiomark.ts +0 -107
  354. package/src/theme/recipes/chakra/rating-group.ts +0 -94
  355. package/src/theme/recipes/chakra/segment-group.ts +0 -117
  356. package/src/theme/recipes/chakra/select.ts +0 -282
  357. package/src/theme/recipes/chakra/separator.ts +0 -51
  358. package/src/theme/recipes/chakra/skeleton.ts +0 -53
  359. package/src/theme/recipes/chakra/skip-nav-link.ts +0 -34
  360. package/src/theme/recipes/chakra/slider.ts +0 -178
  361. package/src/theme/recipes/chakra/spinner.ts +0 -32
  362. package/src/theme/recipes/chakra/stat.ts +0 -79
  363. package/src/theme/recipes/chakra/status.ts +0 -48
  364. package/src/theme/recipes/chakra/steps.ts +0 -218
  365. package/src/theme/recipes/chakra/switch.ts +0 -167
  366. package/src/theme/recipes/chakra/table.ts +0 -172
  367. package/src/theme/recipes/chakra/tabs.ts +0 -280
  368. package/src/theme/recipes/chakra/tag.ts +0 -131
  369. package/src/theme/recipes/chakra/textarea.ts +0 -88
  370. package/src/theme/recipes/chakra/timeline.ts +0 -138
  371. package/src/theme/recipes/chakra/toast.ts +0 -96
  372. package/src/theme/recipes/chakra/tooltip.ts +0 -40
  373. package/src/theme/recipes.ts +0 -46
  374. package/src/theme/semantic-tokens/colors.ts +0 -403
  375. package/src/theme/semantic-tokens/radii.ts +0 -7
  376. package/src/theme/semantic-tokens/shadows.ts +0 -52
  377. package/src/theme/slot-recipes.ts +0 -104
  378. package/src/theme/text-styles.ts +0 -39
  379. package/src/theme/tokens/animations.ts +0 -8
  380. package/src/theme/tokens/aspect-ratios.ts +0 -10
  381. package/src/theme/tokens/blurs.ts +0 -12
  382. package/src/theme/tokens/borders.ts +0 -9
  383. package/src/theme/tokens/colors.ts +0 -177
  384. package/src/theme/tokens/cursor.ts +0 -12
  385. package/src/theme/tokens/durations.ts +0 -11
  386. package/src/theme/tokens/easings.ts +0 -10
  387. package/src/theme/tokens/font-sizes.ts +0 -20
  388. package/src/theme/tokens/font-weights.ts +0 -13
  389. package/src/theme/tokens/fonts.ts +0 -15
  390. package/src/theme/tokens/keyframes.ts +0 -173
  391. package/src/theme/tokens/letter-spacing.ts +0 -9
  392. package/src/theme/tokens/line-heights.ts +0 -19
  393. package/src/theme/tokens/radius.ts +0 -18
  394. package/src/theme/tokens/sizes.ts +0 -71
  395. package/src/theme/tokens/spacing.ts +0 -38
  396. package/src/theme/tokens/z-indices.ts +0 -34
  397. package/src/theme/utils.ts +0 -46
@@ -1,59 +0,0 @@
1
- 'use client'
2
-
3
- import * as React from 'react'
4
- import { cloneElement, isValidElement } from 'react'
5
-
6
- import {
7
- type HTMLChakraProps,
8
- RecipeProps,
9
- chakra,
10
- useRecipe,
11
- } from '@chakra-ui/react'
12
- import { cx } from '@saas-ui/core/utils'
13
-
14
- ////////////////////////////////////////////////////////////////////////////////////
15
-
16
- export interface IconBadgeProps
17
- extends HTMLChakraProps<'div'>,
18
- RecipeProps<'iconBadge'> {
19
- /**
20
- * The icon to display
21
- */
22
- icon: React.ReactNode
23
-
24
- /**
25
- * A11y: A label that describes the icon
26
- */
27
- 'aria-label'?: string
28
- }
29
-
30
- export const IconBadge = React.forwardRef<HTMLDivElement, IconBadgeProps>(
31
- (props, ref) => {
32
- const { icon, children, ...rest } = props
33
- const recipe = useRecipe({ key: 'iconBadge', recipe: props.recipe })
34
- const [variantProps, localProps] = recipe.splitVariantProps(rest)
35
- const styles = recipe(variantProps)
36
-
37
- /**
38
- * Passing the icon as prop or children should work
39
- */
40
- const element = icon || children
41
- const _children = isValidElement(element)
42
- ? cloneElement(element as any, {
43
- 'aria-hidden': true,
44
- focusable: false,
45
- })
46
- : null
47
-
48
- return (
49
- <chakra.div
50
- ref={ref}
51
- {...localProps}
52
- css={[styles, props.css]}
53
- className={cx(recipe.className, props.className)}
54
- >
55
- {_children}
56
- </chakra.div>
57
- )
58
- },
59
- )
@@ -1,2 +0,0 @@
1
- export { IconBadge } from './icon-badge'
2
- export type { IconBadgeProps } from './icon-badge'
@@ -1,41 +0,0 @@
1
- import type { IconProps } from '@chakra-ui/react'
2
- import { createIcon as _createIcon } from '@chakra-ui/react'
3
-
4
- interface CreateIconOptions {
5
- /**
6
- * The icon `svg` viewBox
7
- * @default "0 0 24 24"
8
- */
9
- viewBox?: string
10
- /**
11
- * The `svg` path or group element
12
- * @type React.ReactElement | React.ReactElement[]
13
- */
14
- path?: React.ReactElement | React.ReactElement[]
15
- /**
16
- * If the `svg` has a single path, simply copy the path's `d` attribute
17
- */
18
- d?: string
19
- /**
20
- * The display name useful in the dev tools
21
- */
22
- displayName?: string
23
- /**
24
- * Default props automatically passed to the component; overwriteable
25
- */
26
- defaultProps?: IconProps
27
- }
28
-
29
- export const createIcon = (props: CreateIconOptions) => {
30
- return _createIcon({
31
- viewBox: '0 0 24 24',
32
- defaultProps: {
33
- fill: 'none',
34
- stroke: 'currentColor',
35
- strokeWidth: '2',
36
- strokeLinecap: 'round',
37
- strokeLinejoin: 'round',
38
- },
39
- ...props,
40
- })
41
- }
@@ -1,121 +0,0 @@
1
- import * as React from 'react'
2
-
3
- import { createIcon } from './create-icon'
4
-
5
- export const ChevronUpIcon = createIcon({
6
- displayName: 'ChevronUpIcon',
7
- path: <polyline points="18 15 12 9 6 15"></polyline>,
8
- })
9
-
10
- export const ChevronDownIcon = createIcon({
11
- displayName: 'ChevronDownIcon',
12
- path: <polyline points="6 9 12 15 18 9"></polyline>,
13
- })
14
-
15
- export const ChevronLeftIcon = createIcon({
16
- displayName: 'ChevronLeftIcon',
17
- path: <polyline points="15 18 9 12 15 6"></polyline>,
18
- })
19
-
20
- export const ChevronRightIcon = createIcon({
21
- displayName: 'ChevronRightIcon',
22
- path: <polyline points="9 18 15 12 9 6"></polyline>,
23
- })
24
-
25
- export const HamburgerIcon = createIcon({
26
- displayName: 'ChevronDownIcon',
27
- path: (
28
- <g fill="none">
29
- <line x1="3" y1="12" x2="21" y2="12"></line>
30
- <line x1="3" y1="6" x2="21" y2="6"></line>
31
- <line x1="3" y1="18" x2="21" y2="18"></line>
32
- </g>
33
- ),
34
- })
35
-
36
- export const CloseIcon = createIcon({
37
- displayName: 'CloseIcon',
38
- path: (
39
- <g>
40
- <line x1="18" y1="6" x2="6" y2="18"></line>
41
- <line x1="6" y1="6" x2="18" y2="18"></line>
42
- </g>
43
- ),
44
- })
45
-
46
- export const FilterIcon = createIcon({
47
- displayName: 'FilterIcon',
48
- path: (
49
- <polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"></polygon>
50
- ),
51
- })
52
-
53
- export const CalendarIcon = createIcon({
54
- displayName: 'CalendarIcon',
55
- path: (
56
- <g>
57
- <rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect>
58
- <line x1="16" y1="2" x2="16" y2="6"></line>
59
- <line x1="8" y1="2" x2="8" y2="6"></line>
60
- <line x1="3" y1="10" x2="21" y2="10"></line>
61
- </g>
62
- ),
63
- })
64
-
65
- export const PlusIcon = createIcon({
66
- displayName: 'PlusIcon',
67
- path: (
68
- <g>
69
- <line x1="12" y1="5" x2="12" y2="19"></line>
70
- <line x1="5" y1="12" x2="19" y2="12"></line>
71
- </g>
72
- ),
73
- })
74
-
75
- export const MinusIcon = createIcon({
76
- displayName: 'MinusIcon',
77
- path: (
78
- <g>
79
- <line x1="5" y1="12" x2="19" y2="12"></line>
80
- </g>
81
- ),
82
- })
83
-
84
- export const ViewOffIcon = createIcon({
85
- displayName: 'ViewOffIcon',
86
- path: (
87
- <g>
88
- <path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"></path>
89
- <line x1="1" y1="1" x2="23" y2="23"></line>
90
- </g>
91
- ),
92
- })
93
-
94
- export const ViewIcon = createIcon({
95
- displayName: 'ViewOffIcon',
96
- path: (
97
- <g>
98
- <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path>
99
- <circle cx="12" cy="12" r="3"></circle>
100
- </g>
101
- ),
102
- })
103
-
104
- export const SearchIcon = createIcon({
105
- displayName: 'SearchIcon',
106
- path: (
107
- <g>
108
- <circle cx="11" cy="11" r="8"></circle>
109
- <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
110
- </g>
111
- ),
112
- })
113
-
114
- export const CheckIcon = createIcon({
115
- displayName: 'CheckIcon',
116
- path: (
117
- <g>
118
- <polyline points="20 6 9 17 4 12"></polyline>
119
- </g>
120
- ),
121
- })
@@ -1 +0,0 @@
1
- export * from './icons.tsx'
@@ -1 +0,0 @@
1
- export * from './input-group'
@@ -1,46 +0,0 @@
1
- import { cloneElement, forwardRef, isValidElement } from 'react'
2
-
3
- import type { BoxProps, InputElementProps } from '@chakra-ui/react'
4
- import { Group, InputElement } from '@chakra-ui/react'
5
-
6
- export interface InputGroupProps extends BoxProps {
7
- startElementProps?: InputElementProps
8
- endElementProps?: InputElementProps
9
- startElement?: React.ReactNode
10
- endElement?: React.ReactNode
11
- children: React.ReactNode
12
- }
13
-
14
- export const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>(
15
- function InputGroup(props, ref) {
16
- const {
17
- startElement,
18
- startElementProps,
19
- endElement,
20
- endElementProps,
21
- children,
22
- ...rest
23
- } = props
24
-
25
- return (
26
- <Group ref={ref} display="flex" {...rest}>
27
- {startElement && (
28
- <InputElement pointerEvents="none" {...startElementProps}>
29
- {startElement}
30
- </InputElement>
31
- )}
32
- {isValidElement(children) &&
33
- cloneElement(children, {
34
- ...(startElement && { ps: 'calc(var(--input-height) - 6px)' }),
35
- ...(endElement && { pe: 'calc(var(--input-height) - 6px)' }),
36
- ...children.props,
37
- })}
38
- {endElement && (
39
- <InputElement placement="end" {...endElementProps}>
40
- {endElement}
41
- </InputElement>
42
- )}
43
- </Group>
44
- )
45
- },
46
- )
@@ -1,2 +0,0 @@
1
- export { Link } from './link'
2
- export type { LinkProps } from './link'
@@ -1,17 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/react'
2
-
3
- import { Link } from './'
4
-
5
- export default {
6
- title: 'Components/Link',
7
- component: Link,
8
- } as Meta
9
-
10
- type Story = StoryObj<typeof Link>
11
-
12
- export const Default: Story = {
13
- args: {
14
- href: '#',
15
- children: 'Link',
16
- },
17
- }
@@ -1,33 +0,0 @@
1
- import * as React from 'react'
2
-
3
- import { render } from '@saas-ui/test-utils'
4
-
5
- import { SaasProvider } from '../provider'
6
-
7
- import { Link } from './link'
8
-
9
- interface LinkComponentProps {
10
- href: string
11
- children: React.ReactNode
12
- }
13
-
14
- const LinkComponent: React.FC<LinkComponentProps> = (props) => {
15
- const { children, href, ...rest } = props
16
- return (
17
- <a href={href} {...rest} className="saas-ui-link">
18
- {children}
19
- </a>
20
- )
21
- }
22
-
23
- const renderLink = (ui: React.ReactNode) => {
24
- return render(<SaasProvider linkComponent={LinkComponent}>{ui}</SaasProvider>)
25
- }
26
-
27
- test('should render the link', async () => {
28
- const { getByText } = renderLink(<Link>Test</Link>)
29
-
30
- const link = getByText('Test')
31
-
32
- expect(link).toHaveClass('saas-ui-link')
33
- })
@@ -1,27 +0,0 @@
1
- import React from 'react'
2
-
3
- import { Link as ChakraLink, LinkProps } from '@chakra-ui/react'
4
-
5
- import { useLink } from '../provider'
6
-
7
- export type { LinkProps }
8
-
9
- /**
10
- * Chakra UI `Link` component wrapped in a router specific link component.
11
- * Falls back to a plain `Link` if no Saas UI context is available or no `linkComponent` is configured
12
- * The router link component can be configured in `SaasProvider`.
13
- * @see https://saas-ui.dev/docs/core/getting-started
14
- */
15
- export const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(
16
- (props, ref) => {
17
- const LinkComponent = useLink()
18
-
19
- return (
20
- <ChakraLink asChild>
21
- <LinkComponent ref={ref} {...props} />
22
- </ChakraLink>
23
- )
24
- },
25
- )
26
-
27
- Link.displayName = 'Link'
@@ -1,12 +0,0 @@
1
- "use client"
2
-
3
- import type { HTMLChakraProps, RecipeProps } from "@chakra-ui/react"
4
- import { createRecipeContext } from "@chakra-ui/react"
5
-
6
- export interface LinkButtonProps
7
- extends HTMLChakraProps<"a", RecipeProps<"button">> {}
8
-
9
- const { withContext } = createRecipeContext({ key: "button" })
10
-
11
- // Replace "a" with your framework's link component
12
- export const LinkButton = withContext<HTMLAnchorElement, LinkButtonProps>("a")
@@ -1 +0,0 @@
1
- export * as LoadingOverlay from './namespace.ts'
@@ -1,61 +0,0 @@
1
- import { defineSlotRecipe } from '@chakra-ui/react'
2
-
3
- export const loadingOverlaySlotRecipe = defineSlotRecipe({
4
- className: 'sui-loading-overlay',
5
- slots: ['root', 'text'],
6
- base: {
7
- root: {
8
- display: 'flex',
9
- flexDirection: 'column',
10
- alignItems: 'center',
11
- justifyContent: 'center',
12
- p: 4,
13
- transitionProperty: 'opacity',
14
- transitionDuration: 'slower',
15
- _open: {
16
- opacity: 1,
17
- },
18
- _closed: {
19
- opacity: 0,
20
- },
21
- },
22
- },
23
- variants: {
24
- variant: {
25
- fill: {
26
- root: {
27
- flex: 1,
28
- height: '100%',
29
- bg: {
30
- base: 'whiteAlpha.400',
31
- _dark: 'blackAlpha.400',
32
- },
33
- },
34
- },
35
- fullscreen: {
36
- root: {
37
- position: 'fixed',
38
- inset: 0,
39
- zIndex: 'modal',
40
- bg: {
41
- base: 'white',
42
- _dark: 'gray.800',
43
- },
44
- },
45
- },
46
- overlay: {
47
- root: {
48
- position: 'absolute',
49
- inset: 0,
50
- bg: {
51
- base: 'whiteAlpha.300',
52
- _dark: 'blackAlpha.300',
53
- },
54
- },
55
- },
56
- },
57
- },
58
- defaultVariants: {
59
- variant: 'fill',
60
- },
61
- })
@@ -1,68 +0,0 @@
1
- import * as React from 'react'
2
-
3
- import { Button, Card, Container, Text } from '@chakra-ui/react'
4
-
5
- import { LoadingOverlay } from './index.ts'
6
-
7
- export default {
8
- title: 'Components/LoadingOverlay',
9
- decorators: [
10
- (Story: any) => (
11
- <Container mt="40px">
12
- <Story />
13
- </Container>
14
- ),
15
- ],
16
- }
17
-
18
- export const Basic = () => (
19
- <Card.Root width="400px" height="200px" overflow="hidden">
20
- <LoadingOverlay.Root>
21
- <LoadingOverlay.Spinner />
22
- </LoadingOverlay.Root>
23
- </Card.Root>
24
- )
25
-
26
- export const Overlay = () => (
27
- <Card.Root width="400px" height="200px" pos="relative" p="4">
28
- <Text>This content will be overlayed.</Text>
29
- <LoadingOverlay.Root variant="overlay">
30
- <LoadingOverlay.Spinner />
31
- </LoadingOverlay.Root>
32
- </Card.Root>
33
- )
34
-
35
- export const Fullscreen = () => (
36
- <LoadingOverlay.Root variant="fullscreen">
37
- <LoadingOverlay.Spinner />
38
- </LoadingOverlay.Root>
39
- )
40
-
41
- export const WithText = () => (
42
- <Card.Root width="400px" height="200px">
43
- <LoadingOverlay.Root borderRadius="md">
44
- <LoadingOverlay.Text>Loading...</LoadingOverlay.Text>
45
- </LoadingOverlay.Root>
46
- </Card.Root>
47
- )
48
-
49
- export const ExitAnimation = () => {
50
- const [loading, setLoading] = React.useState(false)
51
-
52
- React.useEffect(() => {
53
- if (loading) {
54
- setTimeout(() => {
55
- setLoading(false)
56
- }, 4000)
57
- }
58
- }, [loading])
59
-
60
- return (
61
- <Card.Root width="400px" height="200px" pos="relative" p="4">
62
- <Button onClick={() => setLoading(true)}>Show loader</Button>
63
- <LoadingOverlay.Root variant="overlay" loading={loading}>
64
- <LoadingOverlay.Spinner />
65
- </LoadingOverlay.Root>
66
- </Card.Root>
67
- )
68
- }
@@ -1,54 +0,0 @@
1
- import React from 'react'
2
-
3
- import {
4
- Presence,
5
- type PresenceBaseProps,
6
- splitPresenceProps,
7
- } from '@ark-ui/react/presence'
8
- import {
9
- HTMLChakraProps,
10
- SlotRecipeProps,
11
- chakra,
12
- createSlotRecipeContext,
13
- } from '@chakra-ui/react'
14
-
15
- import { Spinner } from '#components/spinner'
16
-
17
- const { useStyles, withContext, withProvider } = createSlotRecipeContext({
18
- key: 'loadingOverlay',
19
- })
20
-
21
- export const useLoadingOverlayStyles = useStyles
22
-
23
- export interface LoadingOverlayProps
24
- extends HTMLChakraProps<'div'>,
25
- SlotRecipeProps<'loadingOverlay'>,
26
- PresenceBaseProps {
27
- /**
28
- * Show or hide the LoadingOverlay.
29
- * @default true
30
- */
31
- loading?: boolean
32
- }
33
-
34
- const LoadingOverlay: React.FC<LoadingOverlayProps> = (props) => {
35
- const { children, loading = true, ...rest } = props
36
-
37
- const [presenceProps, rootProps] = splitPresenceProps(rest)
38
-
39
- return (
40
- <Presence present={loading} {...presenceProps} asChild>
41
- <chakra.div {...rootProps}>{children}</chakra.div>
42
- </Presence>
43
- )
44
- }
45
-
46
- export const LoadingOverlayRoot = withProvider(LoadingOverlay, 'root')
47
-
48
- LoadingOverlayRoot.displayName = 'LoadingOverlay'
49
-
50
- export const LoadingOverlaySpinner = Spinner
51
-
52
- export interface LoadingTextProps extends HTMLChakraProps<'p'> {}
53
-
54
- export const LoadingOverlayText = withContext('p', 'text')
@@ -1,7 +0,0 @@
1
- import {
2
- LoadingOverlayRoot as Root,
3
- LoadingOverlaySpinner as Spinner,
4
- LoadingOverlayText as Text,
5
- } from './loading-overlay.tsx'
6
-
7
- export { Root, Spinner, Text }
@@ -1,108 +0,0 @@
1
- "use client"
2
-
3
- import { AbsoluteCenter, Menu as ChakraMenu, Portal } from "@chakra-ui/react"
4
- import { forwardRef } from "react"
5
- import { LuCheck, LuChevronRight } from "react-icons/lu"
6
-
7
- interface MenuContentProps extends ChakraMenu.ContentProps {
8
- portalled?: boolean
9
- portalRef?: React.RefObject<HTMLElement>
10
- }
11
-
12
- export const MenuContent = forwardRef<HTMLDivElement, MenuContentProps>(
13
- function MenuContent(props, ref) {
14
- const { portalled = true, portalRef, ...rest } = props
15
- return (
16
- <Portal disabled={!portalled} container={portalRef}>
17
- <ChakraMenu.Positioner>
18
- <ChakraMenu.Content ref={ref} {...rest} />
19
- </ChakraMenu.Positioner>
20
- </Portal>
21
- )
22
- },
23
- )
24
-
25
- export const MenuArrow = forwardRef<HTMLDivElement, ChakraMenu.ArrowProps>(
26
- function MenuArrow(props, ref) {
27
- return (
28
- <ChakraMenu.Arrow ref={ref} {...props}>
29
- <ChakraMenu.ArrowTip />
30
- </ChakraMenu.Arrow>
31
- )
32
- },
33
- )
34
-
35
- export const MenuCheckboxItem = forwardRef<
36
- HTMLDivElement,
37
- ChakraMenu.CheckboxItemProps
38
- >(function MenuCheckboxItem(props, ref) {
39
- return (
40
- <ChakraMenu.CheckboxItem ref={ref} {...props}>
41
- <ChakraMenu.ItemIndicator hidden={false}>
42
- <LuCheck />
43
- </ChakraMenu.ItemIndicator>
44
- {props.children}
45
- </ChakraMenu.CheckboxItem>
46
- )
47
- })
48
-
49
- export const MenuRadioItem = forwardRef<
50
- HTMLDivElement,
51
- ChakraMenu.RadioItemProps
52
- >(function MenuRadioItem(props, ref) {
53
- const { children, ...rest } = props
54
- return (
55
- <ChakraMenu.RadioItem ps="8" ref={ref} {...rest}>
56
- <AbsoluteCenter axis="horizontal" left="4" asChild>
57
- <ChakraMenu.ItemIndicator>
58
- <LuCheck />
59
- </ChakraMenu.ItemIndicator>
60
- </AbsoluteCenter>
61
- <ChakraMenu.ItemText>{children}</ChakraMenu.ItemText>
62
- </ChakraMenu.RadioItem>
63
- )
64
- })
65
-
66
- export const MenuItemGroup = forwardRef<
67
- HTMLDivElement,
68
- ChakraMenu.ItemGroupProps
69
- >(function MenuItemGroup(props, ref) {
70
- const { title, children, ...rest } = props
71
- return (
72
- <ChakraMenu.ItemGroup ref={ref} {...rest}>
73
- {title && (
74
- <ChakraMenu.ItemGroupLabel userSelect="none">
75
- {title}
76
- </ChakraMenu.ItemGroupLabel>
77
- )}
78
- {children}
79
- </ChakraMenu.ItemGroup>
80
- )
81
- })
82
-
83
- export interface MenuTriggerItemProps extends ChakraMenu.ItemProps {
84
- startIcon?: React.ReactNode
85
- }
86
-
87
- export const MenuTriggerItem = forwardRef<HTMLDivElement, MenuTriggerItemProps>(
88
- function MenuTriggerItem(props, ref) {
89
- const { startIcon, children, ...rest } = props
90
- return (
91
- <ChakraMenu.TriggerItem ref={ref} {...rest}>
92
- {startIcon}
93
- {children}
94
- <LuChevronRight />
95
- </ChakraMenu.TriggerItem>
96
- )
97
- },
98
- )
99
-
100
- export const MenuRadioItemGroup = ChakraMenu.RadioItemGroup
101
- export const MenuContextTrigger = ChakraMenu.ContextTrigger
102
- export const MenuRoot = ChakraMenu.Root
103
- export const MenuSeparator = ChakraMenu.Separator
104
-
105
- export const MenuItem = ChakraMenu.Item
106
- export const MenuItemText = ChakraMenu.ItemText
107
- export const MenuItemCommand = ChakraMenu.ItemCommand
108
- export const MenuTrigger = ChakraMenu.Trigger