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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (232) hide show
  1. package/CHANGELOG.md +7 -154
  2. package/dist/index.cjs +8461 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +26 -0
  5. package/dist/index.d.ts +25 -7
  6. package/dist/index.js +8415 -35
  7. package/dist/index.js.map +1 -1
  8. package/package.json +24 -21
  9. package/src/components/accordion.tsx +47 -0
  10. package/src/components/action-bar.tsx +40 -0
  11. package/src/components/alert.tsx +51 -0
  12. package/src/components/app-shell/app-shell.recipe.ts +52 -0
  13. package/src/components/app-shell/app-shell.stories.tsx +51 -0
  14. package/src/components/app-shell/app-shell.tsx +94 -0
  15. package/src/components/app-shell/index.ts +3 -0
  16. package/src/components/avatar.tsx +74 -0
  17. package/src/components/blockquote.tsx +31 -0
  18. package/src/components/breadcrumbs/breadcrumb.stories.tsx +17 -0
  19. package/src/components/breadcrumbs/breadcrumb.tsx +36 -0
  20. package/src/components/breadcrumbs/index.ts +1 -0
  21. package/src/components/breadcrumbs/namespace.ts +8 -0
  22. package/src/components/button/button.recipe.ts +182 -0
  23. package/src/components/button/button.stories.tsx +99 -0
  24. package/src/components/button/button.tsx +55 -0
  25. package/src/components/button/index.ts +2 -0
  26. package/src/components/checkbox/checkbox.tsx +26 -0
  27. package/src/components/checkbox/index.ts +2 -0
  28. package/src/components/checkbox-card.tsx +57 -0
  29. package/src/components/checkbox.tsx +25 -0
  30. package/src/components/clipboard.tsx +107 -0
  31. package/src/components/close-button/close-button.stories.tsx +12 -0
  32. package/src/components/close-button/close-button.tsx +18 -0
  33. package/src/components/close-button/index.ts +2 -0
  34. package/src/components/color-mode.tsx +65 -0
  35. package/src/components/command/command.recipe.ts +17 -0
  36. package/src/components/command/command.stories.tsx +47 -0
  37. package/src/components/command/command.tsx +50 -0
  38. package/src/components/command/index.ts +1 -0
  39. package/src/components/data-list.tsx +37 -0
  40. package/src/components/dialog/dialog.tsx +66 -0
  41. package/src/components/dialog/index.ts +1 -0
  42. package/src/components/dialog/namespace.ts +18 -0
  43. package/src/components/drawer/drawer.tsx +56 -0
  44. package/src/components/drawer/index.ts +3 -0
  45. package/src/components/drawer/namespace.ts +19 -0
  46. package/src/components/empty-state.tsx +34 -0
  47. package/src/components/field.tsx +33 -0
  48. package/src/components/file-button.tsx +166 -0
  49. package/src/components/grid-list/grid-list.recipe.ts +113 -0
  50. package/src/components/hover-card.tsx +35 -0
  51. package/src/components/icon-badge/icon-badge.recipe.ts +57 -0
  52. package/src/components/icon-badge/icon-badge.stories.tsx +38 -0
  53. package/src/components/icon-badge/icon-badge.tsx +59 -0
  54. package/src/components/icon-badge/index.ts +2 -0
  55. package/src/components/icons/create-icon.tsx +41 -0
  56. package/src/components/icons/icons.tsx +121 -0
  57. package/src/components/icons/index.ts +1 -0
  58. package/src/components/input-group/index.ts +1 -0
  59. package/src/components/input-group/input-group.tsx +46 -0
  60. package/src/components/link/index.ts +2 -0
  61. package/src/components/link/link.stories.tsx +17 -0
  62. package/src/components/link/link.test.tsx +33 -0
  63. package/src/components/link/link.tsx +27 -0
  64. package/src/components/link-button.tsx +12 -0
  65. package/src/components/loading-overlay/index.ts +1 -0
  66. package/src/components/loading-overlay/loading-overlay.recipe.ts +61 -0
  67. package/src/components/loading-overlay/loading-overlay.stories.tsx +68 -0
  68. package/src/components/loading-overlay/loading-overlay.tsx +54 -0
  69. package/src/components/loading-overlay/namespace.ts +7 -0
  70. package/src/components/menu.tsx +108 -0
  71. package/src/components/native-select.tsx +57 -0
  72. package/src/components/navbar/index.ts +1 -0
  73. package/src/components/navbar/namespace.ts +9 -0
  74. package/src/components/navbar/navbar.recipe.ts +109 -0
  75. package/src/components/navbar/navbar.stories.tsx +435 -0
  76. package/src/components/navbar/navbar.test.tsx +49 -0
  77. package/src/components/navbar/navbar.tsx +39 -0
  78. package/src/components/number-input/index.ts +2 -0
  79. package/src/components/number-input/number-input.tsx +41 -0
  80. package/src/components/pagination.tsx +207 -0
  81. package/src/components/password-input/index.ts +2 -0
  82. package/src/components/password-input/password-input.tsx +98 -0
  83. package/src/components/persona/index.ts +2 -0
  84. package/src/components/persona/namespace.ts +18 -0
  85. package/src/components/persona/persona-primitive.tsx +220 -0
  86. package/src/components/persona/persona.recipe.ts +94 -0
  87. package/src/components/persona/persona.stories.tsx +101 -0
  88. package/src/components/persona/persona.tsx +143 -0
  89. package/src/components/pin-input/index.ts +2 -0
  90. package/src/components/pin-input/pin-input.tsx +36 -0
  91. package/src/components/popover.tsx +58 -0
  92. package/src/components/progress-circle.tsx +37 -0
  93. package/src/components/progress.tsx +40 -0
  94. package/src/components/prose.tsx +264 -0
  95. package/src/components/provider.tsx +12 -0
  96. package/src/components/radio/index.ts +2 -0
  97. package/src/components/radio/radio.tsx +27 -0
  98. package/src/components/radio-card.tsx +57 -0
  99. package/src/components/radio.tsx +24 -0
  100. package/src/components/rating.tsx +27 -0
  101. package/src/components/search-input/index.ts +2 -0
  102. package/src/components/search-input/search-input.stories.tsx +63 -0
  103. package/src/components/search-input/search-input.tsx +134 -0
  104. package/src/components/segmented-control.tsx +47 -0
  105. package/src/components/select/index.ts +1 -0
  106. package/src/components/select/namespace.ts +18 -0
  107. package/src/components/select/select.tsx +135 -0
  108. package/src/components/sidebar/index.ts +7 -0
  109. package/src/components/sidebar/namespace.ts +27 -0
  110. package/src/components/sidebar/sidebar-item.recipe.ts +65 -0
  111. package/src/components/sidebar/sidebar.recipe.ts +237 -0
  112. package/src/components/sidebar/sidebar.stories.tsx +903 -0
  113. package/src/components/sidebar/sidebar.tsx +204 -0
  114. package/src/components/skeleton.tsx +44 -0
  115. package/src/components/slider.tsx +53 -0
  116. package/src/components/spinner/index.ts +2 -0
  117. package/src/components/spinner/spinner.stories.tsx +19 -0
  118. package/src/components/spinner/spinner.tsx +21 -0
  119. package/src/components/stat.tsx +75 -0
  120. package/src/components/status.tsx +29 -0
  121. package/src/components/stepper-input.tsx +49 -0
  122. package/src/components/steps/index.ts +1 -0
  123. package/src/components/steps/namespace.ts +16 -0
  124. package/src/components/steps/steps.tsx +82 -0
  125. package/src/components/switch/index.ts +3 -0
  126. package/src/components/switch/switch.tsx +39 -0
  127. package/src/components/tag.tsx +39 -0
  128. package/src/components/timeline.tsx +17 -0
  129. package/src/components/toaster.tsx +43 -0
  130. package/src/components/toggle-tip.tsx +62 -0
  131. package/src/components/tooltip.tsx +46 -0
  132. package/src/index.ts +6 -7
  133. package/src/preset.ts +9 -0
  134. package/src/provider/index.ts +4 -0
  135. package/src/provider/sui-provider.tsx +34 -0
  136. package/src/provider/use-link.test.tsx +60 -0
  137. package/src/provider/use-link.tsx +13 -0
  138. package/src/theme/animation-styles.ts +53 -0
  139. package/src/theme/breakpoints.ts +11 -0
  140. package/src/theme/conditions.ts +26 -0
  141. package/src/theme/fluid-font-sizes.ts +65 -0
  142. package/src/theme/global-css.ts +94 -0
  143. package/src/theme/index.ts +72 -0
  144. package/src/theme/layer-styles.ts +116 -0
  145. package/src/theme/recipes/chakra/accordion.ts +145 -0
  146. package/src/theme/recipes/chakra/action-bar.ts +62 -0
  147. package/src/theme/recipes/chakra/alert.ts +157 -0
  148. package/src/theme/recipes/chakra/avatar.ts +141 -0
  149. package/src/theme/recipes/chakra/badge.ts +67 -0
  150. package/src/theme/recipes/chakra/blockquote.ts +83 -0
  151. package/src/theme/recipes/chakra/breadcrumb.ts +94 -0
  152. package/src/theme/recipes/chakra/card.ts +99 -0
  153. package/src/theme/recipes/chakra/checkbox-card.ts +212 -0
  154. package/src/theme/recipes/chakra/checkbox.ts +70 -0
  155. package/src/theme/recipes/chakra/checkmark.ts +83 -0
  156. package/src/theme/recipes/chakra/code.ts +17 -0
  157. package/src/theme/recipes/chakra/collapsible.ts +20 -0
  158. package/src/theme/recipes/chakra/container.ts +26 -0
  159. package/src/theme/recipes/chakra/data-list.ts +80 -0
  160. package/src/theme/recipes/chakra/dialog.ts +225 -0
  161. package/src/theme/recipes/chakra/drawer.ts +201 -0
  162. package/src/theme/recipes/chakra/editable.ts +88 -0
  163. package/src/theme/recipes/chakra/empty-state.ts +88 -0
  164. package/src/theme/recipes/chakra/field.ts +68 -0
  165. package/src/theme/recipes/chakra/fieldset.ts +62 -0
  166. package/src/theme/recipes/chakra/file-upload.ts +96 -0
  167. package/src/theme/recipes/chakra/heading.ts +27 -0
  168. package/src/theme/recipes/chakra/hover-card.ts +68 -0
  169. package/src/theme/recipes/chakra/icon.ts +30 -0
  170. package/src/theme/recipes/chakra/input-addon.ts +40 -0
  171. package/src/theme/recipes/chakra/input.ts +96 -0
  172. package/src/theme/recipes/chakra/kbd.ts +60 -0
  173. package/src/theme/recipes/chakra/link.ts +37 -0
  174. package/src/theme/recipes/chakra/list.ts +67 -0
  175. package/src/theme/recipes/chakra/mark.ts +27 -0
  176. package/src/theme/recipes/chakra/menu.ts +124 -0
  177. package/src/theme/recipes/chakra/native-select.ts +140 -0
  178. package/src/theme/recipes/chakra/number-input.ts +115 -0
  179. package/src/theme/recipes/chakra/pin-input.ts +27 -0
  180. package/src/theme/recipes/chakra/popover.ts +86 -0
  181. package/src/theme/recipes/chakra/progress-circle.ts +94 -0
  182. package/src/theme/recipes/chakra/progress.ts +127 -0
  183. package/src/theme/recipes/chakra/radio-card.ts +220 -0
  184. package/src/theme/recipes/chakra/radio-group.ts +72 -0
  185. package/src/theme/recipes/chakra/radiomark.ts +107 -0
  186. package/src/theme/recipes/chakra/rating-group.ts +94 -0
  187. package/src/theme/recipes/chakra/segment-group.ts +117 -0
  188. package/src/theme/recipes/chakra/select.ts +282 -0
  189. package/src/theme/recipes/chakra/separator.ts +51 -0
  190. package/src/theme/recipes/chakra/skeleton.ts +53 -0
  191. package/src/theme/recipes/chakra/skip-nav-link.ts +34 -0
  192. package/src/theme/recipes/chakra/slider.ts +178 -0
  193. package/src/theme/recipes/chakra/spinner.ts +32 -0
  194. package/src/theme/recipes/chakra/stat.ts +79 -0
  195. package/src/theme/recipes/chakra/status.ts +48 -0
  196. package/src/theme/recipes/chakra/steps.ts +218 -0
  197. package/src/theme/recipes/chakra/switch.ts +167 -0
  198. package/src/theme/recipes/chakra/table.ts +172 -0
  199. package/src/theme/recipes/chakra/tabs.ts +280 -0
  200. package/src/theme/recipes/chakra/tag.ts +131 -0
  201. package/src/theme/recipes/chakra/textarea.ts +88 -0
  202. package/src/theme/recipes/chakra/timeline.ts +138 -0
  203. package/src/theme/recipes/chakra/toast.ts +96 -0
  204. package/src/theme/recipes/chakra/tooltip.ts +40 -0
  205. package/src/theme/recipes.ts +46 -0
  206. package/src/theme/semantic-tokens/colors.ts +403 -0
  207. package/src/theme/semantic-tokens/radii.ts +7 -0
  208. package/src/theme/semantic-tokens/shadows.ts +52 -0
  209. package/src/theme/slot-recipes.ts +104 -0
  210. package/src/theme/text-styles.ts +39 -0
  211. package/src/theme/tokens/animations.ts +8 -0
  212. package/src/theme/tokens/aspect-ratios.ts +10 -0
  213. package/src/theme/tokens/blurs.ts +12 -0
  214. package/src/theme/tokens/borders.ts +9 -0
  215. package/src/theme/tokens/colors.ts +177 -0
  216. package/src/theme/tokens/cursor.ts +12 -0
  217. package/src/theme/tokens/durations.ts +11 -0
  218. package/src/theme/tokens/easings.ts +10 -0
  219. package/src/theme/tokens/font-sizes.ts +20 -0
  220. package/src/theme/tokens/font-weights.ts +13 -0
  221. package/src/theme/tokens/fonts.ts +15 -0
  222. package/src/theme/tokens/keyframes.ts +173 -0
  223. package/src/theme/tokens/letter-spacing.ts +9 -0
  224. package/src/theme/tokens/line-heights.ts +19 -0
  225. package/src/theme/tokens/radius.ts +18 -0
  226. package/src/theme/tokens/sizes.ts +71 -0
  227. package/src/theme/tokens/spacing.ts +38 -0
  228. package/src/theme/tokens/z-indices.ts +34 -0
  229. package/src/theme/utils.ts +46 -0
  230. package/dist/index.d.mts +0 -8
  231. package/dist/index.mjs +0 -11
  232. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,96 @@
1
+ import { defineSlotRecipe } from '@chakra-ui/react'
2
+ import { toastAnatomy } from '@chakra-ui/react/anatomy'
3
+
4
+ export const toastSlotRecipe = defineSlotRecipe({
5
+ slots: toastAnatomy.keys(),
6
+ className: 'chakra-toast',
7
+ base: {
8
+ root: {
9
+ width: 'full',
10
+ display: 'flex',
11
+ alignItems: 'flex-start',
12
+ position: 'relative',
13
+ gap: '3',
14
+ py: '4',
15
+ ps: '4',
16
+ pe: '6',
17
+ borderRadius: 'l2',
18
+ translate: 'var(--x) var(--y)',
19
+ scale: 'var(--scale)',
20
+ zIndex: 'var(--z-index)',
21
+ height: 'var(--height)',
22
+ opacity: 'var(--opacity)',
23
+ willChange: 'translate, opacity, scale',
24
+ transition:
25
+ 'translate 400ms, scale 400ms, opacity 400ms, height 400ms, box-shadow 200ms',
26
+ transitionTimingFunction: 'cubic-bezier(0.21, 1.02, 0.73, 1)',
27
+ _closed: {
28
+ transition: 'translate 400ms, scale 400ms, opacity 200ms',
29
+ transitionTimingFunction: 'cubic-bezier(0.06, 0.71, 0.55, 1)',
30
+ },
31
+ bg: 'bg.panel',
32
+ color: 'fg',
33
+ boxShadow: 'xl',
34
+ '--toast-trigger-bg': 'colors.bg.muted',
35
+ '&[data-type=warning]': {
36
+ bg: 'orange.solid',
37
+ color: 'orange.contrast',
38
+ '--toast-trigger-bg': '{white/10}',
39
+ '--toast-border-color': '{white/40}',
40
+ },
41
+ '&[data-type=success]': {
42
+ bg: 'green.solid',
43
+ color: 'green.contrast',
44
+ '--toast-trigger-bg': '{white/10}',
45
+ '--toast-border-color': '{white/40}',
46
+ },
47
+ '&[data-type=error]': {
48
+ bg: 'red.solid',
49
+ color: 'red.contrast',
50
+ '--toast-trigger-bg': '{white/10}',
51
+ '--toast-border-color': '{white/40}',
52
+ },
53
+ },
54
+ title: {
55
+ fontWeight: 'medium',
56
+ textStyle: 'sm',
57
+ marginEnd: '2',
58
+ },
59
+ description: {
60
+ display: 'inline',
61
+ textStyle: 'sm',
62
+ opacity: '0.8',
63
+ },
64
+ indicator: {
65
+ flexShrink: '0',
66
+ boxSize: '5',
67
+ },
68
+ actionTrigger: {
69
+ textStyle: 'sm',
70
+ fontWeight: 'medium',
71
+ height: '8',
72
+ px: '3',
73
+ borderRadius: 'l2',
74
+ alignSelf: 'center',
75
+ borderWidth: '1px',
76
+ borderColor: 'var(--toast-border-color, inherit)',
77
+ transition: 'background 200ms',
78
+ _hover: {
79
+ bg: 'var(--toast-trigger-bg)',
80
+ },
81
+ },
82
+ closeTrigger: {
83
+ position: 'absolute',
84
+ top: '1',
85
+ insetEnd: '1',
86
+ padding: '1',
87
+ display: 'inline-flex',
88
+ alignItems: 'center',
89
+ justifyContent: 'center',
90
+ color: '{currentColor/60}',
91
+ borderRadius: 'l2',
92
+ textStyle: 'md',
93
+ transition: 'background 200ms',
94
+ },
95
+ },
96
+ })
@@ -0,0 +1,40 @@
1
+ import { defineSlotRecipe } from '@chakra-ui/react'
2
+ import { tooltipAnatomy } from '@chakra-ui/react/anatomy'
3
+
4
+ export const tooltipSlotRecipe = defineSlotRecipe({
5
+ slots: tooltipAnatomy.keys(),
6
+ className: 'chakra-tooltip',
7
+ base: {
8
+ content: {
9
+ '--tooltip-bg': 'colors.bg.inverted',
10
+ bg: 'var(--tooltip-bg)',
11
+ color: 'fg.inverted',
12
+ px: '2.5',
13
+ py: '1',
14
+ borderRadius: 'l2',
15
+ fontWeight: 'medium',
16
+ textStyle: 'xs',
17
+ boxShadow: 'md',
18
+ maxW: 'xs',
19
+ zIndex: 'tooltip',
20
+ transformOrigin: 'var(--transform-origin)',
21
+ _open: {
22
+ animationStyle: 'scale-fade-in',
23
+ animationDuration: 'fast',
24
+ },
25
+ _closed: {
26
+ animationStyle: 'scale-fade-out',
27
+ animationDuration: 'fast',
28
+ },
29
+ },
30
+ arrow: {
31
+ '--arrow-size': 'sizes.2',
32
+ '--arrow-background': 'var(--tooltip-bg)',
33
+ },
34
+ arrowTip: {
35
+ borderTopWidth: '1px',
36
+ borderInlineStartWidth: '1px',
37
+ borderColor: 'var(--tooltip-bg)',
38
+ },
39
+ },
40
+ })
@@ -0,0 +1,46 @@
1
+ import { buttonRecipe } from '#components/button/button.recipe.ts'
2
+ import { commandRecipe } from '#components/command/command.recipe.ts'
3
+ import { iconBadgeRecipe } from '#components/icon-badge/icon-badge.recipe.ts'
4
+
5
+ import { badgeRecipe } from './recipes/chakra/badge'
6
+ import { checkmarkRecipe } from './recipes/chakra/checkmark'
7
+ import { codeRecipe } from './recipes/chakra/code'
8
+ import { containerRecipe } from './recipes/chakra/container'
9
+ import { headingRecipe } from './recipes/chakra/heading'
10
+ import { iconRecipe } from './recipes/chakra/icon'
11
+ import { inputRecipe } from './recipes/chakra/input'
12
+ import { inputAddonRecipe } from './recipes/chakra/input-addon'
13
+ import { kbdRecipe } from './recipes/chakra/kbd'
14
+ import { linkRecipe } from './recipes/chakra/link'
15
+ import { markRecipe } from './recipes/chakra/mark'
16
+ import { radiomarkRecipe } from './recipes/chakra/radiomark'
17
+ import { separatorRecipe } from './recipes/chakra/separator'
18
+ import { skeletonRecipe } from './recipes/chakra/skeleton'
19
+ import { skipNavLinkRecipe } from './recipes/chakra/skip-nav-link'
20
+ import { spinnerRecipe } from './recipes/chakra/spinner'
21
+ import { textareaRecipe } from './recipes/chakra/textarea'
22
+
23
+ export const recipes = {
24
+ // Chakra UI Recipes
25
+ badge: badgeRecipe,
26
+ button: buttonRecipe,
27
+ code: codeRecipe,
28
+ container: containerRecipe,
29
+ heading: headingRecipe,
30
+ input: inputRecipe,
31
+ inputAddon: inputAddonRecipe,
32
+ kbd: kbdRecipe,
33
+ link: linkRecipe,
34
+ mark: markRecipe,
35
+ separator: separatorRecipe,
36
+ skeleton: skeletonRecipe,
37
+ skipNavLink: skipNavLinkRecipe,
38
+ spinner: spinnerRecipe,
39
+ textarea: textareaRecipe,
40
+ icon: iconRecipe,
41
+ checkmark: checkmarkRecipe,
42
+ radiomark: radiomarkRecipe,
43
+ // Saas UI
44
+ command: commandRecipe,
45
+ iconBadge: iconBadgeRecipe,
46
+ }
@@ -0,0 +1,403 @@
1
+ import { defineSemanticTokens } from '@chakra-ui/react'
2
+
3
+ export const semanticColors = defineSemanticTokens.colors({
4
+ presence: {
5
+ online: {
6
+ value: { _light: '{colors.green.500}', _dark: '{colors.green.500}' },
7
+ },
8
+ offline: {
9
+ value: { _light: '{colors.gray.400}', _dark: '{colors.gray.400}' },
10
+ },
11
+ busy: {
12
+ value: { _light: '{colors.orange.500}', _dark: '{colors.orange.500}' },
13
+ },
14
+ dnd: {
15
+ value: { _light: '{colors.red.500}', _dark: '{colors.red.500}' },
16
+ },
17
+ away: {
18
+ value: { _light: '{colors.gray.400}', _dark: '{colors.gray.400}' },
19
+ },
20
+ },
21
+ sidebar: {
22
+ bg: {
23
+ value: { _light: '{colors.gray.50}', _dark: '{colors.gray.950}' },
24
+ },
25
+ fg: {
26
+ value: { _light: '{colors.gray.900}', _dark: '{colors.gray.200}' },
27
+ },
28
+ border: {
29
+ value: { _light: '{colors.gray.200}', _dark: '{colors.gray.800}' },
30
+ },
31
+ accent: {
32
+ bg: {
33
+ value: { _light: '{colors.gray.200/40}', _dark: '{colors.gray.900}' },
34
+ },
35
+ fg: {
36
+ value: { _light: '{colors.gray.900}', _dark: '{colors.gray.200}' },
37
+ },
38
+ },
39
+ },
40
+ bg: {
41
+ DEFAULT: {
42
+ value: { _light: '{colors.white}', _dark: '{colors.black}' },
43
+ },
44
+ muted: {
45
+ value: { _light: '{colors.gray.50}', _dark: '{colors.gray.950}' },
46
+ },
47
+ subtle: {
48
+ value: { _light: '{colors.gray.100}', _dark: '{colors.gray.900}' },
49
+ },
50
+ emphasized: {
51
+ value: { _light: '{colors.gray.200}', _dark: '{colors.gray.800}' },
52
+ },
53
+ inverted: {
54
+ value: { _light: '{colors.black}', _dark: '{colors.white}' },
55
+ },
56
+ panel: {
57
+ value: { _light: '{colors.white}', _dark: '{colors.gray.950}' },
58
+ },
59
+ error: {
60
+ value: { _light: '{colors.red.50}', _dark: '{colors.red.950}' },
61
+ },
62
+ warning: {
63
+ value: { _light: '{colors.orange.50}', _dark: '{colors.orange.950}' },
64
+ },
65
+ success: {
66
+ value: { _light: '{colors.green.50}', _dark: '{colors.green.950}' },
67
+ },
68
+ info: {
69
+ value: { _light: '{colors.blue.50}', _dark: '{colors.blue.950}' },
70
+ },
71
+ },
72
+ fg: {
73
+ DEFAULT: {
74
+ value: { _light: '{colors.black}', _dark: '{colors.gray.50}' },
75
+ },
76
+ subtle: {
77
+ value: { _light: '{colors.gray.600}', _dark: '{colors.gray.400}' },
78
+ },
79
+ muted: {
80
+ value: { _light: '{colors.gray.400}', _dark: '{colors.gray.500}' },
81
+ },
82
+ inverted: {
83
+ value: { _light: '{colors.gray.50}', _dark: '{colors.black}' },
84
+ },
85
+ error: {
86
+ value: { _light: '{colors.red.500}', _dark: '{colors.red.400}' },
87
+ },
88
+ warning: {
89
+ value: { _light: '{colors.orange.600}', _dark: '{colors.orange.300}' },
90
+ },
91
+ success: {
92
+ value: { _light: '{colors.green.600}', _dark: '{colors.green.300}' },
93
+ },
94
+ info: {
95
+ value: { _light: '{colors.blue.600}', _dark: '{colors.blue.300}' },
96
+ },
97
+ },
98
+ border: {
99
+ DEFAULT: {
100
+ value: { _light: '{colors.gray.200}', _dark: '{colors.gray.800}' },
101
+ },
102
+ subtle: {
103
+ value: { _light: '{colors.gray.100}', _dark: '{colors.gray.900}' },
104
+ },
105
+ muted: {
106
+ value: { _light: '{colors.gray.50}', _dark: '{colors.gray.950}' },
107
+ },
108
+ emphasized: {
109
+ value: { _light: '{colors.gray.300}', _dark: '{colors.gray.700}' },
110
+ },
111
+ inverted: {
112
+ value: { _light: '{colors.gray.800}', _dark: '{colors.gray.200}' },
113
+ },
114
+ error: {
115
+ value: { _light: '{colors.red.500}', _dark: '{colors.red.400}' },
116
+ },
117
+ warning: {
118
+ value: { _light: '{colors.orange.500}', _dark: '{colors.orange.400}' },
119
+ },
120
+ success: {
121
+ value: { _light: '{colors.green.500}', _dark: '{colors.green.400}' },
122
+ },
123
+ info: {
124
+ value: { _light: '{colors.blue.500}', _dark: '{colors.blue.400}' },
125
+ },
126
+ },
127
+ focusRing: {
128
+ value: { _light: '{colors.blue.600/50}', _dark: '{colors.blue.500/50}' },
129
+ },
130
+
131
+ accent: {
132
+ contrast: {
133
+ value: { _light: 'white', _dark: 'white' },
134
+ },
135
+ fg: {
136
+ value: { _light: '{colors.purple.700}', _dark: '{colors.purple.300}' },
137
+ },
138
+ muted: {
139
+ value: { _light: '{colors.purple.50}', _dark: '{colors.purple.950}' },
140
+ },
141
+ subtle: {
142
+ value: { _light: '{colors.purple.100}', _dark: '{colors.purple.900}' },
143
+ },
144
+ emphasized: {
145
+ value: { _light: '{colors.purple.200}', _dark: '{colors.purple.800}' },
146
+ },
147
+ solid: {
148
+ value: { _light: '{colors.purple.600}', _dark: '{colors.purple.600}' },
149
+ },
150
+ },
151
+
152
+ neutral: {
153
+ contrast: {
154
+ value: { _light: '{colors.white}', _dark: '{colors.black}' },
155
+ },
156
+ fg: {
157
+ value: { _light: '{colors.gray.800}', _dark: '{colors.gray.200}' },
158
+ },
159
+ muted: {
160
+ value: { _light: '{colors.gray.100}', _dark: '{colors.gray.900}' },
161
+ },
162
+ subtle: {
163
+ value: { _light: '{colors.gray.200}', _dark: '{colors.gray.800}' },
164
+ },
165
+ emphasized: {
166
+ value: { _light: '{colors.gray.300}', _dark: '{colors.gray.700}' },
167
+ },
168
+ solid: {
169
+ value: { _light: '{colors.gray.900}', _dark: '{colors.white}' },
170
+ },
171
+ },
172
+
173
+ gray: {
174
+ contrast: {
175
+ value: { _light: 'white', _dark: 'white' },
176
+ },
177
+ fg: {
178
+ value: { _light: '{colors.gray.900}', _dark: '{colors.gray.200}' },
179
+ },
180
+ muted: {
181
+ value: { _light: '{colors.gray.100}', _dark: '{colors.gray.900}' },
182
+ },
183
+ subtle: {
184
+ value: { _light: '{colors.gray.200}', _dark: '{colors.gray.800}' },
185
+ },
186
+ emphasized: {
187
+ value: { _light: '{colors.gray.300}', _dark: '{colors.gray.700}' },
188
+ },
189
+ solid: {
190
+ value: { _light: '{colors.gray.500}', _dark: '{colors.gray.500}' },
191
+ },
192
+ },
193
+
194
+ red: {
195
+ contrast: {
196
+ value: { _light: 'white', _dark: 'white' },
197
+ },
198
+ fg: {
199
+ value: { _light: '{colors.red.700}', _dark: '{colors.red.300}' },
200
+ },
201
+ muted: {
202
+ value: { _light: '{colors.red.50}', _dark: '{colors.red.950}' },
203
+ },
204
+ subtle: {
205
+ value: { _light: '{colors.red.100}', _dark: '{colors.red.900}' },
206
+ },
207
+ emphasized: {
208
+ value: { _light: '{colors.red.200}', _dark: '{colors.red.800}' },
209
+ },
210
+ solid: {
211
+ value: { _light: '{colors.red.600}', _dark: '{colors.red.600}' },
212
+ },
213
+ },
214
+
215
+ orange: {
216
+ contrast: {
217
+ value: { _light: 'white', _dark: 'black' },
218
+ },
219
+ fg: {
220
+ value: { _light: '{colors.orange.700}', _dark: '{colors.orange.300}' },
221
+ },
222
+ muted: {
223
+ value: { _light: '{colors.orange.50}', _dark: '{colors.orange.950}' },
224
+ },
225
+ subtle: {
226
+ value: { _light: '{colors.orange.100}', _dark: '{colors.orange.900}' },
227
+ },
228
+ emphasized: {
229
+ value: { _light: '{colors.orange.200}', _dark: '{colors.orange.800}' },
230
+ },
231
+ solid: {
232
+ value: { _light: '{colors.orange.600}', _dark: '{colors.orange.500}' },
233
+ },
234
+ },
235
+
236
+ green: {
237
+ contrast: {
238
+ value: { _light: 'white', _dark: 'white' },
239
+ },
240
+ fg: {
241
+ value: { _light: '{colors.green.700}', _dark: '{colors.green.300}' },
242
+ },
243
+ muted: {
244
+ value: { _light: '{colors.green.50}', _dark: '{colors.green.950}' },
245
+ },
246
+ subtle: {
247
+ value: { _light: '{colors.green.100}', _dark: '{colors.green.900}' },
248
+ },
249
+ emphasized: {
250
+ value: { _light: '{colors.green.200}', _dark: '{colors.green.800}' },
251
+ },
252
+ solid: {
253
+ value: { _light: '{colors.green.600}', _dark: '{colors.green.600}' },
254
+ },
255
+ },
256
+
257
+ blue: {
258
+ contrast: {
259
+ value: { _light: 'white', _dark: 'white' },
260
+ },
261
+ fg: {
262
+ value: { _light: '{colors.blue.700}', _dark: '{colors.blue.300}' },
263
+ },
264
+ muted: {
265
+ value: { _light: '{colors.blue.50}', _dark: '{colors.blue.950}' },
266
+ },
267
+ subtle: {
268
+ value: { _light: '{colors.blue.100}', _dark: '{colors.blue.900}' },
269
+ },
270
+ emphasized: {
271
+ value: { _light: '{colors.blue.200}', _dark: '{colors.blue.800}' },
272
+ },
273
+ solid: {
274
+ value: { _light: '{colors.blue.600}', _dark: '{colors.blue.600}' },
275
+ },
276
+ },
277
+
278
+ yellow: {
279
+ contrast: {
280
+ value: { _light: 'black', _dark: 'black' },
281
+ },
282
+ fg: {
283
+ value: { _light: '{colors.yellow.700}', _dark: '{colors.yellow.300}' },
284
+ },
285
+ muted: {
286
+ value: { _light: '{colors.yellow.50}', _dark: '{colors.yellow.950}' },
287
+ },
288
+ subtle: {
289
+ value: { _light: '{colors.yellow.100}', _dark: '{colors.yellow.900}' },
290
+ },
291
+ emphasized: {
292
+ value: { _light: '{colors.yellow.200}', _dark: '{colors.yellow.800}' },
293
+ },
294
+ solid: {
295
+ value: { _light: '{colors.yellow.300}', _dark: '{colors.yellow.300}' },
296
+ },
297
+ },
298
+
299
+ teal: {
300
+ contrast: {
301
+ value: { _light: 'white', _dark: 'white' },
302
+ },
303
+ fg: {
304
+ value: { _light: '{colors.teal.700}', _dark: '{colors.teal.300}' },
305
+ },
306
+ muted: {
307
+ value: { _light: '{colors.teal.50}', _dark: '{colors.teal.950}' },
308
+ },
309
+ subtle: {
310
+ value: { _light: '{colors.teal.100}', _dark: '{colors.teal.900}' },
311
+ },
312
+ emphasized: {
313
+ value: { _light: '{colors.teal.200}', _dark: '{colors.teal.800}' },
314
+ },
315
+ solid: {
316
+ value: { _light: '{colors.teal.600}', _dark: '{colors.teal.600}' },
317
+ },
318
+ },
319
+
320
+ indigo: {
321
+ contrast: {
322
+ value: { _light: 'white', _dark: 'white' },
323
+ },
324
+ fg: {
325
+ value: { _light: '{colors.indigo.700}', _dark: '{colors.indigo.300}' },
326
+ },
327
+ muted: {
328
+ value: { _light: '{colors.indigo.50}', _dark: '{colors.indigo.950}' },
329
+ },
330
+ subtle: {
331
+ value: { _light: '{colors.indigo.100}', _dark: '{colors.indigo.900}' },
332
+ },
333
+ emphasized: {
334
+ value: { _light: '{colors.indigo.200}', _dark: '{colors.indigo.800}' },
335
+ },
336
+ solid: {
337
+ value: { _light: '{colors.indigo.600}', _dark: '{colors.indigo.600}' },
338
+ },
339
+ },
340
+
341
+ purple: {
342
+ contrast: {
343
+ value: { _light: 'white', _dark: 'white' },
344
+ },
345
+ fg: {
346
+ value: { _light: '{colors.purple.700}', _dark: '{colors.purple.300}' },
347
+ },
348
+ muted: {
349
+ value: { _light: '{colors.purple.50}', _dark: '{colors.purple.950}' },
350
+ },
351
+ subtle: {
352
+ value: { _light: '{colors.purple.100}', _dark: '{colors.purple.900}' },
353
+ },
354
+ emphasized: {
355
+ value: { _light: '{colors.purple.200}', _dark: '{colors.purple.800}' },
356
+ },
357
+ solid: {
358
+ value: { _light: '{colors.purple.600}', _dark: '{colors.purple.600}' },
359
+ },
360
+ },
361
+
362
+ pink: {
363
+ contrast: {
364
+ value: { _light: 'white', _dark: 'white' },
365
+ },
366
+ fg: {
367
+ value: { _light: '{colors.pink.700}', _dark: '{colors.pink.300}' },
368
+ },
369
+ muted: {
370
+ value: { _light: '{colors.pink.50}', _dark: '{colors.pink.950}' },
371
+ },
372
+ subtle: {
373
+ value: { _light: '{colors.pink.100}', _dark: '{colors.pink.900}' },
374
+ },
375
+ emphasized: {
376
+ value: { _light: '{colors.pink.200}', _dark: '{colors.pink.800}' },
377
+ },
378
+ solid: {
379
+ value: { _light: '{colors.pink.600}', _dark: '{colors.pink.600}' },
380
+ },
381
+ },
382
+
383
+ cyan: {
384
+ contrast: {
385
+ value: { _light: 'white', _dark: 'white' },
386
+ },
387
+ fg: {
388
+ value: { _light: '{colors.cyan.700}', _dark: '{colors.cyan.300}' },
389
+ },
390
+ muted: {
391
+ value: { _light: '{colors.cyan.50}', _dark: '{colors.cyan.950}' },
392
+ },
393
+ subtle: {
394
+ value: { _light: '{colors.cyan.100}', _dark: '{colors.cyan.900}' },
395
+ },
396
+ emphasized: {
397
+ value: { _light: '{colors.cyan.200}', _dark: '{colors.cyan.800}' },
398
+ },
399
+ solid: {
400
+ value: { _light: '{colors.cyan.600}', _dark: '{colors.cyan.600}' },
401
+ },
402
+ },
403
+ })
@@ -0,0 +1,7 @@
1
+ import { defineSemanticTokens } from '@chakra-ui/react'
2
+
3
+ export const semanticRadii = defineSemanticTokens.radii({
4
+ l1: { value: '{radii.xs}' },
5
+ l2: { value: '{radii.sm}' },
6
+ l3: { value: '{radii.md}' },
7
+ })
@@ -0,0 +1,52 @@
1
+ import { defineSemanticTokens } from '@chakra-ui/react'
2
+
3
+ export const semanticShadows = defineSemanticTokens.shadows({
4
+ xs: {
5
+ value: {
6
+ base: '0px 1px 2px {colors.blackAlpha.300}, 0px 0px 1px {colors.blackAlpha.100}',
7
+ _dark:
8
+ '0px 1px 1px {colors.blackAlpha.800}, 0px 0px 1px inset {colors.whiteAlpha.300}',
9
+ },
10
+ },
11
+ sm: {
12
+ value: {
13
+ base: '0px 4px 4px -1px {colors.blackAlpha.50}, 0px 0px 1px 1px {colors.blackAlpha.100}',
14
+ _dark:
15
+ '0px 2px 4px {colors.blackAlpha.700}, 0px 0px 1px inset {colors.whiteAlpha.400}',
16
+ },
17
+ },
18
+ md: {
19
+ value: {
20
+ base: '0px 4px 8px {colors.blackAlpha.300}, 0px 0px 1px {colors.blackAlpha.400}',
21
+ _dark:
22
+ '0px 4px 8px {colors.blackAlpha.700}, 0px 0px 1px inset {colors.whiteAlpha.400}',
23
+ },
24
+ },
25
+ lg: {
26
+ value: {
27
+ base: '0px 8px 16px {colors.blackAlpha.300}, 0px 0px 1px {colors.blackAlpha.400}',
28
+ _dark:
29
+ '0px 8px 16px {colors.blackAlpha.700}, 0px 0px 1px inset {colors.whiteAlpha.400}',
30
+ },
31
+ },
32
+ xl: {
33
+ value: {
34
+ base: '0px 16px 24px {colors.blackAlpha.300}, 0px 0px 1px {colors.blackAlpha.400}',
35
+ _dark:
36
+ '0px 16px 24px {colors.blackAlpha.700}, 0px 0px 1px inset {colors.whiteAlpha.400}',
37
+ },
38
+ },
39
+ '2xl': {
40
+ value: {
41
+ base: '0px 24px 40px {colors.blackAlpha.300}, 0px 0px 1px {colors.blackAlpha.400}',
42
+ _dark:
43
+ '0px 24px 40px {colors.blackAlpha.700}, 0px 0px 1px inset {colors.whiteAlpha.400}',
44
+ },
45
+ },
46
+ inset: {
47
+ value: {
48
+ base: 'inset 0 0 0 1px {colors.blackAlpha.100}',
49
+ _dark: 'inset 0 0 0 1px {colors.whiteAlpha.100}',
50
+ },
51
+ },
52
+ })