@nithish_atum/atum 1.0.0 → 1.0.3

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/dist/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,27 +17,1293 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
 
20
- // src/index.tsx
30
+ // src/index.ts
21
31
  var index_exports = {};
22
32
  __export(index_exports, {
23
- Button: () => Button
33
+ Box: () => Box_default,
34
+ Button: () => Button_default,
35
+ Card: () => Card_default,
36
+ Checkbox: () => Checkbox_default,
37
+ DatePicker: () => DatePicker_default,
38
+ Divider: () => Divider_default,
39
+ Drawer: () => Drawer_default,
40
+ Flex: () => Flex_default,
41
+ Form: () => Form_default,
42
+ FormControl: () => FormControl_default,
43
+ Heading: () => Heading_default,
44
+ Input: () => Input_default,
45
+ Link: () => Link_default,
46
+ Modal: () => Modal_default,
47
+ Paragraph: () => Paragraph_default,
48
+ Radio: () => Radio_default,
49
+ Select: () => Select_default,
50
+ Switch: () => Switch_default,
51
+ Text: () => Text_default,
52
+ Textarea: () => Textarea_default
24
53
  });
25
54
  module.exports = __toCommonJS(index_exports);
26
55
 
27
- // src/components/Button.tsx
56
+ // src/components/Box.tsx
57
+ var import_styled_components = __toESM(require("styled-components"));
28
58
  var import_jsx_runtime = require("react/jsx-runtime");
29
- var Button = ({ variant = "solid", children, ...rest }) => {
30
- const style = {
31
- solid: { backgroundColor: "#000", color: "#fff" },
32
- outline: { border: "1px solid #000", color: "#000", background: "none" },
33
- ghost: { background: "transparent", color: "#000" }
59
+ var baseStyle = import_styled_components.css`
60
+ display: flex;
61
+ flex-direction: row;
62
+ width: fit-content;
63
+ height: fit-content;
64
+ padding: 1em 1em;
65
+ border: 1px solid lightgray;
66
+ justify-self: center;
67
+ `;
68
+ var variantStyles = {
69
+ default: import_styled_components.css`
70
+ transition: none;
71
+ `,
72
+ elevated: import_styled_components.css`
73
+ transition: box-shadow 300ms ease;
74
+ &:hover {
75
+ box-shadow: rgba(36, 40, 45, 0.2) 0px 8px 24px;
76
+ }
77
+ `
78
+ };
79
+ var justifyStyles = {
80
+ row: import_styled_components.css`
81
+ flex-direction: row;
82
+ `,
83
+ col: import_styled_components.css`
84
+ flex-direction: column;
85
+ `
86
+ };
87
+ var gapStyles = {
88
+ xs: import_styled_components.css`
89
+ gap: 0.5em;
90
+ `,
91
+ sm: import_styled_components.css`
92
+ gap: 1em;
93
+ `,
94
+ md: import_styled_components.css`
95
+ gap: 1.5em;
96
+ `,
97
+ lg: import_styled_components.css`
98
+ gap: 2.5em;
99
+ `
100
+ };
101
+ var CustomDiv = import_styled_components.default.div`
102
+ ${baseStyle}
103
+ ${({ $flex, $gap, $variant }) => import_styled_components.css`
104
+ ${justifyStyles[$flex]}
105
+ ${gapStyles[$gap]}
106
+ ${variantStyles[$variant]}
107
+ `}
108
+ `;
109
+ var Box = ({
110
+ flex = "row",
111
+ gap = "xs",
112
+ variant = "default",
113
+ children,
114
+ ...rest
115
+ }) => {
116
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CustomDiv, { $flex: flex, $gap: gap, $variant: variant, ...rest, children });
117
+ };
118
+ var Box_default = Box;
119
+
120
+ // src/components/Button.tsx
121
+ var import_styled_components2 = __toESM(require("styled-components"));
122
+ var import_jsx_runtime2 = require("react/jsx-runtime");
123
+ var baseStyle2 = import_styled_components2.css`
124
+ padding: 1em;
125
+ cursor: pointer;
126
+ font-weight: 600;
127
+ transistion: all 900ms;
128
+ `;
129
+ var variantStyles2 = {
130
+ primary_solid: import_styled_components2.css`
131
+ background-color: #2d8eff;
132
+ color: white;
133
+ border: 1px solid #2d8eff;
134
+ transition: all 0.6s ease;
135
+ // &:hover {
136
+ // color: #fff;
137
+ // border-right: none;
138
+ // border-left: none;
139
+ // border-top: 2px solid #fff;
140
+ // border-bottom: 2px solid #fff;
141
+ // background-color:rgba(144, 167, 194, 0);
142
+ // letter-spacing: 4px;
143
+ //}
144
+ `,
145
+ primary_outline: import_styled_components2.css`
146
+ background-color: transparent;
147
+ color: #2d8eff;
148
+ border: 1px solid #2d8eff;
149
+ `,
150
+ primary_text: import_styled_components2.css`
151
+ background-color: transparent;
152
+ color: #2d8eff;
153
+ border: none;
154
+ transition: all 0.9s ease;
155
+ // &:hover{
156
+ // background-color: #2d8eff;
157
+ // color: #fff;
158
+ // }
159
+ `
160
+ };
161
+ var StyledButton = import_styled_components2.default.button`
162
+ ${baseStyle2}
163
+ ${({ $variant }) => variantStyles2[$variant]}
164
+ `;
165
+ var Button = ({
166
+ variant = "primary_solid",
167
+ children,
168
+ ...rest
169
+ }) => {
170
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(StyledButton, { $variant: variant, ...rest, children });
171
+ };
172
+ var Button_default = Button;
173
+
174
+ // src/components/Card.tsx
175
+ var import_styled_components3 = __toESM(require("styled-components"));
176
+ var import_jsx_runtime3 = require("react/jsx-runtime");
177
+ var baseStyle3 = import_styled_components3.css`
178
+ display: flex;
179
+ flex-direction: row;
180
+ width: fit-content;
181
+ height: fit-content;
182
+ background-color: rgb(255, 255, 255);
183
+ padding: 1em 1em;
184
+ border-radius: 0.8em;
185
+ box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
186
+ transition: all 0.9s ease;
187
+ &:hover {
188
+ box-shadow: rgba(36, 40, 45, 0.2) 0px 8px 24px;
189
+ }
190
+ `;
191
+ var justifyStyles2 = {
192
+ row: import_styled_components3.css`
193
+ flex-direction: row;
194
+ `,
195
+ col: import_styled_components3.css`
196
+ flex-direction: column;
197
+ `
198
+ };
199
+ var gapStyles2 = {
200
+ xs: import_styled_components3.css`
201
+ gap: 0.5em;
202
+ `,
203
+ sm: import_styled_components3.css`
204
+ gap: 1em;
205
+ `,
206
+ md: import_styled_components3.css`
207
+ gap: 1.5em;
208
+ `,
209
+ lg: import_styled_components3.css`
210
+ gap: 2.5em;
211
+ `
212
+ };
213
+ var CustomDiv2 = import_styled_components3.default.div`
214
+ ${baseStyle3}
215
+ ${({ $direction, $gap }) => import_styled_components3.css`
216
+ ${justifyStyles2[$direction]}
217
+ ${gapStyles2[$gap]}
218
+ `}
219
+ `;
220
+ var Card = ({
221
+ direction = "col",
222
+ gap = "xs",
223
+ Imagealt = "card-image",
224
+ Imageurl = "",
225
+ children,
226
+ ...rest
227
+ }) => {
228
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(CustomDiv2, { $direction: direction, $gap: gap, ...rest, children: Imageurl.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
229
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: {
230
+ width: "100%",
231
+ height: "200px",
232
+ backgroundImage: `url(${Imageurl})`,
233
+ backgroundPosition: "center",
234
+ backgroundSize: "cover",
235
+ borderRadius: "12px",
236
+ border: "1px solid #f1f1f1"
237
+ } }),
238
+ children
239
+ ] }) : children });
240
+ };
241
+ var Card_default = Card;
242
+
243
+ // src/components/Checkbox.tsx
244
+ var import_react = require("react");
245
+ var import_styled_components4 = __toESM(require("styled-components"));
246
+ var import_jsx_runtime4 = require("react/jsx-runtime");
247
+ var Wrapper = import_styled_components4.default.label`
248
+ display: inline-flex;
249
+ align-items: center;
250
+ gap: 0.5rem;
251
+ cursor: pointer;
252
+ user-select: none;
253
+ `;
254
+ var HiddenInput = import_styled_components4.default.input.attrs({ type: "checkbox" })`
255
+ position: absolute;
256
+ opacity: 0;
257
+ pointer-events: none;
258
+ `;
259
+ var boxBase = import_styled_components4.css`
260
+ width: 16px;
261
+ height: 16px;
262
+ border-radius: 4px;
263
+ border: 1px solid #ccc;
264
+ display: flex;
265
+ align-items: center;
266
+ justify-content: center;
267
+ transition: all 0.15s ease;
268
+ `;
269
+ var Box2 = import_styled_components4.default.span`
270
+ ${boxBase}
271
+ background-color: ${({ $checked }) => $checked ? "#2d8eff" : "#fff"};
272
+ border-color: ${({ $checked }) => $checked ? "#2d8eff" : "#ccc"};
273
+ opacity: ${({ $disabled }) => $disabled ? 0.6 : 1};
274
+
275
+ ${Wrapper}:hover & {
276
+ border-color: #2d8eff;
277
+ }
278
+ `;
279
+ var CheckMark = import_styled_components4.default.span`
280
+ width: 8px;
281
+ height: 8px;
282
+ background: white;
283
+ border-radius: 2px;
284
+ `;
285
+ var Checkbox = ({
286
+ checked = false,
287
+ indeterminate = false,
288
+ disabled = false,
289
+ label,
290
+ ...rest
291
+ }) => {
292
+ const inputRef = (0, import_react.useRef)(null);
293
+ (0, import_react.useEffect)(() => {
294
+ if (inputRef.current) {
295
+ inputRef.current.indeterminate = indeterminate;
296
+ }
297
+ }, [indeterminate]);
298
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Wrapper, { children: [
299
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
300
+ HiddenInput,
301
+ {
302
+ ref: inputRef,
303
+ checked,
304
+ disabled,
305
+ ...rest
306
+ }
307
+ ),
308
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Box2, { $checked: checked || indeterminate, $disabled: disabled, children: (checked || indeterminate) && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(CheckMark, {}) }),
309
+ label && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: label })
310
+ ] });
311
+ };
312
+ var Checkbox_default = Checkbox;
313
+
314
+ // src/components/DatePicker.tsx
315
+ var import_react2 = require("react");
316
+ var import_styled_components5 = __toESM(require("styled-components"));
317
+ var import_react_dom = require("react-dom");
318
+ var import_jsx_runtime5 = require("react/jsx-runtime");
319
+ var isSameDay = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
320
+ var getDaysInMonth = (year, month) => new Date(year, month + 1, 0).getDate();
321
+ var formatDate = (date) => date.toISOString().split("T")[0];
322
+ var Wrapper2 = import_styled_components5.default.div`
323
+ position: relative;
324
+ width: 100%;
325
+ `;
326
+ var InputBox = import_styled_components5.default.div`
327
+ border: 1px solid #ccc;
328
+ border-radius: 6px;
329
+ padding: 0.5rem 0.75rem;
330
+ cursor: pointer;
331
+ background: #fff;
332
+ `;
333
+ var Panel = import_styled_components5.default.div`
334
+ position: absolute;
335
+ top: calc(100% + 6px);
336
+ left: 0;
337
+ background: white;
338
+ border-radius: 8px;
339
+ padding: 0.75rem;
340
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);
341
+ z-index: 1000;
342
+ `;
343
+ var Header = import_styled_components5.default.div`
344
+ display: flex;
345
+ justify-content: space-between;
346
+ align-items: center;
347
+ margin-bottom: 0.5rem;
348
+ `;
349
+ var Grid = import_styled_components5.default.div`
350
+ display: grid;
351
+ grid-template-columns: repeat(7, 32px);
352
+ gap: 4px;
353
+ `;
354
+ var Day = import_styled_components5.default.div`
355
+ text-align: center;
356
+ padding: 0.35rem 0;
357
+ border-radius: 4px;
358
+ cursor: pointer;
359
+ background: ${({ $selected }) => $selected ? "#2d8eff" : "transparent"};
360
+ color: ${({ $selected }) => $selected ? "#fff" : "inherit"};
361
+
362
+ &:hover {
363
+ background: #f0f0f0;
364
+ }
365
+ `;
366
+ var DatePicker = ({
367
+ value,
368
+ onChange,
369
+ placeholder = "Select date"
370
+ }) => {
371
+ const [open, setOpen] = (0, import_react2.useState)(false);
372
+ const [current, setCurrent] = (0, import_react2.useState)(
373
+ value || /* @__PURE__ */ new Date()
374
+ );
375
+ const ref = (0, import_react2.useRef)(null);
376
+ (0, import_react2.useEffect)(() => {
377
+ const handler = (e) => {
378
+ if (ref.current && !ref.current.contains(e.target)) {
379
+ setOpen(false);
380
+ }
381
+ };
382
+ document.addEventListener("mousedown", handler);
383
+ return () => document.removeEventListener("mousedown", handler);
384
+ }, []);
385
+ const year = current.getFullYear();
386
+ const month = current.getMonth();
387
+ const daysInMonth = getDaysInMonth(year, month);
388
+ const days = Array.from({ length: daysInMonth }, (_, i) => {
389
+ const date = new Date(year, month, i + 1);
390
+ return date;
391
+ });
392
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Wrapper2, { ref, children: [
393
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(InputBox, { onClick: () => setOpen(!open), children: value ? formatDate(value) : placeholder }),
394
+ open && (0, import_react_dom.createPortal)(
395
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Panel, { children: [
396
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Header, { children: [
397
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
398
+ "button",
399
+ {
400
+ onClick: () => setCurrent(
401
+ new Date(year, month - 1, 1)
402
+ ),
403
+ children: "\u25C0"
404
+ }
405
+ ),
406
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("strong", { children: [
407
+ current.toLocaleString("default", {
408
+ month: "long"
409
+ }),
410
+ " ",
411
+ year
412
+ ] }),
413
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
414
+ "button",
415
+ {
416
+ onClick: () => setCurrent(
417
+ new Date(year, month + 1, 1)
418
+ ),
419
+ children: "\u25B6"
420
+ }
421
+ )
422
+ ] }),
423
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Grid, { children: days.map((d) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
424
+ Day,
425
+ {
426
+ $selected: value ? isSameDay(d, value) : false,
427
+ onClick: () => {
428
+ onChange?.(d);
429
+ setOpen(false);
430
+ },
431
+ children: d.getDate()
432
+ },
433
+ d.toISOString()
434
+ )) })
435
+ ] }),
436
+ document.body
437
+ )
438
+ ] });
439
+ };
440
+ var DatePicker_default = DatePicker;
441
+
442
+ // src/components/Divider.tsx
443
+ var import_styled_components6 = __toESM(require("styled-components"));
444
+ var import_jsx_runtime6 = require("react/jsx-runtime");
445
+ var baseStyle4 = import_styled_components6.css`
446
+ background-color: rgba(0, 0, 0, 0.12);
447
+ flex-shrink: 0;
448
+ `;
449
+ var orientationStyles = {
450
+ horizontal: import_styled_components6.css`
451
+ width: 100%;
452
+ height: 1px;
453
+ `,
454
+ vertical: import_styled_components6.css`
455
+ height: 100%;
456
+ width: 1px;
457
+ `
458
+ };
459
+ var sizeStyles = {
460
+ thin: import_styled_components6.css`
461
+ opacity: 0.6;
462
+ `,
463
+ medium: import_styled_components6.css`
464
+ opacity: 1;
465
+ `
466
+ };
467
+ var gapStyles3 = {
468
+ xs: import_styled_components6.css`
469
+ margin: 0.5rem 0;
470
+ `,
471
+ sm: import_styled_components6.css`
472
+ margin: 1rem 0;
473
+ `,
474
+ md: import_styled_components6.css`
475
+ margin: 2rem 0;
476
+ `,
477
+ lg: import_styled_components6.css`
478
+ margin: 3rem 0;
479
+ `
480
+ };
481
+ var StyledDivider = import_styled_components6.default.div`
482
+ ${baseStyle4}
483
+ ${({ $orientation }) => orientationStyles[$orientation]}
484
+ ${({ $size }) => sizeStyles[$size]}
485
+ ${({ $gap, $orientation }) => $orientation === "horizontal" ? gapStyles3[$gap] : import_styled_components6.css`
486
+ margin: 0 ${gapStyles3[$gap].styles?.margin?.split(" ")[0] || "1rem"};
487
+ `}
488
+ `;
489
+ var Divider = ({
490
+ orientation = "horizontal",
491
+ size = "thin",
492
+ gap = "sm",
493
+ ...rest
494
+ }) => {
495
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
496
+ StyledDivider,
497
+ {
498
+ role: "separator",
499
+ $orientation: orientation,
500
+ $size: size,
501
+ $gap: gap,
502
+ ...rest
503
+ }
504
+ );
505
+ };
506
+ var Divider_default = Divider;
507
+
508
+ // src/components/Drawer.tsx
509
+ var import_react3 = require("react");
510
+ var import_react_dom2 = require("react-dom");
511
+ var import_styled_components7 = __toESM(require("styled-components"));
512
+ var import_jsx_runtime7 = require("react/jsx-runtime");
513
+ var Overlay = import_styled_components7.default.div`
514
+ position: fixed;
515
+ inset: 0;
516
+ background: rgba(0, 0, 0, 0.45);
517
+ z-index: 1000;
518
+ `;
519
+ var baseDrawer = import_styled_components7.css`
520
+ position: fixed;
521
+ background: #fff;
522
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
523
+ z-index: 1001;
524
+ display: flex;
525
+ flex-direction: column;
526
+ `;
527
+ var placementStyles = {
528
+ right: import_styled_components7.css`
529
+ top: 0;
530
+ right: 0;
531
+ height: 100%;
532
+ `,
533
+ left: import_styled_components7.css`
534
+ top: 0;
535
+ left: 0;
536
+ height: 100%;
537
+ `,
538
+ bottom: import_styled_components7.css`
539
+ left: 0;
540
+ bottom: 0;
541
+ width: 100%;
542
+ `
543
+ };
544
+ var DrawerContainer = import_styled_components7.default.div`
545
+ ${baseDrawer}
546
+ ${({ $placement }) => placementStyles[$placement]}
547
+
548
+ ${({ $placement, $width }) => ($placement === "left" || $placement === "right") && import_styled_components7.css`
549
+ width: ${typeof $width === "number" ? `${$width}px` : $width || "360px"};
550
+ `}
551
+
552
+ ${({ $placement, $height }) => $placement === "bottom" && import_styled_components7.css`
553
+ height: ${typeof $height === "number" ? `${$height}px` : $height || "320px"};
554
+ `}
555
+ `;
556
+ var Header2 = import_styled_components7.default.div`
557
+ display: flex;
558
+ justify-content: flex-end;
559
+ padding: 0.75rem;
560
+ border-bottom: 1px solid #eee;
561
+ `;
562
+ var CloseButton = import_styled_components7.default.button`
563
+ background: none;
564
+ border: none;
565
+ font-size: 1.25rem;
566
+ cursor: pointer;
567
+ `;
568
+ var Drawer = ({
569
+ open,
570
+ onClose,
571
+ placement = "right",
572
+ width,
573
+ height,
574
+ children
575
+ }) => {
576
+ (0, import_react3.useEffect)(() => {
577
+ if (!open) return;
578
+ const handleKeyDown = (e) => {
579
+ if (e.key === "Escape") {
580
+ onClose?.();
581
+ }
582
+ };
583
+ document.addEventListener("keydown", handleKeyDown);
584
+ return () => document.removeEventListener("keydown", handleKeyDown);
585
+ }, [open, onClose]);
586
+ if (!open) return null;
587
+ return (0, import_react_dom2.createPortal)(
588
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
589
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Overlay, { onClick: onClose }),
590
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
591
+ DrawerContainer,
592
+ {
593
+ $placement: placement,
594
+ $width: width,
595
+ $height: height,
596
+ children: [
597
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Header2, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CloseButton, { onClick: onClose, children: "\xD7" }) }),
598
+ children
599
+ ]
600
+ }
601
+ )
602
+ ] }),
603
+ document.body
604
+ );
605
+ };
606
+ var Drawer_default = Drawer;
607
+
608
+ // src/components/Flex.tsx
609
+ var import_styled_components8 = __toESM(require("styled-components"));
610
+ var import_jsx_runtime8 = require("react/jsx-runtime");
611
+ var baseStyle5 = import_styled_components8.css`
612
+ width: 100%;
613
+ height: 100%;
614
+ display: flex;
615
+ `;
616
+ var FlexDirectionStyle = {
617
+ row: import_styled_components8.css`
618
+ flex-direction: row;
619
+ `,
620
+ col: import_styled_components8.css`
621
+ flex-direction: column;
622
+ `
623
+ };
624
+ var JustifyStyle = {
625
+ center: import_styled_components8.css`
626
+ justify-content: center;
627
+ `,
628
+ between: import_styled_components8.css`
629
+ justify-content: space-between;
630
+ `,
631
+ around: import_styled_components8.css`
632
+ justify-content: space-around;
633
+ `,
634
+ start: import_styled_components8.css`
635
+ justify-content: flex-start;
636
+ `,
637
+ end: import_styled_components8.css`
638
+ justify-content: flex-end;
639
+ `,
640
+ even: import_styled_components8.css`
641
+ justify-content: space-evenly;
642
+ `
643
+ };
644
+ var AlignStyle = {
645
+ center: import_styled_components8.css`
646
+ align-items: center;
647
+ `,
648
+ between: import_styled_components8.css`
649
+ align-items: space-between;
650
+ `,
651
+ around: import_styled_components8.css`
652
+ align-items: space-around;
653
+ `,
654
+ start: import_styled_components8.css`
655
+ align-items: flex-start;
656
+ `,
657
+ end: import_styled_components8.css`
658
+ align-items: flex-end;
659
+ `,
660
+ even: import_styled_components8.css`
661
+ align-items: space-evenly;
662
+ `
663
+ };
664
+ var GapStyle = {
665
+ small: import_styled_components8.css`
666
+ gap: 1em;
667
+ `,
668
+ medium: import_styled_components8.css`
669
+ gap: 2em;
670
+ `,
671
+ large: import_styled_components8.css`
672
+ gap: 3em;
673
+ `
674
+ };
675
+ var StyledDiv = import_styled_components8.default.div`
676
+ ${baseStyle5}
677
+ ${({ $flexDirection, $gap, $justify, $align }) => import_styled_components8.css`
678
+ ${FlexDirectionStyle[$flexDirection]}
679
+ ${GapStyle[$gap]}
680
+ ${AlignStyle[$align]}
681
+ ${JustifyStyle[$justify]}
682
+ `}
683
+ `;
684
+ var Flex = ({
685
+ gap = "small",
686
+ justify = "center",
687
+ align = "center",
688
+ flexDirection = "col",
689
+ children,
690
+ ...rest
691
+ }) => {
692
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StyledDiv, { $gap: gap, $justify: justify, $align: align, $flexDirection: flexDirection, ...rest, children });
693
+ };
694
+ var Flex_default = Flex;
695
+
696
+ // src/components/Form.tsx
697
+ var import_styled_components9 = __toESM(require("styled-components"));
698
+ var import_jsx_runtime9 = require("react/jsx-runtime");
699
+ var StyledForm = import_styled_components9.default.form`
700
+ width: 100%;
701
+ `;
702
+ var Form = ({ children, ...rest }) => {
703
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(StyledForm, { ...rest, children });
704
+ };
705
+ var Form_default = Form;
706
+
707
+ // src/components/FormControl.tsx
708
+ var import_styled_components10 = __toESM(require("styled-components"));
709
+ var import_jsx_runtime10 = require("react/jsx-runtime");
710
+ var Wrapper3 = import_styled_components10.default.div`
711
+ display: flex;
712
+ flex-direction: column;
713
+ gap: 0.25rem;
714
+ width: 100%;
715
+ `;
716
+ var Label = import_styled_components10.default.label`
717
+ font-size: 0.875rem;
718
+ font-weight: 500;
719
+ color: ${({ $error }) => $error ? "#e53935" : "inherit"};
720
+ `;
721
+ var RequiredMark = import_styled_components10.default.span`
722
+ color: #e53935;
723
+ margin-left: 0.25rem;
724
+ `;
725
+ var Helper = import_styled_components10.default.span`
726
+ font-size: 0.75rem;
727
+ color: #666;
728
+ `;
729
+ var ErrorText = import_styled_components10.default.span`
730
+ font-size: 0.75rem;
731
+ color: #e53935;
732
+ `;
733
+ var FormControl = ({
734
+ label,
735
+ error,
736
+ helperText,
737
+ required = false,
738
+ children
739
+ }) => {
740
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(Wrapper3, { children: [
741
+ label && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(Label, { $error: !!error, children: [
742
+ label,
743
+ required && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(RequiredMark, { children: "*" })
744
+ ] }),
745
+ children,
746
+ error ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ErrorText, { children: error }) : helperText && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Helper, { children: helperText })
747
+ ] });
748
+ };
749
+ var FormControl_default = FormControl;
750
+
751
+ // src/components/Heading.tsx
752
+ var import_styled_components11 = __toESM(require("styled-components"));
753
+ var import_jsx_runtime11 = require("react/jsx-runtime");
754
+ var levelStyles = {
755
+ 1: import_styled_components11.css`font-size: 2rem;`,
756
+ 2: import_styled_components11.css`font-size: 1.75rem;`,
757
+ 3: import_styled_components11.css`font-size: 1.5rem;`,
758
+ 4: import_styled_components11.css`font-size: 1.25rem;`,
759
+ 5: import_styled_components11.css`font-size: 1.1rem;`,
760
+ 6: import_styled_components11.css`font-size: 1rem;`
761
+ };
762
+ var Base = import_styled_components11.default.div`
763
+ margin: 0;
764
+ font-weight: 600;
765
+ ${({ $level }) => levelStyles[$level]}
766
+ `;
767
+ var Heading = ({
768
+ level = 1,
769
+ children,
770
+ ...rest
771
+ }) => {
772
+ const Tag = `h${level}`;
773
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
774
+ Base,
775
+ {
776
+ as: Tag,
777
+ $level: level,
778
+ ...rest,
779
+ children
780
+ }
781
+ );
782
+ };
783
+ var Heading_default = Heading;
784
+
785
+ // src/components/Input.tsx
786
+ var import_styled_components12 = __toESM(require("styled-components"));
787
+ var import_jsx_runtime12 = require("react/jsx-runtime");
788
+ var sizeStyles2 = {
789
+ xs: import_styled_components12.css`padding: 0.25rem 0.5rem; font-size: 0.75rem;`,
790
+ sm: import_styled_components12.css`padding: 0.4rem 0.6rem; font-size: 0.875rem;`,
791
+ md: import_styled_components12.css`padding: 0.5rem 0.75rem; font-size: 1rem;`,
792
+ lg: import_styled_components12.css`padding: 0.65rem 0.9rem; font-size: 1.1rem;`
793
+ };
794
+ var StyledInput = import_styled_components12.default.input`
795
+ width: 100%;
796
+ border-radius: 6px;
797
+ border: 1px solid
798
+ ${({ $state }) => $state === "error" ? "#e53935" : "#ccc"};
799
+ outline: none;
800
+
801
+ ${({ $inputSize }) => sizeStyles2[$inputSize]}
802
+
803
+ &:focus {
804
+ border-color: #2d8eff;
805
+ }
806
+ `;
807
+ var Input = ({
808
+ inputSize = "md",
809
+ state = "default",
810
+ ...rest
811
+ }) => {
812
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
813
+ StyledInput,
814
+ {
815
+ $inputSize: inputSize,
816
+ $state: state,
817
+ ...rest
818
+ }
819
+ );
820
+ };
821
+ var Input_default = Input;
822
+
823
+ // src/components/Link.tsx
824
+ var import_styled_components13 = __toESM(require("styled-components"));
825
+ var import_jsx_runtime13 = require("react/jsx-runtime");
826
+ var baseStyle6 = import_styled_components13.css`
827
+ color: inherit;
828
+ text-decoration: underline;
829
+ cursor: pointer;
830
+ transition: color 0.2s ease, text-decoration-color 0.2s ease;
831
+
832
+ &:hover {
833
+ text-decoration-thickness: 2px;
834
+ }
835
+
836
+ &:focus-visible {
837
+ outline: 2px solid currentColor;
838
+ outline-offset: 2px;
839
+ }
840
+ `;
841
+ var variantStyles3 = {
842
+ default: import_styled_components13.css`
843
+ opacity: 1;
844
+ `,
845
+ muted: import_styled_components13.css`
846
+ opacity: 0.7;
847
+
848
+ &:hover {
849
+ opacity: 1;
850
+ }
851
+ `
852
+ };
853
+ var StyledLink = import_styled_components13.default.a`
854
+ ${baseStyle6}
855
+ ${({ $variant }) => variantStyles3[$variant]}
856
+ `;
857
+ var Link = ({
858
+ variant = "default",
859
+ external = false,
860
+ children,
861
+ ...rest
862
+ }) => {
863
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
864
+ StyledLink,
865
+ {
866
+ $variant: variant,
867
+ target: external ? "_blank" : rest.target,
868
+ rel: external ? "noopener noreferrer" : rest.rel,
869
+ ...rest,
870
+ children
871
+ }
872
+ );
873
+ };
874
+ var Link_default = Link;
875
+
876
+ // src/components/Modal.tsx
877
+ var import_react4 = require("react");
878
+ var import_react_dom3 = require("react-dom");
879
+ var import_styled_components14 = __toESM(require("styled-components"));
880
+ var import_jsx_runtime14 = require("react/jsx-runtime");
881
+ var Overlay2 = import_styled_components14.default.div`
882
+ position: fixed;
883
+ inset: 0;
884
+ background: rgba(0, 0, 0, 0.45);
885
+ display: flex;
886
+ align-items: center;
887
+ justify-content: center;
888
+ z-index: 1000;
889
+ `;
890
+ var Content = import_styled_components14.default.div`
891
+ background: #fff;
892
+ border-radius: 8px;
893
+ width: 100%;
894
+ max-width: 500px;
895
+ padding: 1.5rem;
896
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
897
+ `;
898
+ var Modal = ({
899
+ open,
900
+ onClose,
901
+ children
902
+ }) => {
903
+ (0, import_react4.useEffect)(() => {
904
+ if (!open) return;
905
+ const handleKeyDown = (e) => {
906
+ if (e.key === "Escape") {
907
+ onClose?.();
908
+ }
909
+ };
910
+ document.addEventListener("keydown", handleKeyDown);
911
+ return () => document.removeEventListener("keydown", handleKeyDown);
912
+ }, [open, onClose]);
913
+ if (!open) return null;
914
+ return (0, import_react_dom3.createPortal)(
915
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Overlay2, { onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Content, { onClick: (e) => e.stopPropagation(), children }) }),
916
+ document.body
917
+ );
918
+ };
919
+ var Modal_default = Modal;
920
+
921
+ // src/components/Paragraph.tsx
922
+ var import_styled_components15 = __toESM(require("styled-components"));
923
+ var import_jsx_runtime15 = require("react/jsx-runtime");
924
+ var StyledParagraph = import_styled_components15.default.p`
925
+ margin: 0;
926
+ font-size: 1rem;
927
+ line-height: 1.6;
928
+ color: inherit;
929
+ `;
930
+ var Paragraph = ({ children, ...rest }) => {
931
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(StyledParagraph, { ...rest, children });
932
+ };
933
+ var Paragraph_default = Paragraph;
934
+
935
+ // src/components/Radio.tsx
936
+ var import_styled_components16 = __toESM(require("styled-components"));
937
+ var import_jsx_runtime16 = require("react/jsx-runtime");
938
+ var Wrapper4 = import_styled_components16.default.label`
939
+ display: inline-flex;
940
+ align-items: center;
941
+ gap: 0.5rem;
942
+ cursor: pointer;
943
+ user-select: none;
944
+ `;
945
+ var HiddenInput2 = import_styled_components16.default.input.attrs({ type: "radio" })`
946
+ position: absolute;
947
+ opacity: 0;
948
+ pointer-events: none;
949
+ `;
950
+ var circleBase = import_styled_components16.css`
951
+ width: 16px;
952
+ height: 16px;
953
+ border-radius: 50%;
954
+ border: 2px solid #ccc;
955
+ display: flex;
956
+ align-items: center;
957
+ justify-content: center;
958
+ transition: all 0.15s ease;
959
+ `;
960
+ var Circle = import_styled_components16.default.span`
961
+ ${circleBase}
962
+ border-color: ${({ $checked }) => $checked ? "#2d8eff" : "#ccc"};
963
+ opacity: ${({ $disabled }) => $disabled ? 0.6 : 1};
964
+
965
+ ${Wrapper4}:hover & {
966
+ border-color: #2d8eff;
967
+ }
968
+ `;
969
+ var Dot = import_styled_components16.default.span`
970
+ width: 8px;
971
+ height: 8px;
972
+ background: #2d8eff;
973
+ border-radius: 50%;
974
+ `;
975
+ var Radio = ({
976
+ checked = false,
977
+ disabled = false,
978
+ label,
979
+ ...rest
980
+ }) => {
981
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Wrapper4, { children: [
982
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
983
+ HiddenInput2,
984
+ {
985
+ checked,
986
+ disabled,
987
+ ...rest
988
+ }
989
+ ),
990
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Circle, { $checked: checked, $disabled: disabled, children: checked && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Dot, {}) }),
991
+ label && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: label })
992
+ ] });
993
+ };
994
+ var Radio_default = Radio;
995
+
996
+ // src/components/Select.tsx
997
+ var import_react5 = __toESM(require("react"));
998
+ var import_styled_components17 = __toESM(require("styled-components"));
999
+ var import_react_dom4 = require("react-dom");
1000
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1001
+ var Option = () => null;
1002
+ Option.displayName = "SelectOption";
1003
+ var Trigger = import_styled_components17.default.div`
1004
+ border: 1px solid
1005
+ ${({ $state }) => $state === "error" ? "#e53935" : "#ccc"};
1006
+ border-radius: 6px;
1007
+ padding: ${({ $size }) => $size === "sm" ? "0.4rem 0.6rem" : $size === "lg" ? "0.7rem 0.9rem" : "0.55rem 0.75rem"};
1008
+ cursor: pointer;
1009
+ background: #fff;
1010
+ `;
1011
+ var Dropdown = import_styled_components17.default.div`
1012
+ position: fixed;
1013
+ min-width: 200px;
1014
+ background: white;
1015
+ border-radius: 6px;
1016
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);
1017
+ padding: 0.25rem;
1018
+ z-index: 1000;
1019
+ `;
1020
+ var Item = import_styled_components17.default.div`
1021
+ padding: 0.4rem 0.6rem;
1022
+ border-radius: 4px;
1023
+ cursor: pointer;
1024
+ background: ${({ $active }) => $active ? "#2d8eff" : "transparent"};
1025
+ color: ${({ $active }) => $active ? "#fff" : "inherit"};
1026
+
1027
+ &:hover {
1028
+ background: ${({ $active }) => $active ? "#2d8eff" : "#f5f5f5"};
1029
+ }
1030
+ `;
1031
+ var Select = ({
1032
+ value,
1033
+ placeholder = "Select",
1034
+ options,
1035
+ onChange,
1036
+ selectSize = "md",
1037
+ state = "default",
1038
+ children,
1039
+ ...rest
1040
+ }) => {
1041
+ const ref = (0, import_react5.useRef)(null);
1042
+ const [open, setOpen] = (0, import_react5.useState)(false);
1043
+ const [pos, setPos] = (0, import_react5.useState)({ top: 0, left: 0 });
1044
+ const childOptions = import_react5.default.Children.toArray(children).filter(
1045
+ (child) => import_react5.default.isValidElement(child) && child.type === Option
1046
+ ).map((child) => ({
1047
+ value: child.props.value,
1048
+ label: child.props.children
1049
+ }));
1050
+ const finalOptions = options ?? childOptions;
1051
+ const selected = finalOptions.find((o) => o.value === value)?.label ?? placeholder;
1052
+ const openDropdown = () => {
1053
+ if (!ref.current) return;
1054
+ const rect = ref.current.getBoundingClientRect();
1055
+ setPos({
1056
+ top: rect.bottom + 6,
1057
+ left: rect.left
1058
+ });
1059
+ setOpen(true);
34
1060
  };
35
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { style: style[variant], ...rest, children });
1061
+ (0, import_react5.useEffect)(() => {
1062
+ const handler = (e) => {
1063
+ if (ref.current && !ref.current.contains(e.target)) {
1064
+ setOpen(false);
1065
+ }
1066
+ };
1067
+ document.addEventListener("mousedown", handler);
1068
+ return () => document.removeEventListener("mousedown", handler);
1069
+ }, []);
1070
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
1071
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1072
+ Trigger,
1073
+ {
1074
+ ref,
1075
+ onClick: openDropdown,
1076
+ $size: selectSize,
1077
+ $state: state,
1078
+ ...rest,
1079
+ children: selected
1080
+ }
1081
+ ),
1082
+ open && (0, import_react_dom4.createPortal)(
1083
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1084
+ Dropdown,
1085
+ {
1086
+ style: {
1087
+ top: pos.top,
1088
+ left: pos.left
1089
+ },
1090
+ children: finalOptions.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1091
+ Item,
1092
+ {
1093
+ $active: opt.value === value,
1094
+ onClick: () => {
1095
+ onChange?.(opt.value);
1096
+ setOpen(false);
1097
+ },
1098
+ children: opt.label
1099
+ },
1100
+ opt.value
1101
+ ))
1102
+ }
1103
+ ),
1104
+ document.body
1105
+ )
1106
+ ] });
1107
+ };
1108
+ Select.Option = Option;
1109
+ var Select_default = Select;
1110
+
1111
+ // src/components/Switch.tsx
1112
+ var import_styled_components18 = __toESM(require("styled-components"));
1113
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1114
+ var Wrapper5 = import_styled_components18.default.label`
1115
+ display: inline-flex;
1116
+ align-items: center;
1117
+ gap: 0.5rem;
1118
+ cursor: pointer;
1119
+ user-select: none;
1120
+ `;
1121
+ var HiddenInput3 = import_styled_components18.default.input.attrs({ type: "checkbox" })`
1122
+ position: absolute;
1123
+ opacity: 0;
1124
+ pointer-events: none;
1125
+ `;
1126
+ var trackBase = import_styled_components18.css`
1127
+ width: 36px;
1128
+ height: 20px;
1129
+ border-radius: 999px;
1130
+ background-color: #ccc;
1131
+ position: relative;
1132
+ transition: background-color 0.2s ease;
1133
+ `;
1134
+ var Track = import_styled_components18.default.span`
1135
+ ${trackBase}
1136
+ background-color: ${({ $checked }) => $checked ? "#2d8eff" : "#ccc"};
1137
+ opacity: ${({ $disabled }) => $disabled ? 0.6 : 1};
1138
+ `;
1139
+ var Thumb = import_styled_components18.default.span`
1140
+ width: 16px;
1141
+ height: 16px;
1142
+ background-color: #fff;
1143
+ border-radius: 50%;
1144
+ position: absolute;
1145
+ top: 2px;
1146
+ left: 2px;
1147
+ transition: transform 0.2s ease;
1148
+
1149
+ transform: ${({ $checked }) => $checked ? "translateX(16px)" : "translateX(0)"};
1150
+ `;
1151
+ var Switch = ({
1152
+ checked = false,
1153
+ disabled = false,
1154
+ label,
1155
+ ...rest
1156
+ }) => {
1157
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Wrapper5, { children: [
1158
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1159
+ HiddenInput3,
1160
+ {
1161
+ checked,
1162
+ disabled,
1163
+ ...rest
1164
+ }
1165
+ ),
1166
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Track, { $checked: checked, $disabled: disabled, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Thumb, { $checked: checked }) }),
1167
+ label && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: label })
1168
+ ] });
1169
+ };
1170
+ var Switch_default = Switch;
1171
+
1172
+ // src/components/Text.tsx
1173
+ var import_styled_components19 = __toESM(require("styled-components"));
1174
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1175
+ var baseStyle7 = import_styled_components19.css`
1176
+ font-size: 12px;
1177
+ `;
1178
+ var variantStyles4 = {
1179
+ h1: import_styled_components19.css`
1180
+ font-size: 2em;
1181
+ font-weight: bold;
1182
+ `,
1183
+ h2: import_styled_components19.css`
1184
+ font-size: 1.5em;
1185
+ font-weight: bold;
1186
+ `,
1187
+ h3: import_styled_components19.css`
1188
+ font-size: 1.17em;
1189
+ font-weight: bold;
1190
+ `,
1191
+ h4: import_styled_components19.css`
1192
+ font-size: 1em;
1193
+ font-weight: bold;
1194
+ `,
1195
+ h5: import_styled_components19.css`
1196
+ font-size: 0.83em;
1197
+ font-weight: bold;
1198
+ `,
1199
+ h6: import_styled_components19.css`
1200
+ font-size: 0.67em;
1201
+ font-weight: bold;
1202
+ `,
1203
+ p: import_styled_components19.css`
1204
+ font-size: 0.875em;
1205
+ `
1206
+ };
1207
+ var StyledButton2 = import_styled_components19.default.span`
1208
+ ${baseStyle7}
1209
+ ${({ $variant }) => variantStyles4[$variant]}
1210
+ `;
1211
+ var Text = ({
1212
+ fontVariant = "p",
1213
+ children,
1214
+ ...rest
1215
+ }) => {
1216
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StyledButton2, { $variant: fontVariant, ...rest, children });
1217
+ };
1218
+ var Text_default = Text;
1219
+
1220
+ // src/components/Textarea.tsx
1221
+ var import_styled_components20 = __toESM(require("styled-components"));
1222
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1223
+ var baseStyle8 = import_styled_components20.css`
1224
+ width: 100%;
1225
+ font-family: inherit;
1226
+ border-radius: 6px;
1227
+ border: 1px solid #ccc;
1228
+ background-color: #fff;
1229
+ color: inherit;
1230
+ outline: none;
1231
+ resize: vertical;
1232
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
1233
+
1234
+ &:focus {
1235
+ border-color: #2d8eff;
1236
+ box-shadow: 0 0 0 2px rgba(45, 142, 255, 0.2);
1237
+ }
1238
+
1239
+ &:disabled {
1240
+ background-color: #f5f5f5;
1241
+ cursor: not-allowed;
1242
+ opacity: 0.7;
1243
+ }
1244
+ `;
1245
+ var sizeStyles3 = {
1246
+ sm: import_styled_components20.css`
1247
+ padding: 0.4rem 0.6rem;
1248
+ font-size: 0.875rem;
1249
+ min-height: 80px;
1250
+ `,
1251
+ md: import_styled_components20.css`
1252
+ padding: 0.5rem 0.75rem;
1253
+ font-size: 1rem;
1254
+ min-height: 120px;
1255
+ `,
1256
+ lg: import_styled_components20.css`
1257
+ padding: 0.65rem 0.9rem;
1258
+ font-size: 1.125rem;
1259
+ min-height: 160px;
1260
+ `
1261
+ };
1262
+ var stateStyles = {
1263
+ default: import_styled_components20.css``,
1264
+ error: import_styled_components20.css`
1265
+ border-color: #e53935;
1266
+
1267
+ &:focus {
1268
+ border-color: #e53935;
1269
+ box-shadow: 0 0 0 2px rgba(229, 57, 53, 0.2);
1270
+ }
1271
+ `
1272
+ };
1273
+ var StyledTextarea = import_styled_components20.default.textarea`
1274
+ ${baseStyle8}
1275
+ ${({ $size }) => sizeStyles3[$size]}
1276
+ ${({ $state }) => stateStyles[$state]}
1277
+ `;
1278
+ var Textarea = ({
1279
+ size = "md",
1280
+ state = "default",
1281
+ ...rest
1282
+ }) => {
1283
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(StyledTextarea, { $size: size, $state: state, ...rest });
36
1284
  };
1285
+ var Textarea_default = Textarea;
37
1286
  // Annotate the CommonJS export names for ESM import in node:
38
1287
  0 && (module.exports = {
39
- Button
1288
+ Box,
1289
+ Button,
1290
+ Card,
1291
+ Checkbox,
1292
+ DatePicker,
1293
+ Divider,
1294
+ Drawer,
1295
+ Flex,
1296
+ Form,
1297
+ FormControl,
1298
+ Heading,
1299
+ Input,
1300
+ Link,
1301
+ Modal,
1302
+ Paragraph,
1303
+ Radio,
1304
+ Select,
1305
+ Switch,
1306
+ Text,
1307
+ Textarea
40
1308
  });
41
1309
  //# sourceMappingURL=index.js.map