@jordan-mace/chaser-design-system 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/dist/build-manifest.json +3311 -1978
  2. package/dist/{chunk-DGP64SMQ.mjs → chunk-5EXQ5OSW.mjs} +1 -1
  3. package/dist/{chunk-HIODYNPY.mjs → chunk-CGKVSHV7.mjs} +0 -1
  4. package/dist/{chunk-VXRFKQMB.mjs → chunk-CJ5OBPQ7.mjs} +1 -0
  5. package/dist/{chunk-D62WZ7PJ.mjs → chunk-DLVBLJS5.mjs} +1 -1
  6. package/dist/{chunk-3AD3E4FY.mjs → chunk-GJTMCP2V.mjs} +1 -4
  7. package/dist/{chunk-HOWN3CZF.mjs → chunk-GWMUTYRW.mjs} +1 -1
  8. package/dist/{chunk-DB7I3V3C.mjs → chunk-P6ITY5TK.mjs} +0 -1
  9. package/dist/{chunk-HG3TXGUV.mjs → chunk-WBE75WTG.mjs} +1 -2
  10. package/dist/{chunk-P6A62GCQ.mjs → chunk-WV2TDE35.mjs} +1 -4
  11. package/dist/{chunk-IU6IODBX.mjs → chunk-YKUJ2KUN.mjs} +1 -1
  12. package/dist/{chunk-KVXPG4QT.mjs → chunk-ZT5III36.mjs} +0 -1
  13. package/dist/components/Accordion/Accordion.mjs +3 -1
  14. package/dist/components/Accordion/Accordion.types.mjs +0 -0
  15. package/dist/components/Accordion/index.mjs +4 -2
  16. package/dist/components/Alert/Alert.types.mjs +0 -0
  17. package/dist/components/AspectRatio/AspectRatio.types.mjs +0 -0
  18. package/dist/components/Avatar/Avatar.types.mjs +0 -0
  19. package/dist/components/Badge/Badge.mjs +1 -1
  20. package/dist/components/Badge/Badge.types.mjs +0 -0
  21. package/dist/components/Badge/index.mjs +1 -1
  22. package/dist/components/Box/Box.types.mjs +0 -0
  23. package/dist/components/Breadcrumb/Breadcrumb.mjs +1 -1
  24. package/dist/components/Breadcrumb/Breadcrumb.types.mjs +0 -0
  25. package/dist/components/Breadcrumb/index.mjs +1 -1
  26. package/dist/components/Button/Button.types.mjs +0 -0
  27. package/dist/components/Card/Card.types.mjs +0 -0
  28. package/dist/components/Checkbox/Checkbox.types.mjs +0 -0
  29. package/dist/components/Collapse/Collapse.mjs +1 -1
  30. package/dist/components/Collapse/Collapse.types.mjs +0 -0
  31. package/dist/components/Collapse/index.mjs +1 -1
  32. package/dist/components/Combobox/Combobox.mjs +1 -1
  33. package/dist/components/Combobox/Combobox.types.mjs +0 -0
  34. package/dist/components/Combobox/index.mjs +1 -1
  35. package/dist/components/Container/Container.types.mjs +0 -0
  36. package/dist/components/Divider/Divider.mjs +1 -1
  37. package/dist/components/Divider/Divider.types.mjs +0 -0
  38. package/dist/components/Divider/index.mjs +1 -1
  39. package/dist/components/Drawer/Drawer.types.mjs +0 -0
  40. package/dist/components/DropdownMenu/DropdownMenu.types.mjs +0 -0
  41. package/dist/components/EmptyState/EmptyState.types.mjs +0 -0
  42. package/dist/components/FileUpload/FileUpload.mjs +1 -1
  43. package/dist/components/FileUpload/FileUpload.types.mjs +0 -0
  44. package/dist/components/FileUpload/index.mjs +1 -1
  45. package/dist/components/Form/Form.types.mjs +0 -0
  46. package/dist/components/Form/FormInput.mjs +38 -38
  47. package/dist/components/Form/FormInput.types.mjs +0 -0
  48. package/dist/components/Form/index.mjs +38 -38
  49. package/dist/components/Grid/Grid.types.mjs +0 -0
  50. package/dist/components/Icon/Icon.types.mjs +0 -0
  51. package/dist/components/Input/Input.types.mjs +0 -0
  52. package/dist/components/Kbd/Kbd.types.mjs +0 -0
  53. package/dist/components/List/List.mjs +1 -1
  54. package/dist/components/List/List.types.mjs +0 -0
  55. package/dist/components/List/ListItem.mjs +1 -1
  56. package/dist/components/List/ListItem.types.mjs +0 -0
  57. package/dist/components/List/index.mjs +2 -2
  58. package/dist/components/Modal/Modal.types.mjs +0 -0
  59. package/dist/components/Navbar/Navbar.types.mjs +0 -0
  60. package/dist/components/Navbar/NavbarItem.types.mjs +0 -0
  61. package/dist/components/Navbar/index.mjs +3 -3
  62. package/dist/components/NumberInput/NumberInput.types.mjs +0 -0
  63. package/dist/components/Pagination/Pagination.types.mjs +0 -0
  64. package/dist/components/Popover/Popover.types.mjs +0 -0
  65. package/dist/components/Progress/Progress.types.mjs +0 -0
  66. package/dist/components/Radio/Radio.types.mjs +0 -0
  67. package/dist/components/ScrollArea/ScrollArea.types.mjs +0 -0
  68. package/dist/components/Select/Select.mjs +1 -1
  69. package/dist/components/Select/Select.types.mjs +0 -0
  70. package/dist/components/Select/index.mjs +1 -1
  71. package/dist/components/Separator/Separator.types.mjs +0 -0
  72. package/dist/components/Skeleton/Skeleton.types.mjs +0 -0
  73. package/dist/components/Spinner/Spinner.types.mjs +0 -0
  74. package/dist/components/Stack/Stack.types.mjs +0 -0
  75. package/dist/components/Stepper/Stepper.types.mjs +0 -0
  76. package/dist/components/Table/Table.types.mjs +0 -0
  77. package/dist/components/Tabs/Tabs.types.mjs +0 -0
  78. package/dist/components/Tag/Tag.types.mjs +0 -0
  79. package/dist/components/Text/Text.types.mjs +0 -0
  80. package/dist/components/TextArea/TextArea.types.mjs +0 -0
  81. package/dist/components/Toast/Toast.mjs +1 -1
  82. package/dist/components/Toast/Toast.types.mjs +0 -0
  83. package/dist/components/Toast/index.mjs +1 -1
  84. package/dist/components/Toggle/Toggle.types.mjs +0 -0
  85. package/dist/components/Tooltip/Tooltip.types.mjs +0 -0
  86. package/dist/components/VisuallyHidden/VisuallyHidden.types.mjs +0 -0
  87. package/dist/components/index.mjs +65 -65
  88. package/dist/index.core.mjs +65 -65
  89. package/package.json +1 -1
  90. package/src/components/Accordion/Accordion.tsx +7 -22
  91. package/src/components/Accordion/Accordion.types.ts +21 -0
  92. package/src/components/Accordion/index.ts +2 -1
  93. package/src/components/Alert/Alert.tsx +1 -9
  94. package/src/components/Alert/Alert.types.ts +12 -0
  95. package/src/components/AspectRatio/AspectRatio.tsx +2 -8
  96. package/src/components/AspectRatio/AspectRatio.types.ts +9 -0
  97. package/src/components/Avatar/Avatar.tsx +1 -10
  98. package/src/components/Avatar/Avatar.types.ts +13 -0
  99. package/src/components/Badge/Badge.tsx +1 -13
  100. package/src/components/Badge/Badge.types.ts +13 -0
  101. package/src/components/Box/Box.tsx +2 -8
  102. package/src/components/Box/Box.types.ts +9 -0
  103. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +0 -2
  104. package/src/components/Breadcrumb/Breadcrumb.tsx +1 -14
  105. package/src/components/Breadcrumb/Breadcrumb.types.ts +14 -0
  106. package/src/components/Button/Button.tsx +1 -9
  107. package/src/components/Button/Button.types.ts +12 -0
  108. package/src/components/Card/Card.tsx +1 -8
  109. package/src/components/Card/Card.types.ts +12 -0
  110. package/src/components/Checkbox/Checkbox.tsx +1 -7
  111. package/src/components/Checkbox/Checkbox.types.ts +8 -0
  112. package/src/components/Collapse/Collapse.stories.tsx +0 -2
  113. package/src/components/Collapse/Collapse.tsx +2 -14
  114. package/src/components/Collapse/Collapse.types.ts +13 -0
  115. package/src/components/Collapse/styles.css.ts +1 -2
  116. package/src/components/Combobox/Combobox.stories.tsx +1 -1
  117. package/src/components/Combobox/Combobox.tsx +2 -28
  118. package/src/components/Combobox/Combobox.types.ts +28 -0
  119. package/src/components/Combobox/styles.css.ts +1 -1
  120. package/src/components/Container/Container.tsx +1 -11
  121. package/src/components/Container/Container.types.ts +12 -0
  122. package/src/components/Divider/Divider.tsx +1 -11
  123. package/src/components/Divider/Divider.types.ts +11 -0
  124. package/src/components/Drawer/Drawer.tsx +1 -18
  125. package/src/components/Drawer/Drawer.types.ts +19 -0
  126. package/src/components/Drawer/styles.css.ts +1 -1
  127. package/src/components/DropdownMenu/DropdownMenu.tsx +5 -30
  128. package/src/components/DropdownMenu/DropdownMenu.types.ts +31 -0
  129. package/src/components/DropdownMenu/styles.css.ts +1 -1
  130. package/src/components/EmptyState/EmptyState.tsx +1 -9
  131. package/src/components/EmptyState/EmptyState.types.ts +10 -0
  132. package/src/components/EmptyState/styles.css.ts +1 -1
  133. package/src/components/FileUpload/FileUpload.stories.tsx +1 -1
  134. package/src/components/FileUpload/FileUpload.tsx +2 -30
  135. package/src/components/FileUpload/FileUpload.types.ts +31 -0
  136. package/src/components/FileUpload/styles.css.ts +1 -1
  137. package/src/components/Form/Form.stories.tsx +0 -4
  138. package/src/components/Form/Form.tsx +1 -6
  139. package/src/components/Form/Form.types.ts +7 -0
  140. package/src/components/Form/FormInput.tsx +1 -3
  141. package/src/components/Form/FormInput.types.ts +4 -0
  142. package/src/components/Grid/Grid.tsx +1 -12
  143. package/src/components/Grid/Grid.types.ts +13 -0
  144. package/src/components/Icon/Icon.tsx +1 -8
  145. package/src/components/Icon/Icon.types.ts +9 -0
  146. package/src/components/Icon/styles.css.ts +1 -1
  147. package/src/components/Input/Input.stories.tsx +0 -3
  148. package/src/components/Input/Input.tsx +1 -7
  149. package/src/components/Input/Input.types.ts +8 -0
  150. package/src/components/Input/index.ts +1 -0
  151. package/src/components/Kbd/Kbd.tsx +1 -6
  152. package/src/components/Kbd/Kbd.types.ts +7 -0
  153. package/src/components/Kbd/styles.css.ts +1 -1
  154. package/src/components/List/List.tsx +2 -5
  155. package/src/components/List/List.types.ts +6 -0
  156. package/src/components/List/ListItem.tsx +2 -5
  157. package/src/components/List/ListItem.types.ts +6 -0
  158. package/src/components/Modal/Modal.tsx +1 -15
  159. package/src/components/Modal/Modal.types.ts +16 -0
  160. package/src/components/Navbar/Navbar.stories.tsx +0 -3
  161. package/src/components/Navbar/Navbar.tsx +1 -5
  162. package/src/components/Navbar/Navbar.types.ts +6 -0
  163. package/src/components/Navbar/NavbarItem.tsx +1 -5
  164. package/src/components/Navbar/NavbarItem.types.ts +6 -0
  165. package/src/components/NumberInput/NumberInput.stories.tsx +1 -1
  166. package/src/components/NumberInput/NumberInput.tsx +1 -24
  167. package/src/components/NumberInput/NumberInput.types.ts +25 -0
  168. package/src/components/NumberInput/styles.css.ts +1 -1
  169. package/src/components/Pagination/Pagination.stories.tsx +0 -2
  170. package/src/components/Pagination/Pagination.tsx +1 -11
  171. package/src/components/Pagination/Pagination.types.ts +12 -0
  172. package/src/components/Popover/Popover.stories.tsx +0 -2
  173. package/src/components/Popover/Popover.tsx +1 -27
  174. package/src/components/Popover/Popover.types.ts +28 -0
  175. package/src/components/Popover/styles.css.ts +1 -1
  176. package/src/components/Progress/Progress.stories.tsx +0 -2
  177. package/src/components/Progress/Progress.tsx +1 -10
  178. package/src/components/Progress/Progress.types.ts +13 -0
  179. package/src/components/Radio/Radio.tsx +5 -25
  180. package/src/components/Radio/Radio.types.ts +28 -0
  181. package/src/components/ScrollArea/ScrollArea.tsx +1 -11
  182. package/src/components/ScrollArea/ScrollArea.types.ts +12 -0
  183. package/src/components/ScrollArea/styles.css.ts +1 -1
  184. package/src/components/Select/Select.stories.tsx +0 -2
  185. package/src/components/Select/Select.tsx +2 -16
  186. package/src/components/Select/Select.types.ts +16 -0
  187. package/src/components/Select/styles.css.ts +1 -1
  188. package/src/components/Separator/Separator.tsx +1 -9
  189. package/src/components/Separator/Separator.types.ts +10 -0
  190. package/src/components/Separator/styles.css.ts +1 -1
  191. package/src/components/Skeleton/Skeleton.tsx +1 -15
  192. package/src/components/Skeleton/Skeleton.types.ts +16 -0
  193. package/src/components/Skeleton/styles.css.ts +1 -1
  194. package/src/components/Spinner/Spinner.tsx +1 -17
  195. package/src/components/Spinner/Spinner.types.ts +18 -0
  196. package/src/components/Stack/Stack.tsx +1 -21
  197. package/src/components/Stack/Stack.types.ts +23 -0
  198. package/src/components/Stepper/Stepper.stories.tsx +1 -1
  199. package/src/components/Stepper/Stepper.tsx +1 -20
  200. package/src/components/Stepper/Stepper.types.ts +21 -0
  201. package/src/components/Stepper/styles.css.ts +1 -1
  202. package/src/components/Table/Table.tsx +9 -40
  203. package/src/components/Table/Table.types.ts +40 -0
  204. package/src/components/Tabs/Tabs.tsx +7 -33
  205. package/src/components/Tabs/Tabs.types.ts +36 -0
  206. package/src/components/Tag/Tag.tsx +1 -14
  207. package/src/components/Tag/Tag.types.ts +17 -0
  208. package/src/components/Text/Header.tsx +1 -7
  209. package/src/components/Text/P.stories.tsx +0 -2
  210. package/src/components/Text/P.tsx +1 -6
  211. package/src/components/Text/Text.types.ts +15 -0
  212. package/src/components/TextArea/TextArea.stories.tsx +0 -2
  213. package/src/components/TextArea/TextArea.tsx +1 -7
  214. package/src/components/TextArea/TextArea.types.ts +8 -0
  215. package/src/components/Toast/Toast.tsx +13 -59
  216. package/src/components/Toast/Toast.types.ts +58 -0
  217. package/src/components/Toggle/Toggle.tsx +1 -14
  218. package/src/components/Toggle/Toggle.types.ts +15 -0
  219. package/src/components/Tooltip/Tooltip.tsx +1 -11
  220. package/src/components/Tooltip/Tooltip.types.ts +12 -0
  221. package/src/components/VisuallyHidden/VisuallyHidden.tsx +1 -6
  222. package/src/components/VisuallyHidden/VisuallyHidden.types.ts +7 -0
  223. package/src/components/VisuallyHidden/styles.css.ts +1 -1
  224. package/src/components/index.ts +96 -21
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type AccordionContextType = {
5
+ allowMultiple?: boolean;
6
+ expandedItems: Set<string>;
7
+ toggleItem: (value: string) => void;
8
+ };
9
+
10
+ export type AccordionProps = React.HTMLAttributes<HTMLDivElement> &
11
+ Sprinkles & {
12
+ children: React.ReactNode;
13
+ allowMultiple?: boolean;
14
+ };
15
+
16
+ export type AccordionItemProps = React.HTMLAttributes<HTMLDivElement> &
17
+ Sprinkles & {
18
+ value: string;
19
+ title: string;
20
+ children: React.ReactNode;
21
+ };
@@ -1 +1,2 @@
1
- export { default as Accordion } from './Accordion';
1
+ export { default as Accordion, AccordionContext } from './Accordion';
2
+ export type { AccordionProps, AccordionContextType, AccordionItemProps } from './Accordion';
@@ -7,15 +7,7 @@ import {
7
7
  } from './styles.css';
8
8
  import React from 'react';
9
9
  import Box from '../Box';
10
- import { Sprinkles } from '../../styles/sprinkles.css';
11
-
12
- type AlertProps = React.HTMLAttributes<HTMLDivElement> &
13
- Sprinkles & {
14
- severity?: 'success' | 'warning' | 'error' | 'info';
15
- dismissible?: boolean;
16
- onDismiss?: () => void;
17
- children?: React.ReactNode;
18
- };
10
+ import { type AlertProps } from './Alert.types';
19
11
 
20
12
  const Alert = ({
21
13
  severity = 'info',
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type AlertSeverity = 'success' | 'warning' | 'error' | 'info';
5
+
6
+ export type AlertProps = React.HTMLAttributes<HTMLDivElement> &
7
+ Sprinkles & {
8
+ severity?: AlertSeverity;
9
+ dismissible?: boolean;
10
+ onDismiss?: () => void;
11
+ children?: React.ReactNode;
12
+ };
@@ -1,12 +1,6 @@
1
1
  import React, { forwardRef } from 'react';
2
- import Box, { type BoxProps } from '../Box';
3
-
4
- export type AspectRatioValue = '1/1' | '4/3' | '16/9' | '21/9' | number;
5
-
6
- export interface AspectRatioProps extends BoxProps {
7
- ratio?: AspectRatioValue;
8
- children?: React.ReactNode;
9
- }
2
+ import Box from '../Box';
3
+ import { type AspectRatioProps } from './AspectRatio.types';
10
4
 
11
5
  const AspectRatio = forwardRef<HTMLElement, AspectRatioProps>(
12
6
  ({ ratio = '1/1', children, ...props }, ref) => {
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { BoxProps } from '../Box';
3
+
4
+ export type AspectRatioValue = '1/1' | '4/3' | '16/9' | '21/9' | number;
5
+
6
+ export interface AspectRatioProps extends BoxProps {
7
+ ratio?: AspectRatioValue;
8
+ children?: React.ReactNode;
9
+ }
@@ -7,16 +7,7 @@ import {
7
7
  avatarWrapper,
8
8
  } from './styles.css';
9
9
  import Box from '../Box';
10
- import { Sprinkles } from '../../styles/sprinkles.css';
11
-
12
- type AvatarProps = React.HTMLAttributes<HTMLDivElement> &
13
- Sprinkles & {
14
- alt?: string;
15
- src?: string;
16
- size?: 'small' | 'medium' | 'large' | 'xlarge';
17
- children?: React.ReactNode;
18
- fallback?: string;
19
- };
10
+ import { type AvatarProps } from './Avatar.types';
20
11
 
21
12
  const Avatar = ({
22
13
  alt,
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type AvatarSize = 'small' | 'medium' | 'large' | 'xlarge';
5
+
6
+ export type AvatarProps = React.HTMLAttributes<HTMLDivElement> &
7
+ Sprinkles & {
8
+ alt?: string;
9
+ src?: string;
10
+ size?: AvatarSize;
11
+ children?: React.ReactNode;
12
+ fallback?: string;
13
+ };
@@ -6,20 +6,8 @@ import {
6
6
  badgeDot,
7
7
  badgeDotSizes,
8
8
  } from './styles.css';
9
- import React from 'react';
10
9
  import Box from '../Box';
11
- import { Sprinkles } from '../../styles/sprinkles.css';
12
-
13
- export type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
14
- export type BadgeSize = 'small' | 'medium' | 'large';
15
-
16
- export type BadgeProps = React.HTMLAttributes<HTMLSpanElement> &
17
- Sprinkles & {
18
- variant?: BadgeVariant;
19
- size?: BadgeSize;
20
- dot?: boolean;
21
- children?: React.ReactNode;
22
- };
10
+ import { type BadgeProps } from './Badge.types';
23
11
 
24
12
  const Badge = ({
25
13
  variant = 'default',
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type BadgeVariant = 'default' | 'success' | 'warning' | 'error' | 'info';
5
+ export type BadgeSize = 'small' | 'medium' | 'large';
6
+
7
+ export type BadgeProps = React.HTMLAttributes<HTMLSpanElement> &
8
+ Sprinkles & {
9
+ variant?: BadgeVariant;
10
+ size?: BadgeSize;
11
+ dot?: boolean;
12
+ children?: React.ReactNode;
13
+ };
@@ -2,13 +2,7 @@ import clsx from 'clsx';
2
2
  import { sprinkles, type Sprinkles } from '../../styles/sprinkles.css';
3
3
  import { reset } from './reset.css';
4
4
  import React, { forwardRef } from 'react';
5
-
6
- type BoxProps = Sprinkles & {
7
- as?: React.ElementType;
8
- children?: React.ReactNode;
9
- className?: string;
10
- [key: string]: unknown;
11
- };
5
+ import { type BoxProps } from './Box.types';
12
6
 
13
7
  const Box = forwardRef<HTMLElement, BoxProps>((props, ref) => {
14
8
  const { as: Component = 'div', className, children, ...rest } = props;
@@ -69,4 +63,4 @@ const Box = forwardRef<HTMLElement, BoxProps>((props, ref) => {
69
63
  Box.displayName = 'Box';
70
64
 
71
65
  export default Box;
72
- export type { BoxProps };
66
+ export type { BoxProps } from './Box.types';
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type BoxProps = Sprinkles & {
5
+ as?: React.ElementType;
6
+ children?: React.ReactNode;
7
+ className?: string;
8
+ [key: string]: unknown;
9
+ };
@@ -1,8 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
 
3
3
  import { Breadcrumb } from '.';
4
- import React from 'react';
5
-
6
4
  const meta = {
7
5
  title: 'Components/Breadcrumb',
8
6
  component: Breadcrumb,
@@ -1,5 +1,4 @@
1
1
  import clsx from 'clsx';
2
- import React from 'react';
3
2
  import {
4
3
  breadcrumb,
5
4
  breadcrumbList,
@@ -9,19 +8,7 @@ import {
9
8
  breadcrumbCurrent,
10
9
  } from './styles.css';
11
10
  import Box from '../Box';
12
- import { Sprinkles } from '../../styles/sprinkles.css';
13
-
14
- type BreadcrumbItem = {
15
- label: string;
16
- href?: string;
17
- current?: boolean;
18
- };
19
-
20
- type BreadcrumbProps = React.HTMLAttributes<HTMLDivElement> &
21
- Sprinkles & {
22
- items: BreadcrumbItem[];
23
- separator?: string;
24
- };
11
+ import { type BreadcrumbProps } from './Breadcrumb.types';
25
12
 
26
13
  const Breadcrumb = ({ items, className, separator = '/' }: BreadcrumbProps) => {
27
14
  return (
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type BreadcrumbItem = {
5
+ label: string;
6
+ href?: string;
7
+ current?: boolean;
8
+ };
9
+
10
+ export type BreadcrumbProps = React.HTMLAttributes<HTMLDivElement> &
11
+ Sprinkles & {
12
+ items: BreadcrumbItem[];
13
+ separator?: string;
14
+ };
@@ -2,15 +2,7 @@ import clsx from 'clsx';
2
2
  import { button, buttonVariants } from './styles.css';
3
3
  import React from 'react';
4
4
  import Box from '../Box';
5
- import { Sprinkles } from '../../styles/sprinkles.css';
6
-
7
- type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> &
8
- Sprinkles & {
9
- variant: 'primary' | 'secondary';
10
- children?: React.ReactNode;
11
- label?: string;
12
- fullWidth?: boolean;
13
- };
5
+ import { type ButtonProps } from './Button.types';
14
6
 
15
7
  const Button = ({ label, ...props }: ButtonProps) => {
16
8
  return (
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type ButtonVariant = 'primary' | 'secondary';
5
+
6
+ export type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> &
7
+ Sprinkles & {
8
+ variant: ButtonVariant;
9
+ children?: React.ReactNode;
10
+ label?: string;
11
+ fullWidth?: boolean;
12
+ };
@@ -2,14 +2,7 @@ import clsx from 'clsx';
2
2
  import { card, cardVariants } from './styles.css';
3
3
  import React from 'react';
4
4
  import Box from '../Box';
5
- import { Sprinkles } from '../../styles/sprinkles.css';
6
-
7
- type CardProps = React.HTMLAttributes<HTMLDivElement> &
8
- Sprinkles & {
9
- variant?: 'elevated' | 'outlined' | 'filled';
10
- children?: React.ReactNode;
11
- padding?: 'none' | 'small' | 'medium' | 'large';
12
- };
5
+ import { type CardProps } from './Card.types';
13
6
 
14
7
  const Card = ({
15
8
  variant = 'elevated',
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type CardVariant = 'elevated' | 'outlined' | 'filled';
5
+ export type CardPadding = 'none' | 'small' | 'medium' | 'large';
6
+
7
+ export type CardProps = React.HTMLAttributes<HTMLDivElement> &
8
+ Sprinkles & {
9
+ variant?: CardVariant;
10
+ children?: React.ReactNode;
11
+ padding?: CardPadding;
12
+ };
@@ -2,13 +2,7 @@ import clsx from 'clsx';
2
2
  import React, { forwardRef, useEffect, useRef } from 'react';
3
3
  import { checkboxContainer, checkboxInput, checkboxLabel } from './styles.css';
4
4
  import Box from '../Box';
5
- import { Sprinkles } from '../../styles/sprinkles.css';
6
-
7
- type CheckboxProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> &
8
- Sprinkles & {
9
- label?: string;
10
- indeterminate?: boolean;
11
- };
5
+ import { type CheckboxProps } from './Checkbox.types';
12
6
 
13
7
  const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(
14
8
  ({ label, className, indeterminate, ...props }, ref) => {
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type CheckboxProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> &
5
+ Sprinkles & {
6
+ label?: string;
7
+ indeterminate?: boolean;
8
+ };
@@ -1,6 +1,4 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
- import { fn } from 'storybook/test';
3
- import React from 'react';
4
2
  import { Collapse } from '.';
5
3
  import { Box } from '../Box';
6
4
 
@@ -1,23 +1,11 @@
1
1
  import clsx from 'clsx';
2
- import React, { useState, useRef, useEffect } from 'react';
2
+ import { useState, useRef, useEffect } from 'react';
3
3
  import {
4
4
  collapseContainer,
5
5
  collapseContent,
6
- collapseAnimation,
7
6
  } from './styles.css';
8
7
  import Box from '../Box';
9
- import { Sprinkles } from '../../styles/sprinkles.css';
10
-
11
- export type CollapseAnimation = 'height' | 'opacity' | 'both';
12
-
13
- export type CollapseProps = React.HTMLAttributes<HTMLDivElement> &
14
- Sprinkles & {
15
- isOpen: boolean;
16
- children: React.ReactNode;
17
- animation?: CollapseAnimation;
18
- duration?: number;
19
- onAnimationEnd?: () => void;
20
- };
8
+ import { type CollapseProps } from './Collapse.types';
21
9
 
22
10
  const Collapse = ({
23
11
  isOpen,
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type CollapseAnimation = 'height' | 'opacity' | 'both';
5
+
6
+ export type CollapseProps = React.HTMLAttributes<HTMLDivElement> &
7
+ Sprinkles & {
8
+ isOpen: boolean;
9
+ children: React.ReactNode;
10
+ animation?: CollapseAnimation;
11
+ duration?: number;
12
+ onAnimationEnd?: () => void;
13
+ };
@@ -1,5 +1,4 @@
1
- import { style, styleVariants, keyframes } from '@vanilla-extract/css';
2
- import { vars } from '../../styles/theme.css';
1
+ import { styleVariants, keyframes } from '@vanilla-extract/css';
3
2
  import { styleWithLayer } from '../../styles/utils';
4
3
 
5
4
  const collapseIn = keyframes({
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
2
  import { fn } from 'storybook/test';
3
- import React from 'react';
3
+
4
4
  import { Combobox } from '.';
5
5
 
6
6
  const meta = {
@@ -1,5 +1,5 @@
1
1
  import clsx from 'clsx';
2
- import React, { useState, useRef, useEffect, useCallback } from 'react';
2
+ import { useState, useRef, useEffect } from 'react';
3
3
  import {
4
4
  comboboxContainer,
5
5
  comboboxInput,
@@ -16,33 +16,7 @@ import {
16
16
  comboboxErrorMessage,
17
17
  } from './styles.css';
18
18
  import Box from '../Box';
19
- import { Sprinkles } from '../../styles/sprinkles.css';
20
-
21
- export interface ComboboxOption {
22
- value: string;
23
- label: string;
24
- disabled?: boolean;
25
- }
26
-
27
- export type ComboboxProps = Omit<
28
- React.InputHTMLAttributes<HTMLInputElement>,
29
- 'onChange' | 'value'
30
- > &
31
- Sprinkles & {
32
- label?: string;
33
- options: ComboboxOption[];
34
- value?: string;
35
- onChange?: (value: string, option: ComboboxOption | null) => void;
36
- onInputChange?: (inputValue: string) => void;
37
- placeholder?: string;
38
- hint?: string;
39
- error?: boolean;
40
- errorMessage?: string;
41
- fullWidth?: boolean;
42
- clearable?: boolean;
43
- disabled?: boolean;
44
- filterFn?: (option: ComboboxOption, inputValue: string) => boolean;
45
- };
19
+ import { type ComboboxProps, type ComboboxOption } from './Combobox.types';
46
20
 
47
21
  const defaultFilterFn = (
48
22
  option: ComboboxOption,
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export interface ComboboxOption {
5
+ value: string;
6
+ label: string;
7
+ disabled?: boolean;
8
+ }
9
+
10
+ export type ComboboxProps = Omit<
11
+ React.InputHTMLAttributes<HTMLInputElement>,
12
+ 'onChange' | 'value'
13
+ > &
14
+ Sprinkles & {
15
+ label?: string;
16
+ options: ComboboxOption[];
17
+ value?: string;
18
+ onChange?: (value: string, option: ComboboxOption | null) => void;
19
+ onInputChange?: (inputValue: string) => void;
20
+ placeholder?: string;
21
+ hint?: string;
22
+ error?: boolean;
23
+ errorMessage?: string;
24
+ fullWidth?: boolean;
25
+ clearable?: boolean;
26
+ disabled?: boolean;
27
+ filterFn?: (option: ComboboxOption, inputValue: string) => boolean;
28
+ };
@@ -1,4 +1,4 @@
1
- import { style, styleVariants } from '@vanilla-extract/css';
1
+ import { styleVariants } from '@vanilla-extract/css';
2
2
  import { vars } from '../../styles/theme.css';
3
3
  import { styleWithLayer } from '../../styles/utils';
4
4
 
@@ -1,16 +1,6 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import Box from '../Box';
3
- import { Sprinkles } from '../../styles/sprinkles.css';
4
-
5
- export type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
6
-
7
- export type ContainerProps = Sprinkles & {
8
- size?: ContainerSize;
9
- centerContent?: boolean;
10
- children?: React.ReactNode;
11
- className?: string;
12
- style?: React.CSSProperties;
13
- };
3
+ import { type ContainerProps, type ContainerSize } from './Container.types';
14
4
 
15
5
  const sizeMap: Record<ContainerSize, string> = {
16
6
  sm: '640px',
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
5
+
6
+ export type ContainerProps = Sprinkles & {
7
+ size?: ContainerSize;
8
+ centerContent?: boolean;
9
+ children?: React.ReactNode;
10
+ className?: string;
11
+ style?: React.CSSProperties;
12
+ };
@@ -5,18 +5,8 @@ import {
5
5
  dividerSizes,
6
6
  dividerVerticalSizes,
7
7
  } from './styles.css';
8
- import React from 'react';
9
8
  import Box from '../Box';
10
- import { Sprinkles } from '../../styles/sprinkles.css';
11
-
12
- export type DividerOrientation = 'horizontal' | 'vertical';
13
- export type DividerSize = 'small' | 'medium' | 'large';
14
-
15
- export type DividerProps = React.HTMLAttributes<HTMLHRElement> &
16
- Sprinkles & {
17
- orientation?: DividerOrientation;
18
- size?: DividerSize;
19
- };
9
+ import { type DividerProps } from './Divider.types';
20
10
 
21
11
  const Divider = ({
22
12
  orientation = 'horizontal',
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type DividerOrientation = 'horizontal' | 'vertical';
5
+ export type DividerSize = 'small' | 'medium' | 'large';
6
+
7
+ export type DividerProps = React.HTMLAttributes<HTMLHRElement> &
8
+ Sprinkles & {
9
+ orientation?: DividerOrientation;
10
+ size?: DividerSize;
11
+ };
@@ -11,24 +11,7 @@ import {
11
11
  drawerFooter,
12
12
  } from './styles.css';
13
13
  import Box from '../Box';
14
- import { Sprinkles } from '../../styles/sprinkles.css';
15
-
16
- export type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
17
- export type DrawerSize = 'small' | 'medium' | 'large' | 'full';
18
-
19
- type DrawerPropsBase = React.HTMLAttributes<HTMLDivElement> & {
20
- isOpen: boolean;
21
- onClose: () => void;
22
- title?: string;
23
- position?: DrawerPosition;
24
- size?: DrawerSize;
25
- children?: React.ReactNode;
26
- footer?: React.ReactNode;
27
- showCloseButton?: boolean;
28
- closeOnOverlayClick?: boolean;
29
- };
30
-
31
- export type DrawerProps = DrawerPropsBase & Sprinkles;
14
+ import { type DrawerProps, type DrawerPosition, type DrawerSize } from './Drawer.types';
32
15
 
33
16
  const sizeMap: Record<DrawerPosition, Record<DrawerSize, string>> = {
34
17
  left: {
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { Sprinkles } from '../../styles/sprinkles.css';
3
+
4
+ export type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';
5
+ export type DrawerSize = 'small' | 'medium' | 'large' | 'full';
6
+
7
+ type DrawerPropsBase = React.HTMLAttributes<HTMLDivElement> & {
8
+ isOpen: boolean;
9
+ onClose: () => void;
10
+ title?: string;
11
+ position?: DrawerPosition;
12
+ size?: DrawerSize;
13
+ children?: React.ReactNode;
14
+ footer?: React.ReactNode;
15
+ showCloseButton?: boolean;
16
+ closeOnOverlayClick?: boolean;
17
+ };
18
+
19
+ export type DrawerProps = DrawerPropsBase & Sprinkles;
@@ -1,4 +1,4 @@
1
- import { style, styleVariants, keyframes } from '@vanilla-extract/css';
1
+ import { styleVariants, keyframes } from '@vanilla-extract/css';
2
2
  import { vars } from '../../styles/theme.css';
3
3
  import { styleWithLayer } from '../../styles/utils';
4
4
 
@@ -12,36 +12,11 @@ import {
12
12
  dropdownMenuLabel,
13
13
  } from './styles.css';
14
14
  import Box from '../Box';
15
- import { Sprinkles } from '../../styles/sprinkles.css';
16
-
17
- export type DropdownMenuPosition =
18
- | 'bottomLeft'
19
- | 'bottomRight'
20
- | 'topLeft'
21
- | 'topRight';
22
- export type DropdownMenuItemVariant = 'default' | 'destructive' | 'disabled';
23
-
24
- export interface DropdownMenuItemProps {
25
- label: string;
26
- onClick?: () => void;
27
- variant?: DropdownMenuItemVariant;
28
- icon?: React.ReactNode;
29
- disabled?: boolean;
30
- }
31
-
32
- export interface DropdownMenuGroupProps {
33
- label?: string;
34
- items: DropdownMenuItemProps[];
35
- }
36
-
37
- export type DropdownMenuProps = React.HTMLAttributes<HTMLDivElement> &
38
- Sprinkles & {
39
- trigger: React.ReactNode;
40
- items?: DropdownMenuItemProps[];
41
- groups?: DropdownMenuGroupProps[];
42
- position?: DropdownMenuPosition;
43
- closeOnItemClick?: boolean;
44
- };
15
+ import {
16
+ type DropdownMenuProps,
17
+ type DropdownMenuItemProps,
18
+ type DropdownMenuGroupProps,
19
+ } from './DropdownMenu.types';
45
20
 
46
21
  const DropdownMenu = ({
47
22
  trigger,