@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,188 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react";
2
- import { IconButton } from "./icon-button";
3
- import { Stack } from "./../stack";
4
- import { Apps as DemoIcon } from "@commercetools/nimbus-icons";
5
- import type { IconButtonProps } from "./icon-button.types";
6
- import { createRef } from "react";
7
- import { expect, fn, within, userEvent } from "@storybook/test";
8
-
9
- const meta: Meta<typeof IconButton> = {
10
- title: "components/IconButton",
11
- component: IconButton,
12
- };
13
-
14
- export default meta;
15
-
16
- const sizes: IconButtonProps["size"][] = [
17
- //"2xl",
18
- //"xl",
19
- //"lg",
20
- "md",
21
- //"sm",
22
- "xs",
23
- "2xs",
24
- ];
25
-
26
- const variants: IconButtonProps["variant"][] = [
27
- "solid",
28
- "subtle",
29
- "outline",
30
- "ghost",
31
- "link",
32
- ];
33
-
34
- const tones: IconButtonProps["tone"][] = ["primary", "neutral", "critical"];
35
-
36
- /**
37
- * Story type for TypeScript support
38
- * StoryObj provides type checking for our story configurations
39
- */
40
- type Story = StoryObj<typeof IconButton>;
41
-
42
- /**
43
- * Base story
44
- * Demonstrates the most basic implementation
45
- * Uses the args pattern for dynamic control panel inputs
46
- */
47
- export const Base: Story = {
48
- args: {
49
- children: <DemoIcon />,
50
- onPress: fn(),
51
- ["data-testid"]: "test",
52
- ["aria-label"]: "test-button",
53
- },
54
- play: async ({ canvasElement, args, step }) => {
55
- const canvas = within(canvasElement);
56
- const button = canvas.getByTestId("test");
57
- const onPress = args.onPress;
58
-
59
- await step("Uses a <button> element by default", async () => {
60
- await expect(button.tagName).toBe("BUTTON");
61
- });
62
-
63
- await step("Forwards data- & aria-attributes", async () => {
64
- await expect(button).toHaveAttribute("data-testid", "test");
65
- await expect(button).toHaveAttribute("aria-label", "test-button");
66
- });
67
-
68
- // ATTENTION: react-aria does some complicated science,
69
- // if there is a **KEYSTROKE** before the click (like a tab-key aiming to focus the button),
70
- // the first click is not counted as a valid click
71
- await step("Is clickable", async () => {
72
- button.click();
73
- await expect(onPress).toHaveBeenCalledTimes(1);
74
- button.blur();
75
- });
76
-
77
- await step("Is focusable with <tab> key", async () => {
78
- await userEvent.tab();
79
- await expect(button).toHaveFocus();
80
- });
81
-
82
- await step("Can be triggered with enter", async () => {
83
- await userEvent.keyboard("{enter}");
84
- await expect(onPress).toHaveBeenCalledTimes(2);
85
- });
86
-
87
- await step("Can be triggered with space-bar", async () => {
88
- await expect(button).toHaveFocus();
89
- await userEvent.keyboard(" ");
90
- await expect(onPress).toHaveBeenCalledTimes(3);
91
- });
92
- },
93
- };
94
-
95
- /**
96
- * Showcase Sizes
97
- */
98
- export const Sizes: Story = {
99
- args: {
100
- children: <DemoIcon />,
101
- ["aria-label"]: "test-button",
102
- },
103
- render: (args) => {
104
- return (
105
- <Stack direction="row" gap="400" alignItems="center">
106
- {sizes.map((size) => (
107
- <IconButton key={size as string} size={size} {...args} />
108
- ))}
109
- </Stack>
110
- );
111
- },
112
- };
113
-
114
- /**
115
- * Showcase Variants
116
- */
117
- export const Variants: Story = {
118
- args: {
119
- children: <DemoIcon />,
120
- ["aria-label"]: "test-button",
121
- },
122
- render: (args) => {
123
- return (
124
- <Stack direction="row" gap="400" alignItems="center">
125
- {variants.map((variant) => (
126
- <IconButton key={variant as string} {...args} variant={variant} />
127
- ))}
128
- </Stack>
129
- );
130
- },
131
- };
132
-
133
- /**
134
- * Showcase Tones
135
- */
136
- export const Tones: Story = {
137
- args: {
138
- children: <DemoIcon />,
139
- ["aria-label"]: "test-button",
140
- },
141
- render: (args) => {
142
- return (
143
- <Stack>
144
- {tones.map((tone) => (
145
- <Stack
146
- key={tone as string}
147
- direction="row"
148
- gap="400"
149
- alignItems="center"
150
- >
151
- {variants.map((variant) => (
152
- <IconButton
153
- key={variant as string}
154
- {...args}
155
- variant={variant}
156
- tone={tone}
157
- />
158
- ))}
159
- </Stack>
160
- ))}
161
- </Stack>
162
- );
163
- },
164
- };
165
-
166
- const buttonRef = createRef<HTMLButtonElement>();
167
-
168
- export const WithRef: Story = {
169
- args: {
170
- children: <DemoIcon />,
171
- ["aria-label"]: "test-button",
172
- },
173
- render: (args) => {
174
- return (
175
- <IconButton ref={buttonRef} {...args}>
176
- {args.children}
177
- </IconButton>
178
- );
179
- },
180
- play: async ({ canvasElement, step }) => {
181
- const canvas = within(canvasElement);
182
- const button = canvas.getByRole("button");
183
-
184
- await step("Does accept ref's", async () => {
185
- await expect(buttonRef.current).toBe(button);
186
- });
187
- },
188
- };
@@ -1,21 +0,0 @@
1
- import { forwardRef } from "react";
2
- import type { IconButtonProps } from "./icon-button.types";
3
- import { Button } from "@/components";
4
-
5
- /**
6
- * IconButton
7
- * ============================================================
8
- * displays a button with only an icon as child. It is based
9
- * on the regular `Button` component, but with a few adjustments.
10
- */
11
- export const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(
12
- ({ children, ...props }, ref) => {
13
- return (
14
- <Button px={0} py={0} ref={ref} {...props}>
15
- {children}
16
- </Button>
17
- );
18
- }
19
- );
20
-
21
- IconButton.displayName = "IconButton";
@@ -1,10 +0,0 @@
1
- import { type ButtonProps } from "@/components";
2
-
3
- /**
4
- * Main props interface for the IconButton component.
5
- */
6
-
7
- export interface IconButtonProps extends ButtonProps {
8
- /** explains the intended action, required for accessibility */
9
- "aria-label": string;
10
- }
@@ -1,2 +0,0 @@
1
- export * from "./icon-button";
2
- export * from "./icon-button.types";
@@ -1,33 +0,0 @@
1
- export * from "./avatar";
2
- export * from "./box";
3
- export * from "./bleed";
4
- export * from "./button";
5
- export * from "./code";
6
- export * from "./dialog";
7
- export * from "./em";
8
- export * from "./flex";
9
- export * from "./heading";
10
- export * from "./highlight";
11
- export * from "./icon-button";
12
- export * from "./input";
13
- export * from "./input-group";
14
- export * from "./kbd";
15
- export * from "./link";
16
- export * from "./list";
17
- export * from "./simple-grid";
18
- export * from "./table";
19
- export * from "./text";
20
- export * from "./tooltip";
21
- export * from "./nimbus-provider";
22
- export * from "./checkbox";
23
- export * from "./stack";
24
- export * from "./visually-hidden";
25
- export * from "./text-input";
26
- export * from "./grid";
27
- export * from "./select";
28
- export * from "./accordion";
29
- export * from "./loading-spinner";
30
- export * from "./card";
31
- export * from "./badge";
32
- export * from "./alert";
33
- export * from "./toggle-button-group";
@@ -1 +0,0 @@
1
- export * from "./input.tsx";
@@ -1,20 +0,0 @@
1
- ---
2
- id: Input
3
- title: Input
4
- description: displays a Input field
5
- documentState: InitialDraft
6
- order: 999
7
- menu:
8
- - Components
9
- - Inputs
10
- - Input
11
- tags:
12
- - text
13
- - input
14
- ---
15
-
16
- # Input
17
-
18
- add description here.
19
-
20
- <PropTable id="Input" />
@@ -1,95 +0,0 @@
1
- import { defineRecipe } from "@chakra-ui/react";
2
-
3
- export const inputRecipe = defineRecipe({
4
- className: "nimbus-input",
5
- base: {
6
- width: "full",
7
- minWidth: "0",
8
- outline: "0",
9
- position: "relative",
10
- appearance: "none",
11
- textAlign: "start",
12
- _disabled: {
13
- layerStyle: "disabled",
14
- },
15
- height: "var(--input-height)",
16
- minW: "var(--input-height)",
17
- "--focus-color": "colors.colorPalette.focusRing",
18
- "--error-color": "colors.border.error",
19
- "&::placeholder": {
20
- color: "colorPalette.11",
21
- opacity: 3 / 4,
22
- },
23
- _invalid: {
24
- focusRingColor: "var(--error-color)",
25
- borderColor: "var(--error-color)",
26
- },
27
- },
28
- variants: {
29
- size: {
30
- "2xs": {
31
- textStyle: "xs",
32
- px: "200",
33
- "--input-height": "sizes.700",
34
- },
35
- xs: {
36
- textStyle: "xs",
37
- px: "200",
38
- "--input-height": "sizes.800",
39
- },
40
- sm: {
41
- textStyle: "sm",
42
- px: "250",
43
- "--input-height": "sizes.900",
44
- },
45
- md: {
46
- textStyle: "sm",
47
- px: "300",
48
- "--input-height": "sizes.1000",
49
- },
50
- lg: {
51
- textStyle: "md",
52
- px: "400",
53
- "--input-height": "sizes.1100",
54
- },
55
- xl: {
56
- textStyle: "md",
57
- px: "450",
58
- "--input-height": "sizes.1200",
59
- },
60
- "2xl": {
61
- textStyle: "lg",
62
- px: "500",
63
- "--input-height": "sizes.1600",
64
- },
65
- },
66
- variant: {
67
- outline: {
68
- bg: "transparent",
69
- borderWidth: "1px",
70
- borderColor: "border",
71
- focusVisibleRing: "inside",
72
- },
73
- subtle: {
74
- borderWidth: "1px",
75
- borderColor: "transparent",
76
- bg: "bg.muted",
77
- focusVisibleRing: "inside",
78
- },
79
- flushed: {
80
- bg: "transparent",
81
- borderBottomWidth: "1px",
82
- borderBottomColor: "border",
83
- px: "0",
84
- _focusVisible: {
85
- borderColor: "var(--focus-color)",
86
- boxShadow: "0px 1px 0px 0px var(--focus-color)",
87
- },
88
- },
89
- },
90
- },
91
- defaultVariants: {
92
- size: "md",
93
- variant: "outline",
94
- },
95
- });
@@ -1 +0,0 @@
1
- export { Input } from "@chakra-ui/react";
@@ -1 +0,0 @@
1
- export * from "./input-group.tsx";
@@ -1,20 +0,0 @@
1
- ---
2
- id: InputGroup
3
- title: InputGroup
4
- description: displays an InputGroup
5
- documentState: InitialDraft
6
- order: 999
7
- menu:
8
- - Components
9
- - Inputs
10
- - InputGroup
11
- tags:
12
- - input
13
- - grouping
14
- ---
15
-
16
- # InputGroup
17
-
18
- add description here.
19
-
20
- <PropTable id="InputGroup" />
@@ -1,44 +0,0 @@
1
- import type { BoxProps, InputElementProps } from "@chakra-ui/react";
2
- import { Group, InputElement } from "@chakra-ui/react";
3
- import { cloneElement, forwardRef } from "react";
4
-
5
- export interface InputGroupProps extends BoxProps {
6
- startElementProps?: InputElementProps;
7
- endElementProps?: InputElementProps;
8
- startElement?: React.ReactNode;
9
- endElement?: React.ReactNode;
10
- children: React.ReactElement;
11
- }
12
-
13
- export const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>(
14
- function InputGroup(props, ref) {
15
- const {
16
- startElement,
17
- startElementProps,
18
- endElement,
19
- endElementProps,
20
- children,
21
- ...rest
22
- } = props;
23
-
24
- return (
25
- <Group ref={ref} {...rest}>
26
- {startElement && (
27
- <InputElement pointerEvents="none" {...startElementProps}>
28
- {startElement}
29
- </InputElement>
30
- )}
31
- {cloneElement(children, {
32
- ...(startElement && { ps: "calc(var(--input-height) - 6px)" }),
33
- ...(endElement && { pe: "calc(var(--input-height) - 6px)" }),
34
- ...children.props,
35
- })}
36
- {endElement && (
37
- <InputElement placement="end" {...endElementProps}>
38
- {endElement}
39
- </InputElement>
40
- )}
41
- </Group>
42
- );
43
- }
44
- );
@@ -1 +0,0 @@
1
- export * from "./kbd.tsx";
@@ -1,18 +0,0 @@
1
- ---
2
- id: Kbd
3
- title: Kbd
4
- description: marks a string as keyboard input
5
- documentState: InitialDraft
6
- order: 999
7
- menu:
8
- - Components
9
- - Typography
10
- - Kbd
11
- tags:
12
- - keyboard
13
- - key
14
- ---
15
-
16
- # Kbd
17
-
18
- Add description later.
@@ -1,57 +0,0 @@
1
- import { defineRecipe } from "@chakra-ui/react";
2
-
3
- export const kbdRecipe = defineRecipe({
4
- className: "nimbus-kbd",
5
- base: {
6
- display: "inline-flex",
7
- alignItems: "center",
8
- fontWeight: "medium",
9
- fontFamily: "mono",
10
- flexShrink: "0",
11
- whiteSpace: "nowrap",
12
- wordSpacing: "-0.5em",
13
- userSelect: "none",
14
- px: "100",
15
- borderRadius: "100",
16
- },
17
- variants: {
18
- variant: {
19
- raised: {
20
- bg: "colorPalette.subtle",
21
- color: "colorPalette.fg",
22
- borderWidth: "1px",
23
- borderBottomWidth: "2px",
24
- borderColor: "colorPalette.muted",
25
- },
26
- outline: {
27
- borderWidth: "1px",
28
- color: "colorPalette.fg",
29
- },
30
- subtle: {
31
- bg: "colorPalette.muted",
32
- color: "colorPalette.fg",
33
- },
34
- plain: {
35
- color: "colorPalette.fg",
36
- },
37
- },
38
- size: {
39
- sm: {
40
- textStyle: "xs",
41
- height: "450",
42
- },
43
- md: {
44
- textStyle: "sm",
45
- height: "500",
46
- },
47
- lg: {
48
- textStyle: "md",
49
- height: "600",
50
- },
51
- },
52
- },
53
- defaultVariants: {
54
- size: "md",
55
- variant: "raised",
56
- },
57
- });
@@ -1 +0,0 @@
1
- export { Kbd } from "@chakra-ui/react";
@@ -1,2 +0,0 @@
1
- export * from "./link";
2
- export * from "./link.types";
@@ -1,77 +0,0 @@
1
- ---
2
- id: Components-link
3
- title: link
4
- description: To allow a user to navigate to a different page or resource
5
- documentState: InitialDraft
6
- order: 999
7
- menu:
8
- - Components
9
- - Navigation
10
- - link
11
- tags:
12
- - component
13
- figmaLink: >-
14
- https://www.figma.com/design/AvtPX6g7OGGCRvNlatGOIY/NIMBUS-design-system?node-id=384-5726&m=dev
15
- ---
16
-
17
- # Link
18
-
19
- Allows a user to navigate to a different page or resource.
20
-
21
- ## Basic Usage
22
-
23
- If unconfigured it will default to a neutral state. It is important to configure
24
- the Link properly to ensure it displays as intended.
25
-
26
- ```jsx-live
27
- const App = () => <Link href="#">I am Link!</Link>
28
- ```
29
-
30
- ### Sizes
31
-
32
- Available sizes.
33
-
34
- ```jsx-live
35
- const App = () => {
36
-
37
- const sizes = ['md', 'sm', 'xs'].reverse();
38
-
39
- return (
40
- <Stack direction="horizontal" alignItems="center">
41
- {sizes.map(size => (
42
- <Link key={size} size={size}>'{size}' Link</Link>
43
- ))}
44
- </Stack>
45
- )
46
- }
47
- ```
48
-
49
- ### Colors
50
-
51
- The Link component will default to it's surrounding context for color. You can
52
- also specify a color directly.
53
-
54
- ```jsx-live
55
- const App = () => {
56
- const sizes = ['md', 'sm', 'xs'].reverse();
57
- const colors = ["primary", "inherit"];
58
-
59
- return (
60
- <Stack>
61
- {colors.map((color) => (
62
- <Stack key={color} direction="horizontal">
63
- {sizes.map((size) => (
64
- <Link fontColor={color} key={size} size={size}>
65
- '{size}' Link w/ color '{color}'
66
- </Link>
67
- ))}
68
- </Stack>
69
- ))}
70
- </Stack>
71
- );
72
- };
73
- ```
74
-
75
- ## Props
76
-
77
- <PropTable id="Link" />
@@ -1,52 +0,0 @@
1
- import { defineRecipe } from "@chakra-ui/react";
2
-
3
- /**
4
- * Recipe configuration for the Link component.
5
- * Defines the styling variants and base styles using Chakra UI's recipe system.
6
- */
7
- export const linkRecipe = defineRecipe({
8
- className: "nimbus-link",
9
- // Base styles applied to all instances of the component
10
- base: {
11
- display: "inline-flex",
12
- alignItems: "center",
13
- color: "colorPalette.11",
14
- borderRadius: "100",
15
- focusVisibleRing: "outside",
16
- bg: "transparent",
17
- outline: "none",
18
- cursor: "pointer",
19
- textDecoration: "underline",
20
- textUnderlineOffset: "3px",
21
- _hover: {
22
- textDecorationThickness: "12%",
23
- },
24
- },
25
- // Available variants for customizing the component's appearance
26
- variants: {
27
- // Size variants from smallest to largest
28
- size: {
29
- xs: {
30
- fontSize: "300",
31
- lineHeight: "450",
32
- },
33
- sm: {
34
- fontSize: "350",
35
- lineHeight: "500",
36
- },
37
- md: {
38
- fontSize: "400",
39
- lineHeight: "600",
40
- },
41
- },
42
- // style variants
43
- fontColor: {
44
- primary: {
45
- color: "primary",
46
- },
47
- inherit: {
48
- color: "inherit",
49
- },
50
- },
51
- },
52
- });