@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,7 @@
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;
@@ -0,0 +1,2 @@
1
+ export { default as List } from './List';
2
+ export { default as ListItem } from './ListItem';
@@ -0,0 +1,2 @@
1
+ export { default as List } from './List';
2
+ export { default as ListItem } from './ListItem';
@@ -0,0 +1,2 @@
1
+ export declare const list: string;
2
+ export declare const listItem: string;
@@ -0,0 +1,11 @@
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
+ });
@@ -0,0 +1,13 @@
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;
@@ -0,0 +1,35 @@
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;
@@ -0,0 +1,2 @@
1
+ export { default as Modal } from './Modal';
2
+ export type { ModalProps, ModalSize } from './Modal';
@@ -0,0 +1 @@
1
+ export { default as Modal } from './Modal';
@@ -0,0 +1,7 @@
1
+ export declare const modalVariants: Record<"medium" | "large" | "small" | "full", string>;
2
+ export declare const modal: string;
3
+ export declare const modalHeader: string;
4
+ export declare const modalTitle: string;
5
+ export declare const modalCloseButton: string;
6
+ export declare const modalBody: string;
7
+ export declare const modalFooter: string;
@@ -0,0 +1,92 @@
1
+ import { styleVariants } from '@vanilla-extract/css';
2
+ import { vars } from '../../styles/theme.css';
3
+ import { styleWithLayer } from '../../styles/utils';
4
+ export const modalVariants = styleVariants({
5
+ small: {
6
+ maxWidth: '400px',
7
+ },
8
+ medium: {
9
+ maxWidth: '600px',
10
+ },
11
+ large: {
12
+ maxWidth: '800px',
13
+ },
14
+ full: {
15
+ maxWidth: '95vw',
16
+ },
17
+ });
18
+ export const modal = styleWithLayer({
19
+ background: vars.colors.backgroundDefault,
20
+ borderRadius: '0.75rem',
21
+ boxShadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
22
+ border: '1px solid var(--modal-border, transparent)',
23
+ color: vars.colors.textPrimary,
24
+ fontFamily: vars.fontFamily.body,
25
+ maxWidth: '90vw',
26
+ maxHeight: '90vh',
27
+ flexDirection: 'column',
28
+ overflow: 'hidden',
29
+ selectors: {
30
+ '&:not([open])': {
31
+ display: 'none',
32
+ },
33
+ '[open] &': {
34
+ display: 'flex',
35
+ },
36
+ '&::backdrop': {
37
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
38
+ },
39
+ },
40
+ });
41
+ export const modalHeader = styleWithLayer({
42
+ padding: '1.25rem',
43
+ borderBottom: `1px solid ${vars.colors.borderMuted}`,
44
+ display: 'flex',
45
+ alignItems: 'center',
46
+ justifyContent: 'space-between',
47
+ gap: '1rem',
48
+ });
49
+ export const modalTitle = styleWithLayer({
50
+ fontFamily: vars.fontFamily.heading,
51
+ fontSize: '1.25rem',
52
+ fontWeight: '600',
53
+ color: vars.colors.textPrimary,
54
+ margin: 0,
55
+ });
56
+ export const modalCloseButton = styleWithLayer({
57
+ background: 'none',
58
+ border: 'none',
59
+ padding: '0.5rem',
60
+ cursor: 'pointer',
61
+ borderRadius: '0.375rem',
62
+ display: 'flex',
63
+ alignItems: 'center',
64
+ justifyContent: 'center',
65
+ color: vars.colors.textSecondary,
66
+ fontSize: '1.5rem',
67
+ lineHeight: '1',
68
+ transition: 'background-color 0.2s ease-in-out, color 0.2s ease-in-out',
69
+ selectors: {
70
+ '&:hover': {
71
+ backgroundColor: vars.colors.borderMuted,
72
+ color: vars.colors.textPrimary,
73
+ },
74
+ '&:focus-visible': {
75
+ outline: '2px solid var(--modal-focus-ring, currentColor)',
76
+ outlineOffset: '2px',
77
+ },
78
+ },
79
+ });
80
+ export const modalBody = styleWithLayer({
81
+ padding: '1.25rem',
82
+ overflowY: 'auto',
83
+ flex: 1,
84
+ });
85
+ export const modalFooter = styleWithLayer({
86
+ padding: '1.25rem',
87
+ borderTop: `1px solid ${vars.colors.borderMuted}`,
88
+ display: 'flex',
89
+ gap: '0.75rem',
90
+ justifyContent: 'flex-end',
91
+ alignItems: 'center',
92
+ });
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ type NavbarProps = React.HTMLAttributes<HTMLElement> & {
3
+ children?: React.ReactNode;
4
+ };
5
+ declare const Navbar: (props: NavbarProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default Navbar;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { navbarStyle } from './styles.css';
4
+ import Box from '../Box';
5
+ const Navbar = (props) => {
6
+ return (_jsx(Box, { as: "nav", width: "100%", display: "flex", flexDirection: "row", gap: "medium", className: clsx(navbarStyle, props.className), ...props }));
7
+ };
8
+ export default Navbar;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ type NavbarItemProps = React.HTMLAttributes<HTMLDivElement> & {
3
+ children?: React.ReactNode;
4
+ };
5
+ declare const NavbarItem: (props: NavbarItemProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default NavbarItem;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { navbarItemStyle } from './styles.css';
4
+ import Box from '../Box';
5
+ const NavbarItem = (props) => {
6
+ return _jsx(Box, { as: "div", className: clsx(navbarItemStyle, props.className), ...props });
7
+ };
8
+ export default NavbarItem;
@@ -0,0 +1,2 @@
1
+ export { default as Navbar } from './Navbar';
2
+ export { default as NavbarItem } from './NavbarItem';
@@ -0,0 +1,2 @@
1
+ export { default as Navbar } from './Navbar';
2
+ export { default as NavbarItem } from './NavbarItem';
@@ -0,0 +1,2 @@
1
+ export declare const navbarStyle: string;
2
+ export declare const navbarItemStyle: string;
@@ -0,0 +1,3 @@
1
+ import { styleWithLayer } from '../../styles/utils';
2
+ export const navbarStyle = styleWithLayer({});
3
+ export const navbarItemStyle = styleWithLayer({});
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ export type NumberInputPosition = 'right' | 'left';
3
+ export interface NumberInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'min' | 'max'> {
4
+ label?: string;
5
+ value?: number | '';
6
+ onChange?: (value: number | '') => void;
7
+ min?: number;
8
+ max?: number;
9
+ step?: number;
10
+ stepperPosition?: NumberInputPosition;
11
+ placeholder?: string;
12
+ hint?: string;
13
+ error?: boolean;
14
+ errorMessage?: string;
15
+ fullWidth?: boolean;
16
+ disabled?: boolean;
17
+ allowEmpty?: boolean;
18
+ }
19
+ declare const NumberInput: ({ label, value, onChange, min, max, step, stepperPosition, placeholder, hint, error, errorMessage, fullWidth, disabled, allowEmpty, className, ...props }: NumberInputProps) => import("react/jsx-runtime").JSX.Element;
20
+ export default NumberInput;
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { useCallback } from 'react';
4
+ import { numberInputContainer, numberInput, numberInputVariants, numberInputLabel, numberInputStepper, numberInputStepperLeft, numberInputButton, numberInputWrapper, numberInputHint, numberInputErrorMessage, } from './styles.css';
5
+ import Box from '../Box';
6
+ const NumberInput = ({ label, value, onChange, min = -Infinity, max = Infinity, step = 1, stepperPosition = 'right', placeholder = '0', hint, error = false, errorMessage, fullWidth = true, disabled = false, allowEmpty = true, className, ...props }) => {
7
+ const handleChange = (e) => {
8
+ const inputValue = e.target.value;
9
+ if (inputValue === '') {
10
+ if (allowEmpty) {
11
+ onChange?.('');
12
+ }
13
+ else {
14
+ onChange?.(0);
15
+ }
16
+ return;
17
+ }
18
+ const numValue = parseFloat(inputValue);
19
+ if (!isNaN(numValue)) {
20
+ const clampedValue = Math.min(Math.max(numValue, min), max);
21
+ onChange?.(clampedValue);
22
+ }
23
+ };
24
+ const increment = useCallback(() => {
25
+ const currentValue = typeof value === 'number' ? value : 0;
26
+ const newValue = Math.min(currentValue + step, max);
27
+ onChange?.(newValue);
28
+ }, [value, step, max, onChange]);
29
+ const decrement = useCallback(() => {
30
+ const currentValue = typeof value === 'number' ? value : 0;
31
+ const newValue = Math.max(currentValue - step, min);
32
+ onChange?.(newValue);
33
+ }, [value, step, min, onChange]);
34
+ const isIncrementDisabled = disabled || (typeof value === 'number' && value >= max);
35
+ const isDecrementDisabled = disabled || (typeof value === 'number' && value <= min);
36
+ const displayValue = value === '' ? '' : value;
37
+ return (_jsxs(Box, { className: numberInputWrapper, width: fullWidth ? '100%' : undefined, children: [label && (_jsx(Box, { as: "label", className: numberInputLabel, children: label })), _jsxs(Box, { className: numberInputContainer, children: [_jsx(Box, { as: "input", type: "number", value: displayValue, onChange: handleChange, min: min, max: max, step: step, placeholder: placeholder, disabled: disabled, className: clsx(numberInput, numberInputVariants[error ? 'error' : 'default'], className), ...props }), _jsxs(Box, { className: clsx(numberInputStepper, stepperPosition === 'left' && numberInputStepperLeft), children: [_jsx(Box, { as: "button", className: numberInputButton, onClick: increment, disabled: isIncrementDisabled, type: "button", "aria-label": "Increase value", children: "+" }), _jsx(Box, { as: "button", className: numberInputButton, onClick: decrement, disabled: isDecrementDisabled, type: "button", "aria-label": "Decrease value", children: "\u2212" })] })] }), error && errorMessage && (_jsx(Box, { as: "div", className: numberInputErrorMessage, role: "alert", children: errorMessage })), hint && !error && (_jsx(Box, { as: "div", className: numberInputHint, children: hint }))] }));
38
+ };
39
+ export default NumberInput;
@@ -0,0 +1,2 @@
1
+ export { default as NumberInput } from './NumberInput';
2
+ export type { NumberInputProps, NumberInputPosition } from './NumberInput';
@@ -0,0 +1 @@
1
+ export { default as NumberInput } from './NumberInput';
@@ -0,0 +1,10 @@
1
+ export declare const numberInputContainer: string;
2
+ export declare const numberInput: string;
3
+ export declare const numberInputVariants: Record<"default" | "error", string>;
4
+ export declare const numberInputLabel: string;
5
+ export declare const numberInputStepper: string;
6
+ export declare const numberInputStepperLeft: string;
7
+ export declare const numberInputButton: string;
8
+ export declare const numberInputWrapper: string;
9
+ export declare const numberInputHint: string;
10
+ export declare const numberInputErrorMessage: string;
@@ -0,0 +1,117 @@
1
+ import { styleVariants } from '@vanilla-extract/css';
2
+ import { vars } from '../../styles/theme.css';
3
+ import { styleWithLayer } from '../../styles/utils';
4
+ export const numberInputContainer = styleWithLayer({
5
+ position: 'relative',
6
+ display: 'flex',
7
+ alignItems: 'center',
8
+ width: '100%',
9
+ });
10
+ export const numberInput = styleWithLayer({
11
+ width: '100%',
12
+ padding: '0.75rem 2.5rem',
13
+ fontSize: '14px',
14
+ fontFamily: vars.fontFamily.body,
15
+ color: vars.colors.textPrimary,
16
+ backgroundColor: vars.colors.inputBackground,
17
+ border: `1px solid ${vars.colors.inputBorder}`,
18
+ borderRadius: '8px',
19
+ outline: 'none',
20
+ textAlign: 'center',
21
+ transition: 'border-color 0.2s ease',
22
+ '::placeholder': {
23
+ color: vars.colors.inputPlaceholder,
24
+ },
25
+ ':focus-visible': {
26
+ outline: `2px solid ${vars.colors.inputBorderFocused}`,
27
+ outlineOffset: '2px',
28
+ },
29
+ ':hover': {
30
+ borderColor: vars.colors.inputBorderFocused,
31
+ },
32
+ selectors: {
33
+ '&:disabled': {
34
+ cursor: 'not-allowed',
35
+ opacity: 0.5,
36
+ backgroundColor: vars.colors.backgroundMuted,
37
+ },
38
+ '&:disabled:hover': {
39
+ borderColor: vars.colors.inputBorder,
40
+ },
41
+ },
42
+ });
43
+ export const numberInputVariants = styleVariants({
44
+ default: {},
45
+ error: {
46
+ border: `1px solid ${vars.colors.alertErrorBorder}`,
47
+ ':focus-visible': {
48
+ outline: `2px solid ${vars.colors.alertErrorBorder}`,
49
+ },
50
+ ':hover': {
51
+ borderColor: vars.colors.alertErrorBorder,
52
+ },
53
+ },
54
+ });
55
+ export const numberInputLabel = styleWithLayer({
56
+ display: 'block',
57
+ fontSize: '14px',
58
+ fontWeight: '500',
59
+ color: vars.colors.textPrimary,
60
+ marginBottom: '8px',
61
+ });
62
+ export const numberInputStepper = styleWithLayer({
63
+ position: 'absolute',
64
+ display: 'flex',
65
+ flexDirection: 'column',
66
+ right: '0.5rem',
67
+ top: '50%',
68
+ transform: 'translateY(-50%)',
69
+ gap: '2px',
70
+ });
71
+ export const numberInputStepperLeft = styleWithLayer({
72
+ left: '0.5rem',
73
+ right: 'auto',
74
+ });
75
+ export const numberInputButton = styleWithLayer({
76
+ width: '1.5rem',
77
+ height: '1.25rem',
78
+ display: 'flex',
79
+ alignItems: 'center',
80
+ justifyContent: 'center',
81
+ backgroundColor: vars.colors.buttonBackgroundSecondary,
82
+ border: `1px solid ${vars.colors.borderDefault}`,
83
+ borderRadius: '4px',
84
+ cursor: 'pointer',
85
+ fontSize: '12px',
86
+ color: vars.colors.buttonTextSecondary,
87
+ transition: 'all 0.15s ease',
88
+ padding: 0,
89
+ ':hover': {
90
+ backgroundColor: vars.colors.buttonBackgroundFocusedSecondary,
91
+ },
92
+ ':active': {
93
+ transform: 'scale(0.95)',
94
+ },
95
+ selectors: {
96
+ '&:disabled': {
97
+ cursor: 'not-allowed',
98
+ opacity: 0.5,
99
+ },
100
+ '&:disabled:hover': {
101
+ backgroundColor: vars.colors.buttonBackgroundSecondary,
102
+ },
103
+ },
104
+ });
105
+ export const numberInputWrapper = styleWithLayer({
106
+ width: '100%',
107
+ });
108
+ export const numberInputHint = styleWithLayer({
109
+ fontSize: '12px',
110
+ color: vars.colors.textSecondary,
111
+ marginTop: '4px',
112
+ });
113
+ export const numberInputErrorMessage = styleWithLayer({
114
+ fontSize: '12px',
115
+ color: vars.colors.alertErrorText,
116
+ marginTop: '4px',
117
+ });
@@ -0,0 +1,10 @@
1
+ export type PaginationProps = {
2
+ currentPage: number;
3
+ totalPages: number;
4
+ onPageChange: (page: number) => void;
5
+ siblingCount?: number;
6
+ showFirstLast?: boolean;
7
+ showPrevNext?: boolean;
8
+ };
9
+ declare const Pagination: ({ currentPage, totalPages, onPageChange, siblingCount, showFirstLast, showPrevNext, }: PaginationProps) => import("react/jsx-runtime").JSX.Element;
10
+ export default Pagination;
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { paginationContainer, pageButton, pageButtonVariants, ellipsis } from './styles.css';
4
+ import Box from '../Box';
5
+ const Pagination = ({ currentPage, totalPages, onPageChange, siblingCount = 1, showFirstLast = true, showPrevNext = true, }) => {
6
+ const generatePageNumbers = () => {
7
+ const pages = [];
8
+ const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);
9
+ const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages);
10
+ const shouldShowLeftEllipsis = leftSiblingIndex > 2;
11
+ const shouldShowRightEllipsis = rightSiblingIndex < totalPages - 1;
12
+ if (totalPages <= 7) {
13
+ for (let i = 1; i <= totalPages; i++) {
14
+ pages.push(i);
15
+ }
16
+ }
17
+ else {
18
+ pages.push(1);
19
+ if (shouldShowLeftEllipsis) {
20
+ pages.push('left-ellipsis');
21
+ }
22
+ else if (currentPage > 3) {
23
+ for (let i = 2; i < leftSiblingIndex; i++) {
24
+ pages.push(i);
25
+ }
26
+ }
27
+ for (let i = leftSiblingIndex; i <= rightSiblingIndex; i++) {
28
+ if (i !== 1 && i !== totalPages) {
29
+ pages.push(i);
30
+ }
31
+ }
32
+ if (shouldShowRightEllipsis) {
33
+ pages.push('right-ellipsis');
34
+ }
35
+ else if (currentPage < totalPages - 2) {
36
+ for (let i = rightSiblingIndex + 1; i < totalPages; i++) {
37
+ pages.push(i);
38
+ }
39
+ }
40
+ pages.push(totalPages);
41
+ }
42
+ return pages;
43
+ };
44
+ const pages = generatePageNumbers();
45
+ return (_jsxs(Box, { className: paginationContainer, children: [showFirstLast && (_jsx(Box, { as: "button", className: clsx(pageButton, pageButtonVariants.default), onClick: () => onPageChange(1), disabled: currentPage === 1, children: '<<' })), showPrevNext && (_jsx(Box, { as: "button", className: clsx(pageButton, pageButtonVariants.default), onClick: () => onPageChange(currentPage - 1), disabled: currentPage === 1, children: '<' })), pages.map((page, index) => (typeof page === 'number' ? (_jsx(Box, { as: "button", className: clsx(pageButton, page === currentPage ? pageButtonVariants.active : pageButtonVariants.default), onClick: () => onPageChange(page), children: page }, `page-${page}`)) : (_jsx(Box, { className: ellipsis, children: "..." }, `${page}-${index}`)))), showPrevNext && (_jsx(Box, { as: "button", className: clsx(pageButton, pageButtonVariants.default), onClick: () => onPageChange(currentPage + 1), disabled: currentPage === totalPages, children: '>' })), showFirstLast && (_jsx(Box, { as: "button", className: clsx(pageButton, pageButtonVariants.default), onClick: () => onPageChange(totalPages), disabled: currentPage === totalPages, children: '>>' }))] }));
46
+ };
47
+ export default Pagination;
@@ -0,0 +1,2 @@
1
+ export { default as Pagination } from './Pagination';
2
+ export type { PaginationProps } from './Pagination';
@@ -0,0 +1 @@
1
+ export { default as Pagination } from './Pagination';
@@ -0,0 +1,4 @@
1
+ export declare const paginationContainer: string;
2
+ export declare const pageButton: string;
3
+ export declare const pageButtonVariants: Record<"default" | "active", string>;
4
+ export declare const ellipsis: string;
@@ -0,0 +1,44 @@
1
+ import { styleVariants } from '@vanilla-extract/css';
2
+ import { vars } from '../../styles/theme.css';
3
+ import { styleWithLayer } from '../../styles/utils';
4
+ export const paginationContainer = styleWithLayer({
5
+ display: 'flex',
6
+ alignItems: 'center',
7
+ gap: '0.5rem',
8
+ });
9
+ export const pageButton = styleWithLayer({
10
+ padding: '0.5rem 0.75rem',
11
+ borderRadius: '0.5rem',
12
+ border: `1px solid ${vars.colors.borderDefault}`,
13
+ backgroundColor: 'transparent',
14
+ cursor: 'pointer',
15
+ minWidth: '2.5rem',
16
+ display: 'flex',
17
+ alignItems: 'center',
18
+ justifyContent: 'center',
19
+ ':disabled': {
20
+ cursor: 'not-allowed',
21
+ opacity: 0.5,
22
+ },
23
+ });
24
+ export const pageButtonVariants = styleVariants({
25
+ default: {
26
+ color: vars.colors.textPrimary,
27
+ ':hover': {
28
+ backgroundColor: vars.colors.buttonBackgroundSecondary,
29
+ },
30
+ },
31
+ active: {
32
+ backgroundColor: vars.colors.buttonBackgroundPrimary,
33
+ color: vars.colors.buttonTextPrimary,
34
+ borderColor: vars.colors.buttonBackgroundPrimary,
35
+ ':hover': {
36
+ backgroundColor: vars.colors.buttonBackgroundFocusedPrimary,
37
+ },
38
+ },
39
+ });
40
+ export const ellipsis = styleWithLayer({
41
+ padding: '0.5rem',
42
+ color: vars.colors.textPrimary,
43
+ userSelect: 'none',
44
+ });
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ export type PopoverPosition = 'top' | 'bottom' | 'left' | 'right' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight';
3
+ export type PopoverTriggerType = 'click' | 'hover';
4
+ export interface PopoverProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ trigger: React.ReactNode;
6
+ children: React.ReactNode;
7
+ position?: PopoverPosition;
8
+ title?: string;
9
+ footer?: React.ReactNode;
10
+ showArrow?: boolean;
11
+ triggerType?: PopoverTriggerType;
12
+ closeOnClickOutside?: boolean;
13
+ closeOnEscape?: boolean;
14
+ defaultOpen?: boolean;
15
+ onOpenChange?: (isOpen: boolean) => void;
16
+ }
17
+ declare const Popover: ({ trigger, children, position, title, footer, showArrow, triggerType, closeOnClickOutside, closeOnEscape, defaultOpen, onOpenChange, className, ...props }: PopoverProps) => import("react/jsx-runtime").JSX.Element;
18
+ export default Popover;
@@ -0,0 +1,55 @@
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 { popoverContainer, popoverTrigger, popoverContent, popoverPositionVariants, popoverArrow, popoverArrowPositionVariants, popoverHeader, popoverTitle, popoverCloseButton, popoverBody, popoverFooter, } from './styles.css';
5
+ import Box from '../Box';
6
+ const Popover = ({ trigger, children, position = 'bottom', title, footer, showArrow = true, triggerType = 'click', closeOnClickOutside = true, closeOnEscape = true, defaultOpen = false, onOpenChange, className, ...props }) => {
7
+ const [isOpen, setIsOpen] = useState(defaultOpen);
8
+ const containerRef = useRef(null);
9
+ useEffect(() => {
10
+ onOpenChange?.(isOpen);
11
+ }, [isOpen, onOpenChange]);
12
+ useEffect(() => {
13
+ if (!closeOnClickOutside)
14
+ return;
15
+ const handleClickOutside = (event) => {
16
+ if (containerRef.current && !containerRef.current.contains(event.target)) {
17
+ setIsOpen(false);
18
+ }
19
+ };
20
+ if (isOpen) {
21
+ document.addEventListener('mousedown', handleClickOutside);
22
+ }
23
+ return () => {
24
+ document.removeEventListener('mousedown', handleClickOutside);
25
+ };
26
+ }, [isOpen, closeOnClickOutside]);
27
+ useEffect(() => {
28
+ if (!closeOnEscape)
29
+ return;
30
+ const handleEscape = (e) => {
31
+ if (e.key === 'Escape' && isOpen) {
32
+ setIsOpen(false);
33
+ }
34
+ };
35
+ document.addEventListener('keydown', handleEscape);
36
+ return () => document.removeEventListener('keydown', handleEscape);
37
+ }, [isOpen, closeOnEscape]);
38
+ const handleTriggerClick = () => {
39
+ if (triggerType === 'click') {
40
+ setIsOpen(!isOpen);
41
+ }
42
+ };
43
+ const handleTriggerMouseEnter = () => {
44
+ if (triggerType === 'hover') {
45
+ setIsOpen(true);
46
+ }
47
+ };
48
+ const handleTriggerMouseLeave = () => {
49
+ if (triggerType === 'hover') {
50
+ setIsOpen(false);
51
+ }
52
+ };
53
+ return (_jsxs(Box, { ref: containerRef, className: clsx(popoverContainer, className), onMouseEnter: handleTriggerMouseEnter, onMouseLeave: handleTriggerMouseLeave, ...props, children: [_jsx(Box, { className: popoverTrigger, onClick: handleTriggerClick, "aria-expanded": isOpen, children: trigger }), isOpen && (_jsxs(Box, { className: clsx(popoverContent, popoverPositionVariants[position]), role: "dialog", "aria-modal": "false", children: [showArrow && (_jsx(Box, { as: "span", className: clsx(popoverArrow, popoverArrowPositionVariants[position]) })), (title || triggerType === 'click') && (_jsxs(Box, { as: "div", className: popoverHeader, children: [title && (_jsx(Box, { as: "h3", className: popoverTitle, children: title })), triggerType === 'click' && (_jsx(Box, { as: "button", className: popoverCloseButton, onClick: () => setIsOpen(false), "aria-label": "Close popover", type: "button", children: "\u00D7" }))] })), _jsx(Box, { as: "div", className: popoverBody, children: children }), footer && (_jsx(Box, { as: "div", className: popoverFooter, children: footer }))] }))] }));
54
+ };
55
+ export default Popover;
@@ -0,0 +1,2 @@
1
+ export { default as Popover } from './Popover';
2
+ export type { PopoverProps, PopoverPosition, PopoverTriggerType } from './Popover';
@@ -0,0 +1 @@
1
+ export { default as Popover } from './Popover';