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

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 +8 -12
  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,6 @@
1
+ export declare const tabsContainer: string;
2
+ export declare const tabsList: string;
3
+ export declare const tabsListHorizontal: string;
4
+ export declare const tabsListVertical: string;
5
+ export declare const tabItem: Record<"active" | "base" | "verticalActive", string>;
6
+ export declare const tabContent: string;
@@ -0,0 +1,100 @@
1
+ import { styleVariants } from '@vanilla-extract/css';
2
+ import { vars } from '../../styles/theme.css';
3
+ import { styleWithLayer } from '../../styles/utils';
4
+ export const tabsContainer = styleWithLayer({
5
+ width: '100%',
6
+ });
7
+ export const tabsList = styleWithLayer({
8
+ display: 'flex',
9
+ gap: '4px',
10
+ borderBottom: `2px solid ${vars.colors.borderDefault}`,
11
+ fontFamily: vars.fontFamily.body,
12
+ });
13
+ export const tabsListHorizontal = styleWithLayer({
14
+ flexDirection: 'row',
15
+ overflowX: 'auto',
16
+ });
17
+ export const tabsListVertical = styleWithLayer({
18
+ flexDirection: 'column',
19
+ borderBottom: 'none',
20
+ borderRight: `2px solid ${vars.colors.borderDefault}`,
21
+ });
22
+ export const tabItem = styleVariants({
23
+ base: {
24
+ padding: '0.75rem 1.5rem',
25
+ fontSize: '14px',
26
+ fontWeight: '500',
27
+ color: vars.colors.textSecondary,
28
+ cursor: 'pointer',
29
+ border: 'none',
30
+ backgroundColor: 'transparent',
31
+ whiteSpace: 'nowrap',
32
+ transition: 'all 0.2s ease',
33
+ ':focus-visible': {
34
+ outline: `2px solid ${vars.colors.buttonBackgroundPrimary}`,
35
+ outlineOffset: '2px',
36
+ },
37
+ ':hover:not(:disabled)': {
38
+ color: vars.colors.textPrimary,
39
+ backgroundColor: vars.colors.backgroundMuted,
40
+ },
41
+ ':disabled': {
42
+ cursor: 'not-allowed',
43
+ opacity: 0.5,
44
+ },
45
+ },
46
+ active: {
47
+ padding: '0.75rem 1.5rem',
48
+ fontSize: '14px',
49
+ fontWeight: '500',
50
+ color: vars.colors.buttonBackgroundPrimary,
51
+ cursor: 'pointer',
52
+ border: 'none',
53
+ backgroundColor: 'transparent',
54
+ whiteSpace: 'nowrap',
55
+ transition: 'all 0.2s ease',
56
+ borderBottom: `2px solid ${vars.colors.buttonBackgroundPrimary}`,
57
+ marginBottom: '-2px',
58
+ ':focus-visible': {
59
+ outline: `2px solid ${vars.colors.buttonBackgroundPrimary}`,
60
+ outlineOffset: '2px',
61
+ },
62
+ ':hover:not(:disabled)': {
63
+ backgroundColor: vars.colors.backgroundMuted,
64
+ },
65
+ ':disabled': {
66
+ cursor: 'not-allowed',
67
+ opacity: 0.5,
68
+ },
69
+ },
70
+ verticalActive: {
71
+ padding: '0.75rem 1.5rem',
72
+ fontSize: '14px',
73
+ fontWeight: '500',
74
+ color: vars.colors.buttonBackgroundPrimary,
75
+ cursor: 'pointer',
76
+ border: 'none',
77
+ backgroundColor: 'transparent',
78
+ whiteSpace: 'nowrap',
79
+ transition: 'all 0.2s ease',
80
+ borderRight: `2px solid ${vars.colors.buttonBackgroundPrimary}`,
81
+ marginRight: '-2px',
82
+ ':focus-visible': {
83
+ outline: `2px solid ${vars.colors.buttonBackgroundPrimary}`,
84
+ outlineOffset: '2px',
85
+ },
86
+ ':hover:not(:disabled)': {
87
+ backgroundColor: vars.colors.backgroundMuted,
88
+ },
89
+ ':disabled': {
90
+ cursor: 'not-allowed',
91
+ opacity: 0.5,
92
+ },
93
+ },
94
+ });
95
+ export const tabContent = styleWithLayer({
96
+ padding: '1.5rem 0',
97
+ fontFamily: vars.fontFamily.body,
98
+ fontSize: '14px',
99
+ color: vars.colors.textPrimary,
100
+ });
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ type TagProps = {
3
+ children: React.ReactNode;
4
+ variant?: 'default' | 'primary' | 'success' | 'warning' | 'error';
5
+ onRemove?: () => void;
6
+ removable?: boolean;
7
+ className?: string;
8
+ };
9
+ type TagGroupProps = {
10
+ children: React.ReactNode;
11
+ className?: string;
12
+ };
13
+ declare const TagComponent: (({ children, variant, onRemove, removable, className, }: TagProps) => import("react/jsx-runtime").JSX.Element) & {
14
+ Group: ({ children, className }: TagGroupProps) => import("react/jsx-runtime").JSX.Element;
15
+ };
16
+ export default TagComponent;
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { tag, removeButton, tagGroup } from './styles.css';
4
+ import Box from '../Box';
5
+ const Tag = ({ children, variant = 'default', onRemove, removable = false, className, }) => {
6
+ return (_jsxs(Box, { as: "span", className: clsx(tag[variant], className), display: "inline", alignItems: "center", children: [children, removable && (_jsx(Box, { as: "span", onClick: onRemove, className: removeButton, role: "button", tabIndex: 0, "aria-label": "Remove tag", onKeyDown: (e) => {
7
+ if (e.key === 'Enter' || e.key === ' ') {
8
+ onRemove?.();
9
+ }
10
+ }, children: "\u00D7" }))] }));
11
+ };
12
+ const TagGroup = ({ children, className }) => {
13
+ return (_jsx(Box, { className: clsx(tagGroup, className), display: "flex", gap: "small", style: { flexWrap: 'wrap' }, children: children }));
14
+ };
15
+ const TagComponent = Object.assign(Tag, {
16
+ Group: TagGroup,
17
+ });
18
+ export default TagComponent;
@@ -0,0 +1 @@
1
+ export { default as Tag } from './Tag';
@@ -0,0 +1 @@
1
+ export { default as Tag } from './Tag';
@@ -0,0 +1,3 @@
1
+ export declare const tag: Record<"default" | "primary" | "base" | "success" | "warning" | "error", string>;
2
+ export declare const removeButton: string;
3
+ export declare const tagGroup: string;
@@ -0,0 +1,93 @@
1
+ import { style, styleVariants } from '@vanilla-extract/css';
2
+ import { vars } from '../../styles/theme.css';
3
+ import { styleWithLayer } from '../../styles/utils';
4
+ export const tag = styleVariants({
5
+ base: {
6
+ display: 'inline-flex',
7
+ alignItems: 'center',
8
+ padding: '4px 12px',
9
+ fontSize: '12px',
10
+ fontWeight: '500',
11
+ fontFamily: vars.fontFamily.body,
12
+ borderRadius: '16px',
13
+ transition: 'all 0.2s ease',
14
+ },
15
+ default: {
16
+ display: 'inline-flex',
17
+ alignItems: 'center',
18
+ padding: '4px 12px',
19
+ fontSize: '12px',
20
+ fontWeight: '500',
21
+ fontFamily: vars.fontFamily.body,
22
+ color: vars.colors.textPrimary,
23
+ backgroundColor: vars.colors.backgroundMuted,
24
+ borderRadius: '16px',
25
+ transition: 'all 0.2s ease',
26
+ },
27
+ primary: {
28
+ display: 'inline-flex',
29
+ alignItems: 'center',
30
+ padding: '4px 12px',
31
+ fontSize: '12px',
32
+ fontWeight: '500',
33
+ fontFamily: vars.fontFamily.body,
34
+ color: vars.colors.buttonTextPrimary,
35
+ backgroundColor: vars.colors.buttonBackgroundPrimary,
36
+ borderRadius: '16px',
37
+ transition: 'all 0.2s ease',
38
+ },
39
+ success: {
40
+ display: 'inline-flex',
41
+ alignItems: 'center',
42
+ padding: '4px 12px',
43
+ fontSize: '12px',
44
+ fontWeight: '500',
45
+ fontFamily: vars.fontFamily.body,
46
+ color: vars.colors.alertSuccessText,
47
+ backgroundColor: vars.colors.alertSuccessBackground,
48
+ borderRadius: '16px',
49
+ transition: 'all 0.2s ease',
50
+ },
51
+ warning: {
52
+ display: 'inline-flex',
53
+ alignItems: 'center',
54
+ padding: '4px 12px',
55
+ fontSize: '12px',
56
+ fontWeight: '500',
57
+ fontFamily: vars.fontFamily.body,
58
+ color: vars.colors.alertWarningText,
59
+ backgroundColor: vars.colors.alertWarningBackground,
60
+ borderRadius: '16px',
61
+ transition: 'all 0.2s ease',
62
+ },
63
+ error: {
64
+ display: 'inline-flex',
65
+ alignItems: 'center',
66
+ padding: '4px 12px',
67
+ fontSize: '12px',
68
+ fontWeight: '500',
69
+ fontFamily: vars.fontFamily.body,
70
+ color: vars.colors.alertErrorText,
71
+ backgroundColor: vars.colors.alertErrorBackground,
72
+ borderRadius: '16px',
73
+ transition: 'all 0.2s ease',
74
+ },
75
+ });
76
+ export const removeButton = style({
77
+ cursor: 'pointer',
78
+ marginLeft: '8px',
79
+ display: 'flex',
80
+ alignItems: 'center',
81
+ justifyContent: 'center',
82
+ color: vars.colors.textSecondary,
83
+ fontSize: '16px',
84
+ lineHeight: '1',
85
+ ':hover': {
86
+ color: vars.colors.textPrimary,
87
+ },
88
+ });
89
+ export const tagGroup = styleWithLayer({
90
+ display: 'flex',
91
+ flexWrap: 'wrap',
92
+ gap: '8px',
93
+ });
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ type HeaderProps = {
3
+ variant: 'h1' | 'h2' | 'h3';
4
+ className?: string;
5
+ children?: React.ReactNode;
6
+ };
7
+ declare const Header: ({ variant, children, className }: HeaderProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default Header;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { heading, text } from './styles.css';
4
+ import Box from '../Box';
5
+ const Header = ({ variant, children, className }) => {
6
+ return (_jsx(Box, { as: variant, className: clsx(className, text, heading), children: children }));
7
+ };
8
+ export default Header;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ type PProps = React.HTMLAttributes<HTMLParagraphElement> & {
3
+ children: React.ReactNode;
4
+ className?: string;
5
+ };
6
+ declare const P: (props: PProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default P;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { text } from './styles.css';
4
+ import Box from '../Box';
5
+ const P = (props) => {
6
+ return (_jsx(Box, { as: "p", className: clsx(props.className, text), children: props.children }));
7
+ };
8
+ export default P;
@@ -0,0 +1,2 @@
1
+ export { default as P } from './P';
2
+ export { default as Header } from './Header';
@@ -0,0 +1,2 @@
1
+ export { default as P } from './P';
2
+ export { default as Header } from './Header';
@@ -0,0 +1,2 @@
1
+ export declare const text: string;
2
+ export declare const heading: string;
@@ -0,0 +1,13 @@
1
+ import { style } from '@vanilla-extract/css';
2
+ import { vars } from '../../styles/theme.css';
3
+ export const text = style({
4
+ color: vars.colors.textPrimary,
5
+ fontFamily: vars.fontFamily.body,
6
+ lineHeight: '24px',
7
+ });
8
+ export const heading = style({
9
+ color: vars.colors.textPrimary,
10
+ fontFamily: vars.fontFamily.heading,
11
+ lineHeight: '32px',
12
+ fontWeight: '700',
13
+ });
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export type TextAreaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement> & {
3
+ label?: string;
4
+ fullWidth?: boolean;
5
+ };
6
+ declare const TextArea: (props: TextAreaProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default TextArea;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { textAreaStyle, label } from './styles.css';
4
+ import { text } from '../Text/styles.css';
5
+ import Box from '../Box';
6
+ const TextArea = (props) => {
7
+ return (_jsxs(Box, { display: "flex", flexDirection: { mobile: 'column', tablet: 'row' }, gap: "small", children: [props.label && (_jsx(Box, { as: "label", className: clsx(text, label), marginX: { mobile: 'auto', tablet: 'none' }, marginY: { mobile: 'none', tablet: 'auto' }, htmlFor: props.id, children: props.label })), _jsx(Box, { as: "textarea", className: clsx(textAreaStyle, props.className), width: props.fullWidth ? '100%' : undefined, ...props })] }));
8
+ };
9
+ export default TextArea;
@@ -0,0 +1,2 @@
1
+ export { default as TextArea } from './TextArea';
2
+ export type { TextAreaProps } from './TextArea';
@@ -0,0 +1 @@
1
+ export { default as TextArea } from './TextArea';
@@ -0,0 +1,2 @@
1
+ export declare const textAreaStyle: string;
2
+ export declare const label: string;
@@ -0,0 +1,10 @@
1
+ import { styleWithLayer } from '../../styles/utils';
2
+ export const textAreaStyle = styleWithLayer({
3
+ padding: '0.5rem 1rem',
4
+ borderRadius: '0.5rem',
5
+ minHeight: '100px',
6
+ resize: 'vertical',
7
+ });
8
+ export const label = styleWithLayer({
9
+ paddingRight: '0.5rem',
10
+ });
@@ -0,0 +1,34 @@
1
+ import { ReactNode } from 'react';
2
+ export type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
3
+ export type ToastVariant = 'success' | 'error' | 'warning' | 'info';
4
+ export type ToastOptions = {
5
+ duration?: number;
6
+ closable?: boolean;
7
+ position?: ToastPosition;
8
+ onClose?: () => void;
9
+ };
10
+ type ToastContextType = {
11
+ addToast: (message: string, variant?: ToastVariant, options?: ToastOptions) => string;
12
+ removeToast: (id: string) => void;
13
+ handleDismissAll: () => void;
14
+ handleResumeAll: () => void;
15
+ };
16
+ type ToastProviderProps = {
17
+ children: ReactNode;
18
+ position?: ToastPosition;
19
+ maxVisible?: number;
20
+ stacking?: 'stack' | 'replace';
21
+ };
22
+ export declare const ToastProvider: ({ children, position, maxVisible, stacking, }: ToastProviderProps) => import("react/jsx-runtime").JSX.Element;
23
+ export declare const useToast: () => ToastContextType;
24
+ export type ToastComponentProps = {
25
+ message: string;
26
+ variant?: ToastVariant;
27
+ options?: ToastOptions;
28
+ className?: string;
29
+ };
30
+ export declare const Toast: {
31
+ ({ message, variant, options, className }: ToastComponentProps): any;
32
+ displayName: string;
33
+ };
34
+ export {};
@@ -0,0 +1,177 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { createContext, useContext, useState, useEffect, useCallback, useRef } from 'react';
3
+ import { createPortal } from 'react-dom';
4
+ import clsx from 'clsx';
5
+ import { toastContainer, toastWrapper, toastItem, toastCloseButton, toastProgressBarContainer, toastProgressBar, toastContent, fadeOutSuccess, fadeOutError, fadeOutWarning, fadeOutInfo, slideInRight, } from './styles.css';
6
+ import { Icon } from '../Icon';
7
+ const ToastContext = createContext({
8
+ addToast: () => '',
9
+ removeToast: () => { },
10
+ handleDismissAll: () => { },
11
+ handleResumeAll: () => { },
12
+ });
13
+ const getFadeOutForVariant = (variant) => {
14
+ const fadeOutMap = {
15
+ success: fadeOutSuccess,
16
+ error: fadeOutError,
17
+ warning: fadeOutWarning,
18
+ info: fadeOutInfo,
19
+ };
20
+ return fadeOutMap[variant] || fadeOutInfo;
21
+ };
22
+ const positionToClassKey = {
23
+ 'top-left': 'topLeft',
24
+ 'top-center': 'topCenter',
25
+ 'top-right': 'topRight',
26
+ 'bottom-left': 'bottomLeft',
27
+ 'bottom-center': 'bottomCenter',
28
+ 'bottom-right': 'bottomRight',
29
+ };
30
+ export const ToastProvider = ({ children, position = 'top-right', maxVisible = 5, stacking = 'stack', }) => {
31
+ const [toasts, setToasts] = useState([]);
32
+ const [pauseId, setPauseId] = useState(null);
33
+ const timeoutsRef = useRef(new Map());
34
+ const pauseTimeoutRef = useRef(null);
35
+ const toastsRef = useRef([]);
36
+ // Keep ref in sync with state
37
+ useEffect(() => {
38
+ toastsRef.current = toasts;
39
+ }, [toasts]);
40
+ const removeToastInternal = useCallback((id) => {
41
+ setToasts((prev) => {
42
+ const toast = prev.find((t) => t.id === id);
43
+ if (toast) {
44
+ toast.options.onClose?.();
45
+ }
46
+ return prev.filter((t) => t.id !== id);
47
+ });
48
+ const timeout = timeoutsRef.current.get(id);
49
+ if (timeout) {
50
+ clearTimeout(timeout);
51
+ timeoutsRef.current.delete(id);
52
+ }
53
+ }, []);
54
+ const addToast = useCallback((message, variant = 'info', options = {}) => {
55
+ const id = `toast-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
56
+ const duration = options.duration ?? 5000;
57
+ const startTime = Date.now();
58
+ const newToast = {
59
+ id,
60
+ message,
61
+ variant,
62
+ options: { ...options, duration, position: options.position ?? position },
63
+ startTime,
64
+ paused: false,
65
+ duration,
66
+ };
67
+ setToasts((prev) => {
68
+ if (stacking === 'replace') {
69
+ return [newToast];
70
+ }
71
+ const filtered = prev.filter((t) => {
72
+ const elapsed = Date.now() - t.startTime;
73
+ return elapsed < (t.options.duration ?? 5000);
74
+ });
75
+ return [...filtered, newToast].slice(-maxVisible);
76
+ });
77
+ const timeoutId = setTimeout(() => {
78
+ removeToastInternal(id);
79
+ }, duration);
80
+ timeoutsRef.current.set(id, timeoutId);
81
+ return id;
82
+ }, [maxVisible, stacking, position, removeToastInternal]);
83
+ const dismissInternal = useCallback((id) => {
84
+ const toast = toastsRef.current.find((t) => t.id === id);
85
+ if (!toast)
86
+ return;
87
+ setToasts((prev) => prev.map((t) => {
88
+ if (t.id === id) {
89
+ return { ...t, paused: true };
90
+ }
91
+ return t;
92
+ }));
93
+ if (pauseTimeoutRef.current) {
94
+ clearTimeout(pauseTimeoutRef.current);
95
+ }
96
+ setPauseId(id);
97
+ pauseTimeoutRef.current = setTimeout(() => {
98
+ setPauseId(null);
99
+ removeToastInternal(id);
100
+ }, 500);
101
+ const timeout = timeoutsRef.current.get(id);
102
+ if (timeout) {
103
+ clearTimeout(timeout);
104
+ timeoutsRef.current.delete(id);
105
+ }
106
+ }, [removeToastInternal]);
107
+ const dismissAllInternal = useCallback(() => {
108
+ setPauseId('all');
109
+ toastsRef.current.forEach((toast) => {
110
+ const timeout = timeoutsRef.current.get(toast.id);
111
+ if (timeout) {
112
+ clearTimeout(timeout);
113
+ timeoutsRef.current.delete(toast.id);
114
+ }
115
+ });
116
+ }, []);
117
+ const resumeAllInternal = useCallback(() => {
118
+ setPauseId(null);
119
+ toastsRef.current.forEach((toast) => {
120
+ if (toast.paused && toast.duration > 500) {
121
+ const timeout = setTimeout(() => {
122
+ removeToastInternal(toast.id);
123
+ }, toast.duration - (Date.now() - toast.startTime));
124
+ timeoutsRef.current.set(toast.id, timeout);
125
+ }
126
+ });
127
+ }, [removeToastInternal]);
128
+ useEffect(() => {
129
+ return () => {
130
+ timeoutsRef.current.forEach((timeout) => clearTimeout(timeout));
131
+ if (pauseTimeoutRef.current) {
132
+ clearTimeout(pauseTimeoutRef.current);
133
+ }
134
+ };
135
+ }, []);
136
+ const value = {
137
+ addToast,
138
+ removeToast: removeToastInternal,
139
+ handleDismissAll: dismissAllInternal,
140
+ handleResumeAll: resumeAllInternal,
141
+ };
142
+ return (_jsxs(ToastContext.Provider, { value: value, children: [children, _jsx(ToastContainer, { toasts: toasts, position: position, pauseId: pauseId, onDismiss: dismissInternal, onDismissAll: dismissAllInternal, onResumeAll: resumeAllInternal })] }));
143
+ };
144
+ const ToastContainer = ({ toasts, position, pauseId, onDismiss, onDismissAll, onResumeAll, }) => {
145
+ const [container, setContainer] = useState(null);
146
+ useEffect(() => {
147
+ const existingContainer = document.getElementById('toast-container');
148
+ if (existingContainer) {
149
+ setContainer(existingContainer);
150
+ }
151
+ else {
152
+ const el = document.createElement('div');
153
+ el.id = 'toast-container';
154
+ document.body.appendChild(el);
155
+ setContainer(el);
156
+ }
157
+ }, []);
158
+ if (!container)
159
+ return null;
160
+ return createPortal(_jsx("div", { className: clsx(toastContainer, toastWrapper[positionToClassKey[position]]), onMouseEnter: onDismissAll, onMouseLeave: onResumeAll, children: toasts.map((toast) => {
161
+ const elapsed = Date.now() - toast.startTime;
162
+ const progress = ((toast.duration - elapsed) / toast.duration) * 100;
163
+ const fadeOutAnimation = getFadeOutForVariant(toast.variant);
164
+ return (_jsx("div", { className: toastItem, style: {
165
+ opacity: toast.paused || pauseId !== null ? 0.7 : 1,
166
+ animation: `${slideInRight} 0.2s ease, 0.2s ease ${fadeOutAnimation} forwards`,
167
+ }, onMouseEnter: () => onDismiss(toast.id), children: _jsxs("div", { className: toastContent, children: [_jsx(Icon, { name: toast.variant === 'success' ? 'check' : toast.variant === 'error' ? 'error' : 'info' }), _jsx("span", { style: { marginLeft: '8px' }, children: toast.message }), toast.options.closable !== false && (_jsx("button", { type: "button", className: toastCloseButton, onClick: () => onDismiss(toast.id), "aria-label": "Close toast", children: _jsx(Icon, { name: "close" }) })), toast.duration > 0 && (_jsx("div", { className: toastProgressBarContainer, children: _jsx("div", { className: toastProgressBar, style: { width: `${progress}%` } }) }))] }) }, toast.id));
168
+ }) }), container);
169
+ };
170
+ export const useToast = () => {
171
+ const context = useContext(ToastContext);
172
+ return context;
173
+ };
174
+ export const Toast = ({ message, variant = 'info', options, className }) => {
175
+ return null;
176
+ };
177
+ Toast.displayName = 'Toast';
@@ -0,0 +1 @@
1
+ export { ToastProvider, Toast, useToast, type ToastOptions, type ToastPosition, type ToastVariant, type ToastComponentProps, } from './Toast';
@@ -0,0 +1 @@
1
+ export { ToastProvider, Toast, useToast, } from './Toast';
@@ -0,0 +1,21 @@
1
+ export declare const slideInRight: string;
2
+ export declare const slideInLeft: string;
3
+ export declare const slideInTop: string;
4
+ export declare const slideOutRight: string;
5
+ export declare const slideOutLeft: string;
6
+ export declare const slideInBottom: string;
7
+ export declare const slideOutBottom: string;
8
+ export declare const fadeIn: string;
9
+ export declare const fadeOut: string;
10
+ export declare const fadeOutSuccess: string;
11
+ export declare const fadeOutError: string;
12
+ export declare const fadeOutWarning: string;
13
+ export declare const fadeOutInfo: string;
14
+ export declare const slideOut: string;
15
+ export declare const toastContainer: string;
16
+ export declare const toastWrapper: Record<"topLeft" | "topCenter" | "topRight" | "bottomLeft" | "bottomCenter" | "bottomRight", string>;
17
+ export declare const toastItem: string;
18
+ export declare const toastCloseButton: string;
19
+ export declare const toastProgressBarContainer: string;
20
+ export declare const toastProgressBar: string;
21
+ export declare const toastContent: string;