thailife-react 0.0.11 → 0.0.13

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.esm.js CHANGED
@@ -1,36 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import React__default from 'react';
3
3
  export { default as React, default } from 'react';
4
-
5
- function styleInject(css, ref) {
6
- if ( ref === void 0 ) ref = {};
7
- var insertAt = ref.insertAt;
8
-
9
- if (typeof document === 'undefined') { return; }
10
-
11
- var head = document.head || document.getElementsByTagName('head')[0];
12
- var style = document.createElement('style');
13
- style.type = 'text/css';
14
-
15
- if (insertAt === 'top') {
16
- if (head.firstChild) {
17
- head.insertBefore(style, head.firstChild);
18
- } else {
19
- head.appendChild(style);
20
- }
21
- } else {
22
- head.appendChild(style);
23
- }
24
-
25
- if (style.styleSheet) {
26
- style.styleSheet.cssText = css;
27
- } else {
28
- style.appendChild(document.createTextNode(css));
29
- }
30
- }
31
-
32
- var css_248z = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,system-ui,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{bottom:0;top:0}.right-0{right:0}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.ml-3{margin-left:.75rem}.mt-1{margin-top:.25rem}.flex{display:flex}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-full{height:100%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.rounded{border-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-dashed{border-style:dashed}.border-dark{--tw-border-opacity:1;border-color:rgb(51 51 51/var(--tw-border-opacity,1))}.border-error{--tw-border-opacity:1;border-color:rgb(255 17 0/var(--tw-border-opacity,1))}.border-light{--tw-border-opacity:1;border-color:rgb(102 102 102/var(--tw-border-opacity,1))}.border-primary{--tw-border-opacity:1;border-color:rgb(0 122 194/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.bg-dark{--tw-bg-opacity:1;background-color:rgb(51 51 51/var(--tw-bg-opacity,1))}.bg-error{--tw-bg-opacity:1;background-color:rgb(255 17 0/var(--tw-bg-opacity,1))}.bg-light{--tw-bg-opacity:1;background-color:rgb(102 102 102/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:rgb(0 122 194/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.pr-3{padding-right:.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.text-dark{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity,1))}.text-error{--tw-text-opacity:1;color:rgb(255 17 0/var(--tw-text-opacity,1))}.text-light{--tw-text-opacity:1;color:rgb(102 102 102/var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:rgb(0 122 194/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-50{opacity:.5}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.hover\\:border-primary\\/60:hover{border-color:rgba(0,122,194,.6)}.hover\\:border-red-400:hover{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.hover\\:bg-dark\\/10:hover{background-color:rgba(51,51,51,.1)}.hover\\:bg-dark\\/80:hover{background-color:rgba(51,51,51,.8)}.hover\\:bg-error\\/10:hover{background-color:rgba(255,17,0,.1)}.hover\\:bg-error\\/80:hover{background-color:rgba(255,17,0,.8)}.hover\\:bg-light\\/10:hover{background-color:hsla(0,0%,40%,.1)}.hover\\:bg-light\\/80:hover{background-color:hsla(0,0%,40%,.8)}.hover\\:bg-primary\\/10:hover{background-color:rgba(0,122,194,.1)}.hover\\:bg-primary\\/80:hover{background-color:rgba(0,122,194,.8)}.focus\\:border-primary:focus{--tw-border-opacity:1;border-color:rgb(0 122 194/var(--tw-border-opacity,1))}.focus\\:border-transparent:focus{border-color:transparent}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-primary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(0 122 194/var(--tw-ring-opacity,1))}.focus\\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}";
33
- styleInject(css_248z,{"insertAt":"top"});
4
+ import styled, { css, ThemeProvider as ThemeProvider$1 } from 'styled-components';
34
5
 
35
6
  function _defineProperty(e, r, t) {
36
7
  return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
@@ -81,6 +52,13 @@ function _objectWithoutPropertiesLoose(r, e) {
81
52
  }
82
53
  return t;
83
54
  }
55
+ function _taggedTemplateLiteral(e, t) {
56
+ return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
57
+ raw: {
58
+ value: Object.freeze(t)
59
+ }
60
+ }));
61
+ }
84
62
  function _toPrimitive(t, r) {
85
63
  if ("object" != typeof t || !t) return t;
86
64
  var e = t[Symbol.toPrimitive];
@@ -1457,21 +1435,66 @@ if (process.env.NODE_ENV === 'production') {
1457
1435
 
1458
1436
  var jsxRuntimeExports = jsxRuntime.exports;
1459
1437
 
1460
- function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
1461
-
1462
- /**
1463
- * Utility function to merge Tailwind CSS classes
1464
- * Uses clsx for conditional classes and basic merging
1465
- */
1466
- function cn() {
1467
- for (var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++) {
1468
- inputs[_key] = arguments[_key];
1469
- }
1470
- return clsx(inputs);
1471
- }
1472
-
1473
1438
  const _excluded$6 = ["className", "color", "variant", "size", "fullWidth", "loading", "disabled", "children"];
1474
- const Button = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1439
+ var _templateObject$6, _templateObject2$6, _templateObject3$6, _templateObject4$6, _templateObject5$6, _templateObject6$6, _templateObject7$6, _templateObject8$6, _templateObject9$6, _templateObject0$6;
1440
+ const StyledButton = styled.button(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n border-radius: ", ";\n font-family: ", ";\n font-weight: 500;\n cursor: pointer;\n transition: all ", ";\n outline: none;\n\n &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: 2px;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n ", "\n\n ", "\n\n ", "\n"])), _ref => {
1441
+ let {
1442
+ theme
1443
+ } = _ref;
1444
+ return theme.borderRadius.md;
1445
+ }, _ref2 => {
1446
+ let {
1447
+ theme
1448
+ } = _ref2;
1449
+ return theme.fontFamily.sans.join(", ");
1450
+ }, _ref3 => {
1451
+ let {
1452
+ theme
1453
+ } = _ref3;
1454
+ return theme.transitions.base;
1455
+ }, _ref4 => {
1456
+ let {
1457
+ theme
1458
+ } = _ref4;
1459
+ return theme.colors.primary;
1460
+ }, _ref5 => {
1461
+ let {
1462
+ variant,
1463
+ color,
1464
+ theme
1465
+ } = _ref5;
1466
+ if (variant === "contained") {
1467
+ return css(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n background-color: ", ";\n color: ", ";\n &:hover:not(:disabled) {\n background-color: ", "cc;\n }\n "])), theme.colors[color || "primary"], theme.colors.white, theme.colors[color || "primary"]);
1468
+ }
1469
+ if (variant === "outlined") {
1470
+ return css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteral(["\n background-color: transparent;\n border: 1px solid ", ";\n color: ", ";\n &:hover:not(:disabled) {\n background-color: ", "1a;\n }\n "])), theme.colors[color || "primary"], theme.colors[color || "primary"], theme.colors[color || "primary"]);
1471
+ }
1472
+ if (variant === "link") {
1473
+ return css(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteral(["\n background-color: transparent;\n color: ", ";\n text-decoration: underline;\n &:hover:not(:disabled) {\n text-decoration: none;\n }\n "])), theme.colors[color || "primary"]);
1474
+ }
1475
+ return css(_templateObject5$6 || (_templateObject5$6 = _taggedTemplateLiteral([""])));
1476
+ }, _ref6 => {
1477
+ let {
1478
+ size,
1479
+ theme
1480
+ } = _ref6;
1481
+ if (size === "sm") {
1482
+ return css(_templateObject6$6 || (_templateObject6$6 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[3], theme.spacing[3], theme.fontSize.sm);
1483
+ }
1484
+ if (size === "md") {
1485
+ return css(_templateObject7$6 || (_templateObject7$6 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[2], theme.spacing[4], theme.fontSize.sm);
1486
+ }
1487
+ if (size === "lg") {
1488
+ return css(_templateObject8$6 || (_templateObject8$6 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[3], theme.spacing[6], theme.fontSize.base);
1489
+ }
1490
+ return css(_templateObject9$6 || (_templateObject9$6 = _taggedTemplateLiteral([""])));
1491
+ }, _ref7 => {
1492
+ let {
1493
+ fullWidth
1494
+ } = _ref7;
1495
+ return fullWidth && css(_templateObject0$6 || (_templateObject0$6 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
1496
+ });
1497
+ const Button = /*#__PURE__*/React__default.forwardRef((_ref8, ref) => {
1475
1498
  let {
1476
1499
  className,
1477
1500
  color = "primary",
@@ -1481,38 +1504,17 @@ const Button = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1481
1504
  loading = false,
1482
1505
  disabled,
1483
1506
  children
1484
- } = _ref,
1485
- props = _objectWithoutProperties(_ref, _excluded$6);
1486
- const baseClasses = cn(className, "btn transition-all duration-300 flex items-center justify-center");
1487
- const variants = {
1488
- contained: {
1489
- primary: "bg-primary hover:bg-primary/80 text-white",
1490
- error: "bg-error hover:bg-error/80 text-white",
1491
- dark: "bg-dark hover:bg-dark/80 text-white",
1492
- light: "bg-light hover:bg-light/80 text-white"
1493
- },
1494
- outlined: {
1495
- primary: "border border-primary text-primary hover:bg-primary/10",
1496
- error: "border border-error text-error hover:bg-error/10",
1497
- dark: "border border-dark text-dark hover:bg-dark/10",
1498
- light: "border border-light text-light hover:bg-light/10"
1499
- },
1500
- link: {
1501
- primary: "text-primary underline",
1502
- error: "text-error underline",
1503
- dark: "text-dark underline",
1504
- light: "text-light underline"
1505
- }
1506
- };
1507
- const sizes = {
1508
- sm: "px-3 py-1.5 text-sm",
1509
- md: "px-4 py-2 text-sm",
1510
- lg: "px-6 py-3 text-base"
1511
- };
1512
- return jsxRuntimeExports.jsx("button", _objectSpread2(_objectSpread2({
1513
- className: cn(baseClasses, variants[variant][color], sizes[size], fullWidth && "w-full", (disabled || loading) && "opacity-50 cursor-not-allowed", className),
1514
- ref: ref,
1515
- disabled: disabled || loading
1507
+ } = _ref8,
1508
+ props = _objectWithoutProperties(_ref8, _excluded$6);
1509
+ return jsxRuntimeExports.jsx(StyledButton, _objectSpread2(_objectSpread2({
1510
+ className: className,
1511
+ color: color,
1512
+ variant: variant,
1513
+ size: size,
1514
+ fullWidth: fullWidth,
1515
+ loading: loading,
1516
+ disabled: disabled || loading,
1517
+ ref: ref
1516
1518
  }, props), {}, {
1517
1519
  children: children
1518
1520
  }));
@@ -1520,7 +1522,100 @@ const Button = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1520
1522
  Button.displayName = "Button";
1521
1523
 
1522
1524
  const _excluded$5 = ["className", "type", "label", "error", "helperText", "size", "fullWidth", "id"];
1523
- const Input = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1525
+ var _templateObject$5, _templateObject2$5, _templateObject3$5, _templateObject4$5, _templateObject5$5, _templateObject6$5, _templateObject7$5, _templateObject8$5, _templateObject9$5, _templateObject0$5;
1526
+ const InputContainer = styled.div(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n ", "\n"])), _ref => {
1527
+ let {
1528
+ fullWidth
1529
+ } = _ref;
1530
+ return fullWidth && css(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
1531
+ });
1532
+ const InputLabel = styled.label(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n font-size: ", ";\n font-weight: 500;\n color: ", ";\n"])), _ref2 => {
1533
+ let {
1534
+ theme
1535
+ } = _ref2;
1536
+ return theme.spacing[1];
1537
+ }, _ref3 => {
1538
+ let {
1539
+ theme
1540
+ } = _ref3;
1541
+ return theme.fontSize.sm;
1542
+ }, _ref4 => {
1543
+ let {
1544
+ theme
1545
+ } = _ref4;
1546
+ return theme.colors.gray[700];
1547
+ });
1548
+ const StyledInput = styled.input(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n border-radius: ", ";\n transition: border-color ", ";\n outline: none;\n font-family: ", ";\n\n &:focus {\n border-color: ", ";\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background-color: ", ";\n }\n\n ", "\n\n ", "\n"])), _ref5 => {
1549
+ let {
1550
+ theme,
1551
+ hasError
1552
+ } = _ref5;
1553
+ return hasError ? theme.colors.error : theme.colors.gray[300];
1554
+ }, _ref6 => {
1555
+ let {
1556
+ theme
1557
+ } = _ref6;
1558
+ return theme.borderRadius.md;
1559
+ }, _ref7 => {
1560
+ let {
1561
+ theme
1562
+ } = _ref7;
1563
+ return theme.transitions.base;
1564
+ }, _ref8 => {
1565
+ let {
1566
+ theme
1567
+ } = _ref8;
1568
+ return theme.fontFamily.sans.join(", ");
1569
+ }, _ref9 => {
1570
+ let {
1571
+ theme,
1572
+ hasError
1573
+ } = _ref9;
1574
+ return hasError ? theme.colors.error : theme.colors.primary;
1575
+ }, _ref0 => {
1576
+ let {
1577
+ theme
1578
+ } = _ref0;
1579
+ return theme.colors.gray[50];
1580
+ }, _ref1 => {
1581
+ let {
1582
+ size,
1583
+ theme
1584
+ } = _ref1;
1585
+ if (size === "sm") {
1586
+ return css(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[3], theme.spacing[3], theme.fontSize.sm);
1587
+ }
1588
+ if (size === "md") {
1589
+ return css(_templateObject6$5 || (_templateObject6$5 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[2], theme.spacing[4], theme.fontSize.sm);
1590
+ }
1591
+ if (size === "lg") {
1592
+ return css(_templateObject7$5 || (_templateObject7$5 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[3], theme.spacing[4], theme.fontSize.base);
1593
+ }
1594
+ return css(_templateObject8$5 || (_templateObject8$5 = _taggedTemplateLiteral([""])));
1595
+ }, _ref10 => {
1596
+ let {
1597
+ fullWidth
1598
+ } = _ref10;
1599
+ return fullWidth && css(_templateObject9$5 || (_templateObject9$5 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
1600
+ });
1601
+ const HelperText$5 = styled.p(_templateObject0$5 || (_templateObject0$5 = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-size: ", ";\n color: ", ";\n"])), _ref11 => {
1602
+ let {
1603
+ theme
1604
+ } = _ref11;
1605
+ return theme.spacing[1];
1606
+ }, _ref12 => {
1607
+ let {
1608
+ theme
1609
+ } = _ref12;
1610
+ return theme.fontSize.xs;
1611
+ }, _ref13 => {
1612
+ let {
1613
+ theme,
1614
+ hasError
1615
+ } = _ref13;
1616
+ return hasError ? theme.colors.error : theme.colors.gray[500];
1617
+ });
1618
+ const Input = /*#__PURE__*/React__default.forwardRef((_ref14, ref) => {
1524
1619
  let {
1525
1620
  className,
1526
1621
  type = "text",
@@ -1530,28 +1625,24 @@ const Input = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1530
1625
  size = "md",
1531
1626
  fullWidth = false,
1532
1627
  id
1533
- } = _ref,
1534
- props = _objectWithoutProperties(_ref, _excluded$5);
1628
+ } = _ref14,
1629
+ props = _objectWithoutProperties(_ref14, _excluded$5);
1535
1630
  const inputId = id || "input-".concat(Math.random().toString(36).substr(2, 9));
1536
- const sizes = {
1537
- sm: "px-3 py-1.5 text-sm",
1538
- md: "px-4 py-2 text-sm",
1539
- lg: "px-4 py-3 text-base"
1540
- };
1541
- const baseClasses = cn("border transition-colors focus:outline-none focus:border-transparent", error ? "border-red-500 focus:ring-red-500" : "border-secondary focus:border-primary", "disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-secondary-50", sizes[size], fullWidth && "w-full", className);
1542
- return jsxRuntimeExports.jsxs("div", {
1543
- className: cn("flex flex-col", fullWidth && "w-full"),
1544
- children: [label && jsxRuntimeExports.jsx("label", {
1631
+ return jsxRuntimeExports.jsxs(InputContainer, {
1632
+ fullWidth: fullWidth,
1633
+ children: [label && jsxRuntimeExports.jsx(InputLabel, {
1545
1634
  htmlFor: inputId,
1546
- className: "mb-1 text-sm font-medium text-secondary-700",
1547
1635
  children: label
1548
- }), jsxRuntimeExports.jsx("input", _objectSpread2({
1636
+ }), jsxRuntimeExports.jsx(StyledInput, _objectSpread2({
1549
1637
  type: type,
1550
- className: baseClasses,
1638
+ size: size,
1639
+ fullWidth: fullWidth,
1640
+ hasError: !!error,
1641
+ className: className,
1551
1642
  ref: ref,
1552
1643
  id: inputId
1553
- }, props)), (error || helperText) && jsxRuntimeExports.jsx("p", {
1554
- className: cn("mt-1 text-xs", error ? "text-red-600" : "text-secondary-500"),
1644
+ }, props)), (error || helperText) && jsxRuntimeExports.jsx(HelperText$5, {
1645
+ hasError: !!error,
1555
1646
  children: error || helperText
1556
1647
  })]
1557
1648
  });
@@ -1559,7 +1650,100 @@ const Input = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1559
1650
  Input.displayName = "Input";
1560
1651
 
1561
1652
  const _excluded$4 = ["className", "label", "error", "helperText", "size", "fullWidth", "rows", "id"];
1562
- const Textarea = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1653
+ var _templateObject$4, _templateObject2$4, _templateObject3$4, _templateObject4$4, _templateObject5$4, _templateObject6$4, _templateObject7$4, _templateObject8$4, _templateObject9$4, _templateObject0$4;
1654
+ const TextareaContainer = styled.div(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n ", "\n"])), _ref => {
1655
+ let {
1656
+ fullWidth
1657
+ } = _ref;
1658
+ return fullWidth && css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
1659
+ });
1660
+ const TextareaLabel = styled.label(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n font-size: ", ";\n font-weight: 500;\n color: ", ";\n"])), _ref2 => {
1661
+ let {
1662
+ theme
1663
+ } = _ref2;
1664
+ return theme.spacing[1];
1665
+ }, _ref3 => {
1666
+ let {
1667
+ theme
1668
+ } = _ref3;
1669
+ return theme.fontSize.sm;
1670
+ }, _ref4 => {
1671
+ let {
1672
+ theme
1673
+ } = _ref4;
1674
+ return theme.colors.gray[700];
1675
+ });
1676
+ const StyledTextarea = styled.textarea(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n border-radius: ", ";\n transition: border-color ", ";\n outline: none;\n resize: vertical;\n font-family: ", ";\n\n &:focus {\n border-color: ", ";\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background-color: ", ";\n }\n\n ", "\n\n ", "\n"])), _ref5 => {
1677
+ let {
1678
+ theme,
1679
+ hasError
1680
+ } = _ref5;
1681
+ return hasError ? theme.colors.error : theme.colors.gray[300];
1682
+ }, _ref6 => {
1683
+ let {
1684
+ theme
1685
+ } = _ref6;
1686
+ return theme.borderRadius.md;
1687
+ }, _ref7 => {
1688
+ let {
1689
+ theme
1690
+ } = _ref7;
1691
+ return theme.transitions.base;
1692
+ }, _ref8 => {
1693
+ let {
1694
+ theme
1695
+ } = _ref8;
1696
+ return theme.fontFamily.sans.join(", ");
1697
+ }, _ref9 => {
1698
+ let {
1699
+ theme,
1700
+ hasError
1701
+ } = _ref9;
1702
+ return hasError ? theme.colors.error : theme.colors.primary;
1703
+ }, _ref0 => {
1704
+ let {
1705
+ theme
1706
+ } = _ref0;
1707
+ return theme.colors.gray[50];
1708
+ }, _ref1 => {
1709
+ let {
1710
+ size,
1711
+ theme
1712
+ } = _ref1;
1713
+ if (size === "sm") {
1714
+ return css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[3], theme.spacing[3], theme.fontSize.sm);
1715
+ }
1716
+ if (size === "md") {
1717
+ return css(_templateObject6$4 || (_templateObject6$4 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[2], theme.spacing[4], theme.fontSize.sm);
1718
+ }
1719
+ if (size === "lg") {
1720
+ return css(_templateObject7$4 || (_templateObject7$4 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[3], theme.spacing[4], theme.fontSize.base);
1721
+ }
1722
+ return css(_templateObject8$4 || (_templateObject8$4 = _taggedTemplateLiteral([""])));
1723
+ }, _ref10 => {
1724
+ let {
1725
+ fullWidth
1726
+ } = _ref10;
1727
+ return fullWidth && css(_templateObject9$4 || (_templateObject9$4 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
1728
+ });
1729
+ const HelperText$4 = styled.p(_templateObject0$4 || (_templateObject0$4 = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-size: ", ";\n color: ", ";\n"])), _ref11 => {
1730
+ let {
1731
+ theme
1732
+ } = _ref11;
1733
+ return theme.spacing[1];
1734
+ }, _ref12 => {
1735
+ let {
1736
+ theme
1737
+ } = _ref12;
1738
+ return theme.fontSize.xs;
1739
+ }, _ref13 => {
1740
+ let {
1741
+ theme,
1742
+ hasError
1743
+ } = _ref13;
1744
+ return hasError ? theme.colors.error : theme.colors.gray[500];
1745
+ });
1746
+ const Textarea = /*#__PURE__*/React__default.forwardRef((_ref14, ref) => {
1563
1747
  let {
1564
1748
  className,
1565
1749
  label,
@@ -1569,28 +1753,24 @@ const Textarea = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1569
1753
  fullWidth = false,
1570
1754
  rows = 3,
1571
1755
  id
1572
- } = _ref,
1573
- props = _objectWithoutProperties(_ref, _excluded$4);
1756
+ } = _ref14,
1757
+ props = _objectWithoutProperties(_ref14, _excluded$4);
1574
1758
  const textareaId = id || "textarea-".concat(Math.random().toString(36).substr(2, 9));
1575
- const sizes = {
1576
- sm: "px-3 py-1.5 text-sm",
1577
- md: "px-4 py-2 text-sm",
1578
- lg: "px-4 py-3 text-base"
1579
- };
1580
- const baseClasses = cn("border transition-colors focus:outline-none focus:border-transparent resize-vertical", error ? "border-red-500 focus:ring-red-500" : "border-secondary focus:border-primary", "disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-secondary-50", sizes[size], fullWidth && "w-full", className);
1581
- return jsxRuntimeExports.jsxs("div", {
1582
- className: cn("flex flex-col", fullWidth && "w-full"),
1583
- children: [label && jsxRuntimeExports.jsx("label", {
1759
+ return jsxRuntimeExports.jsxs(TextareaContainer, {
1760
+ fullWidth: fullWidth,
1761
+ children: [label && jsxRuntimeExports.jsx(TextareaLabel, {
1584
1762
  htmlFor: textareaId,
1585
- className: "mb-1 text-sm font-medium text-secondary-700",
1586
1763
  children: label
1587
- }), jsxRuntimeExports.jsx("textarea", _objectSpread2({
1588
- className: baseClasses,
1764
+ }), jsxRuntimeExports.jsx(StyledTextarea, _objectSpread2({
1765
+ size: size,
1766
+ fullWidth: fullWidth,
1767
+ hasError: !!error,
1768
+ className: className,
1589
1769
  ref: ref,
1590
1770
  id: textareaId,
1591
1771
  rows: rows
1592
- }, props)), (error || helperText) && jsxRuntimeExports.jsx("p", {
1593
- className: cn("mt-1 text-xs", error ? "text-red-600" : "text-secondary-500"),
1772
+ }, props)), (error || helperText) && jsxRuntimeExports.jsx(HelperText$4, {
1773
+ hasError: !!error,
1594
1774
  children: error || helperText
1595
1775
  })]
1596
1776
  });
@@ -1598,7 +1778,115 @@ const Textarea = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1598
1778
  Textarea.displayName = "Textarea";
1599
1779
 
1600
1780
  const _excluded$3 = ["className", "label", "error", "helperText", "size", "fullWidth", "accept", "multiple", "buttonText", "id"];
1601
- const InputFile = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1781
+ var _templateObject$3, _templateObject2$3, _templateObject3$3, _templateObject4$3, _templateObject5$3, _templateObject6$3, _templateObject7$3, _templateObject8$3, _templateObject9$3, _templateObject0$3, _templateObject1$3, _templateObject10$3, _templateObject11$2, _templateObject12$2;
1782
+ const InputFileContainer = styled.div(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n ", "\n"])), _ref => {
1783
+ let {
1784
+ fullWidth
1785
+ } = _ref;
1786
+ return fullWidth && css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
1787
+ });
1788
+ const InputFileLabel = styled.label(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n font-size: ", ";\n font-weight: 500;\n color: ", ";\n"])), _ref2 => {
1789
+ let {
1790
+ theme
1791
+ } = _ref2;
1792
+ return theme.spacing[1];
1793
+ }, _ref3 => {
1794
+ let {
1795
+ theme
1796
+ } = _ref3;
1797
+ return theme.fontSize.sm;
1798
+ }, _ref4 => {
1799
+ let {
1800
+ theme
1801
+ } = _ref4;
1802
+ return theme.colors.gray[700];
1803
+ });
1804
+ const InputFileWrapper = styled.div(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n position: relative;\n"])));
1805
+ const HiddenInput = styled.input(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n"])));
1806
+ const FileUploadArea = styled.div(_templateObject6$3 || (_templateObject6$3 = _taggedTemplateLiteral(["\n border: 2px dashed ", ";\n transition: all ", ";\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n border-color: ", ";\n }\n\n &:focus-within {\n border-color: ", ";\n }\n\n ", "\n\n ", "\n"])), _ref5 => {
1807
+ let {
1808
+ theme,
1809
+ hasError
1810
+ } = _ref5;
1811
+ return hasError ? theme.colors.error : theme.colors.gray[300];
1812
+ }, _ref6 => {
1813
+ let {
1814
+ theme
1815
+ } = _ref6;
1816
+ return theme.transitions.base;
1817
+ }, _ref7 => {
1818
+ let {
1819
+ theme,
1820
+ hasError
1821
+ } = _ref7;
1822
+ return hasError ? theme.colors.error : theme.colors.primary;
1823
+ }, _ref8 => {
1824
+ let {
1825
+ theme,
1826
+ hasError
1827
+ } = _ref8;
1828
+ return hasError ? theme.colors.error : theme.colors.primary;
1829
+ }, _ref9 => {
1830
+ let {
1831
+ size,
1832
+ theme
1833
+ } = _ref9;
1834
+ if (size === "sm") {
1835
+ return css(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[3], theme.spacing[3], theme.fontSize.sm);
1836
+ }
1837
+ if (size === "md") {
1838
+ return css(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[2], theme.spacing[4], theme.fontSize.base);
1839
+ }
1840
+ if (size === "lg") {
1841
+ return css(_templateObject9$3 || (_templateObject9$3 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[3], theme.spacing[4], theme.fontSize.base);
1842
+ }
1843
+ return css(_templateObject0$3 || (_templateObject0$3 = _taggedTemplateLiteral([""])));
1844
+ }, _ref0 => {
1845
+ let {
1846
+ fullWidth
1847
+ } = _ref0;
1848
+ return fullWidth && css(_templateObject1$3 || (_templateObject1$3 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
1849
+ });
1850
+ const ButtonText = styled.span(_templateObject10$3 || (_templateObject10$3 = _taggedTemplateLiteral(["\n color: ", ";\n"])), _ref1 => {
1851
+ let {
1852
+ theme
1853
+ } = _ref1;
1854
+ return theme.colors.gray[600];
1855
+ });
1856
+ const MultipleText = styled.span(_templateObject11$2 || (_templateObject11$2 = _taggedTemplateLiteral(["\n margin-left: ", ";\n font-size: ", ";\n color: ", ";\n"])), _ref10 => {
1857
+ let {
1858
+ theme
1859
+ } = _ref10;
1860
+ return theme.spacing[1];
1861
+ }, _ref11 => {
1862
+ let {
1863
+ theme
1864
+ } = _ref11;
1865
+ return theme.fontSize.xs;
1866
+ }, _ref12 => {
1867
+ let {
1868
+ theme
1869
+ } = _ref12;
1870
+ return theme.colors.gray[500];
1871
+ });
1872
+ const HelperText$3 = styled.p(_templateObject12$2 || (_templateObject12$2 = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-size: ", ";\n color: ", ";\n"])), _ref13 => {
1873
+ let {
1874
+ theme
1875
+ } = _ref13;
1876
+ return theme.spacing[1];
1877
+ }, _ref14 => {
1878
+ let {
1879
+ theme
1880
+ } = _ref14;
1881
+ return theme.fontSize.xs;
1882
+ }, _ref15 => {
1883
+ let {
1884
+ theme,
1885
+ hasError
1886
+ } = _ref15;
1887
+ return hasError ? theme.colors.error : theme.colors.gray[500];
1888
+ });
1889
+ const InputFile = /*#__PURE__*/React__default.forwardRef((_ref16, ref) => {
1602
1890
  let {
1603
1891
  className,
1604
1892
  label,
@@ -1610,42 +1898,34 @@ const InputFile = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1610
1898
  multiple = false,
1611
1899
  buttonText = "Choose File",
1612
1900
  id
1613
- } = _ref,
1614
- props = _objectWithoutProperties(_ref, _excluded$3);
1901
+ } = _ref16,
1902
+ props = _objectWithoutProperties(_ref16, _excluded$3);
1615
1903
  const inputId = id || "file-input-".concat(Math.random().toString(36).substr(2, 9));
1616
- const sizes = {
1617
- sm: "px-3 py-1.5 text-sm",
1618
- md: "px-4 py-2 text-sm",
1619
- lg: "px-4 py-3 text-base"
1620
- };
1621
- const baseClasses = cn("border-2 border-dashed transition-colors focus:outline-none focus:border-transparent cursor-pointer", error ? "border-red-500 focus:ring-red-500 hover:border-red-400" : "border-secondary focus:border-primary hover:border-primary/60", "disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-secondary-50", sizes[size], fullWidth && "w-full", className);
1622
- return jsxRuntimeExports.jsxs("div", {
1623
- className: cn("flex flex-col", fullWidth && "w-full"),
1624
- children: [label && jsxRuntimeExports.jsx("label", {
1904
+ return jsxRuntimeExports.jsxs(InputFileContainer, {
1905
+ fullWidth: fullWidth,
1906
+ children: [label && jsxRuntimeExports.jsx(InputFileLabel, {
1625
1907
  htmlFor: inputId,
1626
- className: "mb-1 text-sm font-medium text-secondary-700",
1627
1908
  children: label
1628
- }), jsxRuntimeExports.jsxs("div", {
1629
- className: "relative",
1630
- children: [jsxRuntimeExports.jsx("input", _objectSpread2({
1909
+ }), jsxRuntimeExports.jsxs(InputFileWrapper, {
1910
+ children: [jsxRuntimeExports.jsx(HiddenInput, _objectSpread2({
1631
1911
  type: "file",
1632
- className: "absolute inset-0 w-full h-full opacity-0 cursor-pointer",
1633
1912
  ref: ref,
1634
1913
  id: inputId,
1635
1914
  accept: accept,
1636
1915
  multiple: multiple
1637
- }, props)), jsxRuntimeExports.jsxs("div", {
1638
- className: cn(baseClasses, "flex items-center justify-center"),
1639
- children: [jsxRuntimeExports.jsx("span", {
1640
- className: "text-secondary-600",
1916
+ }, props)), jsxRuntimeExports.jsxs(FileUploadArea, {
1917
+ size: size,
1918
+ fullWidth: fullWidth,
1919
+ hasError: !!error,
1920
+ className: className,
1921
+ children: [jsxRuntimeExports.jsx(ButtonText, {
1641
1922
  children: buttonText
1642
- }), multiple && jsxRuntimeExports.jsx("span", {
1643
- className: "ml-1 text-xs text-secondary-500",
1923
+ }), multiple && jsxRuntimeExports.jsx(MultipleText, {
1644
1924
  children: "(Multiple)"
1645
1925
  })]
1646
1926
  })]
1647
- }), (error || helperText) && jsxRuntimeExports.jsx("p", {
1648
- className: cn("mt-1 text-xs", error ? "text-red-600" : "text-secondary-500"),
1927
+ }), (error || helperText) && jsxRuntimeExports.jsx(HelperText$3, {
1928
+ hasError: !!error,
1649
1929
  children: error || helperText
1650
1930
  })]
1651
1931
  });
@@ -1653,7 +1933,102 @@ const InputFile = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1653
1933
  InputFile.displayName = "InputFile";
1654
1934
 
1655
1935
  const _excluded$2 = ["className", "label", "error", "helperText", "size", "fullWidth", "indeterminate", "id"];
1656
- const Checkbox = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1936
+ var _templateObject$2, _templateObject2$2, _templateObject3$2, _templateObject4$2, _templateObject5$2, _templateObject6$2, _templateObject7$2, _templateObject8$2, _templateObject9$2, _templateObject0$2, _templateObject1$2, _templateObject10$2, _templateObject11$1, _templateObject12$1, _templateObject13$1;
1937
+ const CheckboxContainer = styled.div(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n display: flex;\n align-items: flex-start;\n ", "\n"])), _ref => {
1938
+ let {
1939
+ fullWidth
1940
+ } = _ref;
1941
+ return fullWidth && css(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
1942
+ });
1943
+ const CheckboxWrapper = styled.div(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n height: ", ";\n"])), _ref2 => {
1944
+ let {
1945
+ theme
1946
+ } = _ref2;
1947
+ return theme.spacing[5];
1948
+ });
1949
+ const StyledCheckbox = styled.input(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral(["\n border-radius: ", ";\n border: 1px solid ", ";\n transition: all ", ";\n outline: none;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n ", "\n"])), _ref3 => {
1950
+ let {
1951
+ theme
1952
+ } = _ref3;
1953
+ return theme.borderRadius.md;
1954
+ }, _ref4 => {
1955
+ let {
1956
+ theme,
1957
+ hasError
1958
+ } = _ref4;
1959
+ return hasError ? theme.colors.error : theme.colors.gray[300];
1960
+ }, _ref5 => {
1961
+ let {
1962
+ theme
1963
+ } = _ref5;
1964
+ return theme.transitions.base;
1965
+ }, _ref6 => {
1966
+ let {
1967
+ theme,
1968
+ hasError
1969
+ } = _ref6;
1970
+ return hasError ? theme.colors.error : theme.colors.primary;
1971
+ }, _ref7 => {
1972
+ let {
1973
+ size,
1974
+ theme
1975
+ } = _ref7;
1976
+ if (size === "sm") {
1977
+ return css(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteral(["\n width: ", ";\n height: ", ";\n "])), theme.spacing[4], theme.spacing[4]);
1978
+ }
1979
+ if (size === "md") {
1980
+ return css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n width: ", ";\n height: ", ";\n "])), theme.spacing[5], theme.spacing[5]);
1981
+ }
1982
+ if (size === "lg") {
1983
+ return css(_templateObject7$2 || (_templateObject7$2 = _taggedTemplateLiteral(["\n width: ", ";\n height: ", ";\n "])), theme.spacing[6], theme.spacing[6]);
1984
+ }
1985
+ return css(_templateObject8$2 || (_templateObject8$2 = _taggedTemplateLiteral([""])));
1986
+ });
1987
+ const LabelContainer$1 = styled.div(_templateObject9$2 || (_templateObject9$2 = _taggedTemplateLiteral(["\n margin-left: ", ";\n"])), _ref8 => {
1988
+ let {
1989
+ theme
1990
+ } = _ref8;
1991
+ return theme.spacing[3];
1992
+ });
1993
+ const CheckboxLabel = styled.label(_templateObject0$2 || (_templateObject0$2 = _taggedTemplateLiteral(["\n font-weight: 500;\n color: ", ";\n cursor: pointer;\n\n ", "\n"])), _ref9 => {
1994
+ let {
1995
+ theme
1996
+ } = _ref9;
1997
+ return theme.colors.gray[700];
1998
+ }, _ref0 => {
1999
+ let {
2000
+ size,
2001
+ theme
2002
+ } = _ref0;
2003
+ if (size === "sm") {
2004
+ return css(_templateObject1$2 || (_templateObject1$2 = _taggedTemplateLiteral(["\n font-size: ", ";\n "])), theme.fontSize.sm);
2005
+ }
2006
+ if (size === "md") {
2007
+ return css(_templateObject10$2 || (_templateObject10$2 = _taggedTemplateLiteral(["\n font-size: ", ";\n "])), theme.fontSize.sm);
2008
+ }
2009
+ if (size === "lg") {
2010
+ return css(_templateObject11$1 || (_templateObject11$1 = _taggedTemplateLiteral(["\n font-size: ", ";\n "])), theme.fontSize.base);
2011
+ }
2012
+ return css(_templateObject12$1 || (_templateObject12$1 = _taggedTemplateLiteral([""])));
2013
+ });
2014
+ const HelperText$2 = styled.p(_templateObject13$1 || (_templateObject13$1 = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-size: ", ";\n color: ", ";\n"])), _ref1 => {
2015
+ let {
2016
+ theme
2017
+ } = _ref1;
2018
+ return theme.spacing[1];
2019
+ }, _ref10 => {
2020
+ let {
2021
+ theme
2022
+ } = _ref10;
2023
+ return theme.fontSize.xs;
2024
+ }, _ref11 => {
2025
+ let {
2026
+ theme,
2027
+ hasError
2028
+ } = _ref11;
2029
+ return hasError ? theme.colors.error : theme.colors.gray[500];
2030
+ });
2031
+ const Checkbox = /*#__PURE__*/React__default.forwardRef((_ref12, ref) => {
1657
2032
  let {
1658
2033
  className,
1659
2034
  label,
@@ -1663,43 +2038,32 @@ const Checkbox = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1663
2038
  fullWidth = false,
1664
2039
  indeterminate = false,
1665
2040
  id
1666
- } = _ref,
1667
- props = _objectWithoutProperties(_ref, _excluded$2);
2041
+ } = _ref12,
2042
+ props = _objectWithoutProperties(_ref12, _excluded$2);
1668
2043
  const checkboxId = id || "checkbox-".concat(Math.random().toString(36).substr(2, 9));
1669
- const sizes = {
1670
- sm: "w-4 h-4",
1671
- md: "w-5 h-5",
1672
- lg: "w-6 h-6"
1673
- };
1674
- const labelSizes = {
1675
- sm: "text-sm",
1676
- md: "text-sm",
1677
- lg: "text-base"
1678
- };
1679
- const baseClasses = cn("rounded border transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2", error ? "border-red-500 focus:ring-red-500" : "border-secondary focus:ring-primary", "disabled:opacity-50 disabled:cursor-not-allowed", sizes[size], className);
1680
2044
  React__default.useEffect(() => {
1681
2045
  if (ref && typeof ref === "object" && ref.current) {
1682
2046
  ref.current.indeterminate = indeterminate;
1683
2047
  }
1684
2048
  }, [indeterminate, ref]);
1685
- return jsxRuntimeExports.jsxs("div", {
1686
- className: cn("flex items-start", fullWidth && "w-full"),
1687
- children: [jsxRuntimeExports.jsx("div", {
1688
- className: "flex items-center h-5",
1689
- children: jsxRuntimeExports.jsx("input", _objectSpread2({
2049
+ return jsxRuntimeExports.jsxs(CheckboxContainer, {
2050
+ fullWidth: fullWidth,
2051
+ children: [jsxRuntimeExports.jsx(CheckboxWrapper, {
2052
+ children: jsxRuntimeExports.jsx(StyledCheckbox, _objectSpread2({
1690
2053
  type: "checkbox",
1691
- className: baseClasses,
2054
+ size: size,
2055
+ hasError: !!error,
2056
+ className: className,
1692
2057
  ref: ref,
1693
2058
  id: checkboxId
1694
2059
  }, props))
1695
- }), jsxRuntimeExports.jsxs("div", {
1696
- className: "ml-3",
1697
- children: [label && jsxRuntimeExports.jsx("label", {
2060
+ }), jsxRuntimeExports.jsxs(LabelContainer$1, {
2061
+ children: [label && jsxRuntimeExports.jsx(CheckboxLabel, {
1698
2062
  htmlFor: checkboxId,
1699
- className: cn("font-medium text-secondary-700 cursor-pointer", labelSizes[size]),
2063
+ size: size,
1700
2064
  children: label
1701
- }), (error || helperText) && jsxRuntimeExports.jsx("p", {
1702
- className: cn("mt-1 text-xs", error ? "text-red-600" : "text-secondary-500"),
2065
+ }), (error || helperText) && jsxRuntimeExports.jsx(HelperText$2, {
2066
+ hasError: !!error,
1703
2067
  children: error || helperText
1704
2068
  })]
1705
2069
  })]
@@ -1708,7 +2072,97 @@ const Checkbox = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1708
2072
  Checkbox.displayName = "Checkbox";
1709
2073
 
1710
2074
  const _excluded$1 = ["className", "label", "error", "helperText", "size", "fullWidth", "id"];
1711
- const Radio = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
2075
+ var _templateObject$1, _templateObject2$1, _templateObject3$1, _templateObject4$1, _templateObject5$1, _templateObject6$1, _templateObject7$1, _templateObject8$1, _templateObject9$1, _templateObject0$1, _templateObject1$1, _templateObject10$1, _templateObject11, _templateObject12, _templateObject13;
2076
+ const RadioContainer = styled.div(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n display: flex;\n align-items: flex-start;\n ", "\n"])), _ref => {
2077
+ let {
2078
+ fullWidth
2079
+ } = _ref;
2080
+ return fullWidth && css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
2081
+ });
2082
+ const RadioWrapper = styled.div(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n height: ", ";\n"])), _ref2 => {
2083
+ let {
2084
+ theme
2085
+ } = _ref2;
2086
+ return theme.spacing[5];
2087
+ });
2088
+ const StyledRadio = styled.input(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n border: 2px solid ", ";\n transition: all ", ";\n outline: none;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n ", "\n"])), _ref3 => {
2089
+ let {
2090
+ theme,
2091
+ hasError
2092
+ } = _ref3;
2093
+ return hasError ? theme.colors.error : theme.colors.gray[300];
2094
+ }, _ref4 => {
2095
+ let {
2096
+ theme
2097
+ } = _ref4;
2098
+ return theme.transitions.base;
2099
+ }, _ref5 => {
2100
+ let {
2101
+ theme,
2102
+ hasError
2103
+ } = _ref5;
2104
+ return hasError ? theme.colors.error : theme.colors.primary;
2105
+ }, _ref6 => {
2106
+ let {
2107
+ size,
2108
+ theme
2109
+ } = _ref6;
2110
+ if (size === "sm") {
2111
+ return css(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteral(["\n width: ", ";\n height: ", ";\n "])), theme.spacing[4], theme.spacing[4]);
2112
+ }
2113
+ if (size === "md") {
2114
+ return css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral(["\n width: ", ";\n height: ", ";\n "])), theme.spacing[5], theme.spacing[5]);
2115
+ }
2116
+ if (size === "lg") {
2117
+ return css(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral(["\n width: ", ";\n height: ", ";\n "])), theme.spacing[6], theme.spacing[6]);
2118
+ }
2119
+ return css(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteral([""])));
2120
+ });
2121
+ const LabelContainer = styled.div(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteral(["\n margin-left: ", ";\n"])), _ref7 => {
2122
+ let {
2123
+ theme
2124
+ } = _ref7;
2125
+ return theme.spacing[3];
2126
+ });
2127
+ const RadioLabel = styled.label(_templateObject0$1 || (_templateObject0$1 = _taggedTemplateLiteral(["\n font-weight: 500;\n color: ", ";\n cursor: pointer;\n\n ", "\n"])), _ref8 => {
2128
+ let {
2129
+ theme
2130
+ } = _ref8;
2131
+ return theme.colors.gray[700];
2132
+ }, _ref9 => {
2133
+ let {
2134
+ size,
2135
+ theme
2136
+ } = _ref9;
2137
+ if (size === "sm") {
2138
+ return css(_templateObject1$1 || (_templateObject1$1 = _taggedTemplateLiteral(["\n font-size: ", ";\n "])), theme.fontSize.sm);
2139
+ }
2140
+ if (size === "md") {
2141
+ return css(_templateObject10$1 || (_templateObject10$1 = _taggedTemplateLiteral(["\n font-size: ", ";\n "])), theme.fontSize.sm);
2142
+ }
2143
+ if (size === "lg") {
2144
+ return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n font-size: ", ";\n "])), theme.fontSize.base);
2145
+ }
2146
+ return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral([""])));
2147
+ });
2148
+ const HelperText$1 = styled.p(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-size: ", ";\n color: ", ";\n"])), _ref0 => {
2149
+ let {
2150
+ theme
2151
+ } = _ref0;
2152
+ return theme.spacing[1];
2153
+ }, _ref1 => {
2154
+ let {
2155
+ theme
2156
+ } = _ref1;
2157
+ return theme.fontSize.xs;
2158
+ }, _ref10 => {
2159
+ let {
2160
+ theme,
2161
+ hasError
2162
+ } = _ref10;
2163
+ return hasError ? theme.colors.error : theme.colors.gray[500];
2164
+ });
2165
+ const Radio = /*#__PURE__*/React__default.forwardRef((_ref11, ref) => {
1712
2166
  let {
1713
2167
  className,
1714
2168
  label,
@@ -1717,38 +2171,27 @@ const Radio = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1717
2171
  size = "md",
1718
2172
  fullWidth = false,
1719
2173
  id
1720
- } = _ref,
1721
- props = _objectWithoutProperties(_ref, _excluded$1);
2174
+ } = _ref11,
2175
+ props = _objectWithoutProperties(_ref11, _excluded$1);
1722
2176
  const radioId = id || "radio-".concat(Math.random().toString(36).substr(2, 9));
1723
- const sizes = {
1724
- sm: "w-4 h-4",
1725
- md: "w-5 h-5",
1726
- lg: "w-6 h-6"
1727
- };
1728
- const labelSizes = {
1729
- sm: "text-sm",
1730
- md: "text-sm",
1731
- lg: "text-base"
1732
- };
1733
- const baseClasses = cn("border-2 transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2", error ? "border-red-500 focus:ring-red-500" : "border-secondary focus:ring-primary", "disabled:opacity-50 disabled:cursor-not-allowed", sizes[size], className);
1734
- return jsxRuntimeExports.jsxs("div", {
1735
- className: cn("flex items-start", fullWidth && "w-full"),
1736
- children: [jsxRuntimeExports.jsx("div", {
1737
- className: "flex items-center h-5",
1738
- children: jsxRuntimeExports.jsx("input", _objectSpread2({
2177
+ return jsxRuntimeExports.jsxs(RadioContainer, {
2178
+ fullWidth: fullWidth,
2179
+ children: [jsxRuntimeExports.jsx(RadioWrapper, {
2180
+ children: jsxRuntimeExports.jsx(StyledRadio, _objectSpread2({
1739
2181
  type: "radio",
1740
- className: baseClasses,
2182
+ size: size,
2183
+ hasError: !!error,
2184
+ className: className,
1741
2185
  ref: ref,
1742
2186
  id: radioId
1743
2187
  }, props))
1744
- }), jsxRuntimeExports.jsxs("div", {
1745
- className: "ml-3",
1746
- children: [label && jsxRuntimeExports.jsx("label", {
2188
+ }), jsxRuntimeExports.jsxs(LabelContainer, {
2189
+ children: [label && jsxRuntimeExports.jsx(RadioLabel, {
1747
2190
  htmlFor: radioId,
1748
- className: cn("font-medium text-secondary-700 cursor-pointer", labelSizes[size]),
2191
+ size: size,
1749
2192
  children: label
1750
- }), (error || helperText) && jsxRuntimeExports.jsx("p", {
1751
- className: cn("mt-1 text-xs", error ? "text-red-600" : "text-secondary-500"),
2193
+ }), (error || helperText) && jsxRuntimeExports.jsx(HelperText$1, {
2194
+ hasError: !!error,
1752
2195
  children: error || helperText
1753
2196
  })]
1754
2197
  })]
@@ -1757,7 +2200,112 @@ const Radio = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1757
2200
  Radio.displayName = "Radio";
1758
2201
 
1759
2202
  const _excluded = ["className", "label", "error", "helperText", "size", "fullWidth", "options", "placeholder", "id"];
1760
- const Select = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
2203
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject0, _templateObject1, _templateObject10;
2204
+ const SelectContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n ", "\n"])), _ref => {
2205
+ let {
2206
+ fullWidth
2207
+ } = _ref;
2208
+ return fullWidth && css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
2209
+ });
2210
+ const SelectLabel = styled.label(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n font-size: ", ";\n font-weight: 500;\n color: ", ";\n"])), _ref2 => {
2211
+ let {
2212
+ theme
2213
+ } = _ref2;
2214
+ return theme.spacing[1];
2215
+ }, _ref3 => {
2216
+ let {
2217
+ theme
2218
+ } = _ref3;
2219
+ return theme.fontSize.sm;
2220
+ }, _ref4 => {
2221
+ let {
2222
+ theme
2223
+ } = _ref4;
2224
+ return theme.colors.gray[700];
2225
+ });
2226
+ const SelectWrapper = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: relative;\n"])));
2227
+ const StyledSelect = styled.select(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n border-radius: ", ";\n transition: border-color ", ";\n outline: none;\n appearance: none;\n background-color: ", ";\n font-family: ", ";\n\n &:focus {\n border-color: ", ";\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background-color: ", ";\n }\n\n ", "\n\n ", "\n"])), _ref5 => {
2228
+ let {
2229
+ theme,
2230
+ hasError
2231
+ } = _ref5;
2232
+ return hasError ? theme.colors.error : theme.colors.gray[300];
2233
+ }, _ref6 => {
2234
+ let {
2235
+ theme
2236
+ } = _ref6;
2237
+ return theme.borderRadius.md;
2238
+ }, _ref7 => {
2239
+ let {
2240
+ theme
2241
+ } = _ref7;
2242
+ return theme.transitions.base;
2243
+ }, _ref8 => {
2244
+ let {
2245
+ theme
2246
+ } = _ref8;
2247
+ return theme.colors.white;
2248
+ }, _ref9 => {
2249
+ let {
2250
+ theme
2251
+ } = _ref9;
2252
+ return theme.fontFamily.sans.join(", ");
2253
+ }, _ref0 => {
2254
+ let {
2255
+ theme,
2256
+ hasError
2257
+ } = _ref0;
2258
+ return hasError ? theme.colors.error : theme.colors.primary;
2259
+ }, _ref1 => {
2260
+ let {
2261
+ theme
2262
+ } = _ref1;
2263
+ return theme.colors.gray[50];
2264
+ }, _ref10 => {
2265
+ let {
2266
+ size,
2267
+ theme
2268
+ } = _ref10;
2269
+ if (size === "sm") {
2270
+ return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[3], theme.spacing[3], theme.fontSize.sm);
2271
+ }
2272
+ if (size === "md") {
2273
+ return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[2], theme.spacing[4], theme.fontSize.sm);
2274
+ }
2275
+ if (size === "lg") {
2276
+ return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n padding: ", " ", ";\n font-size: ", ";\n "])), theme.spacing[3], theme.spacing[4], theme.fontSize.base);
2277
+ }
2278
+ return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral([""])));
2279
+ }, _ref11 => {
2280
+ let {
2281
+ fullWidth
2282
+ } = _ref11;
2283
+ return fullWidth && css(_templateObject0 || (_templateObject0 = _taggedTemplateLiteral(["\n width: 100%;\n "])));
2284
+ });
2285
+ const SelectIcon = styled.div(_templateObject1 || (_templateObject1 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n padding-right: ", ";\n pointer-events: none;\n"])), _ref12 => {
2286
+ let {
2287
+ theme
2288
+ } = _ref12;
2289
+ return theme.spacing[3];
2290
+ });
2291
+ const HelperText = styled.p(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-size: ", ";\n color: ", ";\n"])), _ref13 => {
2292
+ let {
2293
+ theme
2294
+ } = _ref13;
2295
+ return theme.spacing[1];
2296
+ }, _ref14 => {
2297
+ let {
2298
+ theme
2299
+ } = _ref14;
2300
+ return theme.fontSize.xs;
2301
+ }, _ref15 => {
2302
+ let {
2303
+ theme,
2304
+ hasError
2305
+ } = _ref15;
2306
+ return hasError ? theme.colors.error : theme.colors.gray[500];
2307
+ });
2308
+ const Select = /*#__PURE__*/React__default.forwardRef((_ref16, ref) => {
1761
2309
  let {
1762
2310
  className,
1763
2311
  label,
@@ -1768,25 +2316,20 @@ const Select = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1768
2316
  options,
1769
2317
  placeholder,
1770
2318
  id
1771
- } = _ref,
1772
- props = _objectWithoutProperties(_ref, _excluded);
2319
+ } = _ref16,
2320
+ props = _objectWithoutProperties(_ref16, _excluded);
1773
2321
  const selectId = id || "select-".concat(Math.random().toString(36).substr(2, 9));
1774
- const sizes = {
1775
- sm: "px-3 py-1.5 text-sm",
1776
- md: "px-4 py-2 text-sm",
1777
- lg: "px-4 py-3 text-base"
1778
- };
1779
- const baseClasses = cn("border transition-colors focus:outline-none focus:border-transparent appearance-none bg-white", error ? "border-red-500 focus:ring-red-500" : "border-secondary focus:border-primary", "disabled:opacity-50 disabled:cursor-not-allowed disabled:bg-secondary-50", sizes[size], fullWidth && "w-full", className);
1780
- return jsxRuntimeExports.jsxs("div", {
1781
- className: cn("flex flex-col", fullWidth && "w-full"),
1782
- children: [label && jsxRuntimeExports.jsx("label", {
2322
+ return jsxRuntimeExports.jsxs(SelectContainer, {
2323
+ fullWidth: fullWidth,
2324
+ children: [label && jsxRuntimeExports.jsx(SelectLabel, {
1783
2325
  htmlFor: selectId,
1784
- className: "mb-1 text-sm font-medium text-secondary-700",
1785
2326
  children: label
1786
- }), jsxRuntimeExports.jsxs("div", {
1787
- className: "relative",
1788
- children: [jsxRuntimeExports.jsxs("select", _objectSpread2(_objectSpread2({
1789
- className: baseClasses,
2327
+ }), jsxRuntimeExports.jsxs(SelectWrapper, {
2328
+ children: [jsxRuntimeExports.jsxs(StyledSelect, _objectSpread2(_objectSpread2({
2329
+ size: size,
2330
+ fullWidth: fullWidth,
2331
+ hasError: !!error,
2332
+ className: className,
1790
2333
  ref: ref,
1791
2334
  id: selectId
1792
2335
  }, props), {}, {
@@ -1799,13 +2342,16 @@ const Select = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1799
2342
  disabled: option.disabled,
1800
2343
  children: option.label
1801
2344
  }, option.value))]
1802
- })), jsxRuntimeExports.jsx("div", {
1803
- className: "absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none",
2345
+ })), jsxRuntimeExports.jsx(SelectIcon, {
1804
2346
  children: jsxRuntimeExports.jsx("svg", {
1805
- className: "w-4 h-4 text-secondary-400",
2347
+ width: "16",
2348
+ height: "16",
1806
2349
  fill: "none",
1807
2350
  stroke: "currentColor",
1808
2351
  viewBox: "0 0 24 24",
2352
+ style: {
2353
+ color: "#9ca3af"
2354
+ },
1809
2355
  children: jsxRuntimeExports.jsx("path", {
1810
2356
  strokeLinecap: "round",
1811
2357
  strokeLinejoin: "round",
@@ -1814,15 +2360,110 @@ const Select = /*#__PURE__*/React__default.forwardRef((_ref, ref) => {
1814
2360
  })
1815
2361
  })
1816
2362
  })]
1817
- }), (error || helperText) && jsxRuntimeExports.jsx("p", {
1818
- className: cn("mt-1 text-xs", error ? "text-red-600" : "text-secondary-500"),
2363
+ }), (error || helperText) && jsxRuntimeExports.jsx(HelperText, {
2364
+ hasError: !!error,
1819
2365
  children: error || helperText
1820
2366
  })]
1821
2367
  });
1822
2368
  });
1823
2369
  Select.displayName = "Select";
1824
2370
 
2371
+ const theme = {
2372
+ colors: {
2373
+ primary: "#007AC2",
2374
+ error: "#ff1100",
2375
+ dark: "#333333",
2376
+ light: "#666666",
2377
+ white: "#ffffff",
2378
+ black: "#000000",
2379
+ gray: {
2380
+ 50: "#f9fafb",
2381
+ 100: "#f3f4f6",
2382
+ 200: "#e5e7eb",
2383
+ 300: "#d1d5db",
2384
+ 400: "#9ca3af",
2385
+ 500: "#6b7280",
2386
+ 600: "#4b5563",
2387
+ 700: "#374151",
2388
+ 800: "#1f2937",
2389
+ 900: "#111827"
2390
+ }
2391
+ },
2392
+ spacing: {
2393
+ 0: "0",
2394
+ 1: "0.25rem",
2395
+ 2: "0.5rem",
2396
+ 3: "0.75rem",
2397
+ 4: "1rem",
2398
+ 5: "1.25rem",
2399
+ 6: "1.5rem",
2400
+ 8: "2rem",
2401
+ 10: "2.5rem",
2402
+ 12: "3rem",
2403
+ 16: "4rem",
2404
+ 18: "4.5rem",
2405
+ 20: "5rem",
2406
+ 24: "6rem",
2407
+ 32: "8rem",
2408
+ 40: "10rem",
2409
+ 48: "12rem",
2410
+ 56: "14rem",
2411
+ 64: "16rem",
2412
+ 88: "22rem"
2413
+ },
2414
+ fontSize: {
2415
+ xs: "0.75rem",
2416
+ sm: "0.875rem",
2417
+ base: "1rem",
2418
+ lg: "1.125rem",
2419
+ xl: "1.25rem",
2420
+ "2xl": "1.5rem",
2421
+ "3xl": "1.875rem",
2422
+ "4xl": "2.25rem",
2423
+ "5xl": "3rem",
2424
+ "6xl": "3.75rem"
2425
+ },
2426
+ fontFamily: {
2427
+ sans: ["Inter", "system-ui", "sans-serif"],
2428
+ serif: ["Georgia", "Cambria", "Times New Roman", "Times", "serif"],
2429
+ mono: ["Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", "monospace"]
2430
+ },
2431
+ borderRadius: {
2432
+ none: "0",
2433
+ sm: "0.125rem",
2434
+ base: "0.25rem",
2435
+ md: "0.375rem",
2436
+ lg: "0.5rem",
2437
+ xl: "0.75rem",
2438
+ "2xl": "1rem",
2439
+ "3xl": "1.5rem",
2440
+ full: "9999px"
2441
+ },
2442
+ shadows: {
2443
+ sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
2444
+ base: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
2445
+ md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",
2446
+ lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)",
2447
+ xl: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"
2448
+ },
2449
+ transitions: {
2450
+ fast: "150ms ease-in-out",
2451
+ base: "300ms ease-in-out",
2452
+ slow: "500ms ease-in-out"
2453
+ }
2454
+ };
2455
+
2456
+ const ThemeProvider = _ref => {
2457
+ let {
2458
+ children
2459
+ } = _ref;
2460
+ return jsxRuntimeExports.jsx(ThemeProvider$1, {
2461
+ theme: theme,
2462
+ children: children
2463
+ });
2464
+ };
2465
+
1825
2466
  // Ensure React is available before importing components
1826
2467
 
1827
- export { Button, Checkbox, Input, InputFile, Radio, Select, Textarea, cn };
2468
+ export { Button, Checkbox, Input, InputFile, Radio, Select, Textarea, ThemeProvider, theme };
1828
2469
  //# sourceMappingURL=index.esm.js.map