@jordan-mace/chaser-design-system 1.2.7 → 1.2.9

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 (354) hide show
  1. package/dist/index.d.mts +1834 -0
  2. package/dist/index.mjs +4729 -0
  3. package/dist/styles/layers.css.d.mts +6 -0
  4. package/dist/styles/layers.css.mjs +7 -0
  5. package/dist/styles/reset.css.d.mts +1 -0
  6. package/dist/styles/reset.css.mjs +24 -0
  7. package/dist/styles/sprinkles.css.d.mts +246 -0
  8. package/dist/styles/sprinkles.css.mjs +200 -0
  9. package/dist/styles/theme.css.d.mts +41 -0
  10. package/dist/styles/theme.css.mjs +50 -0
  11. package/package.json +18 -9
  12. package/src/components/Accordion/Accordion.tsx +21 -16
  13. package/src/components/Alert/Alert.tsx +11 -7
  14. package/src/components/Avatar/Avatar.tsx +16 -14
  15. package/src/components/Badge/Badge.tsx +8 -6
  16. package/src/components/Box/reset.css.ts +2 -2
  17. package/src/components/Breadcrumb/Breadcrumb.tsx +7 -10
  18. package/src/components/Button/Button.tsx +9 -11
  19. package/src/components/Card/Card.tsx +8 -10
  20. package/src/components/Checkbox/Checkbox.tsx +11 -8
  21. package/src/components/Collapse/Collapse.tsx +12 -9
  22. package/src/components/Combobox/Combobox.tsx +60 -31
  23. package/src/components/Container/Container.tsx +4 -3
  24. package/src/components/Divider/Divider.tsx +9 -5
  25. package/src/components/Drawer/Drawer.tsx +20 -13
  26. package/src/components/DropdownMenu/DropdownMenu.tsx +37 -15
  27. package/src/components/EmptyState/EmptyState.tsx +9 -12
  28. package/src/components/FileUpload/FileUpload.tsx +61 -45
  29. package/src/components/Form/Form.tsx +6 -8
  30. package/src/components/Grid/Grid.tsx +18 -13
  31. package/src/components/Icon/Icon.tsx +7 -6
  32. package/src/components/Input/Input.tsx +7 -8
  33. package/src/components/Kbd/Kbd.tsx +5 -4
  34. package/src/components/List/List.tsx +6 -2
  35. package/src/components/List/ListItem.tsx +6 -2
  36. package/src/components/Modal/Modal.tsx +16 -5
  37. package/src/components/Navbar/Navbar.tsx +2 -1
  38. package/src/components/Navbar/NavbarItem.tsx +2 -1
  39. package/src/components/NumberInput/NumberInput.tsx +29 -22
  40. package/src/components/Pagination/Pagination.tsx +39 -28
  41. package/src/components/Popover/Popover.tsx +37 -21
  42. package/src/components/Progress/Progress.tsx +39 -38
  43. package/src/components/Radio/Radio.tsx +12 -6
  44. package/src/components/ScrollArea/ScrollArea.tsx +9 -10
  45. package/src/components/Select/Select.tsx +12 -7
  46. package/src/components/Separator/Separator.tsx +8 -14
  47. package/src/components/Skeleton/Skeleton.tsx +11 -13
  48. package/src/components/Spinner/Spinner.tsx +15 -11
  49. package/src/components/Stack/Stack.tsx +34 -15
  50. package/src/components/Stepper/Stepper.tsx +19 -17
  51. package/src/components/Table/Table.tsx +31 -21
  52. package/src/components/Tabs/Tabs.tsx +14 -10
  53. package/src/components/Tag/Tag.tsx +8 -7
  54. package/src/components/Text/Header.tsx +6 -5
  55. package/src/components/Text/P.tsx +5 -4
  56. package/src/components/TextArea/TextArea.tsx +7 -8
  57. package/src/components/Toggle/Toggle.tsx +16 -7
  58. package/src/components/Tooltip/Tooltip.tsx +16 -11
  59. package/src/components/VisuallyHidden/VisuallyHidden.tsx +7 -8
  60. package/src/index.ts +6 -1
  61. package/dist/components/Accordion/Accordion.d.ts +0 -16
  62. package/dist/components/Accordion/Accordion.js +0 -43
  63. package/dist/components/Accordion/index.d.ts +0 -1
  64. package/dist/components/Accordion/index.js +0 -1
  65. package/dist/components/Accordion/styles.css.d.ts +0 -7
  66. package/dist/components/Accordion/styles.css.js +0 -65
  67. package/dist/components/Alert/Alert.d.ts +0 -9
  68. package/dist/components/Alert/Alert.js +0 -8
  69. package/dist/components/Alert/index.d.ts +0 -1
  70. package/dist/components/Alert/index.js +0 -1
  71. package/dist/components/Alert/styles.css.d.ts +0 -4
  72. package/dist/components/Alert/styles.css.js +0 -54
  73. package/dist/components/AspectRatio/AspectRatio.d.ts +0 -9
  74. package/dist/components/AspectRatio/AspectRatio.js +0 -12
  75. package/dist/components/AspectRatio/index.d.ts +0 -2
  76. package/dist/components/AspectRatio/index.js +0 -1
  77. package/dist/components/Avatar/Avatar.d.ts +0 -11
  78. package/dist/components/Avatar/Avatar.js +0 -13
  79. package/dist/components/Avatar/index.d.ts +0 -1
  80. package/dist/components/Avatar/index.js +0 -1
  81. package/dist/components/Avatar/styles.css.d.ts +0 -4
  82. package/dist/components/Avatar/styles.css.js +0 -151
  83. package/dist/components/Badge/Badge.d.ts +0 -11
  84. package/dist/components/Badge/Badge.js +0 -8
  85. package/dist/components/Badge/index.d.ts +0 -2
  86. package/dist/components/Badge/index.js +0 -1
  87. package/dist/components/Badge/styles.css.d.ts +0 -5
  88. package/dist/components/Badge/styles.css.js +0 -77
  89. package/dist/components/Box/Box.d.ts +0 -11
  90. package/dist/components/Box/Box.js +0 -54
  91. package/dist/components/Box/index.d.ts +0 -2
  92. package/dist/components/Box/index.js +0 -1
  93. package/dist/components/Box/reset.css.d.ts +0 -1
  94. package/dist/components/Box/reset.css.js +0 -15
  95. package/dist/components/Breadcrumb/Breadcrumb.d.ts +0 -12
  96. package/dist/components/Breadcrumb/Breadcrumb.js +0 -8
  97. package/dist/components/Breadcrumb/index.d.ts +0 -1
  98. package/dist/components/Breadcrumb/index.js +0 -1
  99. package/dist/components/Breadcrumb/styles.css.d.ts +0 -6
  100. package/dist/components/Breadcrumb/styles.css.js +0 -50
  101. package/dist/components/Button/Button.d.ts +0 -9
  102. package/dist/components/Button/Button.js +0 -8
  103. package/dist/components/Button/index.d.ts +0 -1
  104. package/dist/components/Button/index.js +0 -1
  105. package/dist/components/Button/styles.css.d.ts +0 -2
  106. package/dist/components/Button/styles.css.js +0 -30
  107. package/dist/components/Card/Card.d.ts +0 -8
  108. package/dist/components/Card/Card.js +0 -8
  109. package/dist/components/Card/index.d.ts +0 -1
  110. package/dist/components/Card/index.js +0 -1
  111. package/dist/components/Card/styles.css.d.ts +0 -2
  112. package/dist/components/Card/styles.css.js +0 -25
  113. package/dist/components/Checkbox/Checkbox.d.ts +0 -6
  114. package/dist/components/Checkbox/Checkbox.js +0 -25
  115. package/dist/components/Checkbox/index.d.ts +0 -1
  116. package/dist/components/Checkbox/index.js +0 -1
  117. package/dist/components/Checkbox/styles.css.d.ts +0 -3
  118. package/dist/components/Checkbox/styles.css.js +0 -31
  119. package/dist/components/Collapse/Collapse.d.ts +0 -12
  120. package/dist/components/Collapse/Collapse.js +0 -56
  121. package/dist/components/Collapse/index.d.ts +0 -2
  122. package/dist/components/Collapse/index.js +0 -1
  123. package/dist/components/Collapse/styles.css.d.ts +0 -3
  124. package/dist/components/Collapse/styles.css.js +0 -36
  125. package/dist/components/Combobox/Combobox.d.ts +0 -23
  126. package/dist/components/Combobox/Combobox.js +0 -104
  127. package/dist/components/Combobox/index.d.ts +0 -2
  128. package/dist/components/Combobox/index.js +0 -1
  129. package/dist/components/Combobox/styles.css.d.ts +0 -13
  130. package/dist/components/Combobox/styles.css.js +0 -142
  131. package/dist/components/Container/Container.d.ts +0 -11
  132. package/dist/components/Container/Container.js +0 -21
  133. package/dist/components/Container/index.d.ts +0 -2
  134. package/dist/components/Container/index.js +0 -1
  135. package/dist/components/Divider/Divider.d.ts +0 -9
  136. package/dist/components/Divider/Divider.js +0 -8
  137. package/dist/components/Divider/index.d.ts +0 -2
  138. package/dist/components/Divider/index.js +0 -1
  139. package/dist/components/Divider/styles.css.d.ts +0 -4
  140. package/dist/components/Divider/styles.css.js +0 -41
  141. package/dist/components/Drawer/Drawer.d.ts +0 -16
  142. package/dist/components/Drawer/Drawer.js +0 -65
  143. package/dist/components/Drawer/index.d.ts +0 -2
  144. package/dist/components/Drawer/index.js +0 -1
  145. package/dist/components/Drawer/styles.css.d.ts +0 -8
  146. package/dist/components/Drawer/styles.css.js +0 -125
  147. package/dist/components/DropdownMenu/DropdownMenu.d.ts +0 -23
  148. package/dist/components/DropdownMenu/DropdownMenu.js +0 -43
  149. package/dist/components/DropdownMenu/index.d.ts +0 -2
  150. package/dist/components/DropdownMenu/index.js +0 -1
  151. package/dist/components/DropdownMenu/styles.css.d.ts +0 -9
  152. package/dist/components/DropdownMenu/styles.css.js +0 -93
  153. package/dist/components/EmptyState/EmptyState.d.ts +0 -10
  154. package/dist/components/EmptyState/EmptyState.js +0 -8
  155. package/dist/components/EmptyState/index.d.ts +0 -2
  156. package/dist/components/EmptyState/index.js +0 -1
  157. package/dist/components/EmptyState/styles.css.d.ts +0 -5
  158. package/dist/components/EmptyState/styles.css.js +0 -30
  159. package/dist/components/FileUpload/FileUpload.d.ts +0 -27
  160. package/dist/components/FileUpload/FileUpload.js +0 -102
  161. package/dist/components/FileUpload/index.d.ts +0 -2
  162. package/dist/components/FileUpload/index.js +0 -1
  163. package/dist/components/FileUpload/styles.css.d.ts +0 -19
  164. package/dist/components/FileUpload/styles.css.js +0 -145
  165. package/dist/components/Form/Form.d.ts +0 -7
  166. package/dist/components/Form/Form.js +0 -8
  167. package/dist/components/Form/FormInput.d.ts +0 -5
  168. package/dist/components/Form/FormInput.js +0 -9
  169. package/dist/components/Form/index.d.ts +0 -2
  170. package/dist/components/Form/index.js +0 -2
  171. package/dist/components/Form/styles.css.d.ts +0 -2
  172. package/dist/components/Form/styles.css.js +0 -11
  173. package/dist/components/Grid/Grid.d.ts +0 -13
  174. package/dist/components/Grid/Grid.js +0 -25
  175. package/dist/components/Grid/index.d.ts +0 -2
  176. package/dist/components/Grid/index.js +0 -1
  177. package/dist/components/Icon/Icon.d.ts +0 -12
  178. package/dist/components/Icon/Icon.js +0 -21
  179. package/dist/components/Icon/index.d.ts +0 -1
  180. package/dist/components/Icon/index.js +0 -1
  181. package/dist/components/Icon/styles.css.d.ts +0 -1
  182. package/dist/components/Icon/styles.css.js +0 -9
  183. package/dist/components/Input/Input.d.ts +0 -7
  184. package/dist/components/Input/Input.js +0 -9
  185. package/dist/components/Input/index.d.ts +0 -1
  186. package/dist/components/Input/index.js +0 -1
  187. package/dist/components/Input/styles.css.d.ts +0 -2
  188. package/dist/components/Input/styles.css.js +0 -8
  189. package/dist/components/Kbd/Kbd.d.ts +0 -7
  190. package/dist/components/Kbd/Kbd.js +0 -6
  191. package/dist/components/Kbd/index.d.ts +0 -2
  192. package/dist/components/Kbd/index.js +0 -1
  193. package/dist/components/Kbd/styles.css.d.ts +0 -1
  194. package/dist/components/Kbd/styles.css.js +0 -16
  195. package/dist/components/List/List.d.ts +0 -5
  196. package/dist/components/List/List.js +0 -7
  197. package/dist/components/List/ListItem.d.ts +0 -5
  198. package/dist/components/List/ListItem.js +0 -7
  199. package/dist/components/List/index.d.ts +0 -2
  200. package/dist/components/List/index.js +0 -2
  201. package/dist/components/List/styles.css.d.ts +0 -2
  202. package/dist/components/List/styles.css.js +0 -11
  203. package/dist/components/Modal/Modal.d.ts +0 -13
  204. package/dist/components/Modal/Modal.js +0 -35
  205. package/dist/components/Modal/index.d.ts +0 -2
  206. package/dist/components/Modal/index.js +0 -1
  207. package/dist/components/Modal/styles.css.d.ts +0 -7
  208. package/dist/components/Modal/styles.css.js +0 -92
  209. package/dist/components/Navbar/Navbar.d.ts +0 -6
  210. package/dist/components/Navbar/Navbar.js +0 -8
  211. package/dist/components/Navbar/NavbarItem.d.ts +0 -6
  212. package/dist/components/Navbar/NavbarItem.js +0 -8
  213. package/dist/components/Navbar/index.d.ts +0 -2
  214. package/dist/components/Navbar/index.js +0 -2
  215. package/dist/components/Navbar/styles.css.d.ts +0 -2
  216. package/dist/components/Navbar/styles.css.js +0 -3
  217. package/dist/components/NumberInput/NumberInput.d.ts +0 -20
  218. package/dist/components/NumberInput/NumberInput.js +0 -39
  219. package/dist/components/NumberInput/index.d.ts +0 -2
  220. package/dist/components/NumberInput/index.js +0 -1
  221. package/dist/components/NumberInput/styles.css.d.ts +0 -10
  222. package/dist/components/NumberInput/styles.css.js +0 -117
  223. package/dist/components/Pagination/Pagination.d.ts +0 -10
  224. package/dist/components/Pagination/Pagination.js +0 -47
  225. package/dist/components/Pagination/index.d.ts +0 -2
  226. package/dist/components/Pagination/index.js +0 -1
  227. package/dist/components/Pagination/styles.css.d.ts +0 -4
  228. package/dist/components/Pagination/styles.css.js +0 -44
  229. package/dist/components/Popover/Popover.d.ts +0 -18
  230. package/dist/components/Popover/Popover.js +0 -55
  231. package/dist/components/Popover/index.d.ts +0 -2
  232. package/dist/components/Popover/index.js +0 -1
  233. package/dist/components/Popover/styles.css.d.ts +0 -11
  234. package/dist/components/Popover/styles.css.js +0 -185
  235. package/dist/components/Progress/Progress.d.ts +0 -10
  236. package/dist/components/Progress/Progress.js +0 -9
  237. package/dist/components/Progress/index.d.ts +0 -1
  238. package/dist/components/Progress/index.js +0 -1
  239. package/dist/components/Progress/styles.css.d.ts +0 -4
  240. package/dist/components/Progress/styles.css.js +0 -71
  241. package/dist/components/Radio/Radio.d.ts +0 -16
  242. package/dist/components/Radio/Radio.js +0 -25
  243. package/dist/components/Radio/index.d.ts +0 -1
  244. package/dist/components/Radio/index.js +0 -1
  245. package/dist/components/Radio/styles.css.d.ts +0 -5
  246. package/dist/components/Radio/styles.css.js +0 -42
  247. package/dist/components/ScrollArea/ScrollArea.d.ts +0 -11
  248. package/dist/components/ScrollArea/ScrollArea.js +0 -12
  249. package/dist/components/ScrollArea/index.d.ts +0 -2
  250. package/dist/components/ScrollArea/index.js +0 -1
  251. package/dist/components/ScrollArea/styles.css.d.ts +0 -3
  252. package/dist/components/ScrollArea/styles.css.js +0 -25
  253. package/dist/components/Select/Select.d.ts +0 -13
  254. package/dist/components/Select/Select.js +0 -10
  255. package/dist/components/Select/index.d.ts +0 -1
  256. package/dist/components/Select/index.js +0 -1
  257. package/dist/components/Select/styles.css.d.ts +0 -4
  258. package/dist/components/Select/styles.css.js +0 -82
  259. package/dist/components/Separator/Separator.d.ts +0 -8
  260. package/dist/components/Separator/Separator.js +0 -8
  261. package/dist/components/Separator/index.d.ts +0 -2
  262. package/dist/components/Separator/index.js +0 -1
  263. package/dist/components/Separator/styles.css.d.ts +0 -4
  264. package/dist/components/Separator/styles.css.js +0 -28
  265. package/dist/components/Skeleton/Skeleton.d.ts +0 -14
  266. package/dist/components/Skeleton/Skeleton.js +0 -13
  267. package/dist/components/Skeleton/index.d.ts +0 -2
  268. package/dist/components/Skeleton/index.js +0 -1
  269. package/dist/components/Skeleton/styles.css.d.ts +0 -4
  270. package/dist/components/Skeleton/styles.css.js +0 -56
  271. package/dist/components/Spinner/Spinner.d.ts +0 -10
  272. package/dist/components/Spinner/Spinner.js +0 -8
  273. package/dist/components/Spinner/index.d.ts +0 -2
  274. package/dist/components/Spinner/index.js +0 -1
  275. package/dist/components/Spinner/styles.css.d.ts +0 -4
  276. package/dist/components/Spinner/styles.css.js +0 -55
  277. package/dist/components/Stack/Stack.d.ts +0 -16
  278. package/dist/components/Stack/Stack.js +0 -24
  279. package/dist/components/Stack/index.d.ts +0 -2
  280. package/dist/components/Stack/index.js +0 -1
  281. package/dist/components/Stepper/Stepper.d.ts +0 -18
  282. package/dist/components/Stepper/Stepper.js +0 -25
  283. package/dist/components/Stepper/index.d.ts +0 -2
  284. package/dist/components/Stepper/index.js +0 -1
  285. package/dist/components/Stepper/styles.css.d.ts +0 -14
  286. package/dist/components/Stepper/styles.css.js +0 -104
  287. package/dist/components/Table/Table.d.ts +0 -42
  288. package/dist/components/Table/Table.js +0 -39
  289. package/dist/components/Table/index.d.ts +0 -1
  290. package/dist/components/Table/index.js +0 -1
  291. package/dist/components/Table/styles.css.d.ts +0 -8
  292. package/dist/components/Table/styles.css.js +0 -49
  293. package/dist/components/Tabs/Tabs.d.ts +0 -29
  294. package/dist/components/Tabs/Tabs.js +0 -52
  295. package/dist/components/Tabs/index.d.ts +0 -1
  296. package/dist/components/Tabs/index.js +0 -1
  297. package/dist/components/Tabs/styles.css.d.ts +0 -6
  298. package/dist/components/Tabs/styles.css.js +0 -100
  299. package/dist/components/Tag/Tag.d.ts +0 -16
  300. package/dist/components/Tag/Tag.js +0 -18
  301. package/dist/components/Tag/index.d.ts +0 -1
  302. package/dist/components/Tag/index.js +0 -1
  303. package/dist/components/Tag/styles.css.d.ts +0 -3
  304. package/dist/components/Tag/styles.css.js +0 -93
  305. package/dist/components/Text/Header.d.ts +0 -8
  306. package/dist/components/Text/Header.js +0 -8
  307. package/dist/components/Text/P.d.ts +0 -7
  308. package/dist/components/Text/P.js +0 -8
  309. package/dist/components/Text/index.d.ts +0 -2
  310. package/dist/components/Text/index.js +0 -2
  311. package/dist/components/Text/styles.css.d.ts +0 -2
  312. package/dist/components/Text/styles.css.js +0 -13
  313. package/dist/components/TextArea/TextArea.d.ts +0 -7
  314. package/dist/components/TextArea/TextArea.js +0 -9
  315. package/dist/components/TextArea/index.d.ts +0 -2
  316. package/dist/components/TextArea/index.js +0 -1
  317. package/dist/components/TextArea/styles.css.d.ts +0 -2
  318. package/dist/components/TextArea/styles.css.js +0 -10
  319. package/dist/components/Toast/Toast.d.ts +0 -34
  320. package/dist/components/Toast/Toast.js +0 -177
  321. package/dist/components/Toast/index.d.ts +0 -1
  322. package/dist/components/Toast/index.js +0 -1
  323. package/dist/components/Toast/styles.css.d.ts +0 -21
  324. package/dist/components/Toast/styles.css.js +0 -192
  325. package/dist/components/Toggle/Toggle.d.ts +0 -10
  326. package/dist/components/Toggle/Toggle.js +0 -17
  327. package/dist/components/Toggle/index.d.ts +0 -2
  328. package/dist/components/Toggle/index.js +0 -1
  329. package/dist/components/Toggle/styles.css.d.ts +0 -12
  330. package/dist/components/Toggle/styles.css.js +0 -118
  331. package/dist/components/Tooltip/Tooltip.d.ts +0 -10
  332. package/dist/components/Tooltip/Tooltip.js +0 -16
  333. package/dist/components/Tooltip/index.d.ts +0 -2
  334. package/dist/components/Tooltip/index.js +0 -1
  335. package/dist/components/Tooltip/styles.css.d.ts +0 -8
  336. package/dist/components/Tooltip/styles.css.js +0 -86
  337. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +0 -8
  338. package/dist/components/VisuallyHidden/VisuallyHidden.js +0 -9
  339. package/dist/components/VisuallyHidden/index.d.ts +0 -2
  340. package/dist/components/VisuallyHidden/index.js +0 -1
  341. package/dist/components/VisuallyHidden/styles.css.d.ts +0 -1
  342. package/dist/components/VisuallyHidden/styles.css.js +0 -12
  343. package/dist/components/index.d.ts +0 -68
  344. package/dist/components/index.js +0 -47
  345. package/dist/index.d.ts +0 -1
  346. package/dist/index.js +0 -1
  347. package/dist/styles/layers.css.d.ts +0 -3
  348. package/dist/styles/layers.css.js +0 -3
  349. package/dist/styles/sprinkles.css.d.ts +0 -241
  350. package/dist/styles/sprinkles.css.js +0 -165
  351. package/dist/styles/theme.css.d.ts +0 -38
  352. package/dist/styles/theme.css.js +0 -51
  353. package/dist/styles/utils.d.ts +0 -2
  354. package/dist/styles/utils.js +0 -7
@@ -1,102 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import clsx from 'clsx';
3
- import { useState, useRef, useCallback } from 'react';
4
- import { fileUploadContainer, fileUploadDropzone, fileUploadDropzoneVariants, fileUploadLabel, fileUploadText, fileUploadHint, fileUploadInput, fileUploadList, fileUploadItem, fileUploadItemInfo, fileUploadItemName, fileUploadItemSize, fileUploadRemoveButton, fileUploadError, fileUploadIcon, fileUploadProgressBar, fileUploadProgressFill, fileUploadProgressFillVariants, } from './styles.css';
5
- import Box from '../Box';
6
- const formatFileSize = (bytes) => {
7
- if (bytes === 0)
8
- return '0 Bytes';
9
- const k = 1024;
10
- const sizes = ['Bytes', 'KB', 'MB', 'GB'];
11
- const i = Math.floor(Math.log(bytes) / Math.log(k));
12
- return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
13
- };
14
- const FileUpload = ({ label, files = [], onFilesChange, onFileAdd, onFileRemove, accept, multiple = false, maxFileSize, maxFiles, disabled = false, dropzoneText = 'Drag and drop files here, or click to browse', hint, showProgress = true, className, ...props }) => {
15
- const [isDragOver, setIsDragOver] = useState(false);
16
- const [error, setError] = useState(null);
17
- const inputRef = useRef(null);
18
- const validateFile = (file) => {
19
- if (maxFileSize && file.size > maxFileSize) {
20
- return `File size exceeds ${formatFileSize(maxFileSize)}`;
21
- }
22
- if (accept) {
23
- const acceptedTypes = accept.split(',').map(type => type.trim());
24
- const isAccepted = acceptedTypes.some(type => {
25
- if (type.includes('*')) {
26
- return file.type.startsWith(type.replace('/*', ''));
27
- }
28
- return file.type === type || file.name.endsWith(type);
29
- });
30
- if (!isAccepted) {
31
- return `File type not accepted. Allowed: ${accept}`;
32
- }
33
- }
34
- return null;
35
- };
36
- const handleFiles = useCallback((fileList) => {
37
- if (!fileList || disabled)
38
- return;
39
- const newFiles = [];
40
- const errors = [];
41
- Array.from(fileList).forEach(file => {
42
- const validationError = validateFile(file);
43
- if (validationError) {
44
- errors.push(`${file.name}: ${validationError}`);
45
- }
46
- else {
47
- newFiles.push(file);
48
- }
49
- });
50
- if (maxFiles && files.length + newFiles.length > maxFiles) {
51
- errors.push(`Maximum ${maxFiles} files allowed`);
52
- newFiles.splice(maxFiles - files.length);
53
- }
54
- if (errors.length > 0) {
55
- setError(errors.join(', '));
56
- }
57
- else {
58
- setError(null);
59
- }
60
- if (newFiles.length > 0) {
61
- onFileAdd?.(newFiles);
62
- }
63
- }, [disabled, files.length, maxFileSize, maxFiles, accept, onFileAdd]);
64
- const handleDragOver = (e) => {
65
- e.preventDefault();
66
- if (!disabled) {
67
- setIsDragOver(true);
68
- }
69
- };
70
- const handleDragLeave = (e) => {
71
- e.preventDefault();
72
- setIsDragOver(false);
73
- };
74
- const handleDrop = (e) => {
75
- e.preventDefault();
76
- setIsDragOver(false);
77
- handleFiles(e.dataTransfer.files);
78
- };
79
- const handleClick = () => {
80
- if (!disabled) {
81
- inputRef.current?.click();
82
- }
83
- };
84
- const handleInputChange = (e) => {
85
- handleFiles(e.target.files);
86
- e.target.value = '';
87
- };
88
- const handleRemove = (fileId) => {
89
- onFileRemove?.(fileId);
90
- };
91
- const getVariant = () => {
92
- if (disabled)
93
- return 'disabled';
94
- if (error)
95
- return 'error';
96
- if (isDragOver)
97
- return 'dragOver';
98
- return 'default';
99
- };
100
- return (_jsxs(Box, { className: clsx(fileUploadContainer, className), ...props, children: [label && (_jsx(Box, { as: "label", className: fileUploadLabel, children: label })), _jsxs(Box, { as: "div", className: clsx(fileUploadDropzone, fileUploadDropzoneVariants[getVariant()]), onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, onClick: handleClick, role: "button", tabIndex: disabled ? -1 : 0, "aria-disabled": disabled, children: [_jsx(Box, { className: fileUploadIcon, "aria-hidden": "true", children: _jsxs("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "17,8 12,3 7,8" }), _jsx("line", { x1: "12", y1: "3", x2: "12", y2: "15" })] }) }), _jsx(Box, { as: "p", className: fileUploadText, children: dropzoneText }), hint && (_jsx(Box, { as: "p", className: fileUploadHint, children: hint })), _jsx(Box, { as: "input", ref: inputRef, type: "file", className: fileUploadInput, onChange: handleInputChange, accept: accept, multiple: multiple, disabled: disabled, "aria-label": "File upload input" })] }), error && (_jsx(Box, { as: "p", className: fileUploadError, role: "alert", children: error })), files.length > 0 && (_jsx(Box, { as: "ul", className: fileUploadList, "aria-label": "Uploaded files", children: files.map((file) => (_jsxs(Box, { as: "li", className: fileUploadItem, children: [_jsxs(Box, { className: fileUploadItemInfo, children: [_jsx(Box, { as: "p", className: fileUploadItemName, title: file.name, children: file.name }), _jsxs(Box, { as: "p", className: fileUploadItemSize, children: [formatFileSize(file.size), file.status === 'uploading' && showProgress && ' • Uploading...', file.status === 'success' && ' • Complete', file.status === 'error' && file.errorMessage && ` • ${file.errorMessage}`] }), showProgress && file.status === 'uploading' && (_jsx(Box, { className: fileUploadProgressBar, children: _jsx(Box, { className: clsx(fileUploadProgressFill, fileUploadProgressFillVariants[file.status]), style: { width: `${file.progress}%` } }) }))] }), _jsx(Box, { as: "button", className: fileUploadRemoveButton, onClick: () => handleRemove(file.id), type: "button", "aria-label": `Remove ${file.name}`, children: "\u00D7" })] }, file.id))) }))] }));
101
- };
102
- export default FileUpload;
@@ -1,2 +0,0 @@
1
- export { default as FileUpload } from './FileUpload';
2
- export type { FileUploadProps, FileUploadFile } from './FileUpload';
@@ -1 +0,0 @@
1
- export { default as FileUpload } from './FileUpload';
@@ -1,19 +0,0 @@
1
- export declare const fileUploadContainer: string;
2
- export declare const fileUploadDropzone: string;
3
- export declare const fileUploadDropzoneVariants: Record<"default" | "disabled" | "error" | "dragOver", string>;
4
- export declare const fileUploadLabel: string;
5
- export declare const fileUploadText: string;
6
- export declare const fileUploadHint: string;
7
- export declare const fileUploadInput: string;
8
- export declare const fileUploadList: string;
9
- export declare const fileUploadItem: string;
10
- export declare const fileUploadItemInfo: string;
11
- export declare const fileUploadItemName: string;
12
- export declare const fileUploadItemSize: string;
13
- export declare const fileUploadItemProgress: string;
14
- export declare const fileUploadRemoveButton: string;
15
- export declare const fileUploadError: string;
16
- export declare const fileUploadIcon: string;
17
- export declare const fileUploadProgressBar: string;
18
- export declare const fileUploadProgressFill: string;
19
- export declare const fileUploadProgressFillVariants: Record<"success" | "error" | "uploading", string>;
@@ -1,145 +0,0 @@
1
- import { styleVariants } from '@vanilla-extract/css';
2
- import { vars } from '../../styles/theme.css';
3
- import { styleWithLayer } from '../../styles/utils';
4
- export const fileUploadContainer = styleWithLayer({
5
- width: '100%',
6
- });
7
- export const fileUploadDropzone = styleWithLayer({
8
- border: `2px dashed ${vars.colors.borderDefault}`,
9
- borderRadius: '12px',
10
- padding: '2rem',
11
- textAlign: 'center',
12
- cursor: 'pointer',
13
- transition: 'all 0.2s ease',
14
- backgroundColor: vars.colors.backgroundMuted,
15
- ':hover': {
16
- borderColor: vars.colors.inputBorderFocused,
17
- backgroundColor: vars.colors.alertInfoBackground,
18
- },
19
- });
20
- export const fileUploadDropzoneVariants = styleVariants({
21
- default: {},
22
- dragOver: {
23
- borderColor: vars.colors.buttonBackgroundPrimary,
24
- backgroundColor: vars.colors.alertInfoBackground,
25
- borderStyle: 'solid',
26
- },
27
- error: {
28
- borderColor: vars.colors.alertErrorBorder,
29
- backgroundColor: vars.colors.alertErrorBackground,
30
- },
31
- disabled: {
32
- cursor: 'not-allowed',
33
- opacity: 0.6,
34
- ':hover': {
35
- borderColor: vars.colors.borderDefault,
36
- backgroundColor: vars.colors.backgroundMuted,
37
- },
38
- },
39
- });
40
- export const fileUploadLabel = styleWithLayer({
41
- display: 'block',
42
- fontSize: '14px',
43
- fontWeight: '500',
44
- color: vars.colors.textPrimary,
45
- marginBottom: '8px',
46
- });
47
- export const fileUploadText = styleWithLayer({
48
- fontSize: '14px',
49
- color: vars.colors.textSecondary,
50
- marginTop: '0.5rem',
51
- });
52
- export const fileUploadHint = styleWithLayer({
53
- fontSize: '12px',
54
- color: vars.colors.textSecondary,
55
- marginTop: '0.5rem',
56
- });
57
- export const fileUploadInput = styleWithLayer({
58
- display: 'none',
59
- });
60
- export const fileUploadList = styleWithLayer({
61
- marginTop: '1rem',
62
- display: 'flex',
63
- flexDirection: 'column',
64
- gap: '0.75rem',
65
- });
66
- export const fileUploadItem = styleWithLayer({
67
- display: 'flex',
68
- alignItems: 'center',
69
- gap: '0.75rem',
70
- padding: '0.75rem',
71
- backgroundColor: vars.colors.backgroundDefault,
72
- border: `1px solid ${vars.colors.borderMuted}`,
73
- borderRadius: '8px',
74
- });
75
- export const fileUploadItemInfo = styleWithLayer({
76
- flex: 1,
77
- minWidth: 0,
78
- });
79
- export const fileUploadItemName = styleWithLayer({
80
- fontSize: '14px',
81
- fontWeight: '500',
82
- color: vars.colors.textPrimary,
83
- whiteSpace: 'nowrap',
84
- overflow: 'hidden',
85
- textOverflow: 'ellipsis',
86
- });
87
- export const fileUploadItemSize = styleWithLayer({
88
- fontSize: '12px',
89
- color: vars.colors.textSecondary,
90
- marginTop: '2px',
91
- });
92
- export const fileUploadItemProgress = styleWithLayer({
93
- flex: 1,
94
- maxWidth: '200px',
95
- });
96
- export const fileUploadRemoveButton = styleWithLayer({
97
- background: 'none',
98
- border: 'none',
99
- cursor: 'pointer',
100
- padding: '0.25rem',
101
- color: vars.colors.textSecondary,
102
- fontSize: '18px',
103
- display: 'flex',
104
- alignItems: 'center',
105
- justifyContent: 'center',
106
- borderRadius: '4px',
107
- transition: 'all 0.15s ease',
108
- ':hover': {
109
- color: vars.colors.alertErrorText,
110
- backgroundColor: vars.colors.alertErrorBackground,
111
- },
112
- });
113
- export const fileUploadError = styleWithLayer({
114
- fontSize: '12px',
115
- color: vars.colors.alertErrorText,
116
- marginTop: '0.5rem',
117
- });
118
- export const fileUploadIcon = styleWithLayer({
119
- fontSize: '24px',
120
- color: vars.colors.textSecondary,
121
- });
122
- export const fileUploadProgressBar = styleWithLayer({
123
- width: '100%',
124
- height: '4px',
125
- backgroundColor: vars.colors.borderMuted,
126
- borderRadius: '2px',
127
- overflow: 'hidden',
128
- marginTop: '0.5rem',
129
- });
130
- export const fileUploadProgressFill = styleWithLayer({
131
- height: '100%',
132
- backgroundColor: vars.colors.buttonBackgroundPrimary,
133
- transition: 'width 0.3s ease',
134
- });
135
- export const fileUploadProgressFillVariants = styleVariants({
136
- uploading: {
137
- backgroundColor: vars.colors.buttonBackgroundPrimary,
138
- },
139
- success: {
140
- backgroundColor: vars.colors.alertSuccessBorder,
141
- },
142
- error: {
143
- backgroundColor: vars.colors.alertErrorBorder,
144
- },
145
- });
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- type FormProps = React.FormHTMLAttributes<HTMLFormElement> & {
3
- className?: string;
4
- children?: React.ReactNode;
5
- };
6
- declare const Form: (props: FormProps) => import("react/jsx-runtime").JSX.Element;
7
- export default Form;
@@ -1,8 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import clsx from 'clsx';
3
- import { formStyle } from './styles.css';
4
- import Box from '../Box';
5
- const Form = (props) => {
6
- return (_jsx(Box, { as: "form", gap: "medium", paddingX: "large", className: clsx(formStyle, props.className), ...props, children: props.children }));
7
- };
8
- export default Form;
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import { InputProps } from '../Input/Input';
3
- type FormInputProps = React.InputHTMLAttributes<HTMLInputElement> & InputProps;
4
- declare const FormInput: (props: FormInputProps) => import("react/jsx-runtime").JSX.Element;
5
- export default FormInput;
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import clsx from 'clsx';
3
- import { formInputStyle } from './styles.css';
4
- import { Input } from '../..';
5
- import Box from '../Box';
6
- const FormInput = (props) => {
7
- return (_jsx(Box, { as: Input, padding: "small", className: clsx(formInputStyle, props.className), label: props.label, ...props }));
8
- };
9
- export default FormInput;
@@ -1,2 +0,0 @@
1
- export { default as Form } from './Form';
2
- export { default as FormInput } from './FormInput';
@@ -1,2 +0,0 @@
1
- export { default as Form } from './Form';
2
- export { default as FormInput } from './FormInput';
@@ -1,2 +0,0 @@
1
- export declare const formStyle: string;
2
- export declare const formInputStyle: string;
@@ -1,11 +0,0 @@
1
- import { styleWithLayer } from '../../styles/utils';
2
- export const formStyle = styleWithLayer({
3
- display: 'grid',
4
- gridTemplateRows: 'min-content 1fr min-content',
5
- });
6
- export const formInputStyle = styleWithLayer({
7
- display: 'flex',
8
- flexDirection: 'row',
9
- justifyContent: 'space-between',
10
- alignItems: 'center',
11
- });
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- export type GridColumns = 1 | 2 | 3 | 4 | 5 | 6 | 12;
3
- export type GridGap = 'none' | 'small' | 'medium' | 'large';
4
- export interface GridProps {
5
- columns?: GridColumns;
6
- gap?: GridGap;
7
- minChildWidth?: string;
8
- children?: React.ReactNode;
9
- className?: string;
10
- style?: React.CSSProperties;
11
- }
12
- declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLElement>>;
13
- export default Grid;
@@ -1,25 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { forwardRef } from 'react';
3
- import Box from '../Box';
4
- const gapMap = {
5
- none: '0',
6
- small: '0.5rem',
7
- medium: '1rem',
8
- large: '2rem',
9
- };
10
- const Grid = forwardRef(({ columns, gap = 'medium', minChildWidth, children, className, style }, ref) => {
11
- const gapValue = gap;
12
- const gridStyle = {
13
- display: 'grid',
14
- gap: gapMap[gapValue],
15
- };
16
- if (minChildWidth) {
17
- gridStyle.gridTemplateColumns = `repeat(auto-fit, minmax(${minChildWidth}, 1fr))`;
18
- }
19
- else if (columns) {
20
- gridStyle.gridTemplateColumns = `repeat(${columns}, 1fr)`;
21
- }
22
- return (_jsx(Box, { ref: ref, className: className, style: { ...gridStyle, ...style }, children: children }));
23
- });
24
- Grid.displayName = 'Grid';
25
- export default Grid;
@@ -1,2 +0,0 @@
1
- export { default as Grid } from './Grid';
2
- export type { GridProps, GridColumns, GridGap } from './Grid';
@@ -1 +0,0 @@
1
- export { default as Grid } from './Grid';
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- type IconProps = {
3
- name?: string;
4
- children?: React.ReactNode;
5
- className?: string;
6
- color?: string;
7
- };
8
- declare const IconComponent: {
9
- ({ name, children, className, color }: IconProps): import("react/jsx-runtime").JSX.Element;
10
- displayName: string;
11
- };
12
- export default IconComponent;
@@ -1,21 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import clsx from 'clsx';
3
- import { icon } from './styles.css';
4
- import Box from '../Box';
5
- const IconComponent = ({ name, children, className, color }) => {
6
- const iconMap = {
7
- check: '✓',
8
- error: '✗',
9
- warning: '⚠',
10
- info: 'i',
11
- success: '✓',
12
- close: '×',
13
- };
14
- const displayContent = children || (name ? iconMap[name] : undefined);
15
- if (!displayContent) {
16
- return null;
17
- }
18
- return (_jsx(Box, { as: "span", className: clsx(icon, className), style: { color }, "aria-hidden": "true", children: displayContent }));
19
- };
20
- IconComponent.displayName = 'Icon';
21
- export default IconComponent;
@@ -1 +0,0 @@
1
- export { default as Icon } from './Icon';
@@ -1 +0,0 @@
1
- export { default as Icon } from './Icon';
@@ -1 +0,0 @@
1
- export declare const icon: string;
@@ -1,9 +0,0 @@
1
- import { styleWithLayer } from '../../styles/utils';
2
- export const icon = styleWithLayer({
3
- display: 'inline-flex',
4
- alignItems: 'center',
5
- justifyContent: 'center',
6
- fontSize: '16px',
7
- lineHeight: '1',
8
- userSelect: 'none',
9
- });
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- export type InputProps = React.InputHTMLAttributes<HTMLInputElement> & {
3
- label?: string;
4
- fullWidth?: boolean;
5
- };
6
- declare const Input: (props: InputProps) => import("react/jsx-runtime").JSX.Element;
7
- export default Input;
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import clsx from 'clsx';
3
- import { inputStyle, label } from './styles.css';
4
- import { text } from '../Text/styles.css';
5
- import Box from '../Box';
6
- const Input = (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: "input", className: clsx(inputStyle, props.className), width: props.fullWidth ? '100%' : undefined, ...props })] }));
8
- };
9
- export default Input;
@@ -1 +0,0 @@
1
- export { default as Input } from './Input';
@@ -1 +0,0 @@
1
- export { default as Input } from './Input';
@@ -1,2 +0,0 @@
1
- export declare const inputStyle: string;
2
- export declare const label: string;
@@ -1,8 +0,0 @@
1
- import { styleWithLayer } from '../../styles/utils';
2
- export const inputStyle = styleWithLayer({
3
- padding: '0.5rem 1rem',
4
- borderRadius: '0.5rem',
5
- });
6
- export const label = styleWithLayer({
7
- paddingRight: '0.5rem',
8
- });
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- export interface KbdProps {
3
- children: React.ReactNode;
4
- className?: string;
5
- }
6
- declare const Kbd: ({ children, className, ...props }: KbdProps) => import("react/jsx-runtime").JSX.Element;
7
- export default Kbd;
@@ -1,6 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { kbd } from './styles.css';
3
- const Kbd = ({ children, className, ...props }) => {
4
- return (_jsx("kbd", { className: `${kbd} ${className || ''}`, ...props, children: children }));
5
- };
6
- export default Kbd;
@@ -1,2 +0,0 @@
1
- export { default as Kbd } from './Kbd';
2
- export type { KbdProps } from './Kbd';
@@ -1 +0,0 @@
1
- export { default as Kbd } from './Kbd';
@@ -1 +0,0 @@
1
- export declare const kbd: string;
@@ -1,16 +0,0 @@
1
- import { vars } from '../../styles/theme.css';
2
- import { styleWithLayer } from '../../styles/utils';
3
- export const kbd = styleWithLayer({
4
- display: 'inline-block',
5
- padding: '0.125rem 0.375rem',
6
- fontFamily: 'monospace',
7
- fontSize: '0.85em',
8
- fontWeight: '600',
9
- lineHeight: '1.5',
10
- color: vars.colors.textPrimary,
11
- backgroundColor: vars.colors.backgroundMuted,
12
- border: `1px solid ${vars.colors.borderDefault}`,
13
- borderRadius: '4px',
14
- boxShadow: '0 2px 0 rgba(0, 0, 0, 0.1)',
15
- whiteSpace: 'nowrap',
16
- });
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- declare const List: ({ children }: {
3
- children: React.ReactNode;
4
- }) => import("react/jsx-runtime").JSX.Element;
5
- export default List;
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { list } from './styles.css';
3
- import Box from '../Box';
4
- const List = ({ children }) => {
5
- return (_jsx(Box, { as: "ul", className: list, children: children }));
6
- };
7
- export default List;
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- declare const ListItem: ({ children }: {
3
- children: React.ReactNode;
4
- }) => import("react/jsx-runtime").JSX.Element;
5
- export default ListItem;
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { listItem } from './styles.css';
3
- import Box from '../Box';
4
- const ListItem = ({ children }) => {
5
- return (_jsx(Box, { as: "li", className: listItem, children: children }));
6
- };
7
- export default ListItem;
@@ -1,2 +0,0 @@
1
- export { default as List } from './List';
2
- export { default as ListItem } from './ListItem';
@@ -1,2 +0,0 @@
1
- export { default as List } from './List';
2
- export { default as ListItem } from './ListItem';
@@ -1,2 +0,0 @@
1
- export declare const list: string;
2
- export declare const listItem: string;
@@ -1,11 +0,0 @@
1
- import { style } from '@vanilla-extract/css';
2
- import { vars } from '../../styles/theme.css';
3
- export const list = style({
4
- listStyle: 'none',
5
- padding: 0,
6
- margin: 0,
7
- });
8
- export const listItem = style({
9
- padding: '0.5rem 0',
10
- borderBottom: `1px solid ${vars.colors.listBorder}`,
11
- });
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- export type ModalSize = 'small' | 'medium' | 'large' | 'full';
3
- export interface ModalProps extends React.HTMLAttributes<HTMLDialogElement> {
4
- isOpen: boolean;
5
- onClose: () => void;
6
- title?: string;
7
- size?: ModalSize;
8
- children?: React.ReactNode;
9
- footer?: React.ReactNode;
10
- showCloseButton?: boolean;
11
- }
12
- declare const Modal: ({ isOpen, onClose, title, size, children, footer, showCloseButton, ...props }: ModalProps) => import("react/jsx-runtime").JSX.Element;
13
- export default Modal;
@@ -1,35 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import clsx from 'clsx';
3
- import { modal, modalVariants, modalHeader, modalTitle, modalCloseButton, modalBody, modalFooter, } from './styles.css';
4
- import { useEffect, useRef } from 'react';
5
- import Box from '../Box';
6
- const Modal = ({ isOpen, onClose, title, size = 'medium', children, footer, showCloseButton = true, ...props }) => {
7
- const dialogRef = useRef(null);
8
- useEffect(() => {
9
- const dialog = dialogRef.current;
10
- if (!dialog)
11
- return;
12
- if (isOpen) {
13
- dialog.showModal();
14
- dialog.classList.add('open');
15
- }
16
- else {
17
- dialog.close();
18
- dialog.classList.remove('open');
19
- }
20
- const handleClose = () => {
21
- onClose();
22
- };
23
- dialog.addEventListener('close', handleClose);
24
- return () => {
25
- dialog.removeEventListener('close', handleClose);
26
- };
27
- }, [isOpen, onClose]);
28
- return (_jsxs(Box, { as: "dialog", ref: dialogRef, className: clsx(modal, modalVariants[size]), onClick: (e) => {
29
- // Close when clicking the backdrop
30
- if (e.target === dialogRef.current) {
31
- onClose();
32
- }
33
- }, ...props, children: [title && (_jsxs(Box, { as: "div", className: modalHeader, children: [_jsx(Box, { as: "h2", className: modalTitle, children: title }), showCloseButton && (_jsx(Box, { as: "button", className: modalCloseButton, onClick: onClose, "aria-label": "Close modal", type: "button", children: "\u00D7" }))] })), _jsx(Box, { as: "div", className: modalBody, children: children }), footer && _jsx(Box, { as: "div", className: modalFooter, children: footer })] }));
34
- };
35
- export default Modal;
@@ -1,2 +0,0 @@
1
- export { default as Modal } from './Modal';
2
- export type { ModalProps, ModalSize } from './Modal';
@@ -1 +0,0 @@
1
- export { default as Modal } from './Modal';