@commercetools/nimbus 0.0.1 → 0.0.3-alpha.2

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 (302) hide show
  1. package/dist/index.d.ts +1412 -0
  2. package/dist/index.js +22451 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/index.umd.cjs +27 -0
  5. package/dist/index.umd.cjs.map +1 -0
  6. package/package.json +74 -40
  7. package/.storybook/apca-check/index.ts +0 -150
  8. package/.storybook/main.ts +0 -64
  9. package/.storybook/preview.tsx +0 -92
  10. package/.storybook/vitest.setup.ts +0 -13
  11. package/docs/architecture-decisions/adr-0001-consumer-component-apis.md +0 -177
  12. package/docs/architecture-decisions/adr-0002-compound-component-extraction.md +0 -82
  13. package/src/components/accordion/accordion-context.tsx +0 -17
  14. package/src/components/accordion/accordion.mdx +0 -172
  15. package/src/components/accordion/accordion.recipe.tsx +0 -98
  16. package/src/components/accordion/accordion.slots.tsx +0 -39
  17. package/src/components/accordion/accordion.stories.tsx +0 -188
  18. package/src/components/accordion/accordion.tsx +0 -16
  19. package/src/components/accordion/accordion.types.tsx +0 -54
  20. package/src/components/accordion/components/accordion-content.tsx +0 -28
  21. package/src/components/accordion/components/accordion-group.tsx +0 -27
  22. package/src/components/accordion/components/accordion-header.tsx +0 -63
  23. package/src/components/accordion/components/accordion-item.tsx +0 -87
  24. package/src/components/accordion/index.ts +0 -2
  25. package/src/components/alert/alert.mdx +0 -92
  26. package/src/components/alert/alert.recipe.tsx +0 -65
  27. package/src/components/alert/alert.slots.tsx +0 -46
  28. package/src/components/alert/alert.stories.tsx +0 -308
  29. package/src/components/alert/alert.tsx +0 -18
  30. package/src/components/alert/alert.types.tsx +0 -70
  31. package/src/components/alert/components/alert.actions.tsx +0 -27
  32. package/src/components/alert/components/alert.description.tsx +0 -27
  33. package/src/components/alert/components/alert.dismiss-button.tsx +0 -41
  34. package/src/components/alert/components/alert.root.tsx +0 -92
  35. package/src/components/alert/components/alert.title.tsx +0 -29
  36. package/src/components/alert/index.ts +0 -2
  37. package/src/components/avatar/avatar.mdx +0 -80
  38. package/src/components/avatar/avatar.recipe.tsx +0 -36
  39. package/src/components/avatar/avatar.slots.tsx +0 -16
  40. package/src/components/avatar/avatar.stories.tsx +0 -136
  41. package/src/components/avatar/avatar.tsx +0 -34
  42. package/src/components/avatar/avatar.types.ts +0 -33
  43. package/src/components/avatar/index.ts +0 -2
  44. package/src/components/badge/badge.mdx +0 -91
  45. package/src/components/badge/badge.recipe.tsx +0 -72
  46. package/src/components/badge/badge.slots.tsx +0 -8
  47. package/src/components/badge/badge.stories.tsx +0 -124
  48. package/src/components/badge/badge.tsx +0 -35
  49. package/src/components/badge/badge.types.tsx +0 -40
  50. package/src/components/badge/index.ts +0 -2
  51. package/src/components/bleed/bleed.tsx +0 -1
  52. package/src/components/bleed/index.ts +0 -1
  53. package/src/components/box/box.mdx +0 -115
  54. package/src/components/box/box.stories.tsx +0 -71
  55. package/src/components/box/box.tsx +0 -11
  56. package/src/components/box/index.ts +0 -1
  57. package/src/components/button/button.mdx +0 -169
  58. package/src/components/button/button.recipe.ts +0 -185
  59. package/src/components/button/button.slots.tsx +0 -45
  60. package/src/components/button/button.stories.tsx +0 -369
  61. package/src/components/button/button.tsx +0 -37
  62. package/src/components/button/button.types.ts +0 -14
  63. package/src/components/button/index.ts +0 -2
  64. package/src/components/card/card.mdx +0 -92
  65. package/src/components/card/card.recipe.tsx +0 -71
  66. package/src/components/card/card.slots.tsx +0 -50
  67. package/src/components/card/card.stories.tsx +0 -175
  68. package/src/components/card/card.tsx +0 -9
  69. package/src/components/card/card.types.ts +0 -22
  70. package/src/components/card/components/card.content.tsx +0 -29
  71. package/src/components/card/components/card.header.tsx +0 -28
  72. package/src/components/card/components/card.root.tsx +0 -62
  73. package/src/components/card/index.ts +0 -2
  74. package/src/components/checkbox/checkbox.mdx +0 -78
  75. package/src/components/checkbox/checkbox.recipe.tsx +0 -116
  76. package/src/components/checkbox/checkbox.slots.tsx +0 -33
  77. package/src/components/checkbox/checkbox.stories.tsx +0 -200
  78. package/src/components/checkbox/checkbox.tsx +0 -77
  79. package/src/components/checkbox/checkbox.types.tsx +0 -22
  80. package/src/components/checkbox/index.ts +0 -2
  81. package/src/components/code/code.mdx +0 -17
  82. package/src/components/code/code.recipe.ts +0 -63
  83. package/src/components/code/code.tsx +0 -1
  84. package/src/components/code/index.ts +0 -1
  85. package/src/components/dialog/dialog.mdx +0 -20
  86. package/src/components/dialog/dialog.recipe.ts +0 -254
  87. package/src/components/dialog/dialog.tsx +0 -61
  88. package/src/components/dialog/index.ts +0 -1
  89. package/src/components/em/em.mdx +0 -17
  90. package/src/components/em/em.tsx +0 -1
  91. package/src/components/em/index.ts +0 -1
  92. package/src/components/flex/flex.mdx +0 -41
  93. package/src/components/flex/flex.tsx +0 -1
  94. package/src/components/flex/index.ts +0 -1
  95. package/src/components/grid/grid.mdx +0 -156
  96. package/src/components/grid/grid.stories.tsx +0 -151
  97. package/src/components/grid/grid.tsx +0 -29
  98. package/src/components/grid/index.ts +0 -1
  99. package/src/components/heading/heading.mdx +0 -23
  100. package/src/components/heading/heading.recipe.ts +0 -49
  101. package/src/components/heading/heading.tsx +0 -1
  102. package/src/components/heading/index.ts +0 -1
  103. package/src/components/highlight/highlight.mdx +0 -18
  104. package/src/components/highlight/highlight.tsx +0 -1
  105. package/src/components/highlight/index.ts +0 -1
  106. package/src/components/icon-button/icon-button.mdx +0 -98
  107. package/src/components/icon-button/icon-button.stories.tsx +0 -188
  108. package/src/components/icon-button/icon-button.tsx +0 -21
  109. package/src/components/icon-button/icon-button.types.tsx +0 -10
  110. package/src/components/icon-button/index.ts +0 -2
  111. package/src/components/index.ts +0 -33
  112. package/src/components/input/index.ts +0 -1
  113. package/src/components/input/input.mdx +0 -20
  114. package/src/components/input/input.recipe.ts +0 -95
  115. package/src/components/input/input.tsx +0 -1
  116. package/src/components/input-group/index.ts +0 -1
  117. package/src/components/input-group/input-group.mdx +0 -20
  118. package/src/components/input-group/input-group.tsx +0 -44
  119. package/src/components/kbd/index.ts +0 -1
  120. package/src/components/kbd/kbd.mdx +0 -18
  121. package/src/components/kbd/kbd.recipe.ts +0 -57
  122. package/src/components/kbd/kbd.tsx +0 -1
  123. package/src/components/link/index.ts +0 -2
  124. package/src/components/link/link.mdx +0 -77
  125. package/src/components/link/link.recipe.ts +0 -52
  126. package/src/components/link/link.slots.tsx +0 -29
  127. package/src/components/link/link.stories.tsx +0 -204
  128. package/src/components/link/link.tsx +0 -38
  129. package/src/components/link/link.types.tsx +0 -26
  130. package/src/components/list/index.ts +0 -1
  131. package/src/components/list/list.mdx +0 -18
  132. package/src/components/list/list.recipe.ts +0 -68
  133. package/src/components/list/list.tsx +0 -9
  134. package/src/components/loading-spinner/index.ts +0 -2
  135. package/src/components/loading-spinner/loading-spinner.mdx +0 -92
  136. package/src/components/loading-spinner/loading-spinner.recipe.tsx +0 -70
  137. package/src/components/loading-spinner/loading-spinner.slots.tsx +0 -38
  138. package/src/components/loading-spinner/loading-spinner.stories.tsx +0 -97
  139. package/src/components/loading-spinner/loading-spinner.tsx +0 -50
  140. package/src/components/loading-spinner/loading-spinner.types.tsx +0 -21
  141. package/src/components/nimbus-provider/color-mode.tsx +0 -32
  142. package/src/components/nimbus-provider/index.ts +0 -2
  143. package/src/components/nimbus-provider/nimbus-provider.mdx +0 -21
  144. package/src/components/nimbus-provider/nimbus-provider.tsx +0 -51
  145. package/src/components/select/components/select.clear-button.tsx +0 -31
  146. package/src/components/select/components/select.option-group.tsx +0 -48
  147. package/src/components/select/components/select.option.tsx +0 -21
  148. package/src/components/select/components/select.options.tsx +0 -23
  149. package/src/components/select/components/select.root.tsx +0 -81
  150. package/src/components/select/index.ts +0 -2
  151. package/src/components/select/select.mdx +0 -170
  152. package/src/components/select/select.recipe.tsx +0 -216
  153. package/src/components/select/select.slots.tsx +0 -58
  154. package/src/components/select/select.stories.tsx +0 -841
  155. package/src/components/select/select.tsx +0 -18
  156. package/src/components/select/select.types.tsx +0 -37
  157. package/src/components/simple-grid/index.ts +0 -1
  158. package/src/components/simple-grid/simple-grid.mdx +0 -133
  159. package/src/components/simple-grid/simple-grid.stories.tsx +0 -143
  160. package/src/components/simple-grid/simple-grid.tsx +0 -31
  161. package/src/components/stack/index.ts +0 -1
  162. package/src/components/stack/stack.mdx +0 -88
  163. package/src/components/stack/stack.stories.tsx +0 -82
  164. package/src/components/stack/stack.tsx +0 -15
  165. package/src/components/table/index.ts +0 -1
  166. package/src/components/table/table.mdx +0 -23
  167. package/src/components/table/table.recipe.ts +0 -170
  168. package/src/components/table/table.tsx +0 -43
  169. package/src/components/text/index.ts +0 -1
  170. package/src/components/text/text.mdx +0 -244
  171. package/src/components/text/text.tsx +0 -23
  172. package/src/components/text-input/index.ts +0 -2
  173. package/src/components/text-input/text-input.mdx +0 -118
  174. package/src/components/text-input/text-input.recipe.tsx +0 -68
  175. package/src/components/text-input/text-input.slots.tsx +0 -24
  176. package/src/components/text-input/text-input.stories.tsx +0 -282
  177. package/src/components/text-input/text-input.tsx +0 -39
  178. package/src/components/text-input/text-input.types.ts +0 -7
  179. package/src/components/toggle-button-group/components/toggle-button-group.button.tsx +0 -14
  180. package/src/components/toggle-button-group/components/toggle-button-group.root.tsx +0 -15
  181. package/src/components/toggle-button-group/index.ts +0 -2
  182. package/src/components/toggle-button-group/toggle-button-group.mdx +0 -94
  183. package/src/components/toggle-button-group/toggle-button-group.recipe.tsx +0 -64
  184. package/src/components/toggle-button-group/toggle-button-group.slots.tsx +0 -26
  185. package/src/components/toggle-button-group/toggle-button-group.stories.tsx +0 -311
  186. package/src/components/toggle-button-group/toggle-button-group.tsx +0 -12
  187. package/src/components/toggle-button-group/toggle-button-group.types.tsx +0 -62
  188. package/src/components/tooltip/index.ts +0 -4
  189. package/src/components/tooltip/make-element-focusable.stories.tsx +0 -56
  190. package/src/components/tooltip/make-element-focusable.tsx +0 -57
  191. package/src/components/tooltip/tooltip-trigger.stories.tsx +0 -157
  192. package/src/components/tooltip/tooltip-trigger.tsx +0 -15
  193. package/src/components/tooltip/tooltip.mdx +0 -48
  194. package/src/components/tooltip/tooltip.recipe.ts +0 -26
  195. package/src/components/tooltip/tooltip.slots.ts +0 -35
  196. package/src/components/tooltip/tooltip.stories.tsx +0 -139
  197. package/src/components/tooltip/tooltip.tsx +0 -31
  198. package/src/components/tooltip/tooltip.types.ts +0 -44
  199. package/src/components/visually-hidden/index.ts +0 -1
  200. package/src/components/visually-hidden/visually-hidden.mdx +0 -61
  201. package/src/components/visually-hidden/visually-hidden.stories.tsx +0 -124
  202. package/src/components/visually-hidden/visually-hidden.tsx +0 -18
  203. package/src/docs/accessibility.mdx +0 -21
  204. package/src/docs/background.mdx +0 -154
  205. package/src/docs/border.mdx +0 -226
  206. package/src/docs/changelog.mdx +0 -17
  207. package/src/docs/components-layout.mdx +0 -22
  208. package/src/docs/components.mdx +0 -17
  209. package/src/docs/data-display.mdx +0 -23
  210. package/src/docs/display.mdx +0 -55
  211. package/src/docs/effects.mdx +0 -73
  212. package/src/docs/feedback.mdx +0 -22
  213. package/src/docs/filters.mdx +0 -268
  214. package/src/docs/flex-and-grid.mdx +0 -445
  215. package/src/docs/forms.mdx +0 -22
  216. package/src/docs/generated/index.mdx +0 -16
  217. package/src/docs/getting-started.mdx +0 -17
  218. package/src/docs/home.mdx +0 -56
  219. package/src/docs/hooks.mdx +0 -16
  220. package/src/docs/inputs.mdx +0 -21
  221. package/src/docs/installation.mdx +0 -60
  222. package/src/docs/interactivity.mdx +0 -278
  223. package/src/docs/known-issues.mdx +0 -19
  224. package/src/docs/layout.mdx +0 -301
  225. package/src/docs/list.mdx +0 -82
  226. package/src/docs/markdown.mdx +0 -234
  227. package/src/docs/media.mdx +0 -22
  228. package/src/docs/naivgation.mdx +0 -22
  229. package/src/docs/playground.mdx +0 -16
  230. package/src/docs/rfcs-component-structure-rfcs.mdx +0 -17
  231. package/src/docs/rfcs-component-structure.mdx +0 -74
  232. package/src/docs/rfcs-hook-structure.mdx +0 -59
  233. package/src/docs/sizing.mdx +0 -210
  234. package/src/docs/spacing.mdx +0 -193
  235. package/src/docs/style-props-typography.mdx +0 -373
  236. package/src/docs/style-props.mdx +0 -15
  237. package/src/docs/svg.mdx +0 -58
  238. package/src/docs/tables.mdx +0 -95
  239. package/src/docs/toc.mdx +0 -39
  240. package/src/docs/tokens/animations.mdx +0 -68
  241. package/src/docs/tokens/aspect-ratios.mdx +0 -21
  242. package/src/docs/tokens/blurs.mdx +0 -20
  243. package/src/docs/tokens/borders.mdx +0 -25
  244. package/src/docs/tokens/breakpoints.mdx +0 -35
  245. package/src/docs/tokens/colors.mdx +0 -86
  246. package/src/docs/tokens/cursors.mdx +0 -21
  247. package/src/docs/tokens/radii.mdx +0 -23
  248. package/src/docs/tokens/shadows.mdx +0 -21
  249. package/src/docs/tokens/sizes.mdx +0 -54
  250. package/src/docs/tokens/spacing.mdx +0 -35
  251. package/src/docs/tokens/typography.mdx +0 -61
  252. package/src/docs/tokens/z-indices.mdx +0 -23
  253. package/src/docs/tokens-other.mdx +0 -17
  254. package/src/docs/tokens.mdx +0 -16
  255. package/src/docs/transforms.mdx +0 -150
  256. package/src/docs/transitions.mdx +0 -164
  257. package/src/docs/typography.mdx +0 -17
  258. package/src/docs/utilities.mdx +0 -17
  259. package/src/hooks/index.ts +0 -2
  260. package/src/hooks/use-copy-to-clipboard/use-copy-to-clipboard.mdx +0 -54
  261. package/src/hooks/use-copy-to-clipboard/use-copy-to-clipboard.ts +0 -1
  262. package/src/hooks/use-hotkeys/use-hotkeys.mdx +0 -48
  263. package/src/hooks/use-hotkeys/use-hotkeys.stories.tsx +0 -69
  264. package/src/hooks/use-hotkeys/use-hotkeys.ts +0 -1
  265. package/src/index.ts +0 -3
  266. package/src/test/utils.tsx +0 -20
  267. package/src/theme/animation-styles.ts +0 -52
  268. package/src/theme/breakpoints.ts +0 -32
  269. package/src/theme/global-css.ts +0 -53
  270. package/src/theme/index.ts +0 -35
  271. package/src/theme/keyframes.ts +0 -192
  272. package/src/theme/layer-styles.ts +0 -12
  273. package/src/theme/recipes/index.ts +0 -21
  274. package/src/theme/semantic-tokens/colors.ts +0 -55
  275. package/src/theme/semantic-tokens/index.ts +0 -9
  276. package/src/theme/semantic-tokens/radii.ts +0 -3
  277. package/src/theme/semantic-tokens/shadows.ts +0 -4
  278. package/src/theme/slot-recipes/index.ts +0 -15
  279. package/src/theme/text-styles.ts +0 -8
  280. package/src/theme/tokens/animations.ts +0 -4
  281. package/src/theme/tokens/aspect-ratios.ts +0 -5
  282. package/src/theme/tokens/blurs.ts +0 -5
  283. package/src/theme/tokens/borders.ts +0 -4
  284. package/src/theme/tokens/colors.ts +0 -8
  285. package/src/theme/tokens/cursor.ts +0 -4
  286. package/src/theme/tokens/durations.ts +0 -4
  287. package/src/theme/tokens/easings.ts +0 -4
  288. package/src/theme/tokens/font-sizes.ts +0 -4
  289. package/src/theme/tokens/font-weights.ts +0 -4
  290. package/src/theme/tokens/fonts.ts +0 -4
  291. package/src/theme/tokens/index.ts +0 -57
  292. package/src/theme/tokens/letter-spacings.ts +0 -24
  293. package/src/theme/tokens/line-heights.ts +0 -4
  294. package/src/theme/tokens/radii.ts +0 -4
  295. package/src/theme/tokens/sizes.ts +0 -120
  296. package/src/theme/tokens/spacing.ts +0 -4
  297. package/src/theme/tokens/z-index.ts +0 -4
  298. package/src/utils/extractStyleProps.ts +0 -26
  299. package/src/utils/fixedForwardRef.ts +0 -17
  300. package/tsconfig.json +0 -38
  301. package/vite.config.ts +0 -54
  302. package/vitest.config.ts +0 -50
@@ -1,169 +0,0 @@
1
- ---
2
- id: Forms-Button
3
- title: Button
4
- description: Displays a Button.
5
- documentState: ReviewedInternal
6
- documentAudiences: []
7
- order: 999
8
- menu:
9
- - Components
10
- - Inputs
11
- - Button
12
- tags:
13
- - document
14
- figmaLink: >-
15
- https://www.figma.com/design/AvtPX6g7OGGCRvNlatGOIY/New-Design-System?node-id=58-132&m=dev
16
- ---
17
-
18
- # Button
19
-
20
- Displays a Button.
21
-
22
- ## Basic Usage
23
-
24
- If unconfigured it will default to a neutral state. It is important to configure
25
- the Button properly to ensure it displays as intended.
26
-
27
- ```jsx-live
28
- const App = () => <Button>I am a Button</Button>
29
- ```
30
-
31
- ## Events
32
-
33
- To handle the differences between mouse-, touch- and keyboard-interactions, the
34
- `Button` supports `onPress*` events. The misc `onPress*` events (`onPress`,
35
- `onPressStart`, `onPressEnd`, etc.) provide a more seamless and inclusive user
36
- experience across different devices and input methods:
37
-
38
- ```jsx-live
39
- const App = () => <Button tone="primary" variant="solid" onPress={()=>alert()}>I am accessible</Button>
40
- ```
41
-
42
- ## Custom DOM-element
43
-
44
- The Button component uses the native
45
- [HTML button element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button)
46
- by default, but supports rendering as a different tag to the DOM. Use the
47
- `asChild` property and the tag you want to render as _only_ child.
48
-
49
- ```jsx-live
50
- const App = () => (
51
- <Button tone="primary" variant="solid" asChild>
52
- <a href="http://www.commercetools.com" target="_blank">I am a button in disguise</a>
53
- </Button>
54
- )
55
- ```
56
-
57
- ## Aria- & Data-Attributes
58
-
59
- The Button component supports forwarding `data-*` and `aria-*` attributes. This
60
- can be useful for tracking tools & a11y.
61
-
62
- ```jsx-live
63
- const App = () => <Button tone="primary" variant="solid" data-foo="bar">I can have data-attributes</Button>
64
- ```
65
-
66
- ## Customizing the look
67
-
68
- ### Sizes
69
-
70
- Buttons come in different sizes, sizing a button is done by setting the `size`
71
- prop. Setting the size has no effect on the variant or color of the Button.
72
-
73
- ```jsx-live
74
- const App = () => {
75
-
76
- const sizes = ['2xs', 'xs', 'md'].reverse();
77
-
78
- return (
79
- <Stack direction="horizontal" alignItems="center">
80
- {sizes.map(size => (
81
- <Button tone="primary" variant="solid" key={size} size={size}>'{size}' Button</Button>
82
- ))}
83
- </Stack>
84
- )
85
- }
86
- ```
87
-
88
- ### Variants
89
-
90
- Look how the buttons change their appearance but not their size. It is important
91
- that the variant has no effect on the size. Only then it can be guaranteed that
92
- buttons with different variants can be used and displayed next to each other.
93
-
94
- ```jsx-live
95
- const App = () => {
96
-
97
- const variants = ['solid', 'outline', 'ghost', "link"]
98
-
99
- return (
100
- <Stack direction="horizontal">
101
- {variants.map(variant => (
102
- <Button tone="primary" key={variant} variant={variant}>'{variant}' Button</Button>
103
- ))}
104
- </Stack>
105
- )
106
- }
107
- ```
108
-
109
- ### Tones / Colors
110
-
111
- Since the different `variants` operate purely on contrast level differences
112
- (think: dark & light elements), the `colorPalette` prop can be used to colorize
113
- the Button.
114
-
115
- ```jsx-live
116
- const App = () => {
117
- const variants = ["solid", "outline", "ghost", "link"];
118
- const colors = ["primary", "critical"];
119
-
120
- return (
121
- <Stack>
122
- {colors.map((color) => (
123
- <Stack key={color} direction="horizontal">
124
- {variants.map((variant) => (
125
- <Button tone={color} key={variant} variant={variant}>
126
- '{variant}' Button
127
- </Button>
128
- ))}
129
- </Stack>
130
- ))}
131
- </Stack>
132
- );
133
- };
134
- ```
135
-
136
- ### Icons
137
-
138
- Simply drop the desired icon into the `Button`:
139
-
140
- ```jsx-live
141
- const App = () => {
142
- const sizes = ["2xs", "xs", "md"].reverse();
143
-
144
- return (
145
- <Stack>
146
- {sizes.map((size) => (
147
- <Stack key={size} direction="horizontal">
148
- <Button size={size} colorPalette="success" variant="solid" startIcon={<Icons.Check />}>
149
- <Icons.Check />
150
- Yes
151
- </Button>
152
- <Button size={size} colorPalette="error" variant="solid" startIcon={<Icons.X />}>
153
- <Icons.Close />
154
- No
155
- </Button>
156
- <Button size={size} colorPalette="neutral" variant="ghost" endIcon={<Box animation="spin" asChild><Icons.Loader/></Box>}>
157
- Maybe
158
- <Icons.HelpOutline />
159
- </Button>
160
- </Stack>
161
- ))}
162
- </Stack>
163
- );
164
- };
165
- ```
166
-
167
- ## Properties / API
168
-
169
- <PropTable id="Button" />
@@ -1,185 +0,0 @@
1
- import { defineRecipe } from "@chakra-ui/react";
2
-
3
- export const buttonRecipe = defineRecipe({
4
- className: "nimbus-button",
5
- base: {
6
- borderRadius: "200",
7
- display: "inline-flex",
8
- appearance: "none",
9
- alignItems: "center",
10
- justifyContent: "center",
11
- userSelect: "none",
12
- position: "relative",
13
- whiteSpace: "nowrap",
14
- verticalAlign: "middle",
15
- borderWidth: "1px",
16
- borderColor: "transparent",
17
- cursor: "button",
18
- flexShrink: "0",
19
- outline: "0",
20
- lineHeight: "1.2",
21
- isolation: "isolate",
22
- fontWeight: "500",
23
- transitionProperty: "common",
24
- transitionDuration: "moderate",
25
- focusVisibleRing: "outside",
26
- _disabled: {
27
- layerStyle: "disabled",
28
- },
29
- _icon: {
30
- flexShrink: "0",
31
- },
32
- },
33
- variants: {
34
- size: {
35
- "2xs": {
36
- h: "600",
37
- minW: "600",
38
- fontSize: "300",
39
- fontWeight: "500",
40
- lineHeight: "400",
41
- px: "200",
42
- gap: "100",
43
- _icon: {
44
- width: "400",
45
- height: "400",
46
- },
47
- },
48
- xs: {
49
- h: "800",
50
- minW: "800",
51
- fontSize: "350",
52
- fontWeight: "500",
53
- lineHeight: "400",
54
- px: "300",
55
- gap: "100",
56
- _icon: {
57
- width: "500",
58
- height: "500",
59
- },
60
- },
61
- /* sm: {
62
- h: "900",
63
- minW: "900",
64
- px: "350",
65
- textStyle: "sm",
66
- gap: "200",
67
- _icon: {
68
- width: "400",
69
- height: "400",
70
- },
71
- }, */
72
- md: {
73
- h: "1000",
74
- minW: "1000",
75
- fontSize: "400",
76
- lineHeight: "500",
77
- px: "400",
78
- gap: "200",
79
- _icon: {
80
- width: "600",
81
- height: "600",
82
- },
83
- },
84
- /* lg: {
85
- h: "1100",
86
- minW: "1100",
87
- textStyle: "md",
88
- px: "500",
89
- gap: "300",
90
- _icon: {
91
- width: "500",
92
- height: "500",
93
- },
94
- }, */
95
- /* xl: {
96
- h: "1200",
97
- minW: "1200",
98
- textStyle: "md",
99
- px: "500",
100
- gap: "250",
101
- _icon: {
102
- width: "500",
103
- height: "500",
104
- },
105
- }, */
106
- /* "2xl": {
107
- h: "1600",
108
- minW: "1600",
109
- textStyle: "lg",
110
- px: "700",
111
- gap: "300",
112
- _icon: {
113
- width: "600",
114
- height: "600",
115
- },
116
- }, */
117
- },
118
- variant: {
119
- solid: {
120
- bg: "colorPalette.9",
121
- color: "colorPalette.contrast",
122
- _hover: {
123
- bg: "colorPalette.10",
124
- },
125
- _expanded: {
126
- bg: "colorPalette.10",
127
- },
128
- },
129
- subtle: {
130
- bg: "colorPalette.3",
131
- color: "colorPalette.11",
132
- _hover: {
133
- bg: "colorPalette.4",
134
- },
135
- _expanded: {
136
- bg: "colorPalette.4",
137
- },
138
- },
139
- outline: {
140
- borderWidth: "1px",
141
- borderColor: "colorPalette.7",
142
- color: "colorPalette.11",
143
- transitionProperty: "background-color, border-color, color",
144
- transitionDuration: "moderate",
145
- _hover: {
146
- bg: "colorPalette.3",
147
- borderColor: "colorPalette.8",
148
- },
149
- _expanded: {
150
- bg: "colorPalette.subtle",
151
- },
152
- },
153
- ghost: {
154
- color: "colorPalette.11",
155
- _hover: {
156
- bg: "colorPalette.4",
157
- },
158
- _expanded: {
159
- bg: "colorPalette.4",
160
- },
161
- },
162
- link: {
163
- color: "colorPalette.11",
164
- _hover: {
165
- textDecoration: "underline",
166
- },
167
- },
168
- },
169
- tone: {
170
- primary: {
171
- colorPalette: "primary",
172
- },
173
- critical: {
174
- colorPalette: "error",
175
- },
176
- neutral: {
177
- colorPalette: "neutral",
178
- },
179
- },
180
- },
181
- defaultVariants: {
182
- size: "md",
183
- variant: "subtle",
184
- },
185
- });
@@ -1,45 +0,0 @@
1
- import {
2
- type HTMLChakraProps,
3
- type RecipeProps,
4
- type UnstyledProp,
5
- createRecipeContext,
6
- defaultSystem,
7
- } from "@chakra-ui/react";
8
- import { buttonRecipe } from "./button.recipe";
9
- import shouldForwardProp from "@emotion/is-prop-valid";
10
-
11
- /**
12
- * Base recipe props interface that combines Chakra UI's recipe props
13
- * with the unstyled prop option for the button element.
14
- */
15
- interface ButtonRecipeProps extends RecipeProps<"button">, UnstyledProp {}
16
-
17
- /**
18
- * Root props interface that extends Chakra's HTML props with our recipe props.
19
- * This creates a complete set of props for the root element, combining
20
- * HTML attributes, Chakra's styling system, and our custom recipe props.
21
- */
22
- export type ButtonRootProps = HTMLChakraProps<"button", ButtonRecipeProps>;
23
-
24
- const { withContext } = createRecipeContext({
25
- recipe: buttonRecipe,
26
- });
27
-
28
- /**
29
- * Root component that provides the styling context for the Battn component.
30
- * Uses Chakra UI's recipe context system for consistent styling across instances.
31
- */
32
- export const ButtonRoot = withContext<HTMLButtonElement, ButtonRootProps>(
33
- "button",
34
- {
35
- defaultProps: {
36
- type: "button",
37
- },
38
- /** make sure the `onPress` properties won't end up as attribute on the rendered DOM element */
39
- shouldForwardProp(prop, variantKeys) {
40
- const chakraSfp =
41
- !variantKeys?.includes(prop) && !defaultSystem.isValidProperty(prop);
42
- return shouldForwardProp(prop) && chakraSfp && !prop.includes("onPress");
43
- },
44
- }
45
- );