@nithish_atum/atum 1.0.4 → 1.0.5
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.
- package/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/index.d.mts +22 -1
- package/dist/index.d.ts +22 -1
- package/dist/index.js +112 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +113 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Nithishkumar Thiruselvam
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# atumui
|
package/dist/index.d.mts
CHANGED
|
@@ -257,4 +257,25 @@ interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
257
257
|
}
|
|
258
258
|
declare const Stack: ({ direction, gap, children, ...rest }: StackProps) => react_jsx_runtime.JSX.Element;
|
|
259
259
|
|
|
260
|
-
|
|
260
|
+
declare const NotificationProvider: React.FC<{
|
|
261
|
+
children: React.ReactNode;
|
|
262
|
+
}>;
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* PUBLIC: Toast API
|
|
266
|
+
*/
|
|
267
|
+
declare const toast: {
|
|
268
|
+
success(message: string, duration?: number): void;
|
|
269
|
+
error(message: string, duration?: number): void;
|
|
270
|
+
info(message: string, duration?: number): void;
|
|
271
|
+
warning(message: string, duration?: number): void;
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
declare const useToast: () => {
|
|
275
|
+
success: (message: string, duration?: number) => void;
|
|
276
|
+
error: (message: string, duration?: number) => void;
|
|
277
|
+
info: (message: string, duration?: number) => void;
|
|
278
|
+
warning: (message: string, duration?: number) => void;
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
export { Box, Button, Card, Center, CenterMenu, Checkbox, Col, Container, DatePicker, Divider, Drawer, Flex$1 as Flex, Form, FormControl, Grid, Heading, HorizantalMenu, Input, Link, Modal, NotificationProvider, Paragraph, Radio, Row, Select, Stack, Switch, Text, Textarea, toast, useToast };
|
package/dist/index.d.ts
CHANGED
|
@@ -257,4 +257,25 @@ interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
257
257
|
}
|
|
258
258
|
declare const Stack: ({ direction, gap, children, ...rest }: StackProps) => react_jsx_runtime.JSX.Element;
|
|
259
259
|
|
|
260
|
-
|
|
260
|
+
declare const NotificationProvider: React.FC<{
|
|
261
|
+
children: React.ReactNode;
|
|
262
|
+
}>;
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* PUBLIC: Toast API
|
|
266
|
+
*/
|
|
267
|
+
declare const toast: {
|
|
268
|
+
success(message: string, duration?: number): void;
|
|
269
|
+
error(message: string, duration?: number): void;
|
|
270
|
+
info(message: string, duration?: number): void;
|
|
271
|
+
warning(message: string, duration?: number): void;
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
declare const useToast: () => {
|
|
275
|
+
success: (message: string, duration?: number) => void;
|
|
276
|
+
error: (message: string, duration?: number) => void;
|
|
277
|
+
info: (message: string, duration?: number) => void;
|
|
278
|
+
warning: (message: string, duration?: number) => void;
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
export { Box, Button, Card, Center, CenterMenu, Checkbox, Col, Container, DatePicker, Divider, Drawer, Flex$1 as Flex, Form, FormControl, Grid, Heading, HorizantalMenu, Input, Link, Modal, NotificationProvider, Paragraph, Radio, Row, Select, Stack, Switch, Text, Textarea, toast, useToast };
|
package/dist/index.js
CHANGED
|
@@ -50,6 +50,7 @@ __export(index_exports, {
|
|
|
50
50
|
Input: () => Input_default,
|
|
51
51
|
Link: () => Link_default,
|
|
52
52
|
Modal: () => Modal_default,
|
|
53
|
+
NotificationProvider: () => NotificationProvider,
|
|
53
54
|
Paragraph: () => Paragraph_default,
|
|
54
55
|
Radio: () => Radio_default,
|
|
55
56
|
Row: () => Row_default,
|
|
@@ -57,7 +58,9 @@ __export(index_exports, {
|
|
|
57
58
|
Stack: () => Stack_default,
|
|
58
59
|
Switch: () => Switch_default,
|
|
59
60
|
Text: () => Text_default,
|
|
60
|
-
Textarea: () => Textarea_default
|
|
61
|
+
Textarea: () => Textarea_default,
|
|
62
|
+
toast: () => toast,
|
|
63
|
+
useToast: () => useToast
|
|
61
64
|
});
|
|
62
65
|
module.exports = __toCommonJS(index_exports);
|
|
63
66
|
|
|
@@ -1776,6 +1779,110 @@ var Stack = ({
|
|
|
1776
1779
|
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StyledStack, { $direction: direction, $gap: gap, ...rest, children });
|
|
1777
1780
|
};
|
|
1778
1781
|
var Stack_default = Stack;
|
|
1782
|
+
|
|
1783
|
+
// src/components/Notification/NotificationProvider.tsx
|
|
1784
|
+
var import_react6 = require("react");
|
|
1785
|
+
var import_react_dom5 = require("react-dom");
|
|
1786
|
+
var import_styled_components29 = __toESM(require("styled-components"));
|
|
1787
|
+
|
|
1788
|
+
// src/components/Notification/toast.ts
|
|
1789
|
+
var notifyRef = null;
|
|
1790
|
+
var registerToast = (fn) => {
|
|
1791
|
+
notifyRef = fn;
|
|
1792
|
+
};
|
|
1793
|
+
var toast = {
|
|
1794
|
+
success(message, duration) {
|
|
1795
|
+
notifyRef?.({ type: "success", message, duration });
|
|
1796
|
+
},
|
|
1797
|
+
error(message, duration) {
|
|
1798
|
+
notifyRef?.({ type: "error", message, duration });
|
|
1799
|
+
},
|
|
1800
|
+
info(message, duration) {
|
|
1801
|
+
notifyRef?.({ type: "info", message, duration });
|
|
1802
|
+
},
|
|
1803
|
+
warning(message, duration) {
|
|
1804
|
+
notifyRef?.({ type: "warning", message, duration });
|
|
1805
|
+
}
|
|
1806
|
+
};
|
|
1807
|
+
|
|
1808
|
+
// src/components/Notification/NotificationProvider.tsx
|
|
1809
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1810
|
+
var NotificationContext = (0, import_react6.createContext)(null);
|
|
1811
|
+
var useNotification = () => {
|
|
1812
|
+
const ctx = (0, import_react6.useContext)(NotificationContext);
|
|
1813
|
+
if (!ctx) {
|
|
1814
|
+
throw new Error("useNotification must be used inside NotificationProvider");
|
|
1815
|
+
}
|
|
1816
|
+
return ctx;
|
|
1817
|
+
};
|
|
1818
|
+
var Container2 = import_styled_components29.default.div`
|
|
1819
|
+
position: fixed;
|
|
1820
|
+
top: 1rem;
|
|
1821
|
+
right: 1rem;
|
|
1822
|
+
display: flex;
|
|
1823
|
+
flex-direction: column;
|
|
1824
|
+
gap: 0.75rem;
|
|
1825
|
+
z-index: 2000;
|
|
1826
|
+
`;
|
|
1827
|
+
var Item2 = import_styled_components29.default.div`
|
|
1828
|
+
min-width: 280px;
|
|
1829
|
+
padding: 0.75rem 1rem;
|
|
1830
|
+
border-radius: 8px;
|
|
1831
|
+
background: #fff;
|
|
1832
|
+
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
|
|
1833
|
+
border-left: 4px solid
|
|
1834
|
+
${({ $type }) => ({
|
|
1835
|
+
success: "#2e7d32",
|
|
1836
|
+
error: "#d32f2f",
|
|
1837
|
+
info: "#0288d1",
|
|
1838
|
+
warning: "#ed6c02"
|
|
1839
|
+
})[$type]};
|
|
1840
|
+
`;
|
|
1841
|
+
var Title = import_styled_components29.default.div`
|
|
1842
|
+
font-weight: 600;
|
|
1843
|
+
margin-bottom: 0.25rem;
|
|
1844
|
+
`;
|
|
1845
|
+
var Message = import_styled_components29.default.div`
|
|
1846
|
+
font-size: 0.875rem;
|
|
1847
|
+
line-height: 1.4;
|
|
1848
|
+
`;
|
|
1849
|
+
var NotificationProvider = ({ children }) => {
|
|
1850
|
+
const [items, setItems] = (0, import_react6.useState)([]);
|
|
1851
|
+
const notify = (notice) => {
|
|
1852
|
+
const id = crypto.randomUUID();
|
|
1853
|
+
const item = { ...notice, id };
|
|
1854
|
+
setItems((prev) => [...prev, item]);
|
|
1855
|
+
if (notice.duration !== 0) {
|
|
1856
|
+
setTimeout(() => {
|
|
1857
|
+
setItems((prev) => prev.filter((n) => n.id !== id));
|
|
1858
|
+
}, notice.duration ?? 3e3);
|
|
1859
|
+
}
|
|
1860
|
+
};
|
|
1861
|
+
(0, import_react6.useEffect)(() => {
|
|
1862
|
+
registerToast(notify);
|
|
1863
|
+
}, []);
|
|
1864
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(NotificationContext.Provider, { value: { notify }, children: [
|
|
1865
|
+
children,
|
|
1866
|
+
(0, import_react_dom5.createPortal)(
|
|
1867
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Container2, { children: items.map((n) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Item2, { $type: n.type, children: [
|
|
1868
|
+
n.title && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Title, { children: n.title }),
|
|
1869
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Message, { children: n.message })
|
|
1870
|
+
] }, n.id)) }),
|
|
1871
|
+
document.body
|
|
1872
|
+
)
|
|
1873
|
+
] });
|
|
1874
|
+
};
|
|
1875
|
+
|
|
1876
|
+
// src/components/Notification/useToast.ts
|
|
1877
|
+
var useToast = () => {
|
|
1878
|
+
const { notify } = useNotification();
|
|
1879
|
+
return {
|
|
1880
|
+
success: (message, duration) => notify({ type: "success", message, duration }),
|
|
1881
|
+
error: (message, duration) => notify({ type: "error", message, duration }),
|
|
1882
|
+
info: (message, duration) => notify({ type: "info", message, duration }),
|
|
1883
|
+
warning: (message, duration) => notify({ type: "warning", message, duration })
|
|
1884
|
+
};
|
|
1885
|
+
};
|
|
1779
1886
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1780
1887
|
0 && (module.exports = {
|
|
1781
1888
|
Box,
|
|
@@ -1798,6 +1905,7 @@ var Stack_default = Stack;
|
|
|
1798
1905
|
Input,
|
|
1799
1906
|
Link,
|
|
1800
1907
|
Modal,
|
|
1908
|
+
NotificationProvider,
|
|
1801
1909
|
Paragraph,
|
|
1802
1910
|
Radio,
|
|
1803
1911
|
Row,
|
|
@@ -1805,6 +1913,8 @@ var Stack_default = Stack;
|
|
|
1805
1913
|
Stack,
|
|
1806
1914
|
Switch,
|
|
1807
1915
|
Text,
|
|
1808
|
-
Textarea
|
|
1916
|
+
Textarea,
|
|
1917
|
+
toast,
|
|
1918
|
+
useToast
|
|
1809
1919
|
});
|
|
1810
1920
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/components/Box.tsx","../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Checkbox.tsx","../src/components/DatePicker.tsx","../src/components/Divider.tsx","../src/components/Drawer.tsx","../src/components/Flex.tsx","../src/components/Form.tsx","../src/components/FormControl.tsx","../src/components/Heading.tsx","../src/components/Input.tsx","../src/components/Link.tsx","../src/components/Modal.tsx","../src/components/Paragraph.tsx","../src/components/Radio.tsx","../src/components/Select.tsx","../src/components/Switch.tsx","../src/components/Text.tsx","../src/components/Textarea.tsx","../src/components/Menus/CenterMenu.tsx","../src/components/Layouts/Row.tsx","../src/components/Menus/HorizantalMenu.tsx","../src/components/Layouts/Center.tsx","../src/components/Layouts/Col.tsx","../src/components/Layouts/Container.tsx","../src/components/Layouts/Grid.tsx","../src/components/Layouts/Stack.tsx"],"sourcesContent":["export * from \"./components\";","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Flex = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype Variant = \"default\" | \"elevated\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n flex?: Flex;\r\n variant?: Variant;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n width: fit-content;\r\n height: fit-content;\r\n padding: 1em 1em;\r\n border: 1px solid lightgray;\r\n justify-self: center;\r\n`;\r\n\r\nconst variantStyles = {\r\n default: css`\r\n transition: none;\r\n `,\r\n elevated: css`\r\n transition: box-shadow 300ms ease;\r\n &:hover {\r\n box-shadow: rgba(36, 40, 45, 0.2) 0px 8px 24px;\r\n }\r\n `,\r\n};\r\n\r\nconst justifyStyles = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\n\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 0.5em;\r\n `,\r\n sm: css`\r\n gap: 1em;\r\n `,\r\n md: css`\r\n gap: 1.5em;\r\n `,\r\n lg: css`\r\n gap: 2.5em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $flex: Flex; $gap: Gap, $variant: Variant }>`\r\n ${baseStyle}\r\n ${({ $flex, $gap, $variant }) => css`\r\n ${justifyStyles[$flex]}\r\n ${gapStyles[$gap]}\r\n ${variantStyles[$variant]}\r\n `}\r\n`;\r\n\r\nconst Box = ({\r\n flex = \"row\",\r\n gap = \"xs\",\r\n variant = \"default\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $flex={flex} $gap={gap} $variant={variant} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Box;\r\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Variant = \"primary_solid\" | \"primary_outline\" | \"primary_text\";\r\n\r\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: Variant;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n`;\r\n\r\nconst variantStyles = {\r\n primary_solid: css`\r\n background-color: #2d8eff;\r\n color: white;\r\n border: 1px solid #2d8eff;\r\n transition: all 0.6s ease;\r\n // &:hover {\r\n // color: #fff;\r\n // border-right: none;\r\n // border-left: none;\r\n // border-top: 2px solid #fff;\r\n // border-bottom: 2px solid #fff;\r\n // background-color:rgba(144, 167, 194, 0);\r\n // letter-spacing: 4px;\r\n//}\r\n `,\r\n primary_outline: css`\r\n background-color: transparent;\r\n color: #2d8eff;\r\n border: 1px solid #2d8eff;\r\n `,\r\n primary_text: css`\r\n background-color: transparent;\r\n color: #2d8eff;\r\n border: none;\r\n transition: all 0.9s ease;\r\n // &:hover{\r\n // background-color: #2d8eff;\r\n // color: #fff;\r\n // }\r\n `,\r\n};\r\n\r\nconst StyledButton = styled.button<{ $variant: Variant }>`\r\n ${baseStyle}\r\n ${({ $variant }) => variantStyles[$variant]}\r\n`;\r\n\r\nconst Button = ({\r\n variant = \"primary_solid\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledButton $variant={variant} {...rest}>\r\n {children}\r\n </StyledButton>\r\n );\r\n};\r\n\r\nexport default Button;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Direction = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype ImageURL = string;\r\ntype ImageAlt = string;\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n Imageurl?: ImageURL;\r\n Imagealt?: ImageAlt;\r\n direction?: Direction;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n width: fit-content;\r\n height: fit-content;\r\n background-color: rgb(255, 255, 255);\r\n padding: 1em 1em;\r\n border-radius: 0.8em;\r\n box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;\r\n transition: all 0.9s ease;\r\n &:hover {\r\n box-shadow: rgba(36, 40, 45, 0.2) 0px 8px 24px;\r\n }\r\n`;\r\n\r\nconst justifyStyles = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 0.5em;\r\n `,\r\n sm: css`\r\n gap: 1em;\r\n `,\r\n md: css`\r\n gap: 1.5em;\r\n `,\r\n lg: css`\r\n gap: 2.5em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $direction: Direction; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $direction, $gap }) => css`\r\n ${justifyStyles[$direction]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Card = ({\r\n direction = \"col\",\r\n gap = \"xs\",\r\n Imagealt = \"card-image\",\r\n Imageurl = \"\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $direction={direction} $gap={gap} {...rest}>\r\n {Imageurl.length > 0 ? \r\n <>\r\n <div style={{\r\n width:'100%',\r\n height: \"200px\",\r\n backgroundImage:`url(${Imageurl})`,\r\n backgroundPosition:'center',\r\n backgroundSize:'cover',\r\n borderRadius:'12px',\r\n border: \"1px solid #f1f1f1\"\r\n }}>\r\n {/* just for image holder */}\r\n </div> \r\n {children}\r\n </>\r\n : children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Card;\r\n","import React, { useEffect, useRef } from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n indeterminate?: boolean;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"checkbox\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst boxBase = css`\n width: 16px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid #ccc;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n`;\n\nconst Box = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${boxBase}\n background-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#fff\")};\n border-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#ccc\")};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n\n ${Wrapper}:hover & {\n border-color: #2d8eff;\n }\n`;\n\nconst CheckMark = styled.span`\n width: 8px;\n height: 8px;\n background: white;\n border-radius: 2px;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Checkbox = ({\n checked = false,\n indeterminate = false,\n disabled = false,\n label,\n ...rest\n}: CheckboxProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n return (\n <Wrapper>\n <HiddenInput\n ref={inputRef}\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Box $checked={checked || indeterminate} $disabled={disabled}>\n {(checked || indeterminate) && <CheckMark />}\n </Box>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Checkbox;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { createPortal } from \"react-dom\";\n\n/* =========================\n Types\n========================= */\n\nexport interface DatePickerProps {\n value?: Date;\n onChange?: (date: Date) => void;\n placeholder?: string;\n}\n\n/* =========================\n Date utils (pure)\n========================= */\n\nconst isSameDay = (a: Date, b: Date) =>\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate();\n\nconst getDaysInMonth = (year: number, month: number) =>\n new Date(year, month + 1, 0).getDate();\n\nconst formatDate = (date: Date) =>\n date.toISOString().split(\"T\")[0];\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.div`\n position: relative;\n width: 100%;\n`;\n\nconst InputBox = styled.div`\n border: 1px solid #ccc;\n border-radius: 6px;\n padding: 0.5rem 0.75rem;\n cursor: pointer;\n background: #fff;\n`;\n\nconst Panel = styled.div`\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n background: white;\n border-radius: 8px;\n padding: 0.75rem;\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n`;\n\nconst Header = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.5rem;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(7, 32px);\n gap: 4px;\n`;\n\nconst Day = styled.div<{ $selected?: boolean }>`\n text-align: center;\n padding: 0.35rem 0;\n border-radius: 4px;\n cursor: pointer;\n background: ${({ $selected }) =>\n $selected ? \"#2d8eff\" : \"transparent\"};\n color: ${({ $selected }) =>\n $selected ? \"#fff\" : \"inherit\"};\n\n &:hover {\n background: #f0f0f0;\n }\n`;\n\n/* =========================\n Component\n========================= */\n\nconst DatePicker: React.FC<DatePickerProps> = ({\n value,\n onChange,\n placeholder = \"Select date\",\n}) => {\n const [open, setOpen] = useState(false);\n const [current, setCurrent] = useState(\n value || new Date()\n );\n\n const ref = useRef<HTMLDivElement>(null);\n\n /* Close on outside click */\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () =>\n document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n const year = current.getFullYear();\n const month = current.getMonth();\n const daysInMonth = getDaysInMonth(year, month);\n\n const days = Array.from({ length: daysInMonth }, (_, i) => {\n const date = new Date(year, month, i + 1);\n return date;\n });\n\n return (\n <Wrapper ref={ref}>\n <InputBox onClick={() => setOpen(!open)}>\n {value ? formatDate(value) : placeholder}\n </InputBox>\n\n {open &&\n createPortal(\n <Panel>\n <Header>\n <button\n onClick={() =>\n setCurrent(\n new Date(year, month - 1, 1)\n )\n }\n >\n ◀\n </button>\n <strong>\n {current.toLocaleString(\"default\", {\n month: \"long\",\n })}{\" \"}\n {year}\n </strong>\n <button\n onClick={() =>\n setCurrent(\n new Date(year, month + 1, 1)\n )\n }\n >\n ▶\n </button>\n </Header>\n\n <Grid>\n {days.map((d) => (\n <Day\n key={d.toISOString()}\n $selected={\n value ? isSameDay(d, value) : false\n }\n onClick={() => {\n onChange?.(d);\n setOpen(false);\n }}\n >\n {d.getDate()}\n </Day>\n ))}\n </Grid>\n </Panel>,\n document.body\n )}\n </Wrapper>\n );\n};\n\nexport default DatePicker;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\ntype Size = \"thin\" | \"medium\";\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: Orientation;\n size?: Size;\n gap?: Gap;\n}\n\nconst baseStyle = css`\n background-color: rgba(0, 0, 0, 0.12);\n flex-shrink: 0;\n`;\n\nconst orientationStyles: Record<Orientation, any> = {\n horizontal: css`\n width: 100%;\n height: 1px;\n `,\n vertical: css`\n height: 100%;\n width: 1px;\n `,\n};\n\nconst sizeStyles: Record<Size, any> = {\n thin: css`\n opacity: 0.6;\n `,\n medium: css`\n opacity: 1;\n `,\n};\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n margin: 0.5rem 0;\n `,\n sm: css`\n margin: 1rem 0;\n `,\n md: css`\n margin: 2rem 0;\n `,\n lg: css`\n margin: 3rem 0;\n `,\n};\n\nconst StyledDivider = styled.div<{\n $orientation: Orientation;\n $size: Size;\n $gap: Gap;\n}>`\n ${baseStyle}\n ${({ $orientation }) => orientationStyles[$orientation]}\n ${({ $size }) => sizeStyles[$size]}\n ${({ $gap, $orientation }) =>\n $orientation === \"horizontal\"\n ? gapStyles[$gap]\n : css`\n margin: 0 ${gapStyles[$gap].styles?.margin?.split(\" \")[0] || \"1rem\"};\n `}\n`;\n\nconst Divider = ({\n orientation = \"horizontal\",\n size = \"thin\",\n gap = \"sm\",\n ...rest\n}: DividerProps) => {\n return (\n <StyledDivider\n role=\"separator\"\n $orientation={orientation}\n $size={size}\n $gap={gap}\n {...rest}\n />\n );\n};\n\nexport default Divider;\n","import React, { useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport type DrawerPlacement = \"right\" | \"left\" | \"bottom\";\n\nexport interface DrawerProps {\n open: boolean;\n onClose?: () => void;\n placement?: DrawerPlacement;\n width?: number | string;\n height?: number | string;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Overlay = styled.div`\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.45);\n z-index: 1000;\n`;\n\nconst baseDrawer = css`\n position: fixed;\n background: #fff;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n`;\n\nconst placementStyles = {\n right: css`\n top: 0;\n right: 0;\n height: 100%;\n `,\n left: css`\n top: 0;\n left: 0;\n height: 100%;\n `,\n bottom: css`\n left: 0;\n bottom: 0;\n width: 100%;\n `,\n};\n\nconst DrawerContainer = styled.div<{\n $placement: DrawerPlacement;\n $width?: number | string;\n $height?: number | string;\n}>`\n ${baseDrawer}\n ${({ $placement }) => placementStyles[$placement]}\n\n ${({ $placement, $width }) =>\n ($placement === \"left\" || $placement === \"right\") &&\n css`\n width: ${typeof $width === \"number\"\n ? `${$width}px`\n : $width || \"360px\"};\n `}\n\n ${({ $placement, $height }) =>\n $placement === \"bottom\" &&\n css`\n height: ${typeof $height === \"number\"\n ? `${$height}px`\n : $height || \"320px\"};\n `}\n`;\n\nconst Header = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 0.75rem;\n border-bottom: 1px solid #eee;\n`;\n\nconst CloseButton = styled.button`\n background: none;\n border: none;\n font-size: 1.25rem;\n cursor: pointer;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Drawer: React.FC<DrawerProps> = ({\n open,\n onClose,\n placement = \"right\",\n width,\n height,\n children,\n}) => {\n useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose?.();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () =>\n document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return createPortal(\n <>\n <Overlay onClick={onClose} />\n\n <DrawerContainer\n $placement={placement}\n $width={width}\n $height={height}\n >\n <Header>\n <CloseButton onClick={onClose}>×</CloseButton>\n </Header>\n {children}\n </DrawerContainer>\n </>,\n document.body\n );\n};\n\nexport default Drawer;\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Gap = \"small\" | \"medium\" | \"large\";\r\ntype FlexDirection = \"row\" | \"col\";\r\ntype Justify = \"center\" | \"between\" | \"around\" | \"start\" | \"end\" | \"even\";\r\ntype Align = \"center\" | \"between\" | \"around\" | \"start\" | \"end\" | \"even\";\r\n\r\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n flexDirection?: FlexDirection;\r\n justify?: Justify;\r\n align?: Align;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n`;\r\nconst FlexDirectionStyle = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\nconst JustifyStyle = {\r\n center: css`\r\n justify-content: center;\r\n `,\r\n between: css`\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n justify-content: space-around;\r\n `,\r\n start: css`\r\n justify-content: flex-start;\r\n `,\r\n end: css`\r\n justify-content: flex-end;\r\n `,\r\n even: css`\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst AlignStyle = {\r\n center: css`\r\n align-items: center;\r\n `,\r\n between: css`\r\n align-items: space-between;\r\n `,\r\n around: css`\r\n align-items: space-around;\r\n `,\r\n start: css`\r\n align-items: flex-start;\r\n `,\r\n end: css`\r\n align-items: flex-end;\r\n `,\r\n even: css`\r\n align-items: space-evenly;\r\n `,\r\n};\r\nconst GapStyle = {\r\n small: css`\r\n gap: 1em;\r\n `,\r\n medium: css`\r\n gap: 2em;\r\n `,\r\n large: css`\r\n gap: 3em;\r\n `,\r\n};\r\n\r\nconst StyledDiv = styled.div<{\r\n $flexDirection: FlexDirection;\r\n $gap: Gap;\r\n $justify: Justify;\r\n $align: Align\r\n}>`\r\n ${baseStyle}\r\n ${({ $flexDirection, $gap, $justify, $align }) => css`\r\n ${FlexDirectionStyle[$flexDirection]}\r\n ${GapStyle[$gap]}\r\n ${AlignStyle[$align]}\r\n ${JustifyStyle[$justify]}\r\n `}\r\n`;\r\n\r\nconst Flex = ({\r\n gap = \"small\",\r\n justify = \"center\",\r\n align = \"center\",\r\n flexDirection = 'col',\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledDiv $gap={gap} $justify={justify} $align={align} $flexDirection={flexDirection} {...rest}>\r\n {children}\r\n </StyledDiv>\r\n );\r\n};\r\n\r\nexport default Flex;\r\n","import React from \"react\";\nimport styled from \"styled-components\";\n\ninterface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n children: React.ReactNode;\n}\n\nconst StyledForm = styled.form`\n width: 100%;\n`;\n\nconst Form = ({ children, ...rest }: FormProps) => {\n return <StyledForm {...rest}>{children}</StyledForm>;\n};\n\nexport default Form;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface FormControlProps {\n label?: React.ReactNode;\n error?: React.ReactNode;\n helperText?: React.ReactNode;\n required?: boolean;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n width: 100%;\n`;\n\nconst Label = styled.label<{ $error?: boolean }>`\n font-size: 0.875rem;\n font-weight: 500;\n color: ${({ $error }) => ($error ? \"#e53935\" : \"inherit\")};\n`;\n\nconst RequiredMark = styled.span`\n color: #e53935;\n margin-left: 0.25rem;\n`;\n\nconst Helper = styled.span`\n font-size: 0.75rem;\n color: #666;\n`;\n\nconst ErrorText = styled.span`\n font-size: 0.75rem;\n color: #e53935;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst FormControl = ({\n label,\n error,\n helperText,\n required = false,\n children,\n}: FormControlProps) => {\n return (\n <Wrapper>\n {label && (\n <Label $error={!!error}>\n {label}\n {required && <RequiredMark>*</RequiredMark>}\n </Label>\n )}\n\n {children}\n\n {error ? (\n <ErrorText>{error}</ErrorText>\n ) : (\n helperText && <Helper>{helperText}</Helper>\n )}\n </Wrapper>\n );\n};\n\nexport default FormControl;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport type Level = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface HeadingProps\n extends React.HTMLAttributes<HTMLHeadingElement> {\n level?: Level;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst levelStyles: Record<Level, ReturnType<typeof css>> = {\n 1: css`font-size: 2rem;`,\n 2: css`font-size: 1.75rem;`,\n 3: css`font-size: 1.5rem;`,\n 4: css`font-size: 1.25rem;`,\n 5: css`font-size: 1.1rem;`,\n 6: css`font-size: 1rem;`,\n};\n\nconst Base = styled.div<{ $level: Level }>`\n margin: 0;\n font-weight: 600;\n ${({ $level }) => levelStyles[$level]}\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Heading: React.FC<HeadingProps> = ({\n level = 1,\n children,\n ...rest\n}) => {\n const Tag = `h${level}` as const;\n\n return (\n <Base\n as={Tag}\n $level={level}\n {...rest}\n >\n {children}\n </Base>\n );\n};\n\nexport default Heading;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ntype InputSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\ntype State = \"default\" | \"error\";\n\nexport interface InputProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"size\"\n > {\n inputSize?: InputSize;\n state?: State;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst sizeStyles = {\n xs: css`padding: 0.25rem 0.5rem; font-size: 0.75rem;`,\n sm: css`padding: 0.4rem 0.6rem; font-size: 0.875rem;`,\n md: css`padding: 0.5rem 0.75rem; font-size: 1rem;`,\n lg: css`padding: 0.65rem 0.9rem; font-size: 1.1rem;`,\n};\n\nconst StyledInput = styled.input<{\n $inputSize: InputSize;\n $state: State;\n}>`\n width: 100%;\n border-radius: 6px;\n border: 1px solid\n ${({ $state }) =>\n $state === \"error\" ? \"#e53935\" : \"#ccc\"};\n outline: none;\n\n ${({ $inputSize }) => sizeStyles[$inputSize]}\n\n &:focus {\n border-color: #2d8eff;\n }\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Input: React.FC<InputProps> = ({\n inputSize = \"md\",\n state = \"default\",\n ...rest\n}) => {\n return (\n <StyledInput\n $inputSize={inputSize}\n $state={state}\n {...rest}\n />\n );\n};\n\nexport default Input;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Variant = \"default\" | \"muted\";\n\ninterface LinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n variant?: Variant;\n external?: boolean;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n color: inherit;\n text-decoration: underline;\n cursor: pointer;\n transition: color 0.2s ease, text-decoration-color 0.2s ease;\n\n &:hover {\n text-decoration-thickness: 2px;\n }\n\n &:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n }\n`;\n\nconst variantStyles: Record<Variant, any> = {\n default: css`\n opacity: 1;\n `,\n muted: css`\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n `,\n};\n\nconst StyledLink = styled.a<{ $variant: Variant }>`\n ${baseStyle}\n ${({ $variant }) => variantStyles[$variant]}\n`;\n\nconst Link = ({\n variant = \"default\",\n external = false,\n children,\n ...rest\n}: LinkProps) => {\n return (\n <StyledLink\n $variant={variant}\n target={external ? \"_blank\" : rest.target}\n rel={external ? \"noopener noreferrer\" : rest.rel}\n {...rest}\n >\n {children}\n </StyledLink>\n );\n};\n\nexport default Link;\n","import React, { useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport interface ModalProps {\n open: boolean;\n onClose?: () => void;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Overlay = styled.div`\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.45);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n`;\n\nconst Content = styled.div`\n background: #fff;\n border-radius: 8px;\n width: 100%;\n max-width: 500px;\n padding: 1.5rem;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n children,\n}) => {\n useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose?.();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () =>\n document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return createPortal(\n <Overlay onClick={onClose}>\n <Content onClick={(e) => e.stopPropagation()}>\n {children}\n </Content>\n </Overlay>,\n document.body\n );\n};\n\nexport default Modal;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\ninterface ParagraphProps extends React.HTMLAttributes<HTMLParagraphElement> {\n children: React.ReactNode;\n}\n\nconst StyledParagraph = styled.p`\n margin: 0;\n font-size: 1rem;\n line-height: 1.6;\n color: inherit;\n`;\n\nconst Paragraph = ({ children, ...rest }: ParagraphProps) => {\n return <StyledParagraph {...rest}>{children}</StyledParagraph>;\n};\n\nexport default Paragraph;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"radio\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst circleBase = css`\n width: 16px;\n height: 16px;\n border-radius: 50%;\n border: 2px solid #ccc;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n`;\n\nconst Circle = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${circleBase}\n border-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#ccc\")};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n\n ${Wrapper}:hover & {\n border-color: #2d8eff;\n }\n`;\n\nconst Dot = styled.span`\n width: 8px;\n height: 8px;\n background: #2d8eff;\n border-radius: 50%;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Radio = ({\n checked = false,\n disabled = false,\n label,\n ...rest\n}: RadioProps) => {\n return (\n <Wrapper>\n <HiddenInput\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Circle $checked={checked} $disabled={disabled}>\n {checked && <Dot />}\n </Circle>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Radio;\n","import React, {\n useEffect,\n useRef,\n useState,\n ReactNode,\n} from \"react\";\nimport styled from \"styled-components\";\nimport { createPortal } from \"react-dom\";\n\n/* =========================\n Types\n========================= */\n\ntype SelectSize = \"sm\" | \"md\" | \"lg\";\ntype SelectState = \"default\" | \"error\";\n\nexport interface OptionType {\n label: ReactNode;\n value: string;\n}\n\nexport interface SelectProps\n extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"onChange\"\n > {\n value?: string;\n placeholder?: string;\n options?: OptionType[];\n onChange?: (value: string) => void;\n selectSize?: SelectSize;\n state?: SelectState;\n children?: ReactNode;\n}\n\n/* =========================\n Option (composition API)\n========================= */\n\nexport interface SelectOptionProps {\n value: string;\n children: ReactNode;\n}\n\nconst Option: React.FC<SelectOptionProps> = () => null;\nOption.displayName = \"SelectOption\";\n\n/* =========================\n Styles\n========================= */\n\nconst Trigger = styled.div<{\n $size: SelectSize;\n $state: SelectState;\n}>`\n border: 1px solid\n ${({ $state }) =>\n $state === \"error\" ? \"#e53935\" : \"#ccc\"};\n border-radius: 6px;\n padding: ${({ $size }) =>\n $size === \"sm\"\n ? \"0.4rem 0.6rem\"\n : $size === \"lg\"\n ? \"0.7rem 0.9rem\"\n : \"0.55rem 0.75rem\"};\n cursor: pointer;\n background: #fff;\n`;\n\nconst Dropdown = styled.div`\n position: fixed;\n min-width: 200px;\n background: white;\n border-radius: 6px;\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);\n padding: 0.25rem;\n z-index: 1000;\n`;\n\nconst Item = styled.div<{ $active?: boolean }>`\n padding: 0.4rem 0.6rem;\n border-radius: 4px;\n cursor: pointer;\n background: ${({ $active }) =>\n $active ? \"#2d8eff\" : \"transparent\"};\n color: ${({ $active }) =>\n $active ? \"#fff\" : \"inherit\"};\n\n &:hover {\n background: ${({ $active }) =>\n $active ? \"#2d8eff\" : \"#f5f5f5\"};\n }\n`;\n\n/* =========================\n Component typing\n========================= */\n\ninterface SelectComponent\n extends React.FC<SelectProps> {\n Option: React.FC<SelectOptionProps>;\n}\n\n/* =========================\n Component\n========================= */\n\nconst Select = (({\n value,\n placeholder = \"Select\",\n options,\n onChange,\n selectSize = \"md\",\n state = \"default\",\n children,\n ...rest\n}: SelectProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [pos, setPos] = useState({ top: 0, left: 0 });\n\n /* =========================\n Resolve options\n ========================= */\n\n const childOptions: OptionType[] =\n React.Children.toArray(children)\n .filter(\n (\n child\n ): child is React.ReactElement<SelectOptionProps> =>\n React.isValidElement(child) &&\n child.type === Option\n )\n .map((child) => ({\n value: child.props.value,\n label: child.props.children,\n }));\n\n const finalOptions = options ?? childOptions;\n\n const selected =\n finalOptions.find((o) => o.value === value)\n ?.label ?? placeholder;\n\n /* =========================\n Positioning\n ========================= */\n\n const openDropdown = () => {\n if (!ref.current) return;\n\n const rect = ref.current.getBoundingClientRect();\n setPos({\n top: rect.bottom + 6,\n left: rect.left,\n });\n\n setOpen(true);\n };\n\n /* =========================\n Close on outside\n ========================= */\n\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (\n ref.current &&\n !ref.current.contains(e.target as Node)\n ) {\n setOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () =>\n document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n /* =========================\n Render\n ========================= */\n\n return (\n <>\n <Trigger\n ref={ref}\n onClick={openDropdown}\n $size={selectSize}\n $state={state}\n {...rest}\n >\n {selected}\n </Trigger>\n\n {open &&\n createPortal(\n <Dropdown\n style={{\n top: pos.top,\n left: pos.left,\n }}\n >\n {finalOptions.map((opt) => (\n <Item\n key={opt.value}\n $active={opt.value === value}\n onClick={() => {\n onChange?.(opt.value);\n setOpen(false);\n }}\n >\n {opt.label}\n </Item>\n ))}\n </Dropdown>,\n document.body\n )}\n </>\n );\n}) as SelectComponent;\n\n/* =========================\n Attach Option\n========================= */\n\nSelect.Option = Option;\n\nexport default Select;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface SwitchProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"checkbox\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst trackBase = css`\n width: 36px;\n height: 20px;\n border-radius: 999px;\n background-color: #ccc;\n position: relative;\n transition: background-color 0.2s ease;\n`;\n\nconst Track = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${trackBase}\n background-color: ${({ $checked }) =>\n $checked ? \"#2d8eff\" : \"#ccc\"};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n`;\n\nconst Thumb = styled.span<{ $checked: boolean }>`\n width: 16px;\n height: 16px;\n background-color: #fff;\n border-radius: 50%;\n position: absolute;\n top: 2px;\n left: 2px;\n transition: transform 0.2s ease;\n\n transform: ${({ $checked }) =>\n $checked ? \"translateX(16px)\" : \"translateX(0)\"};\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Switch = ({\n checked = false,\n disabled = false,\n label,\n ...rest\n}: SwitchProps) => {\n return (\n <Wrapper>\n <HiddenInput\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Track $checked={checked} $disabled={disabled}>\n <Thumb $checked={checked} />\n </Track>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Switch;\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype FontVariant = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\";\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLElement> {\r\n fontVariant?: FontVariant;\r\n children: React.ReactNode;\r\n}\r\n/*\r\n<h1>: Typically rendered at 2em (twice the size of the base font). \r\n<h2>: Typically rendered at 1.5em (1.5 times the size of the base font). \r\n<h3>: Typically rendered at 1.17em. \r\n<h4>: Typically rendered at 1em. \r\n<h5>: Typically rendered at 0.83em. \r\n<h6>: Typically rendered at 0.67em. \r\n*/\r\nconst baseStyle = css`\r\n font-size: 12px;\r\n`;\r\n\r\nconst variantStyles = {\r\n h1: css`\r\n font-size: 2em;\r\n font-weight: bold;\r\n `,\r\n h2: css`\r\n font-size: 1.5em;\r\n font-weight: bold;\r\n `,\r\n h3: css`\r\n font-size: 1.17em;\r\n font-weight: bold;\r\n `,\r\n h4: css`\r\n font-size: 1em;\r\n font-weight: bold;\r\n `,\r\n h5: css`\r\n font-size: 0.83em;\r\n font-weight: bold;\r\n `,\r\n h6: css`\r\n font-size: 0.67em;\r\n font-weight: bold;\r\n `,\r\n p: css`\r\n font-size: 0.875em;\r\n `,\r\n};\r\n\r\nconst StyledButton = styled.span<{ $variant: FontVariant }>`\r\n ${baseStyle}\r\n ${({ $variant }) => variantStyles[$variant]}\r\n`;\r\n\r\nconst Text = ({\r\n fontVariant = \"p\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledButton $variant={fontVariant} {...rest}>\r\n {children}\r\n </StyledButton>\r\n );\r\n};\r\n\r\nexport default Text;\r\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Size = \"sm\" | \"md\" | \"lg\";\ntype State = \"default\" | \"error\";\n\ninterface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n size?: Size;\n state?: State;\n}\n\nconst baseStyle = css`\n width: 100%;\n font-family: inherit;\n border-radius: 6px;\n border: 1px solid #ccc;\n background-color: #fff;\n color: inherit;\n outline: none;\n resize: vertical;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n\n &:focus {\n border-color: #2d8eff;\n box-shadow: 0 0 0 2px rgba(45, 142, 255, 0.2);\n }\n\n &:disabled {\n background-color: #f5f5f5;\n cursor: not-allowed;\n opacity: 0.7;\n }\n`;\n\nconst sizeStyles: Record<Size, any> = {\n sm: css`\n padding: 0.4rem 0.6rem;\n font-size: 0.875rem;\n min-height: 80px;\n `,\n md: css`\n padding: 0.5rem 0.75rem;\n font-size: 1rem;\n min-height: 120px;\n `,\n lg: css`\n padding: 0.65rem 0.9rem;\n font-size: 1.125rem;\n min-height: 160px;\n `,\n};\n\nconst stateStyles: Record<State, any> = {\n default: css``,\n error: css`\n border-color: #e53935;\n\n &:focus {\n border-color: #e53935;\n box-shadow: 0 0 0 2px rgba(229, 57, 53, 0.2);\n }\n `,\n};\n\nconst StyledTextarea = styled.textarea<{\n $size: Size;\n $state: State;\n}>`\n ${baseStyle}\n ${({ $size }) => sizeStyles[$size]}\n ${({ $state }) => stateStyles[$state]}\n`;\n\nconst Textarea = ({\n size = \"md\",\n state = \"default\",\n ...rest\n}: TextareaProps) => {\n return <StyledTextarea $size={size} $state={state} {...rest} />;\n};\n\nexport default Textarea;\n","import Row from \"../Layouts/Row\";\r\nimport React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype MenuItems = String[];\r\ntype LogoUrl = string;\r\ntype Alt = string;\r\ntype HREF = string;\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n menuItems?: MenuItems;\r\n logo?: LogoUrl;\r\n alt?: Alt;\r\n href?: HREF;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 0.2em 0em 0.2em 0em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n display: flex;\r\n width: 100%;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 3%;\r\n background-color: rgb(71, 91, 248);\r\n`;\r\n\r\nconst StyledMenu = styled.div`\r\n ${baseStyle}\r\n`;\r\n\r\nconst CenterMenu = ({\r\n menuItems = [\"SampleMenu_1\", \"SampleMenu_2\", \"SampleMenu_3\"],\r\n logo,\r\n alt = \"logo\",\r\n href = \"#\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledMenu {...rest}>\r\n {/* {children} */}\r\n <a href={href}>\r\n <img\r\n src={logo}\r\n alt={alt}\r\n width='48px'\r\n height='48px'\r\n style={{\r\n mixBlendMode: \"multiply\",\r\n objectFit:'contain'\r\n }}\r\n />\r\n </a>\r\n\r\n {menuItems.map((x, i) => {\r\n return <div key={i}>{x}</div>;\r\n })}\r\n </StyledMenu>\r\n );\r\n};\r\n\r\nexport default CenterMenu;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype JustifyContent =\r\n | \"center\"\r\n | \"start\"\r\n | \"end\"\r\n | \"FStart\"\r\n | \"FEnd\"\r\n | \"left\"\r\n | \"right\"\r\n | \"between\"\r\n | \"around\"\r\n | \"even\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n justify?: JustifyContent;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n`;\r\n\r\nconst justifyStyles = {\r\n center: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n `,\r\n start: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: start;\r\n `,\r\n end: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: end;\r\n `,\r\n FStart: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-start;\r\n `,\r\n FEnd: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-end;\r\n `,\r\n left: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: left;\r\n `,\r\n\r\n right: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: right;\r\n `,\r\n between: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-around;\r\n `,\r\n even: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $justify: JustifyContent; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $justify, $gap }) => css`\r\n ${justifyStyles[$justify]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Row = ({\r\n justify = \"center\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $justify={justify} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Row;\r\n","import Row from \"../Layouts/Row\";\r\nimport React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype MenuItems = String[];\r\ntype LogoUrl = \"\"\r\ntype Alt = string;\r\ntype HREF = string;\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n menuItems?: MenuItems;\r\n logo?: LogoUrl;\r\n alt?: Alt;\r\n href?: HREF;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em 0em 1em 0em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n display: flex;\r\n width: 100%;\r\n justify-content: space-between;\r\n background-color:rgb(71, 91, 248);\r\n`;\r\n\r\nconst StyledMenu = styled.div`\r\n ${baseStyle}\r\n`;\r\n\r\nconst HorizantalMenu = ({\r\n menuItems = [\"SampleMenu_1\", \"SampleMenu_2\", \"SampleMenu_3\"],\r\n logo,\r\n alt = \"logo\",\r\n href = \"#\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledMenu {...rest}>\r\n {/* {children} */}\r\n <a href={href}>\r\n <img\r\n src={logo}\r\n alt={alt}\r\n width=\"36px\"\r\n height=\"36px\"\r\n style={{\r\n mixBlendMode: \"multiply\",\r\n objectFit:'contain'\r\n }}\r\n />\r\n </a>\r\n <Row justify='FEnd'>\r\n {menuItems.map((x, i) => {\r\n return <div key={i}>{x}</div>;\r\n })}\r\n </Row>\r\n </StyledMenu>\r\n );\r\n};\r\n\r\nexport default HorizantalMenu;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst CustomDiv = styled.div<{}>`\r\n ${baseStyle}\r\n`;\r\n\r\nconst Center = ({\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Center;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype JustifyContent =\r\n | \"center\"\r\n | \"start\"\r\n | \"end\"\r\n | \"FStart\"\r\n | \"FEnd\"\r\n | \"left\"\r\n | \"right\"\r\n | \"between\"\r\n | \"around\"\r\n | \"even\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n justify?: JustifyContent;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst justifyStyles = {\r\n center: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n `,\r\n start: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: start;\r\n `,\r\n end: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: end;\r\n `,\r\n FStart: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-start;\r\n `,\r\n FEnd: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-end;\r\n `,\r\n left: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: left;\r\n `,\r\n\r\n right: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: right;\r\n `,\r\n between: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-around;\r\n `,\r\n even: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $justify: JustifyContent; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $justify, $gap }) => css`\r\n ${justifyStyles[$justify]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Col = ({\r\n justify = \"center\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $justify={justify} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Col;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Size = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype Flex = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n size?: Size;\r\n flex?: Flex;\r\n gap?: Gap;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em;\r\n`;\r\n\r\nconst sizeStyles = {\r\n xs: css`\r\n max-width: 576px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n sm: css`\r\n max-width: 688px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n md: css`\r\n max-width: 768px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n lg: css`\r\n max-width: 100%;\r\n width: 100%;\r\n display: flex;\r\n padding: 0px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n};\r\n\r\nconst flexStyles = {\r\n row: css`\r\n width: inherit;\r\n display: flex;\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n width: inherit;\r\n display: flex;\r\n flex-direction: column;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\nconst CustomDiv = styled.div<{ $size: Size; $flex: Flex, $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $size, $flex, $gap }) => css`\r\n ${sizeStyles[$size]}\r\n ${flexStyles[$flex]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Container = ({\r\n size = \"lg\",\r\n flex = \"row\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $size={size} $flex={flex} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Container;\r\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\ntype Rows = number;\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n columns?: Columns;\n rows?: Rows;\n gap?: Gap;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n display: grid;\n width: 100%;\n`;\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n gap: 0.5rem;\n `,\n sm: css`\n gap: 1rem;\n `,\n md: css`\n gap: 2rem;\n `,\n lg: css`\n gap: 3rem;\n `,\n};\n\nconst StyledGrid = styled.div<{\n $columns: Columns;\n $rows?: Rows;\n $gap: Gap;\n}>`\n ${baseStyle}\n\n ${({ $columns }) => css`\n grid-template-columns: repeat(${$columns}, minmax(0, 1fr));\n `}\n\n ${({ $rows }) =>\n $rows &&\n css`\n grid-template-rows: repeat(${$rows}, 1fr);\n `}\n\n ${({ $gap }) => gapStyles[$gap]}\n`;\n\nconst Grid = ({\n columns = 12,\n rows,\n gap = \"sm\",\n children,\n ...rest\n}: GridProps) => {\n return (\n <StyledGrid\n $columns={columns}\n $rows={rows}\n $gap={gap}\n {...rest}\n >\n {children}\n </StyledGrid>\n );\n};\n\nexport default Grid;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Direction = \"vertical\" | \"horizontal\";\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n direction?: Direction;\n gap?: Gap;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n display: flex;\n width: 100%;\n`;\n\nconst directionStyles: Record<Direction, any> = {\n vertical: css`\n flex-direction: column;\n `,\n horizontal: css`\n flex-direction: row;\n `,\n};\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n gap: 0.5rem;\n `,\n sm: css`\n gap: 1rem;\n `,\n md: css`\n gap: 2rem;\n `,\n lg: css`\n gap: 3rem;\n `,\n};\n\nconst StyledStack = styled.div<{\n $direction: Direction;\n $gap: Gap;\n}>`\n ${baseStyle}\n ${({ $direction }) => directionStyles[$direction]}\n ${({ $gap }) => gapStyles[$gap]}\n`;\n\nconst Stack = ({\n direction = \"vertical\",\n gap = \"sm\",\n children,\n ...rest\n}: StackProps) => {\n return (\n <StyledStack $direction={direction} $gap={gap} {...rest}>\n {children}\n </StyledStack>\n );\n};\n\nexport default Stack;\n"],"mappings":"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","names":["styled","import_styled_components","import_jsx_runtime","baseStyle","variantStyles","styled","import_styled_components","import_jsx_runtime","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","import_styled_components","import_jsx_runtime","styled","Box","import_react","import_styled_components","import_jsx_runtime","Wrapper","styled","import_styled_components","import_jsx_runtime","baseStyle","gapStyles","styled","import_react","import_react_dom","import_styled_components","import_jsx_runtime","styled","Header","import_styled_components","import_jsx_runtime","baseStyle","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","Wrapper","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","sizeStyles","styled","import_styled_components","import_jsx_runtime","baseStyle","variantStyles","styled","import_react","import_react_dom","import_styled_components","import_jsx_runtime","Overlay","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","Wrapper","styled","HiddenInput","import_react","import_styled_components","import_react_dom","import_jsx_runtime","styled","React","import_styled_components","import_jsx_runtime","Wrapper","styled","HiddenInput","import_styled_components","import_jsx_runtime","baseStyle","variantStyles","StyledButton","styled","import_styled_components","import_jsx_runtime","baseStyle","sizeStyles","styled","import_styled_components","import_jsx_runtime","baseStyle","styled","import_styled_components","import_jsx_runtime","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","import_styled_components","import_jsx_runtime","baseStyle","StyledMenu","styled","import_styled_components","import_jsx_runtime","baseStyle","CustomDiv","styled","import_styled_components","import_jsx_runtime","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","import_styled_components","import_jsx_runtime","baseStyle","sizeStyles","gapStyles","CustomDiv","styled","import_styled_components","import_jsx_runtime","baseStyle","gapStyles","styled","Grid","import_styled_components","import_jsx_runtime","baseStyle","gapStyles","styled"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/components/Box.tsx","../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Checkbox.tsx","../src/components/DatePicker.tsx","../src/components/Divider.tsx","../src/components/Drawer.tsx","../src/components/Flex.tsx","../src/components/Form.tsx","../src/components/FormControl.tsx","../src/components/Heading.tsx","../src/components/Input.tsx","../src/components/Link.tsx","../src/components/Modal.tsx","../src/components/Paragraph.tsx","../src/components/Radio.tsx","../src/components/Select.tsx","../src/components/Switch.tsx","../src/components/Text.tsx","../src/components/Textarea.tsx","../src/components/Menus/CenterMenu.tsx","../src/components/Layouts/Row.tsx","../src/components/Menus/HorizantalMenu.tsx","../src/components/Layouts/Center.tsx","../src/components/Layouts/Col.tsx","../src/components/Layouts/Container.tsx","../src/components/Layouts/Grid.tsx","../src/components/Layouts/Stack.tsx","../src/components/Notification/NotificationProvider.tsx","../src/components/Notification/toast.ts","../src/components/Notification/useToast.ts"],"sourcesContent":["export * from \"./components\";\n// Notification\nexport { NotificationProvider } from \"./components/Notification/NotificationProvider\";\nexport { toast } from \"./components/Notification/toast\";\nexport { useToast } from \"./components/Notification/useToast\";\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Flex = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype Variant = \"default\" | \"elevated\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n flex?: Flex;\r\n variant?: Variant;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n width: fit-content;\r\n height: fit-content;\r\n padding: 1em 1em;\r\n border: 1px solid lightgray;\r\n justify-self: center;\r\n`;\r\n\r\nconst variantStyles = {\r\n default: css`\r\n transition: none;\r\n `,\r\n elevated: css`\r\n transition: box-shadow 300ms ease;\r\n &:hover {\r\n box-shadow: rgba(36, 40, 45, 0.2) 0px 8px 24px;\r\n }\r\n `,\r\n};\r\n\r\nconst justifyStyles = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\n\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 0.5em;\r\n `,\r\n sm: css`\r\n gap: 1em;\r\n `,\r\n md: css`\r\n gap: 1.5em;\r\n `,\r\n lg: css`\r\n gap: 2.5em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $flex: Flex; $gap: Gap, $variant: Variant }>`\r\n ${baseStyle}\r\n ${({ $flex, $gap, $variant }) => css`\r\n ${justifyStyles[$flex]}\r\n ${gapStyles[$gap]}\r\n ${variantStyles[$variant]}\r\n `}\r\n`;\r\n\r\nconst Box = ({\r\n flex = \"row\",\r\n gap = \"xs\",\r\n variant = \"default\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $flex={flex} $gap={gap} $variant={variant} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Box;\r\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Variant = \"primary_solid\" | \"primary_outline\" | \"primary_text\";\r\n\r\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: Variant;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n`;\r\n\r\nconst variantStyles = {\r\n primary_solid: css`\r\n background-color: #2d8eff;\r\n color: white;\r\n border: 1px solid #2d8eff;\r\n transition: all 0.6s ease;\r\n // &:hover {\r\n // color: #fff;\r\n // border-right: none;\r\n // border-left: none;\r\n // border-top: 2px solid #fff;\r\n // border-bottom: 2px solid #fff;\r\n // background-color:rgba(144, 167, 194, 0);\r\n // letter-spacing: 4px;\r\n//}\r\n `,\r\n primary_outline: css`\r\n background-color: transparent;\r\n color: #2d8eff;\r\n border: 1px solid #2d8eff;\r\n `,\r\n primary_text: css`\r\n background-color: transparent;\r\n color: #2d8eff;\r\n border: none;\r\n transition: all 0.9s ease;\r\n // &:hover{\r\n // background-color: #2d8eff;\r\n // color: #fff;\r\n // }\r\n `,\r\n};\r\n\r\nconst StyledButton = styled.button<{ $variant: Variant }>`\r\n ${baseStyle}\r\n ${({ $variant }) => variantStyles[$variant]}\r\n`;\r\n\r\nconst Button = ({\r\n variant = \"primary_solid\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledButton $variant={variant} {...rest}>\r\n {children}\r\n </StyledButton>\r\n );\r\n};\r\n\r\nexport default Button;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Direction = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype ImageURL = string;\r\ntype ImageAlt = string;\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n Imageurl?: ImageURL;\r\n Imagealt?: ImageAlt;\r\n direction?: Direction;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n width: fit-content;\r\n height: fit-content;\r\n background-color: rgb(255, 255, 255);\r\n padding: 1em 1em;\r\n border-radius: 0.8em;\r\n box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;\r\n transition: all 0.9s ease;\r\n &:hover {\r\n box-shadow: rgba(36, 40, 45, 0.2) 0px 8px 24px;\r\n }\r\n`;\r\n\r\nconst justifyStyles = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 0.5em;\r\n `,\r\n sm: css`\r\n gap: 1em;\r\n `,\r\n md: css`\r\n gap: 1.5em;\r\n `,\r\n lg: css`\r\n gap: 2.5em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $direction: Direction; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $direction, $gap }) => css`\r\n ${justifyStyles[$direction]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Card = ({\r\n direction = \"col\",\r\n gap = \"xs\",\r\n Imagealt = \"card-image\",\r\n Imageurl = \"\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $direction={direction} $gap={gap} {...rest}>\r\n {Imageurl.length > 0 ? \r\n <>\r\n <div style={{\r\n width:'100%',\r\n height: \"200px\",\r\n backgroundImage:`url(${Imageurl})`,\r\n backgroundPosition:'center',\r\n backgroundSize:'cover',\r\n borderRadius:'12px',\r\n border: \"1px solid #f1f1f1\"\r\n }}>\r\n {/* just for image holder */}\r\n </div> \r\n {children}\r\n </>\r\n : children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Card;\r\n","import React, { useEffect, useRef } from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n indeterminate?: boolean;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"checkbox\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst boxBase = css`\n width: 16px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid #ccc;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n`;\n\nconst Box = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${boxBase}\n background-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#fff\")};\n border-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#ccc\")};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n\n ${Wrapper}:hover & {\n border-color: #2d8eff;\n }\n`;\n\nconst CheckMark = styled.span`\n width: 8px;\n height: 8px;\n background: white;\n border-radius: 2px;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Checkbox = ({\n checked = false,\n indeterminate = false,\n disabled = false,\n label,\n ...rest\n}: CheckboxProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n return (\n <Wrapper>\n <HiddenInput\n ref={inputRef}\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Box $checked={checked || indeterminate} $disabled={disabled}>\n {(checked || indeterminate) && <CheckMark />}\n </Box>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Checkbox;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { createPortal } from \"react-dom\";\n\n/* =========================\n Types\n========================= */\n\nexport interface DatePickerProps {\n value?: Date;\n onChange?: (date: Date) => void;\n placeholder?: string;\n}\n\n/* =========================\n Date utils (pure)\n========================= */\n\nconst isSameDay = (a: Date, b: Date) =>\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate();\n\nconst getDaysInMonth = (year: number, month: number) =>\n new Date(year, month + 1, 0).getDate();\n\nconst formatDate = (date: Date) =>\n date.toISOString().split(\"T\")[0];\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.div`\n position: relative;\n width: 100%;\n`;\n\nconst InputBox = styled.div`\n border: 1px solid #ccc;\n border-radius: 6px;\n padding: 0.5rem 0.75rem;\n cursor: pointer;\n background: #fff;\n`;\n\nconst Panel = styled.div`\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n background: white;\n border-radius: 8px;\n padding: 0.75rem;\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n`;\n\nconst Header = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.5rem;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(7, 32px);\n gap: 4px;\n`;\n\nconst Day = styled.div<{ $selected?: boolean }>`\n text-align: center;\n padding: 0.35rem 0;\n border-radius: 4px;\n cursor: pointer;\n background: ${({ $selected }) =>\n $selected ? \"#2d8eff\" : \"transparent\"};\n color: ${({ $selected }) =>\n $selected ? \"#fff\" : \"inherit\"};\n\n &:hover {\n background: #f0f0f0;\n }\n`;\n\n/* =========================\n Component\n========================= */\n\nconst DatePicker: React.FC<DatePickerProps> = ({\n value,\n onChange,\n placeholder = \"Select date\",\n}) => {\n const [open, setOpen] = useState(false);\n const [current, setCurrent] = useState(\n value || new Date()\n );\n\n const ref = useRef<HTMLDivElement>(null);\n\n /* Close on outside click */\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () =>\n document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n const year = current.getFullYear();\n const month = current.getMonth();\n const daysInMonth = getDaysInMonth(year, month);\n\n const days = Array.from({ length: daysInMonth }, (_, i) => {\n const date = new Date(year, month, i + 1);\n return date;\n });\n\n return (\n <Wrapper ref={ref}>\n <InputBox onClick={() => setOpen(!open)}>\n {value ? formatDate(value) : placeholder}\n </InputBox>\n\n {open &&\n createPortal(\n <Panel>\n <Header>\n <button\n onClick={() =>\n setCurrent(\n new Date(year, month - 1, 1)\n )\n }\n >\n ◀\n </button>\n <strong>\n {current.toLocaleString(\"default\", {\n month: \"long\",\n })}{\" \"}\n {year}\n </strong>\n <button\n onClick={() =>\n setCurrent(\n new Date(year, month + 1, 1)\n )\n }\n >\n ▶\n </button>\n </Header>\n\n <Grid>\n {days.map((d) => (\n <Day\n key={d.toISOString()}\n $selected={\n value ? isSameDay(d, value) : false\n }\n onClick={() => {\n onChange?.(d);\n setOpen(false);\n }}\n >\n {d.getDate()}\n </Day>\n ))}\n </Grid>\n </Panel>,\n document.body\n )}\n </Wrapper>\n );\n};\n\nexport default DatePicker;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\ntype Size = \"thin\" | \"medium\";\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: Orientation;\n size?: Size;\n gap?: Gap;\n}\n\nconst baseStyle = css`\n background-color: rgba(0, 0, 0, 0.12);\n flex-shrink: 0;\n`;\n\nconst orientationStyles: Record<Orientation, any> = {\n horizontal: css`\n width: 100%;\n height: 1px;\n `,\n vertical: css`\n height: 100%;\n width: 1px;\n `,\n};\n\nconst sizeStyles: Record<Size, any> = {\n thin: css`\n opacity: 0.6;\n `,\n medium: css`\n opacity: 1;\n `,\n};\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n margin: 0.5rem 0;\n `,\n sm: css`\n margin: 1rem 0;\n `,\n md: css`\n margin: 2rem 0;\n `,\n lg: css`\n margin: 3rem 0;\n `,\n};\n\nconst StyledDivider = styled.div<{\n $orientation: Orientation;\n $size: Size;\n $gap: Gap;\n}>`\n ${baseStyle}\n ${({ $orientation }) => orientationStyles[$orientation]}\n ${({ $size }) => sizeStyles[$size]}\n ${({ $gap, $orientation }) =>\n $orientation === \"horizontal\"\n ? gapStyles[$gap]\n : css`\n margin: 0 ${gapStyles[$gap].styles?.margin?.split(\" \")[0] || \"1rem\"};\n `}\n`;\n\nconst Divider = ({\n orientation = \"horizontal\",\n size = \"thin\",\n gap = \"sm\",\n ...rest\n}: DividerProps) => {\n return (\n <StyledDivider\n role=\"separator\"\n $orientation={orientation}\n $size={size}\n $gap={gap}\n {...rest}\n />\n );\n};\n\nexport default Divider;\n","import React, { useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport type DrawerPlacement = \"right\" | \"left\" | \"bottom\";\n\nexport interface DrawerProps {\n open: boolean;\n onClose?: () => void;\n placement?: DrawerPlacement;\n width?: number | string;\n height?: number | string;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Overlay = styled.div`\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.45);\n z-index: 1000;\n`;\n\nconst baseDrawer = css`\n position: fixed;\n background: #fff;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n`;\n\nconst placementStyles = {\n right: css`\n top: 0;\n right: 0;\n height: 100%;\n `,\n left: css`\n top: 0;\n left: 0;\n height: 100%;\n `,\n bottom: css`\n left: 0;\n bottom: 0;\n width: 100%;\n `,\n};\n\nconst DrawerContainer = styled.div<{\n $placement: DrawerPlacement;\n $width?: number | string;\n $height?: number | string;\n}>`\n ${baseDrawer}\n ${({ $placement }) => placementStyles[$placement]}\n\n ${({ $placement, $width }) =>\n ($placement === \"left\" || $placement === \"right\") &&\n css`\n width: ${typeof $width === \"number\"\n ? `${$width}px`\n : $width || \"360px\"};\n `}\n\n ${({ $placement, $height }) =>\n $placement === \"bottom\" &&\n css`\n height: ${typeof $height === \"number\"\n ? `${$height}px`\n : $height || \"320px\"};\n `}\n`;\n\nconst Header = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 0.75rem;\n border-bottom: 1px solid #eee;\n`;\n\nconst CloseButton = styled.button`\n background: none;\n border: none;\n font-size: 1.25rem;\n cursor: pointer;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Drawer: React.FC<DrawerProps> = ({\n open,\n onClose,\n placement = \"right\",\n width,\n height,\n children,\n}) => {\n useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose?.();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () =>\n document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return createPortal(\n <>\n <Overlay onClick={onClose} />\n\n <DrawerContainer\n $placement={placement}\n $width={width}\n $height={height}\n >\n <Header>\n <CloseButton onClick={onClose}>×</CloseButton>\n </Header>\n {children}\n </DrawerContainer>\n </>,\n document.body\n );\n};\n\nexport default Drawer;\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Gap = \"small\" | \"medium\" | \"large\";\r\ntype FlexDirection = \"row\" | \"col\";\r\ntype Justify = \"center\" | \"between\" | \"around\" | \"start\" | \"end\" | \"even\";\r\ntype Align = \"center\" | \"between\" | \"around\" | \"start\" | \"end\" | \"even\";\r\n\r\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n flexDirection?: FlexDirection;\r\n justify?: Justify;\r\n align?: Align;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n`;\r\nconst FlexDirectionStyle = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\nconst JustifyStyle = {\r\n center: css`\r\n justify-content: center;\r\n `,\r\n between: css`\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n justify-content: space-around;\r\n `,\r\n start: css`\r\n justify-content: flex-start;\r\n `,\r\n end: css`\r\n justify-content: flex-end;\r\n `,\r\n even: css`\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst AlignStyle = {\r\n center: css`\r\n align-items: center;\r\n `,\r\n between: css`\r\n align-items: space-between;\r\n `,\r\n around: css`\r\n align-items: space-around;\r\n `,\r\n start: css`\r\n align-items: flex-start;\r\n `,\r\n end: css`\r\n align-items: flex-end;\r\n `,\r\n even: css`\r\n align-items: space-evenly;\r\n `,\r\n};\r\nconst GapStyle = {\r\n small: css`\r\n gap: 1em;\r\n `,\r\n medium: css`\r\n gap: 2em;\r\n `,\r\n large: css`\r\n gap: 3em;\r\n `,\r\n};\r\n\r\nconst StyledDiv = styled.div<{\r\n $flexDirection: FlexDirection;\r\n $gap: Gap;\r\n $justify: Justify;\r\n $align: Align\r\n}>`\r\n ${baseStyle}\r\n ${({ $flexDirection, $gap, $justify, $align }) => css`\r\n ${FlexDirectionStyle[$flexDirection]}\r\n ${GapStyle[$gap]}\r\n ${AlignStyle[$align]}\r\n ${JustifyStyle[$justify]}\r\n `}\r\n`;\r\n\r\nconst Flex = ({\r\n gap = \"small\",\r\n justify = \"center\",\r\n align = \"center\",\r\n flexDirection = 'col',\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledDiv $gap={gap} $justify={justify} $align={align} $flexDirection={flexDirection} {...rest}>\r\n {children}\r\n </StyledDiv>\r\n );\r\n};\r\n\r\nexport default Flex;\r\n","import React from \"react\";\nimport styled from \"styled-components\";\n\ninterface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n children: React.ReactNode;\n}\n\nconst StyledForm = styled.form`\n width: 100%;\n`;\n\nconst Form = ({ children, ...rest }: FormProps) => {\n return <StyledForm {...rest}>{children}</StyledForm>;\n};\n\nexport default Form;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface FormControlProps {\n label?: React.ReactNode;\n error?: React.ReactNode;\n helperText?: React.ReactNode;\n required?: boolean;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n width: 100%;\n`;\n\nconst Label = styled.label<{ $error?: boolean }>`\n font-size: 0.875rem;\n font-weight: 500;\n color: ${({ $error }) => ($error ? \"#e53935\" : \"inherit\")};\n`;\n\nconst RequiredMark = styled.span`\n color: #e53935;\n margin-left: 0.25rem;\n`;\n\nconst Helper = styled.span`\n font-size: 0.75rem;\n color: #666;\n`;\n\nconst ErrorText = styled.span`\n font-size: 0.75rem;\n color: #e53935;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst FormControl = ({\n label,\n error,\n helperText,\n required = false,\n children,\n}: FormControlProps) => {\n return (\n <Wrapper>\n {label && (\n <Label $error={!!error}>\n {label}\n {required && <RequiredMark>*</RequiredMark>}\n </Label>\n )}\n\n {children}\n\n {error ? (\n <ErrorText>{error}</ErrorText>\n ) : (\n helperText && <Helper>{helperText}</Helper>\n )}\n </Wrapper>\n );\n};\n\nexport default FormControl;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport type Level = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface HeadingProps\n extends React.HTMLAttributes<HTMLHeadingElement> {\n level?: Level;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst levelStyles: Record<Level, ReturnType<typeof css>> = {\n 1: css`font-size: 2rem;`,\n 2: css`font-size: 1.75rem;`,\n 3: css`font-size: 1.5rem;`,\n 4: css`font-size: 1.25rem;`,\n 5: css`font-size: 1.1rem;`,\n 6: css`font-size: 1rem;`,\n};\n\nconst Base = styled.div<{ $level: Level }>`\n margin: 0;\n font-weight: 600;\n ${({ $level }) => levelStyles[$level]}\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Heading: React.FC<HeadingProps> = ({\n level = 1,\n children,\n ...rest\n}) => {\n const Tag = `h${level}` as const;\n\n return (\n <Base\n as={Tag}\n $level={level}\n {...rest}\n >\n {children}\n </Base>\n );\n};\n\nexport default Heading;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ntype InputSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\ntype State = \"default\" | \"error\";\n\nexport interface InputProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"size\"\n > {\n inputSize?: InputSize;\n state?: State;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst sizeStyles = {\n xs: css`padding: 0.25rem 0.5rem; font-size: 0.75rem;`,\n sm: css`padding: 0.4rem 0.6rem; font-size: 0.875rem;`,\n md: css`padding: 0.5rem 0.75rem; font-size: 1rem;`,\n lg: css`padding: 0.65rem 0.9rem; font-size: 1.1rem;`,\n};\n\nconst StyledInput = styled.input<{\n $inputSize: InputSize;\n $state: State;\n}>`\n width: 100%;\n border-radius: 6px;\n border: 1px solid\n ${({ $state }) =>\n $state === \"error\" ? \"#e53935\" : \"#ccc\"};\n outline: none;\n\n ${({ $inputSize }) => sizeStyles[$inputSize]}\n\n &:focus {\n border-color: #2d8eff;\n }\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Input: React.FC<InputProps> = ({\n inputSize = \"md\",\n state = \"default\",\n ...rest\n}) => {\n return (\n <StyledInput\n $inputSize={inputSize}\n $state={state}\n {...rest}\n />\n );\n};\n\nexport default Input;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Variant = \"default\" | \"muted\";\n\ninterface LinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n variant?: Variant;\n external?: boolean;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n color: inherit;\n text-decoration: underline;\n cursor: pointer;\n transition: color 0.2s ease, text-decoration-color 0.2s ease;\n\n &:hover {\n text-decoration-thickness: 2px;\n }\n\n &:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n }\n`;\n\nconst variantStyles: Record<Variant, any> = {\n default: css`\n opacity: 1;\n `,\n muted: css`\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n `,\n};\n\nconst StyledLink = styled.a<{ $variant: Variant }>`\n ${baseStyle}\n ${({ $variant }) => variantStyles[$variant]}\n`;\n\nconst Link = ({\n variant = \"default\",\n external = false,\n children,\n ...rest\n}: LinkProps) => {\n return (\n <StyledLink\n $variant={variant}\n target={external ? \"_blank\" : rest.target}\n rel={external ? \"noopener noreferrer\" : rest.rel}\n {...rest}\n >\n {children}\n </StyledLink>\n );\n};\n\nexport default Link;\n","import React, { useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport interface ModalProps {\n open: boolean;\n onClose?: () => void;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Overlay = styled.div`\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.45);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n`;\n\nconst Content = styled.div`\n background: #fff;\n border-radius: 8px;\n width: 100%;\n max-width: 500px;\n padding: 1.5rem;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n children,\n}) => {\n useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose?.();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () =>\n document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return createPortal(\n <Overlay onClick={onClose}>\n <Content onClick={(e) => e.stopPropagation()}>\n {children}\n </Content>\n </Overlay>,\n document.body\n );\n};\n\nexport default Modal;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\ninterface ParagraphProps extends React.HTMLAttributes<HTMLParagraphElement> {\n children: React.ReactNode;\n}\n\nconst StyledParagraph = styled.p`\n margin: 0;\n font-size: 1rem;\n line-height: 1.6;\n color: inherit;\n`;\n\nconst Paragraph = ({ children, ...rest }: ParagraphProps) => {\n return <StyledParagraph {...rest}>{children}</StyledParagraph>;\n};\n\nexport default Paragraph;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"radio\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst circleBase = css`\n width: 16px;\n height: 16px;\n border-radius: 50%;\n border: 2px solid #ccc;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n`;\n\nconst Circle = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${circleBase}\n border-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#ccc\")};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n\n ${Wrapper}:hover & {\n border-color: #2d8eff;\n }\n`;\n\nconst Dot = styled.span`\n width: 8px;\n height: 8px;\n background: #2d8eff;\n border-radius: 50%;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Radio = ({\n checked = false,\n disabled = false,\n label,\n ...rest\n}: RadioProps) => {\n return (\n <Wrapper>\n <HiddenInput\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Circle $checked={checked} $disabled={disabled}>\n {checked && <Dot />}\n </Circle>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Radio;\n","import React, {\n useEffect,\n useRef,\n useState,\n ReactNode,\n} from \"react\";\nimport styled from \"styled-components\";\nimport { createPortal } from \"react-dom\";\n\n/* =========================\n Types\n========================= */\n\ntype SelectSize = \"sm\" | \"md\" | \"lg\";\ntype SelectState = \"default\" | \"error\";\n\nexport interface OptionType {\n label: ReactNode;\n value: string;\n}\n\nexport interface SelectProps\n extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"onChange\"\n > {\n value?: string;\n placeholder?: string;\n options?: OptionType[];\n onChange?: (value: string) => void;\n selectSize?: SelectSize;\n state?: SelectState;\n children?: ReactNode;\n}\n\n/* =========================\n Option (composition API)\n========================= */\n\nexport interface SelectOptionProps {\n value: string;\n children: ReactNode;\n}\n\nconst Option: React.FC<SelectOptionProps> = () => null;\nOption.displayName = \"SelectOption\";\n\n/* =========================\n Styles\n========================= */\n\nconst Trigger = styled.div<{\n $size: SelectSize;\n $state: SelectState;\n}>`\n border: 1px solid\n ${({ $state }) =>\n $state === \"error\" ? \"#e53935\" : \"#ccc\"};\n border-radius: 6px;\n padding: ${({ $size }) =>\n $size === \"sm\"\n ? \"0.4rem 0.6rem\"\n : $size === \"lg\"\n ? \"0.7rem 0.9rem\"\n : \"0.55rem 0.75rem\"};\n cursor: pointer;\n background: #fff;\n`;\n\nconst Dropdown = styled.div`\n position: fixed;\n min-width: 200px;\n background: white;\n border-radius: 6px;\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);\n padding: 0.25rem;\n z-index: 1000;\n`;\n\nconst Item = styled.div<{ $active?: boolean }>`\n padding: 0.4rem 0.6rem;\n border-radius: 4px;\n cursor: pointer;\n background: ${({ $active }) =>\n $active ? \"#2d8eff\" : \"transparent\"};\n color: ${({ $active }) =>\n $active ? \"#fff\" : \"inherit\"};\n\n &:hover {\n background: ${({ $active }) =>\n $active ? \"#2d8eff\" : \"#f5f5f5\"};\n }\n`;\n\n/* =========================\n Component typing\n========================= */\n\ninterface SelectComponent\n extends React.FC<SelectProps> {\n Option: React.FC<SelectOptionProps>;\n}\n\n/* =========================\n Component\n========================= */\n\nconst Select = (({\n value,\n placeholder = \"Select\",\n options,\n onChange,\n selectSize = \"md\",\n state = \"default\",\n children,\n ...rest\n}: SelectProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [pos, setPos] = useState({ top: 0, left: 0 });\n\n /* =========================\n Resolve options\n ========================= */\n\n const childOptions: OptionType[] =\n React.Children.toArray(children)\n .filter(\n (\n child\n ): child is React.ReactElement<SelectOptionProps> =>\n React.isValidElement(child) &&\n child.type === Option\n )\n .map((child) => ({\n value: child.props.value,\n label: child.props.children,\n }));\n\n const finalOptions = options ?? childOptions;\n\n const selected =\n finalOptions.find((o) => o.value === value)\n ?.label ?? placeholder;\n\n /* =========================\n Positioning\n ========================= */\n\n const openDropdown = () => {\n if (!ref.current) return;\n\n const rect = ref.current.getBoundingClientRect();\n setPos({\n top: rect.bottom + 6,\n left: rect.left,\n });\n\n setOpen(true);\n };\n\n /* =========================\n Close on outside\n ========================= */\n\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (\n ref.current &&\n !ref.current.contains(e.target as Node)\n ) {\n setOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () =>\n document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n /* =========================\n Render\n ========================= */\n\n return (\n <>\n <Trigger\n ref={ref}\n onClick={openDropdown}\n $size={selectSize}\n $state={state}\n {...rest}\n >\n {selected}\n </Trigger>\n\n {open &&\n createPortal(\n <Dropdown\n style={{\n top: pos.top,\n left: pos.left,\n }}\n >\n {finalOptions.map((opt) => (\n <Item\n key={opt.value}\n $active={opt.value === value}\n onClick={() => {\n onChange?.(opt.value);\n setOpen(false);\n }}\n >\n {opt.label}\n </Item>\n ))}\n </Dropdown>,\n document.body\n )}\n </>\n );\n}) as SelectComponent;\n\n/* =========================\n Attach Option\n========================= */\n\nSelect.Option = Option;\n\nexport default Select;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface SwitchProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"checkbox\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst trackBase = css`\n width: 36px;\n height: 20px;\n border-radius: 999px;\n background-color: #ccc;\n position: relative;\n transition: background-color 0.2s ease;\n`;\n\nconst Track = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${trackBase}\n background-color: ${({ $checked }) =>\n $checked ? \"#2d8eff\" : \"#ccc\"};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n`;\n\nconst Thumb = styled.span<{ $checked: boolean }>`\n width: 16px;\n height: 16px;\n background-color: #fff;\n border-radius: 50%;\n position: absolute;\n top: 2px;\n left: 2px;\n transition: transform 0.2s ease;\n\n transform: ${({ $checked }) =>\n $checked ? \"translateX(16px)\" : \"translateX(0)\"};\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Switch = ({\n checked = false,\n disabled = false,\n label,\n ...rest\n}: SwitchProps) => {\n return (\n <Wrapper>\n <HiddenInput\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Track $checked={checked} $disabled={disabled}>\n <Thumb $checked={checked} />\n </Track>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Switch;\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype FontVariant = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\";\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLElement> {\r\n fontVariant?: FontVariant;\r\n children: React.ReactNode;\r\n}\r\n/*\r\n<h1>: Typically rendered at 2em (twice the size of the base font). \r\n<h2>: Typically rendered at 1.5em (1.5 times the size of the base font). \r\n<h3>: Typically rendered at 1.17em. \r\n<h4>: Typically rendered at 1em. \r\n<h5>: Typically rendered at 0.83em. \r\n<h6>: Typically rendered at 0.67em. \r\n*/\r\nconst baseStyle = css`\r\n font-size: 12px;\r\n`;\r\n\r\nconst variantStyles = {\r\n h1: css`\r\n font-size: 2em;\r\n font-weight: bold;\r\n `,\r\n h2: css`\r\n font-size: 1.5em;\r\n font-weight: bold;\r\n `,\r\n h3: css`\r\n font-size: 1.17em;\r\n font-weight: bold;\r\n `,\r\n h4: css`\r\n font-size: 1em;\r\n font-weight: bold;\r\n `,\r\n h5: css`\r\n font-size: 0.83em;\r\n font-weight: bold;\r\n `,\r\n h6: css`\r\n font-size: 0.67em;\r\n font-weight: bold;\r\n `,\r\n p: css`\r\n font-size: 0.875em;\r\n `,\r\n};\r\n\r\nconst StyledButton = styled.span<{ $variant: FontVariant }>`\r\n ${baseStyle}\r\n ${({ $variant }) => variantStyles[$variant]}\r\n`;\r\n\r\nconst Text = ({\r\n fontVariant = \"p\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledButton $variant={fontVariant} {...rest}>\r\n {children}\r\n </StyledButton>\r\n );\r\n};\r\n\r\nexport default Text;\r\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Size = \"sm\" | \"md\" | \"lg\";\ntype State = \"default\" | \"error\";\n\ninterface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n size?: Size;\n state?: State;\n}\n\nconst baseStyle = css`\n width: 100%;\n font-family: inherit;\n border-radius: 6px;\n border: 1px solid #ccc;\n background-color: #fff;\n color: inherit;\n outline: none;\n resize: vertical;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n\n &:focus {\n border-color: #2d8eff;\n box-shadow: 0 0 0 2px rgba(45, 142, 255, 0.2);\n }\n\n &:disabled {\n background-color: #f5f5f5;\n cursor: not-allowed;\n opacity: 0.7;\n }\n`;\n\nconst sizeStyles: Record<Size, any> = {\n sm: css`\n padding: 0.4rem 0.6rem;\n font-size: 0.875rem;\n min-height: 80px;\n `,\n md: css`\n padding: 0.5rem 0.75rem;\n font-size: 1rem;\n min-height: 120px;\n `,\n lg: css`\n padding: 0.65rem 0.9rem;\n font-size: 1.125rem;\n min-height: 160px;\n `,\n};\n\nconst stateStyles: Record<State, any> = {\n default: css``,\n error: css`\n border-color: #e53935;\n\n &:focus {\n border-color: #e53935;\n box-shadow: 0 0 0 2px rgba(229, 57, 53, 0.2);\n }\n `,\n};\n\nconst StyledTextarea = styled.textarea<{\n $size: Size;\n $state: State;\n}>`\n ${baseStyle}\n ${({ $size }) => sizeStyles[$size]}\n ${({ $state }) => stateStyles[$state]}\n`;\n\nconst Textarea = ({\n size = \"md\",\n state = \"default\",\n ...rest\n}: TextareaProps) => {\n return <StyledTextarea $size={size} $state={state} {...rest} />;\n};\n\nexport default Textarea;\n","import Row from \"../Layouts/Row\";\r\nimport React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype MenuItems = String[];\r\ntype LogoUrl = string;\r\ntype Alt = string;\r\ntype HREF = string;\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n menuItems?: MenuItems;\r\n logo?: LogoUrl;\r\n alt?: Alt;\r\n href?: HREF;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 0.2em 0em 0.2em 0em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n display: flex;\r\n width: 100%;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 3%;\r\n background-color: rgb(71, 91, 248);\r\n`;\r\n\r\nconst StyledMenu = styled.div`\r\n ${baseStyle}\r\n`;\r\n\r\nconst CenterMenu = ({\r\n menuItems = [\"SampleMenu_1\", \"SampleMenu_2\", \"SampleMenu_3\"],\r\n logo,\r\n alt = \"logo\",\r\n href = \"#\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledMenu {...rest}>\r\n {/* {children} */}\r\n <a href={href}>\r\n <img\r\n src={logo}\r\n alt={alt}\r\n width='48px'\r\n height='48px'\r\n style={{\r\n mixBlendMode: \"multiply\",\r\n objectFit:'contain'\r\n }}\r\n />\r\n </a>\r\n\r\n {menuItems.map((x, i) => {\r\n return <div key={i}>{x}</div>;\r\n })}\r\n </StyledMenu>\r\n );\r\n};\r\n\r\nexport default CenterMenu;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype JustifyContent =\r\n | \"center\"\r\n | \"start\"\r\n | \"end\"\r\n | \"FStart\"\r\n | \"FEnd\"\r\n | \"left\"\r\n | \"right\"\r\n | \"between\"\r\n | \"around\"\r\n | \"even\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n justify?: JustifyContent;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n`;\r\n\r\nconst justifyStyles = {\r\n center: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n `,\r\n start: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: start;\r\n `,\r\n end: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: end;\r\n `,\r\n FStart: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-start;\r\n `,\r\n FEnd: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-end;\r\n `,\r\n left: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: left;\r\n `,\r\n\r\n right: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: right;\r\n `,\r\n between: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-around;\r\n `,\r\n even: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $justify: JustifyContent; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $justify, $gap }) => css`\r\n ${justifyStyles[$justify]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Row = ({\r\n justify = \"center\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $justify={justify} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Row;\r\n","import Row from \"../Layouts/Row\";\r\nimport React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype MenuItems = String[];\r\ntype LogoUrl = \"\"\r\ntype Alt = string;\r\ntype HREF = string;\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n menuItems?: MenuItems;\r\n logo?: LogoUrl;\r\n alt?: Alt;\r\n href?: HREF;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em 0em 1em 0em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n display: flex;\r\n width: 100%;\r\n justify-content: space-between;\r\n background-color:rgb(71, 91, 248);\r\n`;\r\n\r\nconst StyledMenu = styled.div`\r\n ${baseStyle}\r\n`;\r\n\r\nconst HorizantalMenu = ({\r\n menuItems = [\"SampleMenu_1\", \"SampleMenu_2\", \"SampleMenu_3\"],\r\n logo,\r\n alt = \"logo\",\r\n href = \"#\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledMenu {...rest}>\r\n {/* {children} */}\r\n <a href={href}>\r\n <img\r\n src={logo}\r\n alt={alt}\r\n width=\"36px\"\r\n height=\"36px\"\r\n style={{\r\n mixBlendMode: \"multiply\",\r\n objectFit:'contain'\r\n }}\r\n />\r\n </a>\r\n <Row justify='FEnd'>\r\n {menuItems.map((x, i) => {\r\n return <div key={i}>{x}</div>;\r\n })}\r\n </Row>\r\n </StyledMenu>\r\n );\r\n};\r\n\r\nexport default HorizantalMenu;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst CustomDiv = styled.div<{}>`\r\n ${baseStyle}\r\n`;\r\n\r\nconst Center = ({\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Center;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype JustifyContent =\r\n | \"center\"\r\n | \"start\"\r\n | \"end\"\r\n | \"FStart\"\r\n | \"FEnd\"\r\n | \"left\"\r\n | \"right\"\r\n | \"between\"\r\n | \"around\"\r\n | \"even\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n justify?: JustifyContent;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst justifyStyles = {\r\n center: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n `,\r\n start: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: start;\r\n `,\r\n end: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: end;\r\n `,\r\n FStart: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-start;\r\n `,\r\n FEnd: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-end;\r\n `,\r\n left: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: left;\r\n `,\r\n\r\n right: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: right;\r\n `,\r\n between: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-around;\r\n `,\r\n even: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $justify: JustifyContent; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $justify, $gap }) => css`\r\n ${justifyStyles[$justify]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Col = ({\r\n justify = \"center\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $justify={justify} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Col;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Size = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype Flex = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n size?: Size;\r\n flex?: Flex;\r\n gap?: Gap;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em;\r\n`;\r\n\r\nconst sizeStyles = {\r\n xs: css`\r\n max-width: 576px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n sm: css`\r\n max-width: 688px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n md: css`\r\n max-width: 768px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n lg: css`\r\n max-width: 100%;\r\n width: 100%;\r\n display: flex;\r\n padding: 0px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n};\r\n\r\nconst flexStyles = {\r\n row: css`\r\n width: inherit;\r\n display: flex;\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n width: inherit;\r\n display: flex;\r\n flex-direction: column;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\nconst CustomDiv = styled.div<{ $size: Size; $flex: Flex, $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $size, $flex, $gap }) => css`\r\n ${sizeStyles[$size]}\r\n ${flexStyles[$flex]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Container = ({\r\n size = \"lg\",\r\n flex = \"row\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $size={size} $flex={flex} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Container;\r\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\ntype Rows = number;\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n columns?: Columns;\n rows?: Rows;\n gap?: Gap;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n display: grid;\n width: 100%;\n`;\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n gap: 0.5rem;\n `,\n sm: css`\n gap: 1rem;\n `,\n md: css`\n gap: 2rem;\n `,\n lg: css`\n gap: 3rem;\n `,\n};\n\nconst StyledGrid = styled.div<{\n $columns: Columns;\n $rows?: Rows;\n $gap: Gap;\n}>`\n ${baseStyle}\n\n ${({ $columns }) => css`\n grid-template-columns: repeat(${$columns}, minmax(0, 1fr));\n `}\n\n ${({ $rows }) =>\n $rows &&\n css`\n grid-template-rows: repeat(${$rows}, 1fr);\n `}\n\n ${({ $gap }) => gapStyles[$gap]}\n`;\n\nconst Grid = ({\n columns = 12,\n rows,\n gap = \"sm\",\n children,\n ...rest\n}: GridProps) => {\n return (\n <StyledGrid\n $columns={columns}\n $rows={rows}\n $gap={gap}\n {...rest}\n >\n {children}\n </StyledGrid>\n );\n};\n\nexport default Grid;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Direction = \"vertical\" | \"horizontal\";\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n direction?: Direction;\n gap?: Gap;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n display: flex;\n width: 100%;\n`;\n\nconst directionStyles: Record<Direction, any> = {\n vertical: css`\n flex-direction: column;\n `,\n horizontal: css`\n flex-direction: row;\n `,\n};\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n gap: 0.5rem;\n `,\n sm: css`\n gap: 1rem;\n `,\n md: css`\n gap: 2rem;\n `,\n lg: css`\n gap: 3rem;\n `,\n};\n\nconst StyledStack = styled.div<{\n $direction: Direction;\n $gap: Gap;\n}>`\n ${baseStyle}\n ${({ $direction }) => directionStyles[$direction]}\n ${({ $gap }) => gapStyles[$gap]}\n`;\n\nconst Stack = ({\n direction = \"vertical\",\n gap = \"sm\",\n children,\n ...rest\n}: StackProps) => {\n return (\n <StyledStack $direction={direction} $gap={gap} {...rest}>\n {children}\n </StyledStack>\n );\n};\n\nexport default Stack;\n","import React, {\n createContext,\n useContext,\n useState,\n useEffect,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled from \"styled-components\";\nimport { Notice } from \"./NotTypes\";\nimport { registerToast } from \"./toast\";\n\n/* =========================\n Context\n========================= */\n\ninterface NotificationContextValue {\n notify: (notice: Omit<Notice, \"id\">) => void;\n}\n\nconst NotificationContext =\n createContext<NotificationContextValue | null>(null);\n\nexport const useNotification = () => {\n const ctx = useContext(NotificationContext);\n if (!ctx) {\n throw new Error(\"useNotification must be used inside NotificationProvider\");\n }\n return ctx;\n};\n\n/* =========================\n Styles\n========================= */\n\nconst Container = styled.div`\n position: fixed;\n top: 1rem;\n right: 1rem;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n z-index: 2000;\n`;\n\nconst Item = styled.div<{ $type: string }>`\n min-width: 280px;\n padding: 0.75rem 1rem;\n border-radius: 8px;\n background: #fff;\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);\n border-left: 4px solid\n ${({ $type }) =>\n ({\n success: \"#2e7d32\",\n error: \"#d32f2f\",\n info: \"#0288d1\",\n warning: \"#ed6c02\",\n }[$type])};\n`;\n\nconst Title = styled.div`\n font-weight: 600;\n margin-bottom: 0.25rem;\n`;\n\nconst Message = styled.div`\n font-size: 0.875rem;\n line-height: 1.4;\n`;\n\n/* =========================\n Provider\n========================= */\n\nexport const NotificationProvider: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const [items, setItems] = useState<Notice[]>([]);\n\n const notify = (notice: Omit<Notice, \"id\">) => {\n const id = crypto.randomUUID();\n const item: Notice = { ...notice, id };\n\n setItems((prev) => [...prev, item]);\n\n if (notice.duration !== 0) {\n setTimeout(() => {\n setItems((prev) => prev.filter((n) => n.id !== id));\n }, notice.duration ?? 3000);\n }\n };\n\n // 🔥 Register toast once\n useEffect(() => {\n registerToast(notify);\n }, []);\n\n return (\n <NotificationContext.Provider value={{ notify }}>\n {children}\n\n {createPortal(\n <Container>\n {items.map((n) => (\n <Item key={n.id} $type={n.type}>\n {n.title && <Title>{n.title}</Title>}\n <Message>{n.message}</Message>\n </Item>\n ))}\n </Container>,\n document.body\n )}\n </NotificationContext.Provider>\n );\n};\n","import { Notice } from \"./NotTypes\";\n\ntype NotifyFn = (notice: Omit<Notice, \"id\">) => void;\n\nlet notifyRef: NotifyFn | null = null;\n\n/**\n * INTERNAL: Register notify function from provider\n */\nexport const registerToast = (fn: NotifyFn) => {\n notifyRef = fn;\n};\n\n/**\n * PUBLIC: Toast API\n */\nexport const toast = {\n success(message: string, duration?: number) {\n notifyRef?.({ type: \"success\", message, duration });\n },\n\n error(message: string, duration?: number) {\n notifyRef?.({ type: \"error\", message, duration });\n },\n\n info(message: string, duration?: number) {\n notifyRef?.({ type: \"info\", message, duration });\n },\n\n warning(message: string, duration?: number) {\n notifyRef?.({ type: \"warning\", message, duration });\n },\n};\n","import { useNotification } from \"./NotificationProvider\";\n\nexport const useToast = () => {\n const { notify } = useNotification();\n\n return {\n success: (message: string, duration?: number) =>\n notify({ type: \"success\", message, duration }),\n\n error: (message: string, duration?: number) =>\n notify({ type: \"error\", message, duration }),\n\n info: (message: string, duration?: number) =>\n notify({ type: \"info\", message, duration }),\n\n warning: (message: string, duration?: number) =>\n notify({ type: \"warning\", message, duration }),\n };\n};\n"],"mappings":"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","names":["styled","import_styled_components","import_jsx_runtime","baseStyle","variantStyles","styled","import_styled_components","import_jsx_runtime","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","import_styled_components","import_jsx_runtime","styled","Box","import_react","import_styled_components","import_jsx_runtime","Wrapper","styled","import_styled_components","import_jsx_runtime","baseStyle","gapStyles","styled","import_react","import_react_dom","import_styled_components","import_jsx_runtime","styled","Header","import_styled_components","import_jsx_runtime","baseStyle","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","Wrapper","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","sizeStyles","styled","import_styled_components","import_jsx_runtime","baseStyle","variantStyles","styled","import_react","import_react_dom","import_styled_components","import_jsx_runtime","Overlay","styled","import_styled_components","import_jsx_runtime","styled","import_styled_components","import_jsx_runtime","Wrapper","styled","HiddenInput","import_react","import_styled_components","import_react_dom","import_jsx_runtime","styled","React","import_styled_components","import_jsx_runtime","Wrapper","styled","HiddenInput","import_styled_components","import_jsx_runtime","baseStyle","variantStyles","StyledButton","styled","import_styled_components","import_jsx_runtime","baseStyle","sizeStyles","styled","import_styled_components","import_jsx_runtime","baseStyle","styled","import_styled_components","import_jsx_runtime","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","import_styled_components","import_jsx_runtime","baseStyle","StyledMenu","styled","import_styled_components","import_jsx_runtime","baseStyle","CustomDiv","styled","import_styled_components","import_jsx_runtime","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","import_styled_components","import_jsx_runtime","baseStyle","sizeStyles","gapStyles","CustomDiv","styled","import_styled_components","import_jsx_runtime","baseStyle","gapStyles","styled","Grid","import_styled_components","import_jsx_runtime","baseStyle","gapStyles","styled","import_react","import_react_dom","import_styled_components","import_jsx_runtime","Container","styled","Item"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1717,6 +1717,115 @@ var Stack = ({
|
|
|
1717
1717
|
return /* @__PURE__ */ jsx28(StyledStack, { $direction: direction, $gap: gap, ...rest, children });
|
|
1718
1718
|
};
|
|
1719
1719
|
var Stack_default = Stack;
|
|
1720
|
+
|
|
1721
|
+
// src/components/Notification/NotificationProvider.tsx
|
|
1722
|
+
import {
|
|
1723
|
+
createContext,
|
|
1724
|
+
useContext,
|
|
1725
|
+
useState as useState3,
|
|
1726
|
+
useEffect as useEffect6
|
|
1727
|
+
} from "react";
|
|
1728
|
+
import { createPortal as createPortal5 } from "react-dom";
|
|
1729
|
+
import styled29 from "styled-components";
|
|
1730
|
+
|
|
1731
|
+
// src/components/Notification/toast.ts
|
|
1732
|
+
var notifyRef = null;
|
|
1733
|
+
var registerToast = (fn) => {
|
|
1734
|
+
notifyRef = fn;
|
|
1735
|
+
};
|
|
1736
|
+
var toast = {
|
|
1737
|
+
success(message, duration) {
|
|
1738
|
+
notifyRef?.({ type: "success", message, duration });
|
|
1739
|
+
},
|
|
1740
|
+
error(message, duration) {
|
|
1741
|
+
notifyRef?.({ type: "error", message, duration });
|
|
1742
|
+
},
|
|
1743
|
+
info(message, duration) {
|
|
1744
|
+
notifyRef?.({ type: "info", message, duration });
|
|
1745
|
+
},
|
|
1746
|
+
warning(message, duration) {
|
|
1747
|
+
notifyRef?.({ type: "warning", message, duration });
|
|
1748
|
+
}
|
|
1749
|
+
};
|
|
1750
|
+
|
|
1751
|
+
// src/components/Notification/NotificationProvider.tsx
|
|
1752
|
+
import { jsx as jsx29, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1753
|
+
var NotificationContext = createContext(null);
|
|
1754
|
+
var useNotification = () => {
|
|
1755
|
+
const ctx = useContext(NotificationContext);
|
|
1756
|
+
if (!ctx) {
|
|
1757
|
+
throw new Error("useNotification must be used inside NotificationProvider");
|
|
1758
|
+
}
|
|
1759
|
+
return ctx;
|
|
1760
|
+
};
|
|
1761
|
+
var Container2 = styled29.div`
|
|
1762
|
+
position: fixed;
|
|
1763
|
+
top: 1rem;
|
|
1764
|
+
right: 1rem;
|
|
1765
|
+
display: flex;
|
|
1766
|
+
flex-direction: column;
|
|
1767
|
+
gap: 0.75rem;
|
|
1768
|
+
z-index: 2000;
|
|
1769
|
+
`;
|
|
1770
|
+
var Item2 = styled29.div`
|
|
1771
|
+
min-width: 280px;
|
|
1772
|
+
padding: 0.75rem 1rem;
|
|
1773
|
+
border-radius: 8px;
|
|
1774
|
+
background: #fff;
|
|
1775
|
+
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
|
|
1776
|
+
border-left: 4px solid
|
|
1777
|
+
${({ $type }) => ({
|
|
1778
|
+
success: "#2e7d32",
|
|
1779
|
+
error: "#d32f2f",
|
|
1780
|
+
info: "#0288d1",
|
|
1781
|
+
warning: "#ed6c02"
|
|
1782
|
+
})[$type]};
|
|
1783
|
+
`;
|
|
1784
|
+
var Title = styled29.div`
|
|
1785
|
+
font-weight: 600;
|
|
1786
|
+
margin-bottom: 0.25rem;
|
|
1787
|
+
`;
|
|
1788
|
+
var Message = styled29.div`
|
|
1789
|
+
font-size: 0.875rem;
|
|
1790
|
+
line-height: 1.4;
|
|
1791
|
+
`;
|
|
1792
|
+
var NotificationProvider = ({ children }) => {
|
|
1793
|
+
const [items, setItems] = useState3([]);
|
|
1794
|
+
const notify = (notice) => {
|
|
1795
|
+
const id = crypto.randomUUID();
|
|
1796
|
+
const item = { ...notice, id };
|
|
1797
|
+
setItems((prev) => [...prev, item]);
|
|
1798
|
+
if (notice.duration !== 0) {
|
|
1799
|
+
setTimeout(() => {
|
|
1800
|
+
setItems((prev) => prev.filter((n) => n.id !== id));
|
|
1801
|
+
}, notice.duration ?? 3e3);
|
|
1802
|
+
}
|
|
1803
|
+
};
|
|
1804
|
+
useEffect6(() => {
|
|
1805
|
+
registerToast(notify);
|
|
1806
|
+
}, []);
|
|
1807
|
+
return /* @__PURE__ */ jsxs11(NotificationContext.Provider, { value: { notify }, children: [
|
|
1808
|
+
children,
|
|
1809
|
+
createPortal5(
|
|
1810
|
+
/* @__PURE__ */ jsx29(Container2, { children: items.map((n) => /* @__PURE__ */ jsxs11(Item2, { $type: n.type, children: [
|
|
1811
|
+
n.title && /* @__PURE__ */ jsx29(Title, { children: n.title }),
|
|
1812
|
+
/* @__PURE__ */ jsx29(Message, { children: n.message })
|
|
1813
|
+
] }, n.id)) }),
|
|
1814
|
+
document.body
|
|
1815
|
+
)
|
|
1816
|
+
] });
|
|
1817
|
+
};
|
|
1818
|
+
|
|
1819
|
+
// src/components/Notification/useToast.ts
|
|
1820
|
+
var useToast = () => {
|
|
1821
|
+
const { notify } = useNotification();
|
|
1822
|
+
return {
|
|
1823
|
+
success: (message, duration) => notify({ type: "success", message, duration }),
|
|
1824
|
+
error: (message, duration) => notify({ type: "error", message, duration }),
|
|
1825
|
+
info: (message, duration) => notify({ type: "info", message, duration }),
|
|
1826
|
+
warning: (message, duration) => notify({ type: "warning", message, duration })
|
|
1827
|
+
};
|
|
1828
|
+
};
|
|
1720
1829
|
export {
|
|
1721
1830
|
Box_default as Box,
|
|
1722
1831
|
Button_default as Button,
|
|
@@ -1738,6 +1847,7 @@ export {
|
|
|
1738
1847
|
Input_default as Input,
|
|
1739
1848
|
Link_default as Link,
|
|
1740
1849
|
Modal_default as Modal,
|
|
1850
|
+
NotificationProvider,
|
|
1741
1851
|
Paragraph_default as Paragraph,
|
|
1742
1852
|
Radio_default as Radio,
|
|
1743
1853
|
Row_default as Row,
|
|
@@ -1745,6 +1855,8 @@ export {
|
|
|
1745
1855
|
Stack_default as Stack,
|
|
1746
1856
|
Switch_default as Switch,
|
|
1747
1857
|
Text_default as Text,
|
|
1748
|
-
Textarea_default as Textarea
|
|
1858
|
+
Textarea_default as Textarea,
|
|
1859
|
+
toast,
|
|
1860
|
+
useToast
|
|
1749
1861
|
};
|
|
1750
1862
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Box.tsx","../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Checkbox.tsx","../src/components/DatePicker.tsx","../src/components/Divider.tsx","../src/components/Drawer.tsx","../src/components/Flex.tsx","../src/components/Form.tsx","../src/components/FormControl.tsx","../src/components/Heading.tsx","../src/components/Input.tsx","../src/components/Link.tsx","../src/components/Modal.tsx","../src/components/Paragraph.tsx","../src/components/Radio.tsx","../src/components/Select.tsx","../src/components/Switch.tsx","../src/components/Text.tsx","../src/components/Textarea.tsx","../src/components/Menus/CenterMenu.tsx","../src/components/Layouts/Row.tsx","../src/components/Menus/HorizantalMenu.tsx","../src/components/Layouts/Center.tsx","../src/components/Layouts/Col.tsx","../src/components/Layouts/Container.tsx","../src/components/Layouts/Grid.tsx","../src/components/Layouts/Stack.tsx"],"sourcesContent":["import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Flex = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype Variant = \"default\" | \"elevated\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n flex?: Flex;\r\n variant?: Variant;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n width: fit-content;\r\n height: fit-content;\r\n padding: 1em 1em;\r\n border: 1px solid lightgray;\r\n justify-self: center;\r\n`;\r\n\r\nconst variantStyles = {\r\n default: css`\r\n transition: none;\r\n `,\r\n elevated: css`\r\n transition: box-shadow 300ms ease;\r\n &:hover {\r\n box-shadow: rgba(36, 40, 45, 0.2) 0px 8px 24px;\r\n }\r\n `,\r\n};\r\n\r\nconst justifyStyles = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\n\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 0.5em;\r\n `,\r\n sm: css`\r\n gap: 1em;\r\n `,\r\n md: css`\r\n gap: 1.5em;\r\n `,\r\n lg: css`\r\n gap: 2.5em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $flex: Flex; $gap: Gap, $variant: Variant }>`\r\n ${baseStyle}\r\n ${({ $flex, $gap, $variant }) => css`\r\n ${justifyStyles[$flex]}\r\n ${gapStyles[$gap]}\r\n ${variantStyles[$variant]}\r\n `}\r\n`;\r\n\r\nconst Box = ({\r\n flex = \"row\",\r\n gap = \"xs\",\r\n variant = \"default\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $flex={flex} $gap={gap} $variant={variant} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Box;\r\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Variant = \"primary_solid\" | \"primary_outline\" | \"primary_text\";\r\n\r\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: Variant;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n`;\r\n\r\nconst variantStyles = {\r\n primary_solid: css`\r\n background-color: #2d8eff;\r\n color: white;\r\n border: 1px solid #2d8eff;\r\n transition: all 0.6s ease;\r\n // &:hover {\r\n // color: #fff;\r\n // border-right: none;\r\n // border-left: none;\r\n // border-top: 2px solid #fff;\r\n // border-bottom: 2px solid #fff;\r\n // background-color:rgba(144, 167, 194, 0);\r\n // letter-spacing: 4px;\r\n//}\r\n `,\r\n primary_outline: css`\r\n background-color: transparent;\r\n color: #2d8eff;\r\n border: 1px solid #2d8eff;\r\n `,\r\n primary_text: css`\r\n background-color: transparent;\r\n color: #2d8eff;\r\n border: none;\r\n transition: all 0.9s ease;\r\n // &:hover{\r\n // background-color: #2d8eff;\r\n // color: #fff;\r\n // }\r\n `,\r\n};\r\n\r\nconst StyledButton = styled.button<{ $variant: Variant }>`\r\n ${baseStyle}\r\n ${({ $variant }) => variantStyles[$variant]}\r\n`;\r\n\r\nconst Button = ({\r\n variant = \"primary_solid\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledButton $variant={variant} {...rest}>\r\n {children}\r\n </StyledButton>\r\n );\r\n};\r\n\r\nexport default Button;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Direction = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype ImageURL = string;\r\ntype ImageAlt = string;\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n Imageurl?: ImageURL;\r\n Imagealt?: ImageAlt;\r\n direction?: Direction;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n width: fit-content;\r\n height: fit-content;\r\n background-color: rgb(255, 255, 255);\r\n padding: 1em 1em;\r\n border-radius: 0.8em;\r\n box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;\r\n transition: all 0.9s ease;\r\n &:hover {\r\n box-shadow: rgba(36, 40, 45, 0.2) 0px 8px 24px;\r\n }\r\n`;\r\n\r\nconst justifyStyles = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 0.5em;\r\n `,\r\n sm: css`\r\n gap: 1em;\r\n `,\r\n md: css`\r\n gap: 1.5em;\r\n `,\r\n lg: css`\r\n gap: 2.5em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $direction: Direction; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $direction, $gap }) => css`\r\n ${justifyStyles[$direction]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Card = ({\r\n direction = \"col\",\r\n gap = \"xs\",\r\n Imagealt = \"card-image\",\r\n Imageurl = \"\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $direction={direction} $gap={gap} {...rest}>\r\n {Imageurl.length > 0 ? \r\n <>\r\n <div style={{\r\n width:'100%',\r\n height: \"200px\",\r\n backgroundImage:`url(${Imageurl})`,\r\n backgroundPosition:'center',\r\n backgroundSize:'cover',\r\n borderRadius:'12px',\r\n border: \"1px solid #f1f1f1\"\r\n }}>\r\n {/* just for image holder */}\r\n </div> \r\n {children}\r\n </>\r\n : children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Card;\r\n","import React, { useEffect, useRef } from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n indeterminate?: boolean;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"checkbox\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst boxBase = css`\n width: 16px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid #ccc;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n`;\n\nconst Box = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${boxBase}\n background-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#fff\")};\n border-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#ccc\")};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n\n ${Wrapper}:hover & {\n border-color: #2d8eff;\n }\n`;\n\nconst CheckMark = styled.span`\n width: 8px;\n height: 8px;\n background: white;\n border-radius: 2px;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Checkbox = ({\n checked = false,\n indeterminate = false,\n disabled = false,\n label,\n ...rest\n}: CheckboxProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n return (\n <Wrapper>\n <HiddenInput\n ref={inputRef}\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Box $checked={checked || indeterminate} $disabled={disabled}>\n {(checked || indeterminate) && <CheckMark />}\n </Box>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Checkbox;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { createPortal } from \"react-dom\";\n\n/* =========================\n Types\n========================= */\n\nexport interface DatePickerProps {\n value?: Date;\n onChange?: (date: Date) => void;\n placeholder?: string;\n}\n\n/* =========================\n Date utils (pure)\n========================= */\n\nconst isSameDay = (a: Date, b: Date) =>\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate();\n\nconst getDaysInMonth = (year: number, month: number) =>\n new Date(year, month + 1, 0).getDate();\n\nconst formatDate = (date: Date) =>\n date.toISOString().split(\"T\")[0];\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.div`\n position: relative;\n width: 100%;\n`;\n\nconst InputBox = styled.div`\n border: 1px solid #ccc;\n border-radius: 6px;\n padding: 0.5rem 0.75rem;\n cursor: pointer;\n background: #fff;\n`;\n\nconst Panel = styled.div`\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n background: white;\n border-radius: 8px;\n padding: 0.75rem;\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n`;\n\nconst Header = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.5rem;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(7, 32px);\n gap: 4px;\n`;\n\nconst Day = styled.div<{ $selected?: boolean }>`\n text-align: center;\n padding: 0.35rem 0;\n border-radius: 4px;\n cursor: pointer;\n background: ${({ $selected }) =>\n $selected ? \"#2d8eff\" : \"transparent\"};\n color: ${({ $selected }) =>\n $selected ? \"#fff\" : \"inherit\"};\n\n &:hover {\n background: #f0f0f0;\n }\n`;\n\n/* =========================\n Component\n========================= */\n\nconst DatePicker: React.FC<DatePickerProps> = ({\n value,\n onChange,\n placeholder = \"Select date\",\n}) => {\n const [open, setOpen] = useState(false);\n const [current, setCurrent] = useState(\n value || new Date()\n );\n\n const ref = useRef<HTMLDivElement>(null);\n\n /* Close on outside click */\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () =>\n document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n const year = current.getFullYear();\n const month = current.getMonth();\n const daysInMonth = getDaysInMonth(year, month);\n\n const days = Array.from({ length: daysInMonth }, (_, i) => {\n const date = new Date(year, month, i + 1);\n return date;\n });\n\n return (\n <Wrapper ref={ref}>\n <InputBox onClick={() => setOpen(!open)}>\n {value ? formatDate(value) : placeholder}\n </InputBox>\n\n {open &&\n createPortal(\n <Panel>\n <Header>\n <button\n onClick={() =>\n setCurrent(\n new Date(year, month - 1, 1)\n )\n }\n >\n ◀\n </button>\n <strong>\n {current.toLocaleString(\"default\", {\n month: \"long\",\n })}{\" \"}\n {year}\n </strong>\n <button\n onClick={() =>\n setCurrent(\n new Date(year, month + 1, 1)\n )\n }\n >\n ▶\n </button>\n </Header>\n\n <Grid>\n {days.map((d) => (\n <Day\n key={d.toISOString()}\n $selected={\n value ? isSameDay(d, value) : false\n }\n onClick={() => {\n onChange?.(d);\n setOpen(false);\n }}\n >\n {d.getDate()}\n </Day>\n ))}\n </Grid>\n </Panel>,\n document.body\n )}\n </Wrapper>\n );\n};\n\nexport default DatePicker;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\ntype Size = \"thin\" | \"medium\";\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: Orientation;\n size?: Size;\n gap?: Gap;\n}\n\nconst baseStyle = css`\n background-color: rgba(0, 0, 0, 0.12);\n flex-shrink: 0;\n`;\n\nconst orientationStyles: Record<Orientation, any> = {\n horizontal: css`\n width: 100%;\n height: 1px;\n `,\n vertical: css`\n height: 100%;\n width: 1px;\n `,\n};\n\nconst sizeStyles: Record<Size, any> = {\n thin: css`\n opacity: 0.6;\n `,\n medium: css`\n opacity: 1;\n `,\n};\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n margin: 0.5rem 0;\n `,\n sm: css`\n margin: 1rem 0;\n `,\n md: css`\n margin: 2rem 0;\n `,\n lg: css`\n margin: 3rem 0;\n `,\n};\n\nconst StyledDivider = styled.div<{\n $orientation: Orientation;\n $size: Size;\n $gap: Gap;\n}>`\n ${baseStyle}\n ${({ $orientation }) => orientationStyles[$orientation]}\n ${({ $size }) => sizeStyles[$size]}\n ${({ $gap, $orientation }) =>\n $orientation === \"horizontal\"\n ? gapStyles[$gap]\n : css`\n margin: 0 ${gapStyles[$gap].styles?.margin?.split(\" \")[0] || \"1rem\"};\n `}\n`;\n\nconst Divider = ({\n orientation = \"horizontal\",\n size = \"thin\",\n gap = \"sm\",\n ...rest\n}: DividerProps) => {\n return (\n <StyledDivider\n role=\"separator\"\n $orientation={orientation}\n $size={size}\n $gap={gap}\n {...rest}\n />\n );\n};\n\nexport default Divider;\n","import React, { useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport type DrawerPlacement = \"right\" | \"left\" | \"bottom\";\n\nexport interface DrawerProps {\n open: boolean;\n onClose?: () => void;\n placement?: DrawerPlacement;\n width?: number | string;\n height?: number | string;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Overlay = styled.div`\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.45);\n z-index: 1000;\n`;\n\nconst baseDrawer = css`\n position: fixed;\n background: #fff;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n`;\n\nconst placementStyles = {\n right: css`\n top: 0;\n right: 0;\n height: 100%;\n `,\n left: css`\n top: 0;\n left: 0;\n height: 100%;\n `,\n bottom: css`\n left: 0;\n bottom: 0;\n width: 100%;\n `,\n};\n\nconst DrawerContainer = styled.div<{\n $placement: DrawerPlacement;\n $width?: number | string;\n $height?: number | string;\n}>`\n ${baseDrawer}\n ${({ $placement }) => placementStyles[$placement]}\n\n ${({ $placement, $width }) =>\n ($placement === \"left\" || $placement === \"right\") &&\n css`\n width: ${typeof $width === \"number\"\n ? `${$width}px`\n : $width || \"360px\"};\n `}\n\n ${({ $placement, $height }) =>\n $placement === \"bottom\" &&\n css`\n height: ${typeof $height === \"number\"\n ? `${$height}px`\n : $height || \"320px\"};\n `}\n`;\n\nconst Header = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 0.75rem;\n border-bottom: 1px solid #eee;\n`;\n\nconst CloseButton = styled.button`\n background: none;\n border: none;\n font-size: 1.25rem;\n cursor: pointer;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Drawer: React.FC<DrawerProps> = ({\n open,\n onClose,\n placement = \"right\",\n width,\n height,\n children,\n}) => {\n useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose?.();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () =>\n document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return createPortal(\n <>\n <Overlay onClick={onClose} />\n\n <DrawerContainer\n $placement={placement}\n $width={width}\n $height={height}\n >\n <Header>\n <CloseButton onClick={onClose}>×</CloseButton>\n </Header>\n {children}\n </DrawerContainer>\n </>,\n document.body\n );\n};\n\nexport default Drawer;\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Gap = \"small\" | \"medium\" | \"large\";\r\ntype FlexDirection = \"row\" | \"col\";\r\ntype Justify = \"center\" | \"between\" | \"around\" | \"start\" | \"end\" | \"even\";\r\ntype Align = \"center\" | \"between\" | \"around\" | \"start\" | \"end\" | \"even\";\r\n\r\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n flexDirection?: FlexDirection;\r\n justify?: Justify;\r\n align?: Align;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n`;\r\nconst FlexDirectionStyle = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\nconst JustifyStyle = {\r\n center: css`\r\n justify-content: center;\r\n `,\r\n between: css`\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n justify-content: space-around;\r\n `,\r\n start: css`\r\n justify-content: flex-start;\r\n `,\r\n end: css`\r\n justify-content: flex-end;\r\n `,\r\n even: css`\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst AlignStyle = {\r\n center: css`\r\n align-items: center;\r\n `,\r\n between: css`\r\n align-items: space-between;\r\n `,\r\n around: css`\r\n align-items: space-around;\r\n `,\r\n start: css`\r\n align-items: flex-start;\r\n `,\r\n end: css`\r\n align-items: flex-end;\r\n `,\r\n even: css`\r\n align-items: space-evenly;\r\n `,\r\n};\r\nconst GapStyle = {\r\n small: css`\r\n gap: 1em;\r\n `,\r\n medium: css`\r\n gap: 2em;\r\n `,\r\n large: css`\r\n gap: 3em;\r\n `,\r\n};\r\n\r\nconst StyledDiv = styled.div<{\r\n $flexDirection: FlexDirection;\r\n $gap: Gap;\r\n $justify: Justify;\r\n $align: Align\r\n}>`\r\n ${baseStyle}\r\n ${({ $flexDirection, $gap, $justify, $align }) => css`\r\n ${FlexDirectionStyle[$flexDirection]}\r\n ${GapStyle[$gap]}\r\n ${AlignStyle[$align]}\r\n ${JustifyStyle[$justify]}\r\n `}\r\n`;\r\n\r\nconst Flex = ({\r\n gap = \"small\",\r\n justify = \"center\",\r\n align = \"center\",\r\n flexDirection = 'col',\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledDiv $gap={gap} $justify={justify} $align={align} $flexDirection={flexDirection} {...rest}>\r\n {children}\r\n </StyledDiv>\r\n );\r\n};\r\n\r\nexport default Flex;\r\n","import React from \"react\";\nimport styled from \"styled-components\";\n\ninterface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n children: React.ReactNode;\n}\n\nconst StyledForm = styled.form`\n width: 100%;\n`;\n\nconst Form = ({ children, ...rest }: FormProps) => {\n return <StyledForm {...rest}>{children}</StyledForm>;\n};\n\nexport default Form;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface FormControlProps {\n label?: React.ReactNode;\n error?: React.ReactNode;\n helperText?: React.ReactNode;\n required?: boolean;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n width: 100%;\n`;\n\nconst Label = styled.label<{ $error?: boolean }>`\n font-size: 0.875rem;\n font-weight: 500;\n color: ${({ $error }) => ($error ? \"#e53935\" : \"inherit\")};\n`;\n\nconst RequiredMark = styled.span`\n color: #e53935;\n margin-left: 0.25rem;\n`;\n\nconst Helper = styled.span`\n font-size: 0.75rem;\n color: #666;\n`;\n\nconst ErrorText = styled.span`\n font-size: 0.75rem;\n color: #e53935;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst FormControl = ({\n label,\n error,\n helperText,\n required = false,\n children,\n}: FormControlProps) => {\n return (\n <Wrapper>\n {label && (\n <Label $error={!!error}>\n {label}\n {required && <RequiredMark>*</RequiredMark>}\n </Label>\n )}\n\n {children}\n\n {error ? (\n <ErrorText>{error}</ErrorText>\n ) : (\n helperText && <Helper>{helperText}</Helper>\n )}\n </Wrapper>\n );\n};\n\nexport default FormControl;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport type Level = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface HeadingProps\n extends React.HTMLAttributes<HTMLHeadingElement> {\n level?: Level;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst levelStyles: Record<Level, ReturnType<typeof css>> = {\n 1: css`font-size: 2rem;`,\n 2: css`font-size: 1.75rem;`,\n 3: css`font-size: 1.5rem;`,\n 4: css`font-size: 1.25rem;`,\n 5: css`font-size: 1.1rem;`,\n 6: css`font-size: 1rem;`,\n};\n\nconst Base = styled.div<{ $level: Level }>`\n margin: 0;\n font-weight: 600;\n ${({ $level }) => levelStyles[$level]}\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Heading: React.FC<HeadingProps> = ({\n level = 1,\n children,\n ...rest\n}) => {\n const Tag = `h${level}` as const;\n\n return (\n <Base\n as={Tag}\n $level={level}\n {...rest}\n >\n {children}\n </Base>\n );\n};\n\nexport default Heading;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ntype InputSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\ntype State = \"default\" | \"error\";\n\nexport interface InputProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"size\"\n > {\n inputSize?: InputSize;\n state?: State;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst sizeStyles = {\n xs: css`padding: 0.25rem 0.5rem; font-size: 0.75rem;`,\n sm: css`padding: 0.4rem 0.6rem; font-size: 0.875rem;`,\n md: css`padding: 0.5rem 0.75rem; font-size: 1rem;`,\n lg: css`padding: 0.65rem 0.9rem; font-size: 1.1rem;`,\n};\n\nconst StyledInput = styled.input<{\n $inputSize: InputSize;\n $state: State;\n}>`\n width: 100%;\n border-radius: 6px;\n border: 1px solid\n ${({ $state }) =>\n $state === \"error\" ? \"#e53935\" : \"#ccc\"};\n outline: none;\n\n ${({ $inputSize }) => sizeStyles[$inputSize]}\n\n &:focus {\n border-color: #2d8eff;\n }\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Input: React.FC<InputProps> = ({\n inputSize = \"md\",\n state = \"default\",\n ...rest\n}) => {\n return (\n <StyledInput\n $inputSize={inputSize}\n $state={state}\n {...rest}\n />\n );\n};\n\nexport default Input;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Variant = \"default\" | \"muted\";\n\ninterface LinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n variant?: Variant;\n external?: boolean;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n color: inherit;\n text-decoration: underline;\n cursor: pointer;\n transition: color 0.2s ease, text-decoration-color 0.2s ease;\n\n &:hover {\n text-decoration-thickness: 2px;\n }\n\n &:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n }\n`;\n\nconst variantStyles: Record<Variant, any> = {\n default: css`\n opacity: 1;\n `,\n muted: css`\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n `,\n};\n\nconst StyledLink = styled.a<{ $variant: Variant }>`\n ${baseStyle}\n ${({ $variant }) => variantStyles[$variant]}\n`;\n\nconst Link = ({\n variant = \"default\",\n external = false,\n children,\n ...rest\n}: LinkProps) => {\n return (\n <StyledLink\n $variant={variant}\n target={external ? \"_blank\" : rest.target}\n rel={external ? \"noopener noreferrer\" : rest.rel}\n {...rest}\n >\n {children}\n </StyledLink>\n );\n};\n\nexport default Link;\n","import React, { useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport interface ModalProps {\n open: boolean;\n onClose?: () => void;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Overlay = styled.div`\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.45);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n`;\n\nconst Content = styled.div`\n background: #fff;\n border-radius: 8px;\n width: 100%;\n max-width: 500px;\n padding: 1.5rem;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n children,\n}) => {\n useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose?.();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () =>\n document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return createPortal(\n <Overlay onClick={onClose}>\n <Content onClick={(e) => e.stopPropagation()}>\n {children}\n </Content>\n </Overlay>,\n document.body\n );\n};\n\nexport default Modal;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\ninterface ParagraphProps extends React.HTMLAttributes<HTMLParagraphElement> {\n children: React.ReactNode;\n}\n\nconst StyledParagraph = styled.p`\n margin: 0;\n font-size: 1rem;\n line-height: 1.6;\n color: inherit;\n`;\n\nconst Paragraph = ({ children, ...rest }: ParagraphProps) => {\n return <StyledParagraph {...rest}>{children}</StyledParagraph>;\n};\n\nexport default Paragraph;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"radio\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst circleBase = css`\n width: 16px;\n height: 16px;\n border-radius: 50%;\n border: 2px solid #ccc;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n`;\n\nconst Circle = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${circleBase}\n border-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#ccc\")};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n\n ${Wrapper}:hover & {\n border-color: #2d8eff;\n }\n`;\n\nconst Dot = styled.span`\n width: 8px;\n height: 8px;\n background: #2d8eff;\n border-radius: 50%;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Radio = ({\n checked = false,\n disabled = false,\n label,\n ...rest\n}: RadioProps) => {\n return (\n <Wrapper>\n <HiddenInput\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Circle $checked={checked} $disabled={disabled}>\n {checked && <Dot />}\n </Circle>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Radio;\n","import React, {\n useEffect,\n useRef,\n useState,\n ReactNode,\n} from \"react\";\nimport styled from \"styled-components\";\nimport { createPortal } from \"react-dom\";\n\n/* =========================\n Types\n========================= */\n\ntype SelectSize = \"sm\" | \"md\" | \"lg\";\ntype SelectState = \"default\" | \"error\";\n\nexport interface OptionType {\n label: ReactNode;\n value: string;\n}\n\nexport interface SelectProps\n extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"onChange\"\n > {\n value?: string;\n placeholder?: string;\n options?: OptionType[];\n onChange?: (value: string) => void;\n selectSize?: SelectSize;\n state?: SelectState;\n children?: ReactNode;\n}\n\n/* =========================\n Option (composition API)\n========================= */\n\nexport interface SelectOptionProps {\n value: string;\n children: ReactNode;\n}\n\nconst Option: React.FC<SelectOptionProps> = () => null;\nOption.displayName = \"SelectOption\";\n\n/* =========================\n Styles\n========================= */\n\nconst Trigger = styled.div<{\n $size: SelectSize;\n $state: SelectState;\n}>`\n border: 1px solid\n ${({ $state }) =>\n $state === \"error\" ? \"#e53935\" : \"#ccc\"};\n border-radius: 6px;\n padding: ${({ $size }) =>\n $size === \"sm\"\n ? \"0.4rem 0.6rem\"\n : $size === \"lg\"\n ? \"0.7rem 0.9rem\"\n : \"0.55rem 0.75rem\"};\n cursor: pointer;\n background: #fff;\n`;\n\nconst Dropdown = styled.div`\n position: fixed;\n min-width: 200px;\n background: white;\n border-radius: 6px;\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);\n padding: 0.25rem;\n z-index: 1000;\n`;\n\nconst Item = styled.div<{ $active?: boolean }>`\n padding: 0.4rem 0.6rem;\n border-radius: 4px;\n cursor: pointer;\n background: ${({ $active }) =>\n $active ? \"#2d8eff\" : \"transparent\"};\n color: ${({ $active }) =>\n $active ? \"#fff\" : \"inherit\"};\n\n &:hover {\n background: ${({ $active }) =>\n $active ? \"#2d8eff\" : \"#f5f5f5\"};\n }\n`;\n\n/* =========================\n Component typing\n========================= */\n\ninterface SelectComponent\n extends React.FC<SelectProps> {\n Option: React.FC<SelectOptionProps>;\n}\n\n/* =========================\n Component\n========================= */\n\nconst Select = (({\n value,\n placeholder = \"Select\",\n options,\n onChange,\n selectSize = \"md\",\n state = \"default\",\n children,\n ...rest\n}: SelectProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [pos, setPos] = useState({ top: 0, left: 0 });\n\n /* =========================\n Resolve options\n ========================= */\n\n const childOptions: OptionType[] =\n React.Children.toArray(children)\n .filter(\n (\n child\n ): child is React.ReactElement<SelectOptionProps> =>\n React.isValidElement(child) &&\n child.type === Option\n )\n .map((child) => ({\n value: child.props.value,\n label: child.props.children,\n }));\n\n const finalOptions = options ?? childOptions;\n\n const selected =\n finalOptions.find((o) => o.value === value)\n ?.label ?? placeholder;\n\n /* =========================\n Positioning\n ========================= */\n\n const openDropdown = () => {\n if (!ref.current) return;\n\n const rect = ref.current.getBoundingClientRect();\n setPos({\n top: rect.bottom + 6,\n left: rect.left,\n });\n\n setOpen(true);\n };\n\n /* =========================\n Close on outside\n ========================= */\n\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (\n ref.current &&\n !ref.current.contains(e.target as Node)\n ) {\n setOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () =>\n document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n /* =========================\n Render\n ========================= */\n\n return (\n <>\n <Trigger\n ref={ref}\n onClick={openDropdown}\n $size={selectSize}\n $state={state}\n {...rest}\n >\n {selected}\n </Trigger>\n\n {open &&\n createPortal(\n <Dropdown\n style={{\n top: pos.top,\n left: pos.left,\n }}\n >\n {finalOptions.map((opt) => (\n <Item\n key={opt.value}\n $active={opt.value === value}\n onClick={() => {\n onChange?.(opt.value);\n setOpen(false);\n }}\n >\n {opt.label}\n </Item>\n ))}\n </Dropdown>,\n document.body\n )}\n </>\n );\n}) as SelectComponent;\n\n/* =========================\n Attach Option\n========================= */\n\nSelect.Option = Option;\n\nexport default Select;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface SwitchProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"checkbox\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst trackBase = css`\n width: 36px;\n height: 20px;\n border-radius: 999px;\n background-color: #ccc;\n position: relative;\n transition: background-color 0.2s ease;\n`;\n\nconst Track = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${trackBase}\n background-color: ${({ $checked }) =>\n $checked ? \"#2d8eff\" : \"#ccc\"};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n`;\n\nconst Thumb = styled.span<{ $checked: boolean }>`\n width: 16px;\n height: 16px;\n background-color: #fff;\n border-radius: 50%;\n position: absolute;\n top: 2px;\n left: 2px;\n transition: transform 0.2s ease;\n\n transform: ${({ $checked }) =>\n $checked ? \"translateX(16px)\" : \"translateX(0)\"};\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Switch = ({\n checked = false,\n disabled = false,\n label,\n ...rest\n}: SwitchProps) => {\n return (\n <Wrapper>\n <HiddenInput\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Track $checked={checked} $disabled={disabled}>\n <Thumb $checked={checked} />\n </Track>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Switch;\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype FontVariant = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\";\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLElement> {\r\n fontVariant?: FontVariant;\r\n children: React.ReactNode;\r\n}\r\n/*\r\n<h1>: Typically rendered at 2em (twice the size of the base font). \r\n<h2>: Typically rendered at 1.5em (1.5 times the size of the base font). \r\n<h3>: Typically rendered at 1.17em. \r\n<h4>: Typically rendered at 1em. \r\n<h5>: Typically rendered at 0.83em. \r\n<h6>: Typically rendered at 0.67em. \r\n*/\r\nconst baseStyle = css`\r\n font-size: 12px;\r\n`;\r\n\r\nconst variantStyles = {\r\n h1: css`\r\n font-size: 2em;\r\n font-weight: bold;\r\n `,\r\n h2: css`\r\n font-size: 1.5em;\r\n font-weight: bold;\r\n `,\r\n h3: css`\r\n font-size: 1.17em;\r\n font-weight: bold;\r\n `,\r\n h4: css`\r\n font-size: 1em;\r\n font-weight: bold;\r\n `,\r\n h5: css`\r\n font-size: 0.83em;\r\n font-weight: bold;\r\n `,\r\n h6: css`\r\n font-size: 0.67em;\r\n font-weight: bold;\r\n `,\r\n p: css`\r\n font-size: 0.875em;\r\n `,\r\n};\r\n\r\nconst StyledButton = styled.span<{ $variant: FontVariant }>`\r\n ${baseStyle}\r\n ${({ $variant }) => variantStyles[$variant]}\r\n`;\r\n\r\nconst Text = ({\r\n fontVariant = \"p\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledButton $variant={fontVariant} {...rest}>\r\n {children}\r\n </StyledButton>\r\n );\r\n};\r\n\r\nexport default Text;\r\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Size = \"sm\" | \"md\" | \"lg\";\ntype State = \"default\" | \"error\";\n\ninterface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n size?: Size;\n state?: State;\n}\n\nconst baseStyle = css`\n width: 100%;\n font-family: inherit;\n border-radius: 6px;\n border: 1px solid #ccc;\n background-color: #fff;\n color: inherit;\n outline: none;\n resize: vertical;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n\n &:focus {\n border-color: #2d8eff;\n box-shadow: 0 0 0 2px rgba(45, 142, 255, 0.2);\n }\n\n &:disabled {\n background-color: #f5f5f5;\n cursor: not-allowed;\n opacity: 0.7;\n }\n`;\n\nconst sizeStyles: Record<Size, any> = {\n sm: css`\n padding: 0.4rem 0.6rem;\n font-size: 0.875rem;\n min-height: 80px;\n `,\n md: css`\n padding: 0.5rem 0.75rem;\n font-size: 1rem;\n min-height: 120px;\n `,\n lg: css`\n padding: 0.65rem 0.9rem;\n font-size: 1.125rem;\n min-height: 160px;\n `,\n};\n\nconst stateStyles: Record<State, any> = {\n default: css``,\n error: css`\n border-color: #e53935;\n\n &:focus {\n border-color: #e53935;\n box-shadow: 0 0 0 2px rgba(229, 57, 53, 0.2);\n }\n `,\n};\n\nconst StyledTextarea = styled.textarea<{\n $size: Size;\n $state: State;\n}>`\n ${baseStyle}\n ${({ $size }) => sizeStyles[$size]}\n ${({ $state }) => stateStyles[$state]}\n`;\n\nconst Textarea = ({\n size = \"md\",\n state = \"default\",\n ...rest\n}: TextareaProps) => {\n return <StyledTextarea $size={size} $state={state} {...rest} />;\n};\n\nexport default Textarea;\n","import Row from \"../Layouts/Row\";\r\nimport React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype MenuItems = String[];\r\ntype LogoUrl = string;\r\ntype Alt = string;\r\ntype HREF = string;\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n menuItems?: MenuItems;\r\n logo?: LogoUrl;\r\n alt?: Alt;\r\n href?: HREF;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 0.2em 0em 0.2em 0em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n display: flex;\r\n width: 100%;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 3%;\r\n background-color: rgb(71, 91, 248);\r\n`;\r\n\r\nconst StyledMenu = styled.div`\r\n ${baseStyle}\r\n`;\r\n\r\nconst CenterMenu = ({\r\n menuItems = [\"SampleMenu_1\", \"SampleMenu_2\", \"SampleMenu_3\"],\r\n logo,\r\n alt = \"logo\",\r\n href = \"#\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledMenu {...rest}>\r\n {/* {children} */}\r\n <a href={href}>\r\n <img\r\n src={logo}\r\n alt={alt}\r\n width='48px'\r\n height='48px'\r\n style={{\r\n mixBlendMode: \"multiply\",\r\n objectFit:'contain'\r\n }}\r\n />\r\n </a>\r\n\r\n {menuItems.map((x, i) => {\r\n return <div key={i}>{x}</div>;\r\n })}\r\n </StyledMenu>\r\n );\r\n};\r\n\r\nexport default CenterMenu;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype JustifyContent =\r\n | \"center\"\r\n | \"start\"\r\n | \"end\"\r\n | \"FStart\"\r\n | \"FEnd\"\r\n | \"left\"\r\n | \"right\"\r\n | \"between\"\r\n | \"around\"\r\n | \"even\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n justify?: JustifyContent;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n`;\r\n\r\nconst justifyStyles = {\r\n center: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n `,\r\n start: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: start;\r\n `,\r\n end: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: end;\r\n `,\r\n FStart: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-start;\r\n `,\r\n FEnd: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-end;\r\n `,\r\n left: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: left;\r\n `,\r\n\r\n right: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: right;\r\n `,\r\n between: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-around;\r\n `,\r\n even: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $justify: JustifyContent; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $justify, $gap }) => css`\r\n ${justifyStyles[$justify]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Row = ({\r\n justify = \"center\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $justify={justify} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Row;\r\n","import Row from \"../Layouts/Row\";\r\nimport React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype MenuItems = String[];\r\ntype LogoUrl = \"\"\r\ntype Alt = string;\r\ntype HREF = string;\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n menuItems?: MenuItems;\r\n logo?: LogoUrl;\r\n alt?: Alt;\r\n href?: HREF;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em 0em 1em 0em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n display: flex;\r\n width: 100%;\r\n justify-content: space-between;\r\n background-color:rgb(71, 91, 248);\r\n`;\r\n\r\nconst StyledMenu = styled.div`\r\n ${baseStyle}\r\n`;\r\n\r\nconst HorizantalMenu = ({\r\n menuItems = [\"SampleMenu_1\", \"SampleMenu_2\", \"SampleMenu_3\"],\r\n logo,\r\n alt = \"logo\",\r\n href = \"#\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledMenu {...rest}>\r\n {/* {children} */}\r\n <a href={href}>\r\n <img\r\n src={logo}\r\n alt={alt}\r\n width=\"36px\"\r\n height=\"36px\"\r\n style={{\r\n mixBlendMode: \"multiply\",\r\n objectFit:'contain'\r\n }}\r\n />\r\n </a>\r\n <Row justify='FEnd'>\r\n {menuItems.map((x, i) => {\r\n return <div key={i}>{x}</div>;\r\n })}\r\n </Row>\r\n </StyledMenu>\r\n );\r\n};\r\n\r\nexport default HorizantalMenu;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst CustomDiv = styled.div<{}>`\r\n ${baseStyle}\r\n`;\r\n\r\nconst Center = ({\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Center;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype JustifyContent =\r\n | \"center\"\r\n | \"start\"\r\n | \"end\"\r\n | \"FStart\"\r\n | \"FEnd\"\r\n | \"left\"\r\n | \"right\"\r\n | \"between\"\r\n | \"around\"\r\n | \"even\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n justify?: JustifyContent;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst justifyStyles = {\r\n center: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n `,\r\n start: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: start;\r\n `,\r\n end: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: end;\r\n `,\r\n FStart: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-start;\r\n `,\r\n FEnd: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-end;\r\n `,\r\n left: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: left;\r\n `,\r\n\r\n right: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: right;\r\n `,\r\n between: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-around;\r\n `,\r\n even: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $justify: JustifyContent; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $justify, $gap }) => css`\r\n ${justifyStyles[$justify]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Col = ({\r\n justify = \"center\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $justify={justify} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Col;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Size = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype Flex = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n size?: Size;\r\n flex?: Flex;\r\n gap?: Gap;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em;\r\n`;\r\n\r\nconst sizeStyles = {\r\n xs: css`\r\n max-width: 576px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n sm: css`\r\n max-width: 688px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n md: css`\r\n max-width: 768px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n lg: css`\r\n max-width: 100%;\r\n width: 100%;\r\n display: flex;\r\n padding: 0px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n};\r\n\r\nconst flexStyles = {\r\n row: css`\r\n width: inherit;\r\n display: flex;\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n width: inherit;\r\n display: flex;\r\n flex-direction: column;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\nconst CustomDiv = styled.div<{ $size: Size; $flex: Flex, $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $size, $flex, $gap }) => css`\r\n ${sizeStyles[$size]}\r\n ${flexStyles[$flex]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Container = ({\r\n size = \"lg\",\r\n flex = \"row\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $size={size} $flex={flex} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Container;\r\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\ntype Rows = number;\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n columns?: Columns;\n rows?: Rows;\n gap?: Gap;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n display: grid;\n width: 100%;\n`;\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n gap: 0.5rem;\n `,\n sm: css`\n gap: 1rem;\n `,\n md: css`\n gap: 2rem;\n `,\n lg: css`\n gap: 3rem;\n `,\n};\n\nconst StyledGrid = styled.div<{\n $columns: Columns;\n $rows?: Rows;\n $gap: Gap;\n}>`\n ${baseStyle}\n\n ${({ $columns }) => css`\n grid-template-columns: repeat(${$columns}, minmax(0, 1fr));\n `}\n\n ${({ $rows }) =>\n $rows &&\n css`\n grid-template-rows: repeat(${$rows}, 1fr);\n `}\n\n ${({ $gap }) => gapStyles[$gap]}\n`;\n\nconst Grid = ({\n columns = 12,\n rows,\n gap = \"sm\",\n children,\n ...rest\n}: GridProps) => {\n return (\n <StyledGrid\n $columns={columns}\n $rows={rows}\n $gap={gap}\n {...rest}\n >\n {children}\n </StyledGrid>\n );\n};\n\nexport default Grid;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Direction = \"vertical\" | \"horizontal\";\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n direction?: Direction;\n gap?: Gap;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n display: flex;\n width: 100%;\n`;\n\nconst directionStyles: Record<Direction, any> = {\n vertical: css`\n flex-direction: column;\n `,\n horizontal: css`\n flex-direction: row;\n `,\n};\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n gap: 0.5rem;\n `,\n sm: css`\n gap: 1rem;\n `,\n md: css`\n gap: 2rem;\n `,\n lg: css`\n gap: 3rem;\n `,\n};\n\nconst StyledStack = styled.div<{\n $direction: Direction;\n $gap: Gap;\n}>`\n ${baseStyle}\n ${({ $direction }) => directionStyles[$direction]}\n ${({ $gap }) => gapStyles[$gap]}\n`;\n\nconst Stack = ({\n direction = \"vertical\",\n gap = \"sm\",\n children,\n ...rest\n}: StackProps) => {\n return (\n <StyledStack $direction={direction} $gap={gap} {...rest}>\n {children}\n </StyledStack>\n );\n};\n\nexport default Stack;\n"],"mappings":"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","names":["styled","css","jsx","baseStyle","variantStyles","styled","css","jsx","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","css","jsx","jsxs","Box","useEffect","useRef","styled","jsx","jsxs","Wrapper","styled","css","jsx","baseStyle","gapStyles","useEffect","createPortal","styled","css","Fragment","jsx","jsxs","Header","styled","css","jsx","baseStyle","styled","jsx","styled","jsx","jsxs","Wrapper","styled","css","jsx","styled","css","jsx","sizeStyles","styled","css","jsx","baseStyle","variantStyles","useEffect","createPortal","styled","jsx","Overlay","styled","jsx","styled","css","jsx","jsxs","Wrapper","HiddenInput","React","useEffect","useRef","useState","styled","createPortal","Fragment","jsx","jsxs","styled","css","jsx","jsxs","Wrapper","HiddenInput","styled","css","jsx","baseStyle","variantStyles","StyledButton","styled","css","jsx","baseStyle","sizeStyles","styled","css","jsx","jsxs","baseStyle","styled","css","jsx","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","css","jsx","jsxs","baseStyle","StyledMenu","styled","css","jsx","baseStyle","CustomDiv","styled","css","jsx","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","css","jsx","baseStyle","sizeStyles","gapStyles","CustomDiv","styled","css","jsx","baseStyle","gapStyles","Grid","styled","css","jsx","baseStyle","gapStyles"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Box.tsx","../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Checkbox.tsx","../src/components/DatePicker.tsx","../src/components/Divider.tsx","../src/components/Drawer.tsx","../src/components/Flex.tsx","../src/components/Form.tsx","../src/components/FormControl.tsx","../src/components/Heading.tsx","../src/components/Input.tsx","../src/components/Link.tsx","../src/components/Modal.tsx","../src/components/Paragraph.tsx","../src/components/Radio.tsx","../src/components/Select.tsx","../src/components/Switch.tsx","../src/components/Text.tsx","../src/components/Textarea.tsx","../src/components/Menus/CenterMenu.tsx","../src/components/Layouts/Row.tsx","../src/components/Menus/HorizantalMenu.tsx","../src/components/Layouts/Center.tsx","../src/components/Layouts/Col.tsx","../src/components/Layouts/Container.tsx","../src/components/Layouts/Grid.tsx","../src/components/Layouts/Stack.tsx","../src/components/Notification/NotificationProvider.tsx","../src/components/Notification/toast.ts","../src/components/Notification/useToast.ts"],"sourcesContent":["import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Flex = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype Variant = \"default\" | \"elevated\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n flex?: Flex;\r\n variant?: Variant;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n width: fit-content;\r\n height: fit-content;\r\n padding: 1em 1em;\r\n border: 1px solid lightgray;\r\n justify-self: center;\r\n`;\r\n\r\nconst variantStyles = {\r\n default: css`\r\n transition: none;\r\n `,\r\n elevated: css`\r\n transition: box-shadow 300ms ease;\r\n &:hover {\r\n box-shadow: rgba(36, 40, 45, 0.2) 0px 8px 24px;\r\n }\r\n `,\r\n};\r\n\r\nconst justifyStyles = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\n\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 0.5em;\r\n `,\r\n sm: css`\r\n gap: 1em;\r\n `,\r\n md: css`\r\n gap: 1.5em;\r\n `,\r\n lg: css`\r\n gap: 2.5em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $flex: Flex; $gap: Gap, $variant: Variant }>`\r\n ${baseStyle}\r\n ${({ $flex, $gap, $variant }) => css`\r\n ${justifyStyles[$flex]}\r\n ${gapStyles[$gap]}\r\n ${variantStyles[$variant]}\r\n `}\r\n`;\r\n\r\nconst Box = ({\r\n flex = \"row\",\r\n gap = \"xs\",\r\n variant = \"default\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $flex={flex} $gap={gap} $variant={variant} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Box;\r\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Variant = \"primary_solid\" | \"primary_outline\" | \"primary_text\";\r\n\r\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: Variant;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n`;\r\n\r\nconst variantStyles = {\r\n primary_solid: css`\r\n background-color: #2d8eff;\r\n color: white;\r\n border: 1px solid #2d8eff;\r\n transition: all 0.6s ease;\r\n // &:hover {\r\n // color: #fff;\r\n // border-right: none;\r\n // border-left: none;\r\n // border-top: 2px solid #fff;\r\n // border-bottom: 2px solid #fff;\r\n // background-color:rgba(144, 167, 194, 0);\r\n // letter-spacing: 4px;\r\n//}\r\n `,\r\n primary_outline: css`\r\n background-color: transparent;\r\n color: #2d8eff;\r\n border: 1px solid #2d8eff;\r\n `,\r\n primary_text: css`\r\n background-color: transparent;\r\n color: #2d8eff;\r\n border: none;\r\n transition: all 0.9s ease;\r\n // &:hover{\r\n // background-color: #2d8eff;\r\n // color: #fff;\r\n // }\r\n `,\r\n};\r\n\r\nconst StyledButton = styled.button<{ $variant: Variant }>`\r\n ${baseStyle}\r\n ${({ $variant }) => variantStyles[$variant]}\r\n`;\r\n\r\nconst Button = ({\r\n variant = \"primary_solid\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledButton $variant={variant} {...rest}>\r\n {children}\r\n </StyledButton>\r\n );\r\n};\r\n\r\nexport default Button;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Direction = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype ImageURL = string;\r\ntype ImageAlt = string;\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n Imageurl?: ImageURL;\r\n Imagealt?: ImageAlt;\r\n direction?: Direction;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n width: fit-content;\r\n height: fit-content;\r\n background-color: rgb(255, 255, 255);\r\n padding: 1em 1em;\r\n border-radius: 0.8em;\r\n box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;\r\n transition: all 0.9s ease;\r\n &:hover {\r\n box-shadow: rgba(36, 40, 45, 0.2) 0px 8px 24px;\r\n }\r\n`;\r\n\r\nconst justifyStyles = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 0.5em;\r\n `,\r\n sm: css`\r\n gap: 1em;\r\n `,\r\n md: css`\r\n gap: 1.5em;\r\n `,\r\n lg: css`\r\n gap: 2.5em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $direction: Direction; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $direction, $gap }) => css`\r\n ${justifyStyles[$direction]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Card = ({\r\n direction = \"col\",\r\n gap = \"xs\",\r\n Imagealt = \"card-image\",\r\n Imageurl = \"\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $direction={direction} $gap={gap} {...rest}>\r\n {Imageurl.length > 0 ? \r\n <>\r\n <div style={{\r\n width:'100%',\r\n height: \"200px\",\r\n backgroundImage:`url(${Imageurl})`,\r\n backgroundPosition:'center',\r\n backgroundSize:'cover',\r\n borderRadius:'12px',\r\n border: \"1px solid #f1f1f1\"\r\n }}>\r\n {/* just for image holder */}\r\n </div> \r\n {children}\r\n </>\r\n : children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Card;\r\n","import React, { useEffect, useRef } from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n indeterminate?: boolean;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"checkbox\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst boxBase = css`\n width: 16px;\n height: 16px;\n border-radius: 4px;\n border: 1px solid #ccc;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n`;\n\nconst Box = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${boxBase}\n background-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#fff\")};\n border-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#ccc\")};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n\n ${Wrapper}:hover & {\n border-color: #2d8eff;\n }\n`;\n\nconst CheckMark = styled.span`\n width: 8px;\n height: 8px;\n background: white;\n border-radius: 2px;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Checkbox = ({\n checked = false,\n indeterminate = false,\n disabled = false,\n label,\n ...rest\n}: CheckboxProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n return (\n <Wrapper>\n <HiddenInput\n ref={inputRef}\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Box $checked={checked || indeterminate} $disabled={disabled}>\n {(checked || indeterminate) && <CheckMark />}\n </Box>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Checkbox;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { createPortal } from \"react-dom\";\n\n/* =========================\n Types\n========================= */\n\nexport interface DatePickerProps {\n value?: Date;\n onChange?: (date: Date) => void;\n placeholder?: string;\n}\n\n/* =========================\n Date utils (pure)\n========================= */\n\nconst isSameDay = (a: Date, b: Date) =>\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate();\n\nconst getDaysInMonth = (year: number, month: number) =>\n new Date(year, month + 1, 0).getDate();\n\nconst formatDate = (date: Date) =>\n date.toISOString().split(\"T\")[0];\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.div`\n position: relative;\n width: 100%;\n`;\n\nconst InputBox = styled.div`\n border: 1px solid #ccc;\n border-radius: 6px;\n padding: 0.5rem 0.75rem;\n cursor: pointer;\n background: #fff;\n`;\n\nconst Panel = styled.div`\n position: absolute;\n top: calc(100% + 6px);\n left: 0;\n background: white;\n border-radius: 8px;\n padding: 0.75rem;\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n`;\n\nconst Header = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.5rem;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(7, 32px);\n gap: 4px;\n`;\n\nconst Day = styled.div<{ $selected?: boolean }>`\n text-align: center;\n padding: 0.35rem 0;\n border-radius: 4px;\n cursor: pointer;\n background: ${({ $selected }) =>\n $selected ? \"#2d8eff\" : \"transparent\"};\n color: ${({ $selected }) =>\n $selected ? \"#fff\" : \"inherit\"};\n\n &:hover {\n background: #f0f0f0;\n }\n`;\n\n/* =========================\n Component\n========================= */\n\nconst DatePicker: React.FC<DatePickerProps> = ({\n value,\n onChange,\n placeholder = \"Select date\",\n}) => {\n const [open, setOpen] = useState(false);\n const [current, setCurrent] = useState(\n value || new Date()\n );\n\n const ref = useRef<HTMLDivElement>(null);\n\n /* Close on outside click */\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () =>\n document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n const year = current.getFullYear();\n const month = current.getMonth();\n const daysInMonth = getDaysInMonth(year, month);\n\n const days = Array.from({ length: daysInMonth }, (_, i) => {\n const date = new Date(year, month, i + 1);\n return date;\n });\n\n return (\n <Wrapper ref={ref}>\n <InputBox onClick={() => setOpen(!open)}>\n {value ? formatDate(value) : placeholder}\n </InputBox>\n\n {open &&\n createPortal(\n <Panel>\n <Header>\n <button\n onClick={() =>\n setCurrent(\n new Date(year, month - 1, 1)\n )\n }\n >\n ◀\n </button>\n <strong>\n {current.toLocaleString(\"default\", {\n month: \"long\",\n })}{\" \"}\n {year}\n </strong>\n <button\n onClick={() =>\n setCurrent(\n new Date(year, month + 1, 1)\n )\n }\n >\n ▶\n </button>\n </Header>\n\n <Grid>\n {days.map((d) => (\n <Day\n key={d.toISOString()}\n $selected={\n value ? isSameDay(d, value) : false\n }\n onClick={() => {\n onChange?.(d);\n setOpen(false);\n }}\n >\n {d.getDate()}\n </Day>\n ))}\n </Grid>\n </Panel>,\n document.body\n )}\n </Wrapper>\n );\n};\n\nexport default DatePicker;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Orientation = \"horizontal\" | \"vertical\";\ntype Size = \"thin\" | \"medium\";\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: Orientation;\n size?: Size;\n gap?: Gap;\n}\n\nconst baseStyle = css`\n background-color: rgba(0, 0, 0, 0.12);\n flex-shrink: 0;\n`;\n\nconst orientationStyles: Record<Orientation, any> = {\n horizontal: css`\n width: 100%;\n height: 1px;\n `,\n vertical: css`\n height: 100%;\n width: 1px;\n `,\n};\n\nconst sizeStyles: Record<Size, any> = {\n thin: css`\n opacity: 0.6;\n `,\n medium: css`\n opacity: 1;\n `,\n};\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n margin: 0.5rem 0;\n `,\n sm: css`\n margin: 1rem 0;\n `,\n md: css`\n margin: 2rem 0;\n `,\n lg: css`\n margin: 3rem 0;\n `,\n};\n\nconst StyledDivider = styled.div<{\n $orientation: Orientation;\n $size: Size;\n $gap: Gap;\n}>`\n ${baseStyle}\n ${({ $orientation }) => orientationStyles[$orientation]}\n ${({ $size }) => sizeStyles[$size]}\n ${({ $gap, $orientation }) =>\n $orientation === \"horizontal\"\n ? gapStyles[$gap]\n : css`\n margin: 0 ${gapStyles[$gap].styles?.margin?.split(\" \")[0] || \"1rem\"};\n `}\n`;\n\nconst Divider = ({\n orientation = \"horizontal\",\n size = \"thin\",\n gap = \"sm\",\n ...rest\n}: DividerProps) => {\n return (\n <StyledDivider\n role=\"separator\"\n $orientation={orientation}\n $size={size}\n $gap={gap}\n {...rest}\n />\n );\n};\n\nexport default Divider;\n","import React, { useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport type DrawerPlacement = \"right\" | \"left\" | \"bottom\";\n\nexport interface DrawerProps {\n open: boolean;\n onClose?: () => void;\n placement?: DrawerPlacement;\n width?: number | string;\n height?: number | string;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Overlay = styled.div`\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.45);\n z-index: 1000;\n`;\n\nconst baseDrawer = css`\n position: fixed;\n background: #fff;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);\n z-index: 1001;\n display: flex;\n flex-direction: column;\n`;\n\nconst placementStyles = {\n right: css`\n top: 0;\n right: 0;\n height: 100%;\n `,\n left: css`\n top: 0;\n left: 0;\n height: 100%;\n `,\n bottom: css`\n left: 0;\n bottom: 0;\n width: 100%;\n `,\n};\n\nconst DrawerContainer = styled.div<{\n $placement: DrawerPlacement;\n $width?: number | string;\n $height?: number | string;\n}>`\n ${baseDrawer}\n ${({ $placement }) => placementStyles[$placement]}\n\n ${({ $placement, $width }) =>\n ($placement === \"left\" || $placement === \"right\") &&\n css`\n width: ${typeof $width === \"number\"\n ? `${$width}px`\n : $width || \"360px\"};\n `}\n\n ${({ $placement, $height }) =>\n $placement === \"bottom\" &&\n css`\n height: ${typeof $height === \"number\"\n ? `${$height}px`\n : $height || \"320px\"};\n `}\n`;\n\nconst Header = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 0.75rem;\n border-bottom: 1px solid #eee;\n`;\n\nconst CloseButton = styled.button`\n background: none;\n border: none;\n font-size: 1.25rem;\n cursor: pointer;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Drawer: React.FC<DrawerProps> = ({\n open,\n onClose,\n placement = \"right\",\n width,\n height,\n children,\n}) => {\n useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose?.();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () =>\n document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return createPortal(\n <>\n <Overlay onClick={onClose} />\n\n <DrawerContainer\n $placement={placement}\n $width={width}\n $height={height}\n >\n <Header>\n <CloseButton onClick={onClose}>×</CloseButton>\n </Header>\n {children}\n </DrawerContainer>\n </>,\n document.body\n );\n};\n\nexport default Drawer;\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Gap = \"small\" | \"medium\" | \"large\";\r\ntype FlexDirection = \"row\" | \"col\";\r\ntype Justify = \"center\" | \"between\" | \"around\" | \"start\" | \"end\" | \"even\";\r\ntype Align = \"center\" | \"between\" | \"around\" | \"start\" | \"end\" | \"even\";\r\n\r\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n flexDirection?: FlexDirection;\r\n justify?: Justify;\r\n align?: Align;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n`;\r\nconst FlexDirectionStyle = {\r\n row: css`\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n flex-direction: column;\r\n `,\r\n};\r\nconst JustifyStyle = {\r\n center: css`\r\n justify-content: center;\r\n `,\r\n between: css`\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n justify-content: space-around;\r\n `,\r\n start: css`\r\n justify-content: flex-start;\r\n `,\r\n end: css`\r\n justify-content: flex-end;\r\n `,\r\n even: css`\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst AlignStyle = {\r\n center: css`\r\n align-items: center;\r\n `,\r\n between: css`\r\n align-items: space-between;\r\n `,\r\n around: css`\r\n align-items: space-around;\r\n `,\r\n start: css`\r\n align-items: flex-start;\r\n `,\r\n end: css`\r\n align-items: flex-end;\r\n `,\r\n even: css`\r\n align-items: space-evenly;\r\n `,\r\n};\r\nconst GapStyle = {\r\n small: css`\r\n gap: 1em;\r\n `,\r\n medium: css`\r\n gap: 2em;\r\n `,\r\n large: css`\r\n gap: 3em;\r\n `,\r\n};\r\n\r\nconst StyledDiv = styled.div<{\r\n $flexDirection: FlexDirection;\r\n $gap: Gap;\r\n $justify: Justify;\r\n $align: Align\r\n}>`\r\n ${baseStyle}\r\n ${({ $flexDirection, $gap, $justify, $align }) => css`\r\n ${FlexDirectionStyle[$flexDirection]}\r\n ${GapStyle[$gap]}\r\n ${AlignStyle[$align]}\r\n ${JustifyStyle[$justify]}\r\n `}\r\n`;\r\n\r\nconst Flex = ({\r\n gap = \"small\",\r\n justify = \"center\",\r\n align = \"center\",\r\n flexDirection = 'col',\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledDiv $gap={gap} $justify={justify} $align={align} $flexDirection={flexDirection} {...rest}>\r\n {children}\r\n </StyledDiv>\r\n );\r\n};\r\n\r\nexport default Flex;\r\n","import React from \"react\";\nimport styled from \"styled-components\";\n\ninterface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n children: React.ReactNode;\n}\n\nconst StyledForm = styled.form`\n width: 100%;\n`;\n\nconst Form = ({ children, ...rest }: FormProps) => {\n return <StyledForm {...rest}>{children}</StyledForm>;\n};\n\nexport default Form;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface FormControlProps {\n label?: React.ReactNode;\n error?: React.ReactNode;\n helperText?: React.ReactNode;\n required?: boolean;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n width: 100%;\n`;\n\nconst Label = styled.label<{ $error?: boolean }>`\n font-size: 0.875rem;\n font-weight: 500;\n color: ${({ $error }) => ($error ? \"#e53935\" : \"inherit\")};\n`;\n\nconst RequiredMark = styled.span`\n color: #e53935;\n margin-left: 0.25rem;\n`;\n\nconst Helper = styled.span`\n font-size: 0.75rem;\n color: #666;\n`;\n\nconst ErrorText = styled.span`\n font-size: 0.75rem;\n color: #e53935;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst FormControl = ({\n label,\n error,\n helperText,\n required = false,\n children,\n}: FormControlProps) => {\n return (\n <Wrapper>\n {label && (\n <Label $error={!!error}>\n {label}\n {required && <RequiredMark>*</RequiredMark>}\n </Label>\n )}\n\n {children}\n\n {error ? (\n <ErrorText>{error}</ErrorText>\n ) : (\n helperText && <Helper>{helperText}</Helper>\n )}\n </Wrapper>\n );\n};\n\nexport default FormControl;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport type Level = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface HeadingProps\n extends React.HTMLAttributes<HTMLHeadingElement> {\n level?: Level;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst levelStyles: Record<Level, ReturnType<typeof css>> = {\n 1: css`font-size: 2rem;`,\n 2: css`font-size: 1.75rem;`,\n 3: css`font-size: 1.5rem;`,\n 4: css`font-size: 1.25rem;`,\n 5: css`font-size: 1.1rem;`,\n 6: css`font-size: 1rem;`,\n};\n\nconst Base = styled.div<{ $level: Level }>`\n margin: 0;\n font-weight: 600;\n ${({ $level }) => levelStyles[$level]}\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Heading: React.FC<HeadingProps> = ({\n level = 1,\n children,\n ...rest\n}) => {\n const Tag = `h${level}` as const;\n\n return (\n <Base\n as={Tag}\n $level={level}\n {...rest}\n >\n {children}\n </Base>\n );\n};\n\nexport default Heading;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ntype InputSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\ntype State = \"default\" | \"error\";\n\nexport interface InputProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"size\"\n > {\n inputSize?: InputSize;\n state?: State;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst sizeStyles = {\n xs: css`padding: 0.25rem 0.5rem; font-size: 0.75rem;`,\n sm: css`padding: 0.4rem 0.6rem; font-size: 0.875rem;`,\n md: css`padding: 0.5rem 0.75rem; font-size: 1rem;`,\n lg: css`padding: 0.65rem 0.9rem; font-size: 1.1rem;`,\n};\n\nconst StyledInput = styled.input<{\n $inputSize: InputSize;\n $state: State;\n}>`\n width: 100%;\n border-radius: 6px;\n border: 1px solid\n ${({ $state }) =>\n $state === \"error\" ? \"#e53935\" : \"#ccc\"};\n outline: none;\n\n ${({ $inputSize }) => sizeStyles[$inputSize]}\n\n &:focus {\n border-color: #2d8eff;\n }\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Input: React.FC<InputProps> = ({\n inputSize = \"md\",\n state = \"default\",\n ...rest\n}) => {\n return (\n <StyledInput\n $inputSize={inputSize}\n $state={state}\n {...rest}\n />\n );\n};\n\nexport default Input;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Variant = \"default\" | \"muted\";\n\ninterface LinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n variant?: Variant;\n external?: boolean;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n color: inherit;\n text-decoration: underline;\n cursor: pointer;\n transition: color 0.2s ease, text-decoration-color 0.2s ease;\n\n &:hover {\n text-decoration-thickness: 2px;\n }\n\n &:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n }\n`;\n\nconst variantStyles: Record<Variant, any> = {\n default: css`\n opacity: 1;\n `,\n muted: css`\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n `,\n};\n\nconst StyledLink = styled.a<{ $variant: Variant }>`\n ${baseStyle}\n ${({ $variant }) => variantStyles[$variant]}\n`;\n\nconst Link = ({\n variant = \"default\",\n external = false,\n children,\n ...rest\n}: LinkProps) => {\n return (\n <StyledLink\n $variant={variant}\n target={external ? \"_blank\" : rest.target}\n rel={external ? \"noopener noreferrer\" : rest.rel}\n {...rest}\n >\n {children}\n </StyledLink>\n );\n};\n\nexport default Link;\n","import React, { useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\nexport interface ModalProps {\n open: boolean;\n onClose?: () => void;\n children: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Overlay = styled.div`\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.45);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n`;\n\nconst Content = styled.div`\n background: #fff;\n border-radius: 8px;\n width: 100%;\n max-width: 500px;\n padding: 1.5rem;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n children,\n}) => {\n useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose?.();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () =>\n document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return createPortal(\n <Overlay onClick={onClose}>\n <Content onClick={(e) => e.stopPropagation()}>\n {children}\n </Content>\n </Overlay>,\n document.body\n );\n};\n\nexport default Modal;\n","import React from \"react\";\nimport styled from \"styled-components\";\n\ninterface ParagraphProps extends React.HTMLAttributes<HTMLParagraphElement> {\n children: React.ReactNode;\n}\n\nconst StyledParagraph = styled.p`\n margin: 0;\n font-size: 1rem;\n line-height: 1.6;\n color: inherit;\n`;\n\nconst Paragraph = ({ children, ...rest }: ParagraphProps) => {\n return <StyledParagraph {...rest}>{children}</StyledParagraph>;\n};\n\nexport default Paragraph;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"radio\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst circleBase = css`\n width: 16px;\n height: 16px;\n border-radius: 50%;\n border: 2px solid #ccc;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n`;\n\nconst Circle = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${circleBase}\n border-color: ${({ $checked }) => ($checked ? \"#2d8eff\" : \"#ccc\")};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n\n ${Wrapper}:hover & {\n border-color: #2d8eff;\n }\n`;\n\nconst Dot = styled.span`\n width: 8px;\n height: 8px;\n background: #2d8eff;\n border-radius: 50%;\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Radio = ({\n checked = false,\n disabled = false,\n label,\n ...rest\n}: RadioProps) => {\n return (\n <Wrapper>\n <HiddenInput\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Circle $checked={checked} $disabled={disabled}>\n {checked && <Dot />}\n </Circle>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Radio;\n","import React, {\n useEffect,\n useRef,\n useState,\n ReactNode,\n} from \"react\";\nimport styled from \"styled-components\";\nimport { createPortal } from \"react-dom\";\n\n/* =========================\n Types\n========================= */\n\ntype SelectSize = \"sm\" | \"md\" | \"lg\";\ntype SelectState = \"default\" | \"error\";\n\nexport interface OptionType {\n label: ReactNode;\n value: string;\n}\n\nexport interface SelectProps\n extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"onChange\"\n > {\n value?: string;\n placeholder?: string;\n options?: OptionType[];\n onChange?: (value: string) => void;\n selectSize?: SelectSize;\n state?: SelectState;\n children?: ReactNode;\n}\n\n/* =========================\n Option (composition API)\n========================= */\n\nexport interface SelectOptionProps {\n value: string;\n children: ReactNode;\n}\n\nconst Option: React.FC<SelectOptionProps> = () => null;\nOption.displayName = \"SelectOption\";\n\n/* =========================\n Styles\n========================= */\n\nconst Trigger = styled.div<{\n $size: SelectSize;\n $state: SelectState;\n}>`\n border: 1px solid\n ${({ $state }) =>\n $state === \"error\" ? \"#e53935\" : \"#ccc\"};\n border-radius: 6px;\n padding: ${({ $size }) =>\n $size === \"sm\"\n ? \"0.4rem 0.6rem\"\n : $size === \"lg\"\n ? \"0.7rem 0.9rem\"\n : \"0.55rem 0.75rem\"};\n cursor: pointer;\n background: #fff;\n`;\n\nconst Dropdown = styled.div`\n position: fixed;\n min-width: 200px;\n background: white;\n border-radius: 6px;\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);\n padding: 0.25rem;\n z-index: 1000;\n`;\n\nconst Item = styled.div<{ $active?: boolean }>`\n padding: 0.4rem 0.6rem;\n border-radius: 4px;\n cursor: pointer;\n background: ${({ $active }) =>\n $active ? \"#2d8eff\" : \"transparent\"};\n color: ${({ $active }) =>\n $active ? \"#fff\" : \"inherit\"};\n\n &:hover {\n background: ${({ $active }) =>\n $active ? \"#2d8eff\" : \"#f5f5f5\"};\n }\n`;\n\n/* =========================\n Component typing\n========================= */\n\ninterface SelectComponent\n extends React.FC<SelectProps> {\n Option: React.FC<SelectOptionProps>;\n}\n\n/* =========================\n Component\n========================= */\n\nconst Select = (({\n value,\n placeholder = \"Select\",\n options,\n onChange,\n selectSize = \"md\",\n state = \"default\",\n children,\n ...rest\n}: SelectProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [pos, setPos] = useState({ top: 0, left: 0 });\n\n /* =========================\n Resolve options\n ========================= */\n\n const childOptions: OptionType[] =\n React.Children.toArray(children)\n .filter(\n (\n child\n ): child is React.ReactElement<SelectOptionProps> =>\n React.isValidElement(child) &&\n child.type === Option\n )\n .map((child) => ({\n value: child.props.value,\n label: child.props.children,\n }));\n\n const finalOptions = options ?? childOptions;\n\n const selected =\n finalOptions.find((o) => o.value === value)\n ?.label ?? placeholder;\n\n /* =========================\n Positioning\n ========================= */\n\n const openDropdown = () => {\n if (!ref.current) return;\n\n const rect = ref.current.getBoundingClientRect();\n setPos({\n top: rect.bottom + 6,\n left: rect.left,\n });\n\n setOpen(true);\n };\n\n /* =========================\n Close on outside\n ========================= */\n\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (\n ref.current &&\n !ref.current.contains(e.target as Node)\n ) {\n setOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () =>\n document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n /* =========================\n Render\n ========================= */\n\n return (\n <>\n <Trigger\n ref={ref}\n onClick={openDropdown}\n $size={selectSize}\n $state={state}\n {...rest}\n >\n {selected}\n </Trigger>\n\n {open &&\n createPortal(\n <Dropdown\n style={{\n top: pos.top,\n left: pos.left,\n }}\n >\n {finalOptions.map((opt) => (\n <Item\n key={opt.value}\n $active={opt.value === value}\n onClick={() => {\n onChange?.(opt.value);\n setOpen(false);\n }}\n >\n {opt.label}\n </Item>\n ))}\n </Dropdown>,\n document.body\n )}\n </>\n );\n}) as SelectComponent;\n\n/* =========================\n Attach Option\n========================= */\n\nSelect.Option = Option;\n\nexport default Select;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\n/* =========================\n Types\n========================= */\n\ninterface SwitchProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\n/* =========================\n Styles\n========================= */\n\nconst Wrapper = styled.label`\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n user-select: none;\n`;\n\nconst HiddenInput = styled.input.attrs({ type: \"checkbox\" })`\n position: absolute;\n opacity: 0;\n pointer-events: none;\n`;\n\nconst trackBase = css`\n width: 36px;\n height: 20px;\n border-radius: 999px;\n background-color: #ccc;\n position: relative;\n transition: background-color 0.2s ease;\n`;\n\nconst Track = styled.span<{ $checked: boolean; $disabled?: boolean }>`\n ${trackBase}\n background-color: ${({ $checked }) =>\n $checked ? \"#2d8eff\" : \"#ccc\"};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n`;\n\nconst Thumb = styled.span<{ $checked: boolean }>`\n width: 16px;\n height: 16px;\n background-color: #fff;\n border-radius: 50%;\n position: absolute;\n top: 2px;\n left: 2px;\n transition: transform 0.2s ease;\n\n transform: ${({ $checked }) =>\n $checked ? \"translateX(16px)\" : \"translateX(0)\"};\n`;\n\n/* =========================\n Component\n========================= */\n\nconst Switch = ({\n checked = false,\n disabled = false,\n label,\n ...rest\n}: SwitchProps) => {\n return (\n <Wrapper>\n <HiddenInput\n checked={checked}\n disabled={disabled}\n {...rest}\n />\n <Track $checked={checked} $disabled={disabled}>\n <Thumb $checked={checked} />\n </Track>\n {label && <span>{label}</span>}\n </Wrapper>\n );\n};\n\nexport default Switch;\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype FontVariant = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\";\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLElement> {\r\n fontVariant?: FontVariant;\r\n children: React.ReactNode;\r\n}\r\n/*\r\n<h1>: Typically rendered at 2em (twice the size of the base font). \r\n<h2>: Typically rendered at 1.5em (1.5 times the size of the base font). \r\n<h3>: Typically rendered at 1.17em. \r\n<h4>: Typically rendered at 1em. \r\n<h5>: Typically rendered at 0.83em. \r\n<h6>: Typically rendered at 0.67em. \r\n*/\r\nconst baseStyle = css`\r\n font-size: 12px;\r\n`;\r\n\r\nconst variantStyles = {\r\n h1: css`\r\n font-size: 2em;\r\n font-weight: bold;\r\n `,\r\n h2: css`\r\n font-size: 1.5em;\r\n font-weight: bold;\r\n `,\r\n h3: css`\r\n font-size: 1.17em;\r\n font-weight: bold;\r\n `,\r\n h4: css`\r\n font-size: 1em;\r\n font-weight: bold;\r\n `,\r\n h5: css`\r\n font-size: 0.83em;\r\n font-weight: bold;\r\n `,\r\n h6: css`\r\n font-size: 0.67em;\r\n font-weight: bold;\r\n `,\r\n p: css`\r\n font-size: 0.875em;\r\n `,\r\n};\r\n\r\nconst StyledButton = styled.span<{ $variant: FontVariant }>`\r\n ${baseStyle}\r\n ${({ $variant }) => variantStyles[$variant]}\r\n`;\r\n\r\nconst Text = ({\r\n fontVariant = \"p\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledButton $variant={fontVariant} {...rest}>\r\n {children}\r\n </StyledButton>\r\n );\r\n};\r\n\r\nexport default Text;\r\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Size = \"sm\" | \"md\" | \"lg\";\ntype State = \"default\" | \"error\";\n\ninterface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n size?: Size;\n state?: State;\n}\n\nconst baseStyle = css`\n width: 100%;\n font-family: inherit;\n border-radius: 6px;\n border: 1px solid #ccc;\n background-color: #fff;\n color: inherit;\n outline: none;\n resize: vertical;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n\n &:focus {\n border-color: #2d8eff;\n box-shadow: 0 0 0 2px rgba(45, 142, 255, 0.2);\n }\n\n &:disabled {\n background-color: #f5f5f5;\n cursor: not-allowed;\n opacity: 0.7;\n }\n`;\n\nconst sizeStyles: Record<Size, any> = {\n sm: css`\n padding: 0.4rem 0.6rem;\n font-size: 0.875rem;\n min-height: 80px;\n `,\n md: css`\n padding: 0.5rem 0.75rem;\n font-size: 1rem;\n min-height: 120px;\n `,\n lg: css`\n padding: 0.65rem 0.9rem;\n font-size: 1.125rem;\n min-height: 160px;\n `,\n};\n\nconst stateStyles: Record<State, any> = {\n default: css``,\n error: css`\n border-color: #e53935;\n\n &:focus {\n border-color: #e53935;\n box-shadow: 0 0 0 2px rgba(229, 57, 53, 0.2);\n }\n `,\n};\n\nconst StyledTextarea = styled.textarea<{\n $size: Size;\n $state: State;\n}>`\n ${baseStyle}\n ${({ $size }) => sizeStyles[$size]}\n ${({ $state }) => stateStyles[$state]}\n`;\n\nconst Textarea = ({\n size = \"md\",\n state = \"default\",\n ...rest\n}: TextareaProps) => {\n return <StyledTextarea $size={size} $state={state} {...rest} />;\n};\n\nexport default Textarea;\n","import Row from \"../Layouts/Row\";\r\nimport React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype MenuItems = String[];\r\ntype LogoUrl = string;\r\ntype Alt = string;\r\ntype HREF = string;\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n menuItems?: MenuItems;\r\n logo?: LogoUrl;\r\n alt?: Alt;\r\n href?: HREF;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 0.2em 0em 0.2em 0em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n display: flex;\r\n width: 100%;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 3%;\r\n background-color: rgb(71, 91, 248);\r\n`;\r\n\r\nconst StyledMenu = styled.div`\r\n ${baseStyle}\r\n`;\r\n\r\nconst CenterMenu = ({\r\n menuItems = [\"SampleMenu_1\", \"SampleMenu_2\", \"SampleMenu_3\"],\r\n logo,\r\n alt = \"logo\",\r\n href = \"#\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledMenu {...rest}>\r\n {/* {children} */}\r\n <a href={href}>\r\n <img\r\n src={logo}\r\n alt={alt}\r\n width='48px'\r\n height='48px'\r\n style={{\r\n mixBlendMode: \"multiply\",\r\n objectFit:'contain'\r\n }}\r\n />\r\n </a>\r\n\r\n {menuItems.map((x, i) => {\r\n return <div key={i}>{x}</div>;\r\n })}\r\n </StyledMenu>\r\n );\r\n};\r\n\r\nexport default CenterMenu;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype JustifyContent =\r\n | \"center\"\r\n | \"start\"\r\n | \"end\"\r\n | \"FStart\"\r\n | \"FEnd\"\r\n | \"left\"\r\n | \"right\"\r\n | \"between\"\r\n | \"around\"\r\n | \"even\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n justify?: JustifyContent;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: row;\r\n`;\r\n\r\nconst justifyStyles = {\r\n center: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n `,\r\n start: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: start;\r\n `,\r\n end: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: end;\r\n `,\r\n FStart: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-start;\r\n `,\r\n FEnd: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-end;\r\n `,\r\n left: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: left;\r\n `,\r\n\r\n right: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: right;\r\n `,\r\n between: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-around;\r\n `,\r\n even: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $justify: JustifyContent; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $justify, $gap }) => css`\r\n ${justifyStyles[$justify]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Row = ({\r\n justify = \"center\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $justify={justify} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Row;\r\n","import Row from \"../Layouts/Row\";\r\nimport React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype MenuItems = String[];\r\ntype LogoUrl = \"\"\r\ntype Alt = string;\r\ntype HREF = string;\r\n\r\ninterface ButtonProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n menuItems?: MenuItems;\r\n logo?: LogoUrl;\r\n alt?: Alt;\r\n href?: HREF;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em 0em 1em 0em;\r\n cursor: pointer;\r\n font-weight: 600;\r\n transistion: all 900ms;\r\n display: flex;\r\n width: 100%;\r\n justify-content: space-between;\r\n background-color:rgb(71, 91, 248);\r\n`;\r\n\r\nconst StyledMenu = styled.div`\r\n ${baseStyle}\r\n`;\r\n\r\nconst HorizantalMenu = ({\r\n menuItems = [\"SampleMenu_1\", \"SampleMenu_2\", \"SampleMenu_3\"],\r\n logo,\r\n alt = \"logo\",\r\n href = \"#\",\r\n children,\r\n ...rest\r\n}: ButtonProps) => {\r\n return (\r\n <StyledMenu {...rest}>\r\n {/* {children} */}\r\n <a href={href}>\r\n <img\r\n src={logo}\r\n alt={alt}\r\n width=\"36px\"\r\n height=\"36px\"\r\n style={{\r\n mixBlendMode: \"multiply\",\r\n objectFit:'contain'\r\n }}\r\n />\r\n </a>\r\n <Row justify='FEnd'>\r\n {menuItems.map((x, i) => {\r\n return <div key={i}>{x}</div>;\r\n })}\r\n </Row>\r\n </StyledMenu>\r\n );\r\n};\r\n\r\nexport default HorizantalMenu;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst CustomDiv = styled.div<{}>`\r\n ${baseStyle}\r\n`;\r\n\r\nconst Center = ({\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Center;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype JustifyContent =\r\n | \"center\"\r\n | \"start\"\r\n | \"end\"\r\n | \"FStart\"\r\n | \"FEnd\"\r\n | \"left\"\r\n | \"right\"\r\n | \"between\"\r\n | \"around\"\r\n | \"even\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n gap?: Gap;\r\n justify?: JustifyContent;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst justifyStyles = {\r\n center: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: center;\r\n `,\r\n start: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: start;\r\n `,\r\n end: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: end;\r\n `,\r\n FStart: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-start;\r\n `,\r\n FEnd: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: flex-end;\r\n `,\r\n left: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: left;\r\n `,\r\n\r\n right: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: right;\r\n `,\r\n between: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-between;\r\n `,\r\n around: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-around;\r\n `,\r\n even: css`\r\n height: inherit;\r\n width: inherit;\r\n justify-content: space-evenly;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\n\r\nconst CustomDiv = styled.div<{ $justify: JustifyContent; $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $justify, $gap }) => css`\r\n ${justifyStyles[$justify]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Col = ({\r\n justify = \"center\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $justify={justify} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Col;\r\n","import React, { Children } from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\ntype Size = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\ntype Flex = \"row\" | \"col\";\r\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface ContainerProps extends React.BaseHTMLAttributes<HTMLDivElement> {\r\n size?: Size;\r\n flex?: Flex;\r\n gap?: Gap;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst baseStyle = css`\r\n padding: 1em;\r\n`;\r\n\r\nconst sizeStyles = {\r\n xs: css`\r\n max-width: 576px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n sm: css`\r\n max-width: 688px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n md: css`\r\n max-width: 768px;\r\n width: 100%;\r\n display: flex;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n lg: css`\r\n max-width: 100%;\r\n width: 100%;\r\n display: flex;\r\n padding: 0px;\r\n margin-left: auto;\r\n margin-right: auto;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n `,\r\n};\r\n\r\nconst flexStyles = {\r\n row: css`\r\n width: inherit;\r\n display: flex;\r\n flex-direction: row;\r\n `,\r\n col: css`\r\n width: inherit;\r\n display: flex;\r\n flex-direction: column;\r\n `,\r\n};\r\nconst gapStyles = {\r\n xs: css`\r\n gap: 1em;\r\n `,\r\n sm: css`\r\n gap: 3em;\r\n `,\r\n md: css`\r\n gap: 5em;\r\n `,\r\n lg: css`\r\n gap: 7em;\r\n `,\r\n};\r\nconst CustomDiv = styled.div<{ $size: Size; $flex: Flex, $gap: Gap }>`\r\n ${baseStyle}\r\n ${({ $size, $flex, $gap }) => css`\r\n ${sizeStyles[$size]}\r\n ${flexStyles[$flex]}\r\n ${gapStyles[$gap]}\r\n `}\r\n`;\r\n\r\nconst Container = ({\r\n size = \"lg\",\r\n flex = \"row\",\r\n gap = \"xs\",\r\n children,\r\n ...rest\r\n}: ContainerProps) => {\r\n return (\r\n <CustomDiv $size={size} $flex={flex} $gap={gap} {...rest}>\r\n {children}\r\n </CustomDiv>\r\n );\r\n};\r\n\r\nexport default Container;\r\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\ntype Rows = number;\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n columns?: Columns;\n rows?: Rows;\n gap?: Gap;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n display: grid;\n width: 100%;\n`;\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n gap: 0.5rem;\n `,\n sm: css`\n gap: 1rem;\n `,\n md: css`\n gap: 2rem;\n `,\n lg: css`\n gap: 3rem;\n `,\n};\n\nconst StyledGrid = styled.div<{\n $columns: Columns;\n $rows?: Rows;\n $gap: Gap;\n}>`\n ${baseStyle}\n\n ${({ $columns }) => css`\n grid-template-columns: repeat(${$columns}, minmax(0, 1fr));\n `}\n\n ${({ $rows }) =>\n $rows &&\n css`\n grid-template-rows: repeat(${$rows}, 1fr);\n `}\n\n ${({ $gap }) => gapStyles[$gap]}\n`;\n\nconst Grid = ({\n columns = 12,\n rows,\n gap = \"sm\",\n children,\n ...rest\n}: GridProps) => {\n return (\n <StyledGrid\n $columns={columns}\n $rows={rows}\n $gap={gap}\n {...rest}\n >\n {children}\n </StyledGrid>\n );\n};\n\nexport default Grid;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\n\ntype Direction = \"vertical\" | \"horizontal\";\ntype Gap = \"xs\" | \"sm\" | \"md\" | \"lg\";\n\ninterface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n direction?: Direction;\n gap?: Gap;\n children: React.ReactNode;\n}\n\nconst baseStyle = css`\n display: flex;\n width: 100%;\n`;\n\nconst directionStyles: Record<Direction, any> = {\n vertical: css`\n flex-direction: column;\n `,\n horizontal: css`\n flex-direction: row;\n `,\n};\n\nconst gapStyles: Record<Gap, any> = {\n xs: css`\n gap: 0.5rem;\n `,\n sm: css`\n gap: 1rem;\n `,\n md: css`\n gap: 2rem;\n `,\n lg: css`\n gap: 3rem;\n `,\n};\n\nconst StyledStack = styled.div<{\n $direction: Direction;\n $gap: Gap;\n}>`\n ${baseStyle}\n ${({ $direction }) => directionStyles[$direction]}\n ${({ $gap }) => gapStyles[$gap]}\n`;\n\nconst Stack = ({\n direction = \"vertical\",\n gap = \"sm\",\n children,\n ...rest\n}: StackProps) => {\n return (\n <StyledStack $direction={direction} $gap={gap} {...rest}>\n {children}\n </StyledStack>\n );\n};\n\nexport default Stack;\n","import React, {\n createContext,\n useContext,\n useState,\n useEffect,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled from \"styled-components\";\nimport { Notice } from \"./NotTypes\";\nimport { registerToast } from \"./toast\";\n\n/* =========================\n Context\n========================= */\n\ninterface NotificationContextValue {\n notify: (notice: Omit<Notice, \"id\">) => void;\n}\n\nconst NotificationContext =\n createContext<NotificationContextValue | null>(null);\n\nexport const useNotification = () => {\n const ctx = useContext(NotificationContext);\n if (!ctx) {\n throw new Error(\"useNotification must be used inside NotificationProvider\");\n }\n return ctx;\n};\n\n/* =========================\n Styles\n========================= */\n\nconst Container = styled.div`\n position: fixed;\n top: 1rem;\n right: 1rem;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n z-index: 2000;\n`;\n\nconst Item = styled.div<{ $type: string }>`\n min-width: 280px;\n padding: 0.75rem 1rem;\n border-radius: 8px;\n background: #fff;\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);\n border-left: 4px solid\n ${({ $type }) =>\n ({\n success: \"#2e7d32\",\n error: \"#d32f2f\",\n info: \"#0288d1\",\n warning: \"#ed6c02\",\n }[$type])};\n`;\n\nconst Title = styled.div`\n font-weight: 600;\n margin-bottom: 0.25rem;\n`;\n\nconst Message = styled.div`\n font-size: 0.875rem;\n line-height: 1.4;\n`;\n\n/* =========================\n Provider\n========================= */\n\nexport const NotificationProvider: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const [items, setItems] = useState<Notice[]>([]);\n\n const notify = (notice: Omit<Notice, \"id\">) => {\n const id = crypto.randomUUID();\n const item: Notice = { ...notice, id };\n\n setItems((prev) => [...prev, item]);\n\n if (notice.duration !== 0) {\n setTimeout(() => {\n setItems((prev) => prev.filter((n) => n.id !== id));\n }, notice.duration ?? 3000);\n }\n };\n\n // 🔥 Register toast once\n useEffect(() => {\n registerToast(notify);\n }, []);\n\n return (\n <NotificationContext.Provider value={{ notify }}>\n {children}\n\n {createPortal(\n <Container>\n {items.map((n) => (\n <Item key={n.id} $type={n.type}>\n {n.title && <Title>{n.title}</Title>}\n <Message>{n.message}</Message>\n </Item>\n ))}\n </Container>,\n document.body\n )}\n </NotificationContext.Provider>\n );\n};\n","import { Notice } from \"./NotTypes\";\n\ntype NotifyFn = (notice: Omit<Notice, \"id\">) => void;\n\nlet notifyRef: NotifyFn | null = null;\n\n/**\n * INTERNAL: Register notify function from provider\n */\nexport const registerToast = (fn: NotifyFn) => {\n notifyRef = fn;\n};\n\n/**\n * PUBLIC: Toast API\n */\nexport const toast = {\n success(message: string, duration?: number) {\n notifyRef?.({ type: \"success\", message, duration });\n },\n\n error(message: string, duration?: number) {\n notifyRef?.({ type: \"error\", message, duration });\n },\n\n info(message: string, duration?: number) {\n notifyRef?.({ type: \"info\", message, duration });\n },\n\n warning(message: string, duration?: number) {\n notifyRef?.({ type: \"warning\", message, duration });\n },\n};\n","import { useNotification } from \"./NotificationProvider\";\n\nexport const useToast = () => {\n const { notify } = useNotification();\n\n return {\n success: (message: string, duration?: number) =>\n notify({ type: \"success\", message, duration }),\n\n error: (message: string, duration?: number) =>\n notify({ type: \"error\", message, duration }),\n\n info: (message: string, duration?: number) =>\n notify({ type: \"info\", message, duration }),\n\n warning: (message: string, duration?: number) =>\n notify({ type: \"warning\", message, duration }),\n };\n};\n"],"mappings":"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","names":["styled","css","jsx","baseStyle","variantStyles","styled","css","jsx","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","css","jsx","jsxs","Box","useEffect","useRef","styled","jsx","jsxs","Wrapper","styled","css","jsx","baseStyle","gapStyles","useEffect","createPortal","styled","css","Fragment","jsx","jsxs","Header","styled","css","jsx","baseStyle","styled","jsx","styled","jsx","jsxs","Wrapper","styled","css","jsx","styled","css","jsx","sizeStyles","styled","css","jsx","baseStyle","variantStyles","useEffect","createPortal","styled","jsx","Overlay","styled","jsx","styled","css","jsx","jsxs","Wrapper","HiddenInput","React","useEffect","useRef","useState","styled","createPortal","Fragment","jsx","jsxs","styled","css","jsx","jsxs","Wrapper","HiddenInput","styled","css","jsx","baseStyle","variantStyles","StyledButton","styled","css","jsx","baseStyle","sizeStyles","styled","css","jsx","jsxs","baseStyle","styled","css","jsx","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","css","jsx","jsxs","baseStyle","StyledMenu","styled","css","jsx","baseStyle","CustomDiv","styled","css","jsx","baseStyle","justifyStyles","gapStyles","CustomDiv","styled","css","jsx","baseStyle","sizeStyles","gapStyles","CustomDiv","styled","css","jsx","baseStyle","gapStyles","Grid","styled","css","jsx","baseStyle","gapStyles","useState","useEffect","createPortal","styled","jsx","jsxs","Container","styled","Item","useState","useEffect","createPortal"]}
|