@jordan-mace/chaser-design-system 1.2.3 → 1.2.4

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 (299) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +16 -0
  2. package/dist/components/Accordion/Accordion.js +43 -0
  3. package/dist/components/Accordion/index.d.ts +1 -0
  4. package/dist/components/Accordion/index.js +1 -0
  5. package/dist/components/Accordion/styles.css.d.ts +7 -0
  6. package/dist/components/Accordion/styles.css.js +65 -0
  7. package/dist/components/Alert/Alert.d.ts +9 -0
  8. package/dist/components/Alert/Alert.js +8 -0
  9. package/dist/components/Alert/index.d.ts +1 -0
  10. package/dist/components/Alert/index.js +1 -0
  11. package/dist/components/Alert/styles.css.d.ts +4 -0
  12. package/dist/components/Alert/styles.css.js +54 -0
  13. package/dist/components/AspectRatio/AspectRatio.d.ts +9 -0
  14. package/dist/components/AspectRatio/AspectRatio.js +12 -0
  15. package/dist/components/AspectRatio/index.d.ts +2 -0
  16. package/dist/components/AspectRatio/index.js +1 -0
  17. package/dist/components/Avatar/Avatar.d.ts +11 -0
  18. package/dist/components/Avatar/Avatar.js +13 -0
  19. package/dist/components/Avatar/index.d.ts +1 -0
  20. package/dist/components/Avatar/index.js +1 -0
  21. package/dist/components/Avatar/styles.css.d.ts +4 -0
  22. package/dist/components/Avatar/styles.css.js +151 -0
  23. package/dist/components/Badge/Badge.d.ts +11 -0
  24. package/dist/components/Badge/Badge.js +8 -0
  25. package/dist/components/Badge/index.d.ts +2 -0
  26. package/dist/components/Badge/index.js +1 -0
  27. package/dist/components/Badge/styles.css.d.ts +5 -0
  28. package/dist/components/Badge/styles.css.js +77 -0
  29. package/dist/components/Box/Box.d.ts +11 -0
  30. package/dist/components/Box/Box.js +54 -0
  31. package/dist/components/Box/index.d.ts +2 -0
  32. package/dist/components/Box/index.js +1 -0
  33. package/dist/components/Box/reset.css.d.ts +1 -0
  34. package/dist/components/Box/reset.css.js +15 -0
  35. package/dist/components/Breadcrumb/Breadcrumb.d.ts +12 -0
  36. package/dist/components/Breadcrumb/Breadcrumb.js +8 -0
  37. package/dist/components/Breadcrumb/index.d.ts +1 -0
  38. package/dist/components/Breadcrumb/index.js +1 -0
  39. package/dist/components/Breadcrumb/styles.css.d.ts +6 -0
  40. package/dist/components/Breadcrumb/styles.css.js +50 -0
  41. package/dist/components/Button/Button.d.ts +9 -0
  42. package/dist/components/Button/Button.js +8 -0
  43. package/dist/components/Button/index.d.ts +1 -0
  44. package/dist/components/Button/index.js +1 -0
  45. package/dist/components/Button/styles.css.d.ts +2 -0
  46. package/dist/components/Button/styles.css.js +30 -0
  47. package/dist/components/Card/Card.d.ts +8 -0
  48. package/dist/components/Card/Card.js +8 -0
  49. package/dist/components/Card/index.d.ts +1 -0
  50. package/dist/components/Card/index.js +1 -0
  51. package/dist/components/Card/styles.css.d.ts +2 -0
  52. package/dist/components/Card/styles.css.js +25 -0
  53. package/dist/components/Checkbox/Checkbox.d.ts +6 -0
  54. package/dist/components/Checkbox/Checkbox.js +25 -0
  55. package/dist/components/Checkbox/index.d.ts +1 -0
  56. package/dist/components/Checkbox/index.js +1 -0
  57. package/dist/components/Checkbox/styles.css.d.ts +3 -0
  58. package/dist/components/Checkbox/styles.css.js +31 -0
  59. package/dist/components/Collapse/Collapse.d.ts +12 -0
  60. package/dist/components/Collapse/Collapse.js +56 -0
  61. package/dist/components/Collapse/index.d.ts +2 -0
  62. package/dist/components/Collapse/index.js +1 -0
  63. package/dist/components/Collapse/styles.css.d.ts +3 -0
  64. package/dist/components/Collapse/styles.css.js +36 -0
  65. package/dist/components/Combobox/Combobox.d.ts +23 -0
  66. package/dist/components/Combobox/Combobox.js +104 -0
  67. package/dist/components/Combobox/index.d.ts +2 -0
  68. package/dist/components/Combobox/index.js +1 -0
  69. package/dist/components/Combobox/styles.css.d.ts +13 -0
  70. package/dist/components/Combobox/styles.css.js +142 -0
  71. package/dist/components/Container/Container.d.ts +11 -0
  72. package/dist/components/Container/Container.js +21 -0
  73. package/dist/components/Container/index.d.ts +2 -0
  74. package/dist/components/Container/index.js +1 -0
  75. package/dist/components/Divider/Divider.d.ts +9 -0
  76. package/dist/components/Divider/Divider.js +8 -0
  77. package/dist/components/Divider/index.d.ts +2 -0
  78. package/dist/components/Divider/index.js +1 -0
  79. package/dist/components/Divider/styles.css.d.ts +4 -0
  80. package/dist/components/Divider/styles.css.js +41 -0
  81. package/dist/components/Drawer/Drawer.d.ts +16 -0
  82. package/dist/components/Drawer/Drawer.js +65 -0
  83. package/dist/components/Drawer/index.d.ts +2 -0
  84. package/dist/components/Drawer/index.js +1 -0
  85. package/dist/components/Drawer/styles.css.d.ts +8 -0
  86. package/dist/components/Drawer/styles.css.js +125 -0
  87. package/dist/components/DropdownMenu/DropdownMenu.d.ts +23 -0
  88. package/dist/components/DropdownMenu/DropdownMenu.js +43 -0
  89. package/dist/components/DropdownMenu/index.d.ts +2 -0
  90. package/dist/components/DropdownMenu/index.js +1 -0
  91. package/dist/components/DropdownMenu/styles.css.d.ts +9 -0
  92. package/dist/components/DropdownMenu/styles.css.js +93 -0
  93. package/dist/components/EmptyState/EmptyState.d.ts +10 -0
  94. package/dist/components/EmptyState/EmptyState.js +8 -0
  95. package/dist/components/EmptyState/index.d.ts +2 -0
  96. package/dist/components/EmptyState/index.js +1 -0
  97. package/dist/components/EmptyState/styles.css.d.ts +5 -0
  98. package/dist/components/EmptyState/styles.css.js +30 -0
  99. package/dist/components/FileUpload/FileUpload.d.ts +27 -0
  100. package/dist/components/FileUpload/FileUpload.js +102 -0
  101. package/dist/components/FileUpload/index.d.ts +2 -0
  102. package/dist/components/FileUpload/index.js +1 -0
  103. package/dist/components/FileUpload/styles.css.d.ts +19 -0
  104. package/dist/components/FileUpload/styles.css.js +145 -0
  105. package/dist/components/Form/Form.d.ts +7 -0
  106. package/dist/components/Form/Form.js +8 -0
  107. package/dist/components/Form/FormInput.d.ts +5 -0
  108. package/dist/components/Form/FormInput.js +9 -0
  109. package/dist/components/Form/index.d.ts +2 -0
  110. package/dist/components/Form/index.js +2 -0
  111. package/dist/components/Form/styles.css.d.ts +2 -0
  112. package/dist/components/Form/styles.css.js +11 -0
  113. package/dist/components/Grid/Grid.d.ts +13 -0
  114. package/dist/components/Grid/Grid.js +25 -0
  115. package/dist/components/Grid/index.d.ts +2 -0
  116. package/dist/components/Grid/index.js +1 -0
  117. package/dist/components/Icon/Icon.d.ts +12 -0
  118. package/dist/components/Icon/Icon.js +21 -0
  119. package/dist/components/Icon/index.d.ts +1 -0
  120. package/dist/components/Icon/index.js +1 -0
  121. package/dist/components/Icon/styles.css.d.ts +1 -0
  122. package/dist/components/Icon/styles.css.js +9 -0
  123. package/dist/components/Input/Input.d.ts +7 -0
  124. package/dist/components/Input/Input.js +9 -0
  125. package/dist/components/Input/index.d.ts +1 -0
  126. package/dist/components/Input/index.js +1 -0
  127. package/dist/components/Input/styles.css.d.ts +2 -0
  128. package/dist/components/Input/styles.css.js +8 -0
  129. package/dist/components/Kbd/Kbd.d.ts +7 -0
  130. package/dist/components/Kbd/Kbd.js +6 -0
  131. package/dist/components/Kbd/index.d.ts +2 -0
  132. package/dist/components/Kbd/index.js +1 -0
  133. package/dist/components/Kbd/styles.css.d.ts +1 -0
  134. package/dist/components/Kbd/styles.css.js +16 -0
  135. package/dist/components/List/List.d.ts +5 -0
  136. package/dist/components/List/List.js +7 -0
  137. package/dist/components/List/ListItem.d.ts +5 -0
  138. package/dist/components/List/ListItem.js +7 -0
  139. package/dist/components/List/index.d.ts +2 -0
  140. package/dist/components/List/index.js +2 -0
  141. package/dist/components/List/styles.css.d.ts +2 -0
  142. package/dist/components/List/styles.css.js +11 -0
  143. package/dist/components/Modal/Modal.d.ts +13 -0
  144. package/dist/components/Modal/Modal.js +35 -0
  145. package/dist/components/Modal/index.d.ts +2 -0
  146. package/dist/components/Modal/index.js +1 -0
  147. package/dist/components/Modal/styles.css.d.ts +7 -0
  148. package/dist/components/Modal/styles.css.js +92 -0
  149. package/dist/components/Navbar/Navbar.d.ts +6 -0
  150. package/dist/components/Navbar/Navbar.js +8 -0
  151. package/dist/components/Navbar/NavbarItem.d.ts +6 -0
  152. package/dist/components/Navbar/NavbarItem.js +8 -0
  153. package/dist/components/Navbar/index.d.ts +2 -0
  154. package/dist/components/Navbar/index.js +2 -0
  155. package/dist/components/Navbar/styles.css.d.ts +2 -0
  156. package/dist/components/Navbar/styles.css.js +3 -0
  157. package/dist/components/NumberInput/NumberInput.d.ts +20 -0
  158. package/dist/components/NumberInput/NumberInput.js +39 -0
  159. package/dist/components/NumberInput/index.d.ts +2 -0
  160. package/dist/components/NumberInput/index.js +1 -0
  161. package/dist/components/NumberInput/styles.css.d.ts +10 -0
  162. package/dist/components/NumberInput/styles.css.js +117 -0
  163. package/dist/components/Pagination/Pagination.d.ts +10 -0
  164. package/dist/components/Pagination/Pagination.js +47 -0
  165. package/dist/components/Pagination/index.d.ts +2 -0
  166. package/dist/components/Pagination/index.js +1 -0
  167. package/dist/components/Pagination/styles.css.d.ts +4 -0
  168. package/dist/components/Pagination/styles.css.js +44 -0
  169. package/dist/components/Popover/Popover.d.ts +18 -0
  170. package/dist/components/Popover/Popover.js +55 -0
  171. package/dist/components/Popover/index.d.ts +2 -0
  172. package/dist/components/Popover/index.js +1 -0
  173. package/dist/components/Popover/styles.css.d.ts +11 -0
  174. package/dist/components/Popover/styles.css.js +185 -0
  175. package/dist/components/Progress/Progress.d.ts +10 -0
  176. package/dist/components/Progress/Progress.js +9 -0
  177. package/dist/components/Progress/index.d.ts +1 -0
  178. package/dist/components/Progress/index.js +1 -0
  179. package/dist/components/Progress/styles.css.d.ts +4 -0
  180. package/dist/components/Progress/styles.css.js +71 -0
  181. package/dist/components/Radio/Radio.d.ts +16 -0
  182. package/dist/components/Radio/Radio.js +25 -0
  183. package/dist/components/Radio/index.d.ts +1 -0
  184. package/dist/components/Radio/index.js +1 -0
  185. package/dist/components/Radio/styles.css.d.ts +5 -0
  186. package/dist/components/Radio/styles.css.js +42 -0
  187. package/dist/components/ScrollArea/ScrollArea.d.ts +11 -0
  188. package/dist/components/ScrollArea/ScrollArea.js +12 -0
  189. package/dist/components/ScrollArea/index.d.ts +2 -0
  190. package/dist/components/ScrollArea/index.js +1 -0
  191. package/dist/components/ScrollArea/styles.css.d.ts +3 -0
  192. package/dist/components/ScrollArea/styles.css.js +25 -0
  193. package/dist/components/Select/Select.d.ts +13 -0
  194. package/dist/components/Select/Select.js +10 -0
  195. package/dist/components/Select/index.d.ts +1 -0
  196. package/dist/components/Select/index.js +1 -0
  197. package/dist/components/Select/styles.css.d.ts +4 -0
  198. package/dist/components/Select/styles.css.js +82 -0
  199. package/dist/components/Separator/Separator.d.ts +8 -0
  200. package/dist/components/Separator/Separator.js +8 -0
  201. package/dist/components/Separator/index.d.ts +2 -0
  202. package/dist/components/Separator/index.js +1 -0
  203. package/dist/components/Separator/styles.css.d.ts +4 -0
  204. package/dist/components/Separator/styles.css.js +28 -0
  205. package/dist/components/Skeleton/Skeleton.d.ts +14 -0
  206. package/dist/components/Skeleton/Skeleton.js +13 -0
  207. package/dist/components/Skeleton/index.d.ts +2 -0
  208. package/dist/components/Skeleton/index.js +1 -0
  209. package/dist/components/Skeleton/styles.css.d.ts +4 -0
  210. package/dist/components/Skeleton/styles.css.js +56 -0
  211. package/dist/components/Spinner/Spinner.d.ts +10 -0
  212. package/dist/components/Spinner/Spinner.js +8 -0
  213. package/dist/components/Spinner/index.d.ts +2 -0
  214. package/dist/components/Spinner/index.js +1 -0
  215. package/dist/components/Spinner/styles.css.d.ts +4 -0
  216. package/dist/components/Spinner/styles.css.js +55 -0
  217. package/dist/components/Stack/Stack.d.ts +16 -0
  218. package/dist/components/Stack/Stack.js +24 -0
  219. package/dist/components/Stack/index.d.ts +2 -0
  220. package/dist/components/Stack/index.js +1 -0
  221. package/dist/components/Stepper/Stepper.d.ts +18 -0
  222. package/dist/components/Stepper/Stepper.js +25 -0
  223. package/dist/components/Stepper/index.d.ts +2 -0
  224. package/dist/components/Stepper/index.js +1 -0
  225. package/dist/components/Stepper/styles.css.d.ts +14 -0
  226. package/dist/components/Stepper/styles.css.js +104 -0
  227. package/dist/components/Table/Table.d.ts +42 -0
  228. package/dist/components/Table/Table.js +39 -0
  229. package/dist/components/Table/index.d.ts +1 -0
  230. package/dist/components/Table/index.js +1 -0
  231. package/dist/components/Table/styles.css.d.ts +8 -0
  232. package/dist/components/Table/styles.css.js +49 -0
  233. package/dist/components/Tabs/Tabs.d.ts +29 -0
  234. package/dist/components/Tabs/Tabs.js +52 -0
  235. package/dist/components/Tabs/index.d.ts +1 -0
  236. package/dist/components/Tabs/index.js +1 -0
  237. package/dist/components/Tabs/styles.css.d.ts +6 -0
  238. package/dist/components/Tabs/styles.css.js +100 -0
  239. package/dist/components/Tag/Tag.d.ts +16 -0
  240. package/dist/components/Tag/Tag.js +18 -0
  241. package/dist/components/Tag/index.d.ts +1 -0
  242. package/dist/components/Tag/index.js +1 -0
  243. package/dist/components/Tag/styles.css.d.ts +3 -0
  244. package/dist/components/Tag/styles.css.js +93 -0
  245. package/dist/components/Text/Header.d.ts +8 -0
  246. package/dist/components/Text/Header.js +8 -0
  247. package/dist/components/Text/P.d.ts +7 -0
  248. package/dist/components/Text/P.js +8 -0
  249. package/dist/components/Text/index.d.ts +2 -0
  250. package/dist/components/Text/index.js +2 -0
  251. package/dist/components/Text/styles.css.d.ts +2 -0
  252. package/dist/components/Text/styles.css.js +13 -0
  253. package/dist/components/TextArea/TextArea.d.ts +7 -0
  254. package/dist/components/TextArea/TextArea.js +9 -0
  255. package/dist/components/TextArea/index.d.ts +2 -0
  256. package/dist/components/TextArea/index.js +1 -0
  257. package/dist/components/TextArea/styles.css.d.ts +2 -0
  258. package/dist/components/TextArea/styles.css.js +10 -0
  259. package/dist/components/Toast/Toast.d.ts +34 -0
  260. package/dist/components/Toast/Toast.js +177 -0
  261. package/dist/components/Toast/index.d.ts +1 -0
  262. package/dist/components/Toast/index.js +1 -0
  263. package/dist/components/Toast/styles.css.d.ts +21 -0
  264. package/dist/components/Toast/styles.css.js +192 -0
  265. package/dist/components/Toggle/Toggle.d.ts +10 -0
  266. package/dist/components/Toggle/Toggle.js +17 -0
  267. package/dist/components/Toggle/index.d.ts +2 -0
  268. package/dist/components/Toggle/index.js +1 -0
  269. package/dist/components/Toggle/styles.css.d.ts +12 -0
  270. package/dist/components/Toggle/styles.css.js +118 -0
  271. package/dist/components/Tooltip/Tooltip.d.ts +10 -0
  272. package/dist/components/Tooltip/Tooltip.js +16 -0
  273. package/dist/components/Tooltip/index.d.ts +2 -0
  274. package/dist/components/Tooltip/index.js +1 -0
  275. package/dist/components/Tooltip/styles.css.d.ts +8 -0
  276. package/dist/components/Tooltip/styles.css.js +86 -0
  277. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +8 -0
  278. package/dist/components/VisuallyHidden/VisuallyHidden.js +9 -0
  279. package/dist/components/VisuallyHidden/index.d.ts +2 -0
  280. package/dist/components/VisuallyHidden/index.js +1 -0
  281. package/dist/components/VisuallyHidden/styles.css.d.ts +1 -0
  282. package/dist/components/VisuallyHidden/styles.css.js +12 -0
  283. package/dist/components/index.d.ts +68 -0
  284. package/dist/components/index.js +47 -0
  285. package/dist/index.d.ts +1 -0
  286. package/dist/index.js +1 -0
  287. package/dist/styles/layers.css.d.ts +3 -0
  288. package/dist/styles/layers.css.js +3 -0
  289. package/dist/styles/sprinkles.css.d.ts +241 -0
  290. package/dist/styles/sprinkles.css.js +165 -0
  291. package/dist/styles/theme.css.d.ts +38 -0
  292. package/dist/styles/theme.css.js +51 -0
  293. package/dist/styles/utils.d.ts +2 -0
  294. package/dist/styles/utils.js +7 -0
  295. package/package.json +9 -18
  296. package/dist/index.cjs +0 -4894
  297. package/dist/index.d.cts +0 -1111
  298. package/dist/index.d.mts +0 -1111
  299. package/dist/index.mjs +0 -4812
@@ -0,0 +1,15 @@
1
+ import { style } from '@vanilla-extract/css';
2
+ import { componentsLayer } from '../../styles/layers.css';
3
+ export const reset = style({
4
+ '@layer': {
5
+ [componentsLayer]: {
6
+ margin: 0,
7
+ padding: 0,
8
+ border: 0,
9
+ boxSizing: 'border-box',
10
+ fontSize: '100%',
11
+ font: 'inherit',
12
+ verticalAlign: 'baseline',
13
+ },
14
+ },
15
+ });
@@ -0,0 +1,12 @@
1
+ type BreadcrumbItem = {
2
+ label: string;
3
+ href?: string;
4
+ current?: boolean;
5
+ };
6
+ type BreadcrumbProps = {
7
+ items: BreadcrumbItem[];
8
+ className?: string;
9
+ separator?: string;
10
+ };
11
+ declare const Breadcrumb: ({ items, className, separator, }: BreadcrumbProps) => import("react/jsx-runtime").JSX.Element;
12
+ export default Breadcrumb;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { breadcrumb, breadcrumbList, breadcrumbItem, breadcrumbLink, breadcrumbSeparator, breadcrumbCurrent, } from './styles.css';
4
+ import Box from '../Box';
5
+ const Breadcrumb = ({ items, className, separator = '/', }) => {
6
+ return (_jsx(Box, { as: "nav", "aria-label": "Breadcrumb", className: clsx(breadcrumb, className), display: "flex", alignItems: "center", gap: "small", fontSize: "14px", children: _jsx(Box, { as: "ol", className: breadcrumbList, display: "flex", alignItems: "center", style: { listStyle: 'none' }, margin: "none", padding: "none", gap: "small", children: items.map((item, index) => (_jsxs(Box, { as: "li", className: breadcrumbItem, display: "flex", alignItems: "center", children: [item.href && !item.current ? (_jsx(Box, { as: "a", href: item.href, className: breadcrumbLink, display: "inline", alignItems: "center", color: "c5-600", fontSize: "14px", textDecoration: "none", children: item.label })) : (_jsx(Box, { as: "span", className: breadcrumbCurrent, display: "inline", alignItems: "center", color: "c5-700", fontSize: "14px", fontWeight: "500", children: item.label })), index < items.length - 1 && (_jsx(Box, { as: "span", className: breadcrumbSeparator, color: "c5-500", fontSize: "12px", style: { userSelect: 'none' }, children: separator }))] }, index))) }) }));
7
+ };
8
+ export default Breadcrumb;
@@ -0,0 +1 @@
1
+ export { default as Breadcrumb } from './Breadcrumb';
@@ -0,0 +1 @@
1
+ export { default as Breadcrumb } from './Breadcrumb';
@@ -0,0 +1,6 @@
1
+ export declare const breadcrumb: string;
2
+ export declare const breadcrumbList: string;
3
+ export declare const breadcrumbItem: string;
4
+ export declare const breadcrumbLink: string;
5
+ export declare const breadcrumbSeparator: string;
6
+ export declare const breadcrumbCurrent: string;
@@ -0,0 +1,50 @@
1
+ import { style } from '@vanilla-extract/css';
2
+ import { vars } from '../../styles/theme.css';
3
+ import { styleWithLayer } from '../../styles/utils';
4
+ export const breadcrumb = styleWithLayer({
5
+ display: 'flex',
6
+ alignItems: 'center',
7
+ gap: '4px',
8
+ fontFamily: vars.fontFamily.body,
9
+ fontSize: '14px',
10
+ });
11
+ export const breadcrumbList = style({
12
+ display: 'flex',
13
+ alignItems: 'center',
14
+ listStyle: 'none',
15
+ margin: 0,
16
+ padding: 0,
17
+ gap: '4px',
18
+ });
19
+ export const breadcrumbItem = style({
20
+ display: 'flex',
21
+ alignItems: 'center',
22
+ });
23
+ export const breadcrumbLink = style({
24
+ display: 'inline-flex',
25
+ alignItems: 'center',
26
+ color: vars.colors.textSecondary,
27
+ textDecoration: 'none',
28
+ fontSize: '14px',
29
+ ':hover': {
30
+ color: vars.colors.buttonBackgroundPrimary,
31
+ textDecoration: 'underline',
32
+ },
33
+ ':focus-visible': {
34
+ outline: `2px solid ${vars.colors.buttonBackgroundPrimary}`,
35
+ outlineOffset: '2px',
36
+ borderRadius: '4px',
37
+ },
38
+ });
39
+ export const breadcrumbSeparator = style({
40
+ color: vars.colors.textDisabled,
41
+ fontSize: '12px',
42
+ userSelect: 'none',
43
+ });
44
+ export const breadcrumbCurrent = style({
45
+ display: 'inline-flex',
46
+ alignItems: 'center',
47
+ color: vars.colors.textPrimary,
48
+ fontSize: '14px',
49
+ fontWeight: '500',
50
+ });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
3
+ variant: 'primary' | 'secondary';
4
+ children?: React.ReactNode;
5
+ label?: string;
6
+ fullWidth?: boolean;
7
+ };
8
+ declare const Button: ({ label, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
9
+ export default Button;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { button, buttonVariants } from './styles.css';
4
+ import Box from '../Box';
5
+ const Button = ({ label, ...props }) => {
6
+ return (_jsx(Box, { as: "button", borderRadius: "large", width: props.fullWidth ? '100%' : undefined, className: clsx(buttonVariants[props.variant], button, props.className), ...props, children: props.children || label }));
7
+ };
8
+ export default Button;
@@ -0,0 +1 @@
1
+ export { default as Button } from './Button';
@@ -0,0 +1 @@
1
+ export { default as Button } from './Button';
@@ -0,0 +1,2 @@
1
+ export declare const buttonVariants: Record<"primary" | "secondary", string>;
2
+ export declare const button: string;
@@ -0,0 +1,30 @@
1
+ import { styleVariants } from '@vanilla-extract/css';
2
+ import { vars } from '../../styles/theme.css';
3
+ import { styleWithLayer } from '../../styles/utils';
4
+ export const buttonVariants = styleVariants({
5
+ primary: {
6
+ backgroundColor: vars.colors.buttonBackgroundPrimary,
7
+ color: vars.colors.buttonTextPrimary,
8
+ ':focus-visible': {
9
+ backgroundColor: vars.colors.buttonBackgroundFocusedPrimary,
10
+ },
11
+ ':hover': {
12
+ backgroundColor: vars.colors.buttonBackgroundFocusedPrimary,
13
+ },
14
+ },
15
+ secondary: {
16
+ backgroundColor: vars.colors.buttonBackgroundSecondary,
17
+ color: vars.colors.buttonTextSecondary,
18
+ ':focus-visible': {
19
+ backgroundColor: vars.colors.buttonBackgroundFocusedSecondary,
20
+ },
21
+ ':hover': {
22
+ backgroundColor: vars.colors.buttonBackgroundFocusedSecondary,
23
+ },
24
+ },
25
+ });
26
+ export const button = styleWithLayer({
27
+ padding: '1rem',
28
+ borderRadius: '1rem',
29
+ border: 0,
30
+ });
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ type CardProps = React.HTMLAttributes<HTMLDivElement> & {
3
+ variant?: 'elevated' | 'outlined' | 'filled';
4
+ children?: React.ReactNode;
5
+ padding?: 'none' | 'small' | 'medium' | 'large';
6
+ };
7
+ declare const Card: ({ variant, padding, ...props }: CardProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default Card;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { card, cardVariants } from './styles.css';
4
+ import Box from '../Box';
5
+ const Card = ({ variant = 'elevated', padding = 'medium', ...props }) => {
6
+ return (_jsx(Box, { as: "div", borderRadius: "large", padding: padding !== 'none' ? padding : undefined, className: clsx(cardVariants[variant], card, props.className), ...props, children: props.children }));
7
+ };
8
+ export default Card;
@@ -0,0 +1 @@
1
+ export { default as Card } from './Card';
@@ -0,0 +1 @@
1
+ export { default as Card } from './Card';
@@ -0,0 +1,2 @@
1
+ export declare const cardVariants: Record<"filled" | "elevated" | "outlined", string>;
2
+ export declare const card: string;
@@ -0,0 +1,25 @@
1
+ import { styleVariants } from '@vanilla-extract/css';
2
+ import { vars } from '../../styles/theme.css';
3
+ import { styleWithLayer } from '../../styles/utils';
4
+ export const cardVariants = styleVariants({
5
+ elevated: {
6
+ backgroundColor: vars.colors.backgroundDefault,
7
+ boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)',
8
+ border: 'none',
9
+ },
10
+ outlined: {
11
+ backgroundColor: vars.colors.backgroundDefault,
12
+ border: `1px solid ${vars.colors.borderDefault}`,
13
+ boxShadow: 'none',
14
+ },
15
+ filled: {
16
+ backgroundColor: vars.colors.backgroundMuted,
17
+ border: 'none',
18
+ boxShadow: 'none',
19
+ },
20
+ });
21
+ export const card = styleWithLayer({
22
+ display: 'block',
23
+ position: 'relative',
24
+ transition: 'all 0.2s ease-in-out',
25
+ });
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ declare const Checkbox: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> & {
3
+ label?: string;
4
+ indeterminate?: boolean;
5
+ } & React.RefAttributes<HTMLInputElement>>;
6
+ export default Checkbox;
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { forwardRef, useEffect, useRef } from 'react';
4
+ import { checkboxContainer, checkboxInput, checkboxLabel } from './styles.css';
5
+ import Box from '../Box';
6
+ const Checkbox = forwardRef(({ label, className, indeterminate, ...props }, ref) => {
7
+ const inputRef = useRef(null);
8
+ const combinedRef = (node) => {
9
+ if (typeof ref === 'function') {
10
+ ref(node);
11
+ }
12
+ else if (ref) {
13
+ ref.current = node;
14
+ }
15
+ inputRef.current = node;
16
+ };
17
+ useEffect(() => {
18
+ if (inputRef.current) {
19
+ inputRef.current.indeterminate = !!indeterminate;
20
+ }
21
+ }, [indeterminate]);
22
+ return (_jsxs(Box, { as: "label", className: clsx(checkboxContainer, className), display: "flex", alignItems: "center", gap: "small", cursor: "pointer", style: { userSelect: 'none' }, children: [_jsx(Box, { as: "input", type: "checkbox", ref: combinedRef, className: checkboxInput, style: { width: '18px', height: '18px' }, ...props }), label && _jsx(Box, { as: "span", className: checkboxLabel, children: label })] }));
23
+ });
24
+ Checkbox.displayName = 'Checkbox';
25
+ export default Checkbox;
@@ -0,0 +1 @@
1
+ export { default as Checkbox } from './Checkbox';
@@ -0,0 +1 @@
1
+ export { default as Checkbox } from './Checkbox';
@@ -0,0 +1,3 @@
1
+ export declare const checkboxContainer: string;
2
+ export declare const checkboxInput: string;
3
+ export declare const checkboxLabel: string;
@@ -0,0 +1,31 @@
1
+ import { style } from '@vanilla-extract/css';
2
+ import { vars } from '../../styles/theme.css';
3
+ import { styleWithLayer } from '../../styles/utils';
4
+ export const checkboxContainer = styleWithLayer({
5
+ display: 'flex',
6
+ alignItems: 'center',
7
+ gap: '8px',
8
+ cursor: 'pointer',
9
+ userSelect: 'none',
10
+ });
11
+ export const checkboxInput = style({
12
+ width: '18px',
13
+ height: '18px',
14
+ border: `2px solid ${vars.colors.borderDefault}`,
15
+ borderRadius: '4px',
16
+ cursor: 'pointer',
17
+ accentColor: vars.colors.buttonBackgroundPrimary,
18
+ ':focus-visible': {
19
+ outline: `2px solid ${vars.colors.buttonBackgroundPrimary}`,
20
+ outlineOffset: '2px',
21
+ },
22
+ ':disabled': {
23
+ cursor: 'not-allowed',
24
+ opacity: 0.5,
25
+ },
26
+ });
27
+ export const checkboxLabel = styleWithLayer({
28
+ fontFamily: vars.fontFamily.body,
29
+ fontSize: '14px',
30
+ color: vars.colors.textPrimary,
31
+ });
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export type CollapseAnimation = 'height' | 'opacity' | 'both';
3
+ export interface CollapseProps {
4
+ isOpen: boolean;
5
+ children: React.ReactNode;
6
+ animation?: CollapseAnimation;
7
+ duration?: number;
8
+ className?: string;
9
+ onAnimationEnd?: () => void;
10
+ }
11
+ declare const Collapse: ({ isOpen, children, animation, duration, className, onAnimationEnd, }: CollapseProps) => import("react/jsx-runtime").JSX.Element;
12
+ export default Collapse;
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { useState, useRef, useEffect } from 'react';
4
+ import { collapseContainer, collapseContent, } from './styles.css';
5
+ import Box from '../Box';
6
+ const Collapse = ({ isOpen, children, animation = 'both', duration = 300, className, onAnimationEnd, }) => {
7
+ const [height, setHeight] = useState(isOpen ? undefined : 0);
8
+ const [isAnimating, setIsAnimating] = useState(false);
9
+ const contentRef = useRef(null);
10
+ useEffect(() => {
11
+ if (isOpen) {
12
+ setIsAnimating(true);
13
+ if (contentRef.current) {
14
+ setHeight(contentRef.current.scrollHeight);
15
+ }
16
+ }
17
+ else {
18
+ setIsAnimating(true);
19
+ setHeight(0);
20
+ }
21
+ }, [isOpen]);
22
+ const handleTransitionEnd = () => {
23
+ setIsAnimating(false);
24
+ if (isOpen) {
25
+ setHeight(undefined);
26
+ }
27
+ onAnimationEnd?.();
28
+ };
29
+ const getAnimationStyles = () => {
30
+ const baseStyles = {
31
+ transition: `height ${duration}ms ease-out, opacity ${duration}ms ease-out`,
32
+ height: height !== undefined ? `${height}px` : undefined,
33
+ opacity: isOpen || isAnimating ? 1 : 0,
34
+ };
35
+ if (animation === 'height') {
36
+ return {
37
+ ...baseStyles,
38
+ transition: `height ${duration}ms ease-out`,
39
+ opacity: 1,
40
+ };
41
+ }
42
+ if (animation === 'opacity') {
43
+ return {
44
+ ...baseStyles,
45
+ transition: `opacity ${duration}ms ease-out`,
46
+ height: undefined,
47
+ };
48
+ }
49
+ return baseStyles;
50
+ };
51
+ if (!isOpen && !isAnimating && animation !== 'opacity') {
52
+ return null;
53
+ }
54
+ return (_jsx(Box, { className: clsx(collapseContainer, className), style: getAnimationStyles(), onTransitionEnd: handleTransitionEnd, "aria-hidden": !isOpen, children: _jsx(Box, { ref: contentRef, className: collapseContent, children: children }) }));
55
+ };
56
+ export default Collapse;
@@ -0,0 +1,2 @@
1
+ export { default as Collapse } from './Collapse';
2
+ export type { CollapseProps, CollapseAnimation } from './Collapse';
@@ -0,0 +1 @@
1
+ export { default as Collapse } from './Collapse';
@@ -0,0 +1,3 @@
1
+ export declare const collapseContainer: string;
2
+ export declare const collapseContent: string;
3
+ export declare const collapseAnimation: Record<"in" | "out", string>;
@@ -0,0 +1,36 @@
1
+ import { styleVariants, keyframes } from '@vanilla-extract/css';
2
+ import { styleWithLayer } from '../../styles/utils';
3
+ const collapseIn = keyframes({
4
+ from: {
5
+ height: 0,
6
+ opacity: 0,
7
+ },
8
+ to: {
9
+ height: 'auto',
10
+ opacity: 1,
11
+ },
12
+ });
13
+ const collapseOut = keyframes({
14
+ from: {
15
+ height: 'auto',
16
+ opacity: 1,
17
+ },
18
+ to: {
19
+ height: 0,
20
+ opacity: 0,
21
+ },
22
+ });
23
+ export const collapseContainer = styleWithLayer({
24
+ overflow: 'hidden',
25
+ });
26
+ export const collapseContent = styleWithLayer({
27
+ width: '100%',
28
+ });
29
+ export const collapseAnimation = styleVariants({
30
+ in: {
31
+ animation: `${collapseIn} 0.3s ease-out forwards`,
32
+ },
33
+ out: {
34
+ animation: `${collapseOut} 0.3s ease-out forwards`,
35
+ },
36
+ });
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ export interface ComboboxOption {
3
+ value: string;
4
+ label: string;
5
+ disabled?: boolean;
6
+ }
7
+ export interface ComboboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value'> {
8
+ label?: string;
9
+ options: ComboboxOption[];
10
+ value?: string;
11
+ onChange?: (value: string, option: ComboboxOption | null) => void;
12
+ onInputChange?: (inputValue: string) => void;
13
+ placeholder?: string;
14
+ hint?: string;
15
+ error?: boolean;
16
+ errorMessage?: string;
17
+ fullWidth?: boolean;
18
+ clearable?: boolean;
19
+ disabled?: boolean;
20
+ filterFn?: (option: ComboboxOption, inputValue: string) => boolean;
21
+ }
22
+ declare const Combobox: ({ label, options, value, onChange, onInputChange, placeholder, hint, error, errorMessage, fullWidth, clearable, disabled, filterFn, className, ...props }: ComboboxProps) => import("react/jsx-runtime").JSX.Element;
23
+ export default Combobox;
@@ -0,0 +1,104 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { useState, useRef, useEffect } from 'react';
4
+ import { comboboxContainer, comboboxInput, comboboxInputVariants, comboboxLabel, comboboxDropdown, comboboxOption, comboboxOptionSelected, comboboxOptionDisabled, comboboxClearButton, comboboxArrow, comboboxNoResults, comboboxHint, comboboxErrorMessage, } from './styles.css';
5
+ import Box from '../Box';
6
+ const defaultFilterFn = (option, inputValue) => {
7
+ return option.label.toLowerCase().includes(inputValue.toLowerCase());
8
+ };
9
+ const Combobox = ({ label, options, value, onChange, onInputChange, placeholder = 'Search...', hint, error = false, errorMessage, fullWidth = true, clearable = true, disabled = false, filterFn = defaultFilterFn, className, ...props }) => {
10
+ const [inputValue, setInputValue] = useState('');
11
+ const [isOpen, setIsOpen] = useState(false);
12
+ const [highlightedIndex, setHighlightedIndex] = useState(-1);
13
+ const containerRef = useRef(null);
14
+ const inputRef = useRef(null);
15
+ const selectedOption = options.find(opt => opt.value === value);
16
+ useEffect(() => {
17
+ if (selectedOption) {
18
+ setInputValue(selectedOption.label);
19
+ }
20
+ else if (!isOpen) {
21
+ setInputValue('');
22
+ }
23
+ }, [selectedOption, isOpen]);
24
+ const filteredOptions = options.filter(option => filterFn(option, inputValue));
25
+ useEffect(() => {
26
+ const handleClickOutside = (event) => {
27
+ if (containerRef.current && !containerRef.current.contains(event.target)) {
28
+ setIsOpen(false);
29
+ if (selectedOption) {
30
+ setInputValue(selectedOption.label);
31
+ }
32
+ else {
33
+ setInputValue('');
34
+ }
35
+ }
36
+ };
37
+ document.addEventListener('mousedown', handleClickOutside);
38
+ return () => document.removeEventListener('mousedown', handleClickOutside);
39
+ }, [selectedOption]);
40
+ const handleInputChange = (e) => {
41
+ const newValue = e.target.value;
42
+ setInputValue(newValue);
43
+ setIsOpen(true);
44
+ setHighlightedIndex(-1);
45
+ onInputChange?.(newValue);
46
+ if (!newValue) {
47
+ onChange?.('', null);
48
+ }
49
+ };
50
+ const handleOptionClick = (option) => {
51
+ if (option.disabled)
52
+ return;
53
+ setInputValue(option.label);
54
+ setIsOpen(false);
55
+ onChange?.(option.value, option);
56
+ };
57
+ const handleClear = (e) => {
58
+ e.stopPropagation();
59
+ setInputValue('');
60
+ setIsOpen(false);
61
+ onChange?.('', null);
62
+ inputRef.current?.focus();
63
+ };
64
+ const handleKeyDown = (e) => {
65
+ if (disabled)
66
+ return;
67
+ switch (e.key) {
68
+ case 'ArrowDown':
69
+ e.preventDefault();
70
+ if (!isOpen) {
71
+ setIsOpen(true);
72
+ }
73
+ setHighlightedIndex(prev => prev < filteredOptions.length - 1 ? prev + 1 : prev);
74
+ break;
75
+ case 'ArrowUp':
76
+ e.preventDefault();
77
+ setHighlightedIndex(prev => (prev > 0 ? prev - 1 : prev));
78
+ break;
79
+ case 'Enter':
80
+ e.preventDefault();
81
+ if (isOpen && highlightedIndex >= 0 && filteredOptions[highlightedIndex]) {
82
+ handleOptionClick(filteredOptions[highlightedIndex]);
83
+ }
84
+ else {
85
+ setIsOpen(!isOpen);
86
+ }
87
+ break;
88
+ case 'Escape':
89
+ setIsOpen(false);
90
+ if (selectedOption) {
91
+ setInputValue(selectedOption.label);
92
+ }
93
+ else {
94
+ setInputValue('');
95
+ }
96
+ break;
97
+ }
98
+ };
99
+ const displayValue = selectedOption && !isOpen ? selectedOption.label : inputValue;
100
+ return (_jsxs(Box, { className: comboboxContainer, ref: containerRef, width: fullWidth ? '100%' : undefined, children: [label && (_jsx(Box, { as: "label", className: comboboxLabel, children: label })), _jsxs(Box, { position: "relative", children: [_jsx(Box, { as: "input", ref: inputRef, type: "text", value: displayValue, onChange: handleInputChange, onKeyDown: handleKeyDown, onFocus: () => setIsOpen(true), placeholder: placeholder, disabled: disabled, className: clsx(comboboxInput, comboboxInputVariants[error ? 'error' : 'default'], className), role: "combobox", "aria-expanded": isOpen, "aria-autocomplete": "list", "aria-controls": isOpen ? 'combobox-listbox' : undefined, "aria-activedescendant": highlightedIndex >= 0 ? `option-${filteredOptions[highlightedIndex]?.value}` : undefined, ...props }), clearable && inputValue && !disabled && (_jsx(Box, { as: "button", className: comboboxClearButton, onClick: handleClear, type: "button", "aria-label": "Clear selection", children: "\u00D7" })), _jsx(Box, { className: comboboxArrow, "aria-hidden": "true", children: _jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "currentColor", children: _jsx("path", { d: "M6 8L1 3h10z" }) }) })] }), isOpen && (_jsx(Box, { as: "ul", id: "combobox-listbox", className: comboboxDropdown, role: "listbox", children: filteredOptions.length === 0 ? (_jsx(Box, { as: "li", className: comboboxNoResults, children: "No results found" })) : (filteredOptions.map((option, index) => (_jsx(Box, { as: "li", id: `option-${option.value}`, className: clsx(comboboxOption, option.value === value && comboboxOptionSelected, option.disabled && comboboxOptionDisabled), onClick: () => handleOptionClick(option), role: "option", "aria-selected": option.value === value, "aria-disabled": option.disabled, style: {
101
+ backgroundColor: index === highlightedIndex ? 'var(--highlight-color, #f3f4f6)' : undefined,
102
+ }, children: option.label }, option.value)))) })), error && errorMessage && (_jsx(Box, { as: "div", className: comboboxErrorMessage, role: "alert", children: errorMessage })), hint && !error && (_jsx(Box, { as: "div", className: comboboxHint, children: hint }))] }));
103
+ };
104
+ export default Combobox;
@@ -0,0 +1,2 @@
1
+ export { default as Combobox } from './Combobox';
2
+ export type { ComboboxProps, ComboboxOption } from './Combobox';
@@ -0,0 +1 @@
1
+ export { default as Combobox } from './Combobox';
@@ -0,0 +1,13 @@
1
+ export declare const comboboxContainer: string;
2
+ export declare const comboboxInput: string;
3
+ export declare const comboboxInputVariants: Record<"default" | "error", string>;
4
+ export declare const comboboxLabel: string;
5
+ export declare const comboboxDropdown: string;
6
+ export declare const comboboxOption: string;
7
+ export declare const comboboxOptionSelected: string;
8
+ export declare const comboboxOptionDisabled: string;
9
+ export declare const comboboxClearButton: string;
10
+ export declare const comboboxArrow: string;
11
+ export declare const comboboxNoResults: string;
12
+ export declare const comboboxHint: string;
13
+ export declare const comboboxErrorMessage: string;