@coinloger/dev-ui 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +63 -0
  2. package/dist/cjs/components/Badge/Badge.cjs +1 -0
  3. package/dist/cjs/components/Button/Button.cjs +1 -0
  4. package/dist/cjs/components/Card/Card.cjs +1 -0
  5. package/dist/cjs/components/Checkbox/Checkbox.cjs +1 -0
  6. package/dist/cjs/components/Input/Input.cjs +1 -0
  7. package/dist/cjs/components/Modal/Modal.cjs +1 -0
  8. package/dist/cjs/components/Radio/Radio.cjs +1 -0
  9. package/dist/cjs/components/Select/Select.cjs +1 -0
  10. package/dist/cjs/components/Switch/Switch.cjs +1 -0
  11. package/dist/cjs/components/Table/Table.cjs +1 -0
  12. package/dist/cjs/components/Tabs/Tabs.cjs +1 -0
  13. package/dist/cjs/components/Typography/Heading.cjs +1 -0
  14. package/dist/cjs/components/Typography/Text.cjs +1 -0
  15. package/dist/{style.css → cjs/dev-ui.css} +1 -1
  16. package/dist/cjs/index.cjs +1 -0
  17. package/dist/cjs/theme.cjs +1 -0
  18. package/dist/esm/components/Badge/Badge.d.ts +23 -0
  19. package/dist/esm/components/Badge/Badge.js +31 -0
  20. package/dist/esm/components/Button/Button.d.ts +22 -0
  21. package/dist/esm/components/Button/Button.js +24 -0
  22. package/dist/esm/components/Card/Card.d.ts +21 -0
  23. package/dist/esm/components/Card/Card.js +20 -0
  24. package/dist/esm/components/Checkbox/Checkbox.d.ts +26 -0
  25. package/dist/esm/components/Checkbox/Checkbox.js +54 -0
  26. package/dist/esm/components/Input/Input.d.ts +35 -0
  27. package/dist/esm/components/Input/Input.js +39 -0
  28. package/dist/esm/components/Modal/Modal.d.ts +123 -0
  29. package/dist/esm/components/Modal/Modal.js +123 -0
  30. package/dist/esm/components/Radio/Radio.d.ts +26 -0
  31. package/dist/esm/components/Radio/Radio.js +43 -0
  32. package/dist/esm/components/Select/Select.d.ts +76 -0
  33. package/dist/esm/components/Select/Select.js +110 -0
  34. package/dist/esm/components/Switch/Switch.d.ts +26 -0
  35. package/dist/esm/components/Switch/Switch.js +44 -0
  36. package/dist/esm/components/Table/Table.d.ts +27 -0
  37. package/dist/esm/components/Table/Table.js +27 -0
  38. package/dist/esm/components/Tabs/Tabs.d.ts +70 -0
  39. package/dist/esm/components/Tabs/Tabs.js +87 -0
  40. package/dist/esm/components/Typography/Heading.d.ts +21 -0
  41. package/dist/esm/components/Typography/Heading.js +35 -0
  42. package/dist/esm/components/Typography/Text.d.ts +34 -0
  43. package/dist/esm/components/Typography/Text.js +40 -0
  44. package/dist/esm/dev-ui.css +1 -0
  45. package/dist/esm/index.js +36 -0
  46. package/dist/esm/theme.d.ts +15 -0
  47. package/dist/esm/theme.js +32 -0
  48. package/package.json +18 -18
  49. package/style.css +1 -0
  50. package/dist/components/Badge/Badge.d.ts +0 -8
  51. package/dist/components/Badge/Badge.demo.d.ts +0 -1
  52. package/dist/components/Button/Button.d.ts +0 -7
  53. package/dist/components/Button/Button.demo.d.ts +0 -1
  54. package/dist/components/Card/Card.d.ts +0 -8
  55. package/dist/components/Card/Card.demo.d.ts +0 -1
  56. package/dist/components/Checkbox/Checkbox.d.ts +0 -9
  57. package/dist/components/Checkbox/Checkbox.demo.d.ts +0 -1
  58. package/dist/components/Input/Input.d.ts +0 -11
  59. package/dist/components/Input/Input.demo.d.ts +0 -1
  60. package/dist/components/Modal/Modal.d.ts +0 -38
  61. package/dist/components/Modal/Modal.demo.d.ts +0 -1
  62. package/dist/components/Radio/Radio.d.ts +0 -9
  63. package/dist/components/Radio/Radio.demo.d.ts +0 -1
  64. package/dist/components/Select/Select.d.ts +0 -19
  65. package/dist/components/Select/Select.demo.d.ts +0 -1
  66. package/dist/components/Switch/Switch.d.ts +0 -9
  67. package/dist/components/Switch/Switch.demo.d.ts +0 -1
  68. package/dist/components/Table/Table.d.ts +0 -10
  69. package/dist/components/Table/Table.demo.d.ts +0 -1
  70. package/dist/components/Tabs/Tabs.d.ts +0 -26
  71. package/dist/components/Tabs/Tabs.demo.d.ts +0 -1
  72. package/dist/components/Typography/Heading.d.ts +0 -8
  73. package/dist/components/Typography/Text.d.ts +0 -11
  74. package/dist/components/Typography/Typography.demo.d.ts +0 -1
  75. package/dist/index.js +0 -488
  76. package/dist/theme.d.ts +0 -7
  77. /package/dist/{default-theme.d.ts → esm/default-theme.d.ts} +0 -0
  78. /package/dist/{index.d.ts → esm/index.d.ts} +0 -0
  79. /package/dist/{types.d.ts → esm/types.d.ts} +0 -0
package/README.md ADDED
@@ -0,0 +1,63 @@
1
+ # @coinloger/dev-ui
2
+
3
+ React UI component library for Coinloger projects.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @coinloger/dev-ui
9
+ ```
10
+
11
+ ## Setup
12
+
13
+ ### 1. Import Styles
14
+ Import the library's CSS in your main entry file (e.g., `main.tsx` or `App.tsx`):
15
+
16
+ ```tsx
17
+ import '@coinloger/dev-ui/style.css';
18
+ ```
19
+
20
+ ### 2. Wrap with ThemeProvider
21
+ Wrap your application with the `ThemeProvider` to enable dynamic theming:
22
+
23
+ ```tsx
24
+ import { ThemeProvider } from '@coinloger/dev-ui';
25
+ import { defaultTheme } from './your-theme-config'; // Optional customized theme
26
+
27
+ function App() {
28
+ return (
29
+ <ThemeProvider theme={defaultTheme}>
30
+ <YourApp />
31
+ </ThemeProvider>
32
+ );
33
+ }
34
+ ```
35
+
36
+ ## Usage
37
+
38
+ ### Components
39
+
40
+ ```tsx
41
+ import { Button, Card, Text } from '@coinloger/dev-ui';
42
+
43
+ function Example() {
44
+ return (
45
+ <Card>
46
+ <Text variant="lead">Hello World</Text>
47
+ <Button variant="primary">Click Me</Button>
48
+ </Card>
49
+ );
50
+ }
51
+ ```
52
+
53
+ ### Theming
54
+ You can override default theme values by passing a `ThemeConfig` object to the provider.
55
+
56
+ ```tsx
57
+ const customTheme = {
58
+ colors: {
59
+ primary: '#ff0000',
60
+ background: '#f0f0f0'
61
+ }
62
+ };
63
+ ```
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),d=require("react"),l=require("clsx"),p=require("prop-types");;/* empty css */function g(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const a=g(p),o=d.forwardRef(({className:e,children:t,variant:r="primary",size:n="md",shape:s="rounded",...i},u)=>c.jsx("span",{ref:u,className:l.clsx("ui-badge",`ui-badge-${r}`,`ui-badge-${n}`,`ui-badge-${s}`,e),...i,children:t}));o.displayName="Badge";o.propTypes={variant:a.oneOf(["primary","success","warning","danger","neutral"]),size:a.oneOf(["sm","md","lg"]),shape:a.oneOf(["rounded","pill"])};exports.Badge=o;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),a=require("react"),l=require("clsx"),p=require("prop-types");;/* empty css */function d(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const s=d(p),o=a.forwardRef(({className:e,variant:n="primary",size:t="md",...r},u)=>{const c=l.clsx("ui-btn",`ui-btn-${n}`,`ui-btn-${t}`,e);return i.jsx("button",{ref:u,className:c,...r})});o.displayName="Button";o.propTypes={variant:s.oneOf(["primary","secondary","outline","danger","success","warning","ghost","outline-danger","outline-success","outline-warning"]),size:s.oneOf(["sm","md","lg","xl"])};exports.Button=o;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),d=require("react"),u=require("clsx"),l=require("prop-types");;/* empty css */function p(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const c=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,c.get?c:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const o=p(l),a=d.forwardRef(({className:e,title:t,footer:r,children:c,...n},i)=>s.jsxs("div",{ref:i,className:u.clsx("ui-card",e),...n,children:[t&&s.jsx("div",{className:"ui-card__header",children:t}),s.jsx("div",{className:"ui-card__body",children:c}),r&&s.jsx("div",{className:"ui-card__footer",children:r})]}));a.displayName="Card";a.propTypes={title:o.node,footer:o.node};exports.Card=a;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),p=require("react"),x=require("clsx"),b=require("prop-types");;/* empty css */function d(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(r,o,n.get?n:{enumerable:!0,get:()=>e[o]})}}return r.default=e,Object.freeze(r)}const s=d(b),t=p.forwardRef(({className:e,label:r,error:o,disabled:n,size:i="md",variant:a="primary",...l},u)=>c.jsxs("label",{className:x.clsx("ui-checkbox-label",`ui-checkbox-${i}`,`ui-checkbox-${a}`,n&&"ui-checkbox-disabled",e),children:[c.jsx("input",{type:"checkbox",className:"ui-checkbox-input",disabled:n,ref:u,...l}),c.jsx("span",{className:"ui-checkbox-custom",children:c.jsx("svg",{className:"ui-checkbox-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",children:c.jsx("polyline",{points:"20 6 9 17 4 12"})})}),r&&c.jsx("span",{className:"ui-checkbox-text",children:r})]}));t.displayName="Checkbox";t.propTypes={label:s.node,error:s.bool,size:s.oneOf(["sm","md","lg","xl"]),variant:s.oneOf(["primary","success","warning","danger"])};exports.Checkbox=t;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),c=require("react"),u=require("clsx"),b=require("prop-types");;/* empty css */function x(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const s=x(b),l=c.forwardRef(({className:e,label:r,error:t,helperText:n,fullWidth:p,size:a="md",id:d,...f},m)=>{const o=d||c.useId();return i.jsxs("div",{className:u.clsx("ui-input-wrapper",p&&"ui-input-wrapper-full"),children:[r&&i.jsx("label",{htmlFor:o,className:"ui-label",children:r}),i.jsx("input",{ref:m,id:o,className:u.clsx("ui-input",`ui-input-${a}`,t&&"ui-input-error",e),...f}),n&&i.jsx("span",{className:u.clsx("ui-helper-text",t&&"ui-helper-text-error"),children:n})]})});l.displayName="Input";l.propTypes={label:s.node,error:s.bool,helperText:s.string,fullWidth:s.bool,size:s.oneOf(["sm","md","lg","xl"])};exports.Input=l;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),n=require("react"),k=require("react-dom"),a=require("clsx"),w=require("prop-types");;/* empty css */function C(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const l=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,l.get?l:{enumerable:!0,get:()=>e[s]})}}return t.default=e,Object.freeze(t)}const r=C(w),p=n.createContext(void 0),E=()=>{const e=n.useContext(p);if(!e)throw new Error("Modal compound components must be used within a Modal");return e},d=({children:e,className:t})=>{const{onClose:s}=E();return o.jsxs("div",{className:a.clsx("ui-modal-header",t),children:[o.jsx("h3",{className:"ui-modal-title",children:e}),o.jsx("button",{className:"ui-modal-close",onClick:s,"aria-label":"Close modal",children:o.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),o.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})},i=({children:e,className:t})=>o.jsx("div",{className:a.clsx("ui-modal-body",t),children:e}),c=({children:e,className:t})=>o.jsx("div",{className:a.clsx("ui-modal-footer",t),children:e}),m=({isOpen:e,onClose:t,title:s,children:l,footer:y,size:h="md",className:j,closeOnBackdropClick:b=!0})=>{const x=n.useRef(null),[g,f]=n.useState(e);n.useEffect(()=>{e&&f(!0)},[e]);const v=()=>{e||f(!1)};if(n.useEffect(()=>{const u=N=>{N.key==="Escape"&&t()};return e&&(document.addEventListener("keydown",u),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",u),document.body.style.overflow=""}},[e,t]),!g)return null;const M=u=>{b&&u.target===x.current&&t()};return k.createPortal(o.jsx(p.Provider,{value:{onClose:t},children:o.jsx("div",{className:a.clsx("ui-modal-overlay",!e&&"ui-modal-closing"),ref:x,onClick:M,onAnimationEnd:v,children:o.jsx("div",{className:a.clsx("ui-modal",`ui-modal-${h}`,!e&&"ui-modal-closing",j),role:"dialog","aria-modal":"true",children:s?o.jsxs(o.Fragment,{children:[o.jsx(d,{children:s}),o.jsx(i,{children:l}),y&&o.jsx(c,{children:y})]}):l})})}),document.body)},q=Object.assign(m,{Header:d,Body:i,Footer:c});m.displayName="Modal";d.displayName="ModalHeader";i.displayName="ModalBody";c.displayName="ModalFooter";m.propTypes={isOpen:r.bool.isRequired,onClose:r.func.isRequired,title:r.node,children:r.node,footer:r.node,size:r.oneOf(["sm","md","lg","xl"]),className:r.string,closeOnBackdropClick:r.bool};d.propTypes={children:r.node,className:r.string};i.propTypes={children:r.node,className:r.string};c.propTypes={children:r.node,className:r.string};exports.Modal=q;exports.ModalBody=i;exports.ModalFooter=c;exports.ModalHeader=d;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),d=require("react"),p=require("clsx"),m=require("prop-types");;/* empty css */function f(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(r,a,i.get?i:{enumerable:!0,get:()=>e[a]})}}return r.default=e,Object.freeze(r)}const s=f(m),t=d.forwardRef(({className:e,label:r,error:a,disabled:i,size:n="md",variant:c="primary",...u},l)=>o.jsxs("label",{className:p.clsx("ui-radio-label",`ui-radio-${n}`,`ui-radio-${c}`,i&&"ui-radio-disabled",e),children:[o.jsx("input",{type:"radio",className:"ui-radio-input",disabled:i,ref:l,...u}),o.jsx("span",{className:"ui-radio-custom",children:o.jsx("span",{className:"ui-radio-dot"})}),r&&o.jsx("span",{className:"ui-radio-text",children:r})]}));t.displayName="Radio";t.propTypes={label:s.node,error:s.bool,size:s.oneOf(["sm","md","lg","xl"]),variant:s.oneOf(["primary","success","warning","danger"])};exports.Radio=t;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),m=require("react"),c=require("clsx"),k=require("prop-types");;/* empty css */function S(l){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const n in l)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(l,n);Object.defineProperty(r,n,o.get?o:{enumerable:!0,get:()=>l[n]})}}return r.default=l,Object.freeze(r)}const e=S(k),f=({options:l,value:r,onChange:n,placeholder:o="Select an option",label:x,error:b,helperText:g,disabled:a,fullWidth:h,size:y="md",className:j})=>{const[i,u]=m.useState(!1),d=m.useRef(null),p=l.find(s=>s.value===r),v=()=>{a||u(!i)},O=s=>{n&&n(s),u(!1)};return m.useEffect(()=>{const s=N=>{d.current&&!d.current.contains(N.target)&&u(!1)};return i&&document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)}},[i]),t.jsxs("div",{className:c.clsx("ui-select-wrapper",h&&"ui-w-full",j),ref:d,style:{width:h?"100%":"auto"},children:[x&&t.jsx("label",{className:"ui-label",style:{marginBottom:"0.375rem",display:"block"},children:x}),t.jsxs("button",{type:"button",className:c.clsx("ui-select-trigger",`ui-select-${y}`,b&&"ui-select-error",a&&"ui-select-disabled",i&&"ui-select-open"),onClick:v,disabled:a,"aria-haspopup":"listbox","aria-expanded":i,children:[t.jsx("span",{className:c.clsx(!p&&"ui-select-placeholder"),children:p?p.label:o}),t.jsx("svg",{className:"ui-select-icon",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),i&&t.jsxs("ul",{className:"ui-select-menu",role:"listbox",children:[l.map(s=>t.jsx("li",{className:c.clsx("ui-select-option",s.value===r&&"ui-select-selected"),onClick:()=>O(s.value),role:"option","aria-selected":s.value===r,children:s.label},s.value)),l.length===0&&t.jsx("li",{className:"ui-select-option",style:{color:"var(--ui-text-muted)",cursor:"default"},children:"No options"})]}),g&&t.jsx("span",{className:c.clsx("ui-helper-text",b&&"ui-helper-text-error"),style:{marginTop:"0.375rem",display:"block"},children:g})]})};f.displayName="Select";f.propTypes={options:e.arrayOf(e.shape({value:e.oneOfType([e.string,e.number]).isRequired,label:e.string.isRequired})).isRequired,value:e.oneOfType([e.string,e.number]),onChange:e.func,placeholder:e.string,label:e.string,error:e.bool,helperText:e.string,disabled:e.bool,fullWidth:e.bool,size:e.oneOf(["sm","md","lg","xl"]),className:e.string};exports.Select=f;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),p=require("react"),m=require("clsx"),h=require("prop-types");;/* empty css */function d(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const i=d(h),n=p.forwardRef(({className:e,label:t,error:r,disabled:s,size:a="md",variant:o="primary",...u},l)=>c.jsxs("label",{className:m.clsx("ui-switch-label",`ui-switch-${a}`,`ui-switch-${o}`,s&&"ui-switch-disabled",e),children:[c.jsx("input",{type:"checkbox",className:"ui-switch-input",disabled:s,ref:l,role:"switch",...u}),c.jsx("span",{className:"ui-switch-track",children:c.jsx("span",{className:"ui-switch-thumb"})}),t&&c.jsx("span",{className:"ui-switch-text",children:t})]}));n.displayName="Switch";n.propTypes={label:i.node,error:i.bool,size:i.oneOf(["sm","md","lg","xl"]),variant:i.oneOf(["primary","success","warning","danger"])};exports.Switch=n;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),d=require("react"),p=require("prop-types");;/* empty css */function f(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const s=f(p),a=d.forwardRef(({className:e,bordered:r=!0,striped:t,hover:o,size:i="md",children:n,...u},c)=>{const b=["ui-table",r&&"ui-table-bordered",t&&"ui-table-striped",o&&"ui-table-hover",i==="sm"&&"ui-table-sm",e].filter(Boolean).join(" ");return l.jsx("div",{className:"ui-table-responsive",children:l.jsx("table",{ref:c,className:b,...u,children:n})})});a.displayName="Table";a.propTypes={bordered:s.bool,striped:s.bool,hover:s.bool,size:s.oneOf(["sm","md"])};exports.Table=a;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),u=require("react"),d=require("clsx"),C=require("prop-types");;/* empty css */function v(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const s=v(C),T=u.createContext(null),x=({defaultValue:e,value:t,onValueChange:n,children:r,className:i})=>{const[a,o]=u.useState(e||""),c=t!==void 0,b=c?t:a,g=u.useId(),p=h=>{c||o(h),n?.(h)};return l.jsx(T.Provider,{value:{value:b,onChange:p,baseId:g},children:l.jsx("div",{className:d.clsx("ui-tabs",i),children:r})})},f=({className:e,children:t,variant:n="line",...r})=>l.jsx("div",{role:"tablist",className:d.clsx("ui-tabs-list",`ui-tabs-list-${n}`,e),...r,children:t}),m=({value:e,className:t,children:n,onClick:r,...i})=>{const a=u.useContext(T);if(!a)throw new Error("TabsTrigger must be used within Tabs");const o=a.value===e,c=`${a.baseId}-trigger-${e}`,b=`${a.baseId}-content-${e}`,g=p=>{a.onChange(e),r?.(p)};return l.jsx("button",{type:"button",role:"tab","aria-selected":o,"aria-controls":b,id:c,tabIndex:o?0:-1,"data-state":o?"active":"inactive",className:d.clsx("ui-tabs-trigger",t),onClick:g,...i,children:n})},y=({value:e,className:t,children:n,...r})=>{const i=u.useContext(T);if(!i)throw new Error("TabsContent must be used within Tabs");const a=i.value===e,o=`${i.baseId}-trigger-${e}`,c=`${i.baseId}-content-${e}`;return a?l.jsx("div",{role:"tabpanel",id:c,"aria-labelledby":o,tabIndex:0,className:d.clsx("ui-tabs-content",t),...r,children:n}):null},I=Object.assign(x,{List:f,Trigger:m,Content:y});x.displayName="Tabs";f.displayName="TabsList";m.displayName="TabsTrigger";y.displayName="TabsContent";x.propTypes={defaultValue:s.string,value:s.string,onValueChange:s.func,children:s.node,className:s.string};f.propTypes={children:s.node,variant:s.oneOf(["line","pills"])};m.propTypes={value:s.string.isRequired,children:s.node};y.propTypes={value:s.string.isRequired,children:s.node};exports.Tabs=I;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),f=require("react"),g=require("clsx"),m=require("prop-types");;/* empty css */function b(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const c=b(m),a=f.forwardRef(({className:e,children:r,level:t=1,truncate:n,lines:o,style:i,...u},s)=>{const l=`h${t}`,p=o?{...i,"--ui-line-clamp":o}:i;return d.jsx(l,{ref:s,className:g.clsx("ui-heading",`ui-heading-h${t}`,n&&"ui-text-truncate",o&&"ui-text-clamp",e),style:p,...u,children:r})});a.displayName="Heading";a.propTypes={level:c.oneOf([1,2,3,4,5,6]),truncate:c.bool,lines:c.number};exports.Heading=a;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react/jsx-runtime"),f=require("react"),x=require("clsx"),y=require("prop-types");;/* empty css */function T(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const r=T(y),a=f.forwardRef(({className:e,children:o,variant:t="body",weight:n,muted:i,truncate:l,lines:u,as:s="p",style:c,...p},m)=>{const d=u?{...c,"--ui-line-clamp":u}:c;return b.jsx(s,{ref:m,className:x.clsx("ui-text",`ui-text-${t}`,n&&`ui-text-weight-${n}`,i&&"ui-text-muted",l&&"ui-text-truncate",u&&"ui-text-clamp",e),style:d,...p,children:o})});a.displayName="Text";a.propTypes={variant:r.oneOf(["body","small","caption","lead"]),weight:r.oneOf(["normal","medium","semibold","bold"]),muted:r.bool,truncate:r.bool,lines:r.number,as:r.elementType};exports.Text=a;
@@ -1 +1 @@
1
- :root{--ui-primary: #2563eb;--ui-primary-hover: color-mix(in srgb, var(--ui-primary), black 10%);--ui-primary-active: color-mix(in srgb, var(--ui-primary), black 20%);--ui-primary-light: #eff6ff;--ui-text-main: #111827;--ui-text-muted: #6b7280;--ui-border: #e5e7eb;--ui-border-hover: #d1d5db;--ui-bg-main: #ffffff;--ui-bg-subtle: #f9fafb;--ui-danger: #ef4444;--ui-success: #10b981;--ui-warning: #f59e0b;--ui-font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ui-font-size-sm: 12px;--ui-font-size-md: 13px;--ui-font-size-lg: 16px;--ui-font-size-xl: 21px;--ui-spacing-xs: 4px;--ui-spacing-xsl: 6px;--ui-spacing-sm: 8px;--ui-spacing-md: 12px;--ui-spacing-lg: 16px;--ui-spacing-xl: 21px;--ui-spacing-xxl: 24px;--ui-radius-sm: 2px;--ui-radius-md: 4px;--ui-radius-lg: 8px;--ui-radius-xl: 16px;--ui-radius-full: 50%;--ui-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--ui-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ui-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -2px rgb(0 0 0 / .05);--ui-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 10px 10px -5px rgb(0 0 0 / .04);--ui-btn-bg: transparent;--ui-btn-text: var(--ui-text-main);--ui-btn-border: transparent;--ui-btn-radius: var(--ui-radius-md);--ui-btn-padding: .5rem 1rem;--ui-btn-font-size: .95rem;--ui-btn-radius-sm: var(--ui-radius-md);--ui-btn-radius-md: var(--ui-radius-md);--ui-btn-radius-lg: var(--ui-radius-md);--ui-btn-radius-xl: var(--ui-radius-md);--ui-btn-padding-sm: .1rem .5rem;--ui-btn-padding-md: .25rem .5rem;--ui-btn-padding-lg: .25rem 1rem;--ui-btn-padding-xl: .5rem 1rem;--ui-btn-font-size-sm: var(--ui-font-size-sm);--ui-btn-font-size-md: var(--ui-font-size-md);--ui-btn-font-size-lg: var(--ui-font-size-lg);--ui-btn-font-size-xl: var(--ui-font-size-xl);--ui-input-radius: var(--ui-radius-md);--ui-input-bg: var(--ui-bg-main);--ui-input-border: 1px solid var(--ui-border);--ui-input-color: var(--ui-text-main);--ui-input-placeholder: var(--ui-text-muted);--ui-input-focus-border: var(--ui-primary);--ui-input-focus-ring: 0 0 0 3px var(--ui-primary-light);--ui-input-error-border: var(--ui-danger);--ui-input-error-ring: 0 0 0 3px rgba(239, 68, 68, .15);--ui-input-size-sm-padding: .35rem .5rem;--ui-input-size-sm-font-size: var(--ui-font-size-sm);--ui-input-size-md-padding: .5rem .75rem;--ui-input-size-md-font-size: var(--ui-font-size-md);--ui-input-size-lg-padding: .7rem 1rem;--ui-input-size-lg-font-size: var(--ui-font-size-lg);--ui-input-size-xl-padding: 1rem 1.25rem;--ui-input-size-xl-font-size: var(--ui-font-size-xl);--ui-select-radius: var(--ui-radius-md);--ui-select-bg: var(--ui-bg-main);--ui-select-border: 1px solid var(--ui-border);--ui-select-color: var(--ui-text-main);--ui-select-placeholder: var(--ui-text-muted);--ui-select-focus-border: var(--ui-primary);--ui-select-focus-ring: 0 0 0 3px var(--ui-primary-light);--ui-select-error-border: var(--ui-danger);--ui-select-error-ring: 0 0 0 3px rgba(239, 68, 68, .15);--ui-select-menu-bg: var(--ui-bg-main);--ui-select-menu-border: 1px solid var(--ui-border);--ui-select-menu-shadow: var(--ui-shadow-lg);--ui-select-option-hover-bg: var(--ui-bg-subtle);--ui-select-option-selected-bg: var(--ui-primary-light);--ui-select-option-selected-color: var(--ui-primary);--ui-select-size-sm-padding: var(--ui-input-size-sm-padding);--ui-select-size-sm-font-size: var(--ui-input-size-sm-font-size);--ui-select-size-md-padding: var(--ui-input-size-md-padding);--ui-select-size-md-font-size: var(--ui-input-size-md-font-size);--ui-select-size-lg-padding: var(--ui-input-size-lg-padding);--ui-select-size-lg-font-size: var(--ui-input-size-lg-font-size);--ui-select-size-xl-padding: var(--ui-input-size-xl-padding);--ui-select-size-xl-font-size: var(--ui-input-size-xl-font-size);--ui-card-radius: var(--ui-radius-md);--ui-card-bg: var(--ui-bg-main);--ui-card-border: 1px solid var(--ui-border);--ui-card-shadow: none;--ui-card-padding: var(--ui-spacing-md);--ui-card-header-bg: transparent;--ui-card-header-padding: var(--ui-spacing-md) var(--ui-spacing-md);--ui-card-header-border: 1px solid var(--ui-border);--ui-card-header-font-size: var(--ui-font-size-lg);--ui-card-font-size: var(--ui-font-size-md);--ui-card-footer-bg: var(--ui-bg-subtle);--ui-card-footer-padding: var(--ui-spacing-md) var(--ui-spacing-md);--ui-card-footer-border: 1px solid var(--ui-border);--ui-modal-radius: var(--ui-radius-lg);--ui-modal-bg: var(--ui-bg-main);--ui-modal-shadow: var(--ui-shadow-xl);--ui-modal-backdrop-bg: rgba(0, 0, 0, .4);--ui-modal-backdrop-blur: none;--ui-modal-border: 1px solid var(--ui-border);--ui-modal-z-index: 50;--ui-modal-header-padding: 1.25rem 1.5rem;--ui-modal-body-padding: 1.5rem;--ui-modal-footer-padding: 1.25rem 1.5rem;--ui-modal-size-sm-width: 400px;--ui-modal-size-md-width: 550px;--ui-modal-size-lg-width: 750px;--ui-modal-size-xl-width: 1140px;--ui-checkbox-size: 1.125rem;--ui-checkbox-radius: var(--ui-radius-sm);--ui-checkbox-bg: var(--ui-bg-main);--ui-checkbox-border: 1px solid var(--ui-border);--ui-checkbox-checked-bg: var(--ui-primary);--ui-checkbox-checked-border: var(--ui-primary);--ui-checkbox-checked-color: #ffffff;--ui-checkbox-disabled-opacity: .6;--ui-checkbox-size-sm-size: 1rem;--ui-checkbox-size-sm-font-size: var(--ui-font-size-sm);--ui-checkbox-size-md-size: 1.125rem;--ui-checkbox-size-md-font-size: var(--ui-font-size-md);--ui-checkbox-size-lg-size: 1.35rem;--ui-checkbox-size-lg-font-size: var(--ui-font-size-lg);--ui-checkbox-size-xl-size: 1.65rem;--ui-checkbox-size-xl-font-size: var(--ui-font-size-xl);--ui-radio-size: 1.125rem;--ui-radio-bg: var(--ui-bg-main);--ui-radio-border: 1px solid var(--ui-border);--ui-radio-checked-bg: var(--ui-primary);--ui-radio-checked-border: var(--ui-primary);--ui-radio-checked-color: #ffffff;--ui-radio-disabled-opacity: .6;--ui-radio-size-sm-size: 1rem;--ui-radio-size-sm-font-size: var(--ui-font-size-sm);--ui-radio-size-md-size: 1.125rem;--ui-radio-size-md-font-size: var(--ui-font-size-md);--ui-radio-size-lg-size: 1.35rem;--ui-radio-size-lg-font-size: var(--ui-font-size-lg);--ui-radio-size-xl-size: 1.65rem;--ui-radio-size-xl-font-size: var(--ui-font-size-xl);--ui-switch-width: 2.75rem;--ui-switch-height: 1.5rem;--ui-switch-bg: var(--ui-bg-subtle);--ui-switch-checked-bg: var(--ui-primary);--ui-switch-thumb-size: 1.125rem;--ui-switch-thumb-bg: #ffffff;--ui-switch-thumb-shadow: 0 1px 2px 0 rgb(0 0 0 / .15);--ui-switch-focus-ring: 0 0 0 3px var(--ui-primary-light);--ui-switch-disabled-opacity: .6;--ui-switch-size-sm-width: 2rem;--ui-switch-size-sm-height: 1.125rem;--ui-switch-size-sm-thumb-size: .8rem;--ui-switch-size-md-width: 2.75rem;--ui-switch-size-md-height: 1.5rem;--ui-switch-size-md-thumb-size: 1.125rem;--ui-switch-size-lg-width: 3.5rem;--ui-switch-size-lg-height: 1.875rem;--ui-switch-size-lg-thumb-size: 1.45rem;--ui-switch-size-xl-width: 4.25rem;--ui-switch-size-xl-height: 2.25rem;--ui-switch-size-xl-thumb-size: 1.75rem;--ui-badge-radius: var(--ui-radius-sm);--ui-badge-font-weight: 500;--ui-badge-size-sm-padding: .125rem .5rem;--ui-badge-size-sm-font-size: .75rem;--ui-badge-size-md-padding: .25rem .75rem;--ui-badge-size-md-font-size: .875rem;--ui-badge-size-lg-padding: .375rem .875rem;--ui-badge-size-lg-font-size: 1rem;--ui-badge-primary-bg: var(--ui-primary);--ui-badge-primary-text: #ffffff;--ui-badge-success-bg: var(--ui-success);--ui-badge-success-text: #ffffff;--ui-badge-warning-bg: var(--ui-warning);--ui-badge-warning-text: #ffffff;--ui-badge-danger-bg: var(--ui-danger);--ui-badge-danger-text: #ffffff;--ui-badge-neutral-bg: var(--ui-bg-subtle);--ui-badge-neutral-text: var(--ui-text-main);--ui-heading-h1-size: 2.5rem;--ui-heading-h1-line-height: 1.2;--ui-heading-h1-weight: 700;--ui-heading-h2-size: 2rem;--ui-heading-h2-line-height: 1.3;--ui-heading-h2-weight: 600;--ui-heading-h3-size: 1.75rem;--ui-heading-h3-line-height: 1.3;--ui-heading-h3-weight: 600;--ui-heading-h4-size: 1.5rem;--ui-heading-h4-line-height: 1.4;--ui-heading-h4-weight: 600;--ui-heading-h5-size: 1.25rem;--ui-heading-h5-line-height: 1.4;--ui-heading-h5-weight: 600;--ui-heading-h6-size: 1rem;--ui-heading-h6-line-height: 1.4;--ui-heading-h6-weight: 600;--ui-text-body-size: 1rem;--ui-text-body-line-height: 1.5;--ui-text-small-size: .875rem;--ui-text-small-line-height: 1.4;--ui-text-caption-size: .75rem;--ui-text-caption-line-height: 1.4;--ui-text-lead-weight: 400;--ui-tabs-border-color: var(--ui-border);--ui-tabs-active-color: var(--ui-primary);--ui-tabs-inactive-color: var(--ui-text-muted);--ui-tabs-hover-bg: var(--ui-bg-subtle);--ui-tabs-trigger-padding: .75rem 1rem;--ui-tabs-trigger-weight: 500;--ui-tabs-trigger-font-size: .95rem;--ui-tabs-content-padding: 1rem 0}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}body{line-height:1;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--ui-font-size-md)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;outline:none}table{border-collapse:collapse}button{background:none;border:none;cursor:pointer}.ui-m-xs{margin:var(--ui-spacing-xs)}.ui-mt-xs{margin-top:var(--ui-spacing-xs)}.ui-mb-xs{margin-bottom:var(--ui-spacing-xs)}.ui-ml-xs{margin-left:var(--ui-spacing-xs)}.ui-mr-xs{margin-right:var(--ui-spacing-xs)}.ui-mx-xs{margin-left:var(--ui-spacing-xs);margin-right:var(--ui-spacing-xs)}.ui-my-xs{margin-top:var(--ui-spacing-xs);margin-bottom:var(--ui-spacing-xs)}.ui-p-xs{padding:var(--ui-spacing-xs)}.ui-pt-xs{padding-top:var(--ui-spacing-xs)}.ui-pb-xs{padding-bottom:var(--ui-spacing-xs)}.ui-pl-xs{padding-left:var(--ui-spacing-xs)}.ui-pr-xs{padding-right:var(--ui-spacing-xs)}.ui-px-xs{padding-left:var(--ui-spacing-xs);padding-right:var(--ui-spacing-xs)}.ui-py-xs{padding-top:var(--ui-spacing-xs);padding-bottom:var(--ui-spacing-xs)}.ui-m-xsl{margin:var(--ui-spacing-xsl)}.ui-mt-xsl{margin-top:var(--ui-spacing-xsl)}.ui-mb-xsl{margin-bottom:var(--ui-spacing-xsl)}.ui-ml-xsl{margin-left:var(--ui-spacing-xsl)}.ui-mr-xsl{margin-right:var(--ui-spacing-xsl)}.ui-mx-xsl{margin-left:var(--ui-spacing-xsl);margin-right:var(--ui-spacing-xsl)}.ui-my-xsl{margin-top:var(--ui-spacing-xsl);margin-bottom:var(--ui-spacing-xsl)}.ui-p-xsl{padding:var(--ui-spacing-xsl)}.ui-pt-xsl{padding-top:var(--ui-spacing-xsl)}.ui-pb-xsl{padding-bottom:var(--ui-spacing-xsl)}.ui-pl-xsl{padding-left:var(--ui-spacing-xsl)}.ui-pr-xsl{padding-right:var(--ui-spacing-xsl)}.ui-px-xsl{padding-left:var(--ui-spacing-xsl);padding-right:var(--ui-spacing-xsl)}.ui-py-xsl{padding-top:var(--ui-spacing-xsl);padding-bottom:var(--ui-spacing-xsl)}.ui-m-sm{margin:var(--ui-spacing-sm)}.ui-mt-sm{margin-top:var(--ui-spacing-sm)}.ui-mb-sm{margin-bottom:var(--ui-spacing-sm)}.ui-ml-sm{margin-left:var(--ui-spacing-sm)}.ui-mr-sm{margin-right:var(--ui-spacing-sm)}.ui-mx-sm{margin-left:var(--ui-spacing-sm);margin-right:var(--ui-spacing-sm)}.ui-my-sm{margin-top:var(--ui-spacing-sm);margin-bottom:var(--ui-spacing-sm)}.ui-p-sm{padding:var(--ui-spacing-sm)}.ui-pt-sm{padding-top:var(--ui-spacing-sm)}.ui-pb-sm{padding-bottom:var(--ui-spacing-sm)}.ui-pl-sm{padding-left:var(--ui-spacing-sm)}.ui-pr-sm{padding-right:var(--ui-spacing-sm)}.ui-px-sm{padding-left:var(--ui-spacing-sm);padding-right:var(--ui-spacing-sm)}.ui-py-sm{padding-top:var(--ui-spacing-sm);padding-bottom:var(--ui-spacing-sm)}.ui-m-md{margin:var(--ui-spacing-md)}.ui-mt-md{margin-top:var(--ui-spacing-md)}.ui-mb-md{margin-bottom:var(--ui-spacing-md)}.ui-ml-md{margin-left:var(--ui-spacing-md)}.ui-mr-md{margin-right:var(--ui-spacing-md)}.ui-mx-md{margin-left:var(--ui-spacing-md);margin-right:var(--ui-spacing-md)}.ui-my-md{margin-top:var(--ui-spacing-md);margin-bottom:var(--ui-spacing-md)}.ui-p-md{padding:var(--ui-spacing-md)}.ui-pt-md{padding-top:var(--ui-spacing-md)}.ui-pb-md{padding-bottom:var(--ui-spacing-md)}.ui-pl-md{padding-left:var(--ui-spacing-md)}.ui-pr-md{padding-right:var(--ui-spacing-md)}.ui-px-md{padding-left:var(--ui-spacing-md);padding-right:var(--ui-spacing-md)}.ui-py-md{padding-top:var(--ui-spacing-md);padding-bottom:var(--ui-spacing-md)}.ui-m-lg{margin:var(--ui-spacing-lg)}.ui-mt-lg{margin-top:var(--ui-spacing-lg)}.ui-mb-lg{margin-bottom:var(--ui-spacing-lg)}.ui-ml-lg{margin-left:var(--ui-spacing-lg)}.ui-mr-lg{margin-right:var(--ui-spacing-lg)}.ui-mx-lg{margin-left:var(--ui-spacing-lg);margin-right:var(--ui-spacing-lg)}.ui-my-lg{margin-top:var(--ui-spacing-lg);margin-bottom:var(--ui-spacing-lg)}.ui-p-lg{padding:var(--ui-spacing-lg)}.ui-pt-lg{padding-top:var(--ui-spacing-lg)}.ui-pb-lg{padding-bottom:var(--ui-spacing-lg)}.ui-pl-lg{padding-left:var(--ui-spacing-lg)}.ui-pr-lg{padding-right:var(--ui-spacing-lg)}.ui-px-lg{padding-left:var(--ui-spacing-lg);padding-right:var(--ui-spacing-lg)}.ui-py-lg{padding-top:var(--ui-spacing-lg);padding-bottom:var(--ui-spacing-lg)}.ui-m-xl{margin:var(--ui-spacing-xl)}.ui-mt-xl{margin-top:var(--ui-spacing-xl)}.ui-mb-xl{margin-bottom:var(--ui-spacing-xl)}.ui-ml-xl{margin-left:var(--ui-spacing-xl)}.ui-mr-xl{margin-right:var(--ui-spacing-xl)}.ui-mx-xl{margin-left:var(--ui-spacing-xl);margin-right:var(--ui-spacing-xl)}.ui-my-xl{margin-top:var(--ui-spacing-xl);margin-bottom:var(--ui-spacing-xl)}.ui-p-xl{padding:var(--ui-spacing-xl)}.ui-pt-xl{padding-top:var(--ui-spacing-xl)}.ui-pb-xl{padding-bottom:var(--ui-spacing-xl)}.ui-pl-xl{padding-left:var(--ui-spacing-xl)}.ui-pr-xl{padding-right:var(--ui-spacing-xl)}.ui-px-xl{padding-left:var(--ui-spacing-xl);padding-right:var(--ui-spacing-xl)}.ui-py-xl{padding-top:var(--ui-spacing-xl);padding-bottom:var(--ui-spacing-xl)}.ui-m-xxl{margin:var(--ui-spacing-xxl)}.ui-mt-xxl{margin-top:var(--ui-spacing-xxl)}.ui-mb-xxl{margin-bottom:var(--ui-spacing-xxl)}.ui-ml-xxl{margin-left:var(--ui-spacing-xxl)}.ui-mr-xxl{margin-right:var(--ui-spacing-xxl)}.ui-mx-xxl{margin-left:var(--ui-spacing-xxl);margin-right:var(--ui-spacing-xxl)}.ui-my-xxl{margin-top:var(--ui-spacing-xxl);margin-bottom:var(--ui-spacing-xxl)}.ui-p-xxl{padding:var(--ui-spacing-xxl)}.ui-pt-xxl{padding-top:var(--ui-spacing-xxl)}.ui-pb-xxl{padding-bottom:var(--ui-spacing-xxl)}.ui-pl-xxl{padding-left:var(--ui-spacing-xxl)}.ui-pr-xxl{padding-right:var(--ui-spacing-xxl)}.ui-px-xxl{padding-left:var(--ui-spacing-xxl);padding-right:var(--ui-spacing-xxl)}.ui-py-xxl{padding-top:var(--ui-spacing-xxl);padding-bottom:var(--ui-spacing-xxl)}.ui-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--ui-btn-padding);font-size:var(--ui-btn-font-size);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);line-height:1.5;text-decoration:none;-webkit-user-select:none;user-select:none}.ui-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ui-btn-primary{background-color:var(--ui-primary);color:#fff;border-color:var(--ui-primary)}.ui-btn-primary:hover{background-color:var(--ui-primary-hover);border-color:var(--ui-primary-hover)}.ui-btn-primary:active{background-color:var(--ui-primary-active)}.ui-btn-secondary{background-color:#fff;color:var(--ui-text-main);border:1px solid var(--ui-border);box-shadow:var(--ui-shadow-sm)}.ui-btn-secondary:hover{background-color:var(--ui-bg-subtle);border-color:var(--ui-border-hover);color:#000}.ui-btn-outline{background-color:transparent;color:var(--ui-primary);border-color:var(--ui-primary)}.ui-btn-outline:hover{background-color:var(--ui-primary-light)}.ui-btn-outline-danger{background-color:transparent;color:var(--ui-danger);border:1px solid var(--ui-danger)}.ui-btn-outline-danger:hover{background-color:color-mix(in srgb,var(--ui-danger),transparent 90%)}.ui-btn-outline-success{background-color:transparent;color:var(--ui-success);border:1px solid var(--ui-success)}.ui-btn-outline-success:hover{background-color:color-mix(in srgb,var(--ui-success),transparent 90%)}.ui-btn-outline-warning{background-color:transparent;color:var(--ui-warning);border:1px solid var(--ui-warning)}.ui-btn-outline-warning:hover{background-color:color-mix(in srgb,var(--ui-warning),transparent 90%)}.ui-btn-danger{background-color:var(--ui-danger);color:#fff;border-color:var(--ui-danger)}.ui-btn-danger:hover{background-color:color-mix(in srgb,var(--ui-danger),black 10%);border-color:color-mix(in srgb,var(--ui-danger),black 10%)}.ui-btn-success{background-color:var(--ui-success);color:#fff;border-color:var(--ui-success)}.ui-btn-success:hover{background-color:color-mix(in srgb,var(--ui-success),black 10%);border-color:color-mix(in srgb,var(--ui-success),black 10%)}.ui-btn-warning{background-color:var(--ui-warning);color:#fff;border-color:var(--ui-warning)}.ui-btn-warning:hover{background-color:color-mix(in srgb,var(--ui-warning),black 10%);border-color:color-mix(in srgb,var(--ui-warning),black 10%)}.ui-btn-ghost{background-color:transparent;color:var(--ui-text-main)}.ui-btn-ghost:hover{background-color:var(--ui-bg-subtle)}.ui-btn-sm{--ui-btn-padding: var(--ui-btn-padding-sm);--ui-btn-font-size: var(--ui-btn-font-size-sm);border-radius:var(--ui-btn-radius-sm, var(--ui-radius-sm))}.ui-btn-md{--ui-btn-padding: var(--ui-btn-padding-md);--ui-btn-font-size: var(--ui-btn-font-size-md);border-radius:var(--ui-btn-radius-md, var(--ui-radius-md))}.ui-btn-lg{--ui-btn-padding: var(--ui-btn-padding-lg);--ui-btn-font-size: var(--ui-btn-font-size-lg);border-radius:var(--ui-btn-radius-lg, var(--ui-radius-lg))}.ui-btn-xl{--ui-btn-padding: var(--ui-btn-padding-xl);--ui-btn-font-size: var(--ui-btn-font-size-xl);border-radius:var(--ui-btn-radius-xl, var(--ui-radius-xl))}.ui-btn:focus-visible{outline:2px solid var(--ui-primary);outline-offset:2px}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.6;cursor:not-allowed;pointer-events:none;filter:grayscale(.5)}.ui-input-wrapper{display:inline-flex;flex-direction:column;gap:.375rem}.ui-input-wrapper-full{display:flex;width:100%}.ui-input-error{border-color:var(--ui-danger)}.ui-input-error:focus{box-shadow:0 0 0 3px #ef444426}.ui-label{font-size:.875rem;font-weight:500;color:var(--ui-text-main)}.ui-input{display:block;width:100%;padding:var(--ui-input-size-md-padding);font-size:var(--ui-input-size-md-font-size);font-family:var(--ui-font-family);color:var(--ui-input-color);background-color:var(--ui-input-bg);border:var(--ui-input-border);border-radius:var(--ui-input-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.ui-input::placeholder{color:var(--ui-input-placeholder);opacity:.8}.ui-input:hover{border-color:var(--ui-border-hover)}.ui-input:focus{border-color:var(--ui-input-focus-border);outline:0;box-shadow:var(--ui-input-focus-ring)}.ui-input-sm{padding:var(--ui-input-size-sm-padding);font-size:var(--ui-input-size-sm-font-size)}.ui-input-md{padding:var(--ui-input-size-md-padding);font-size:var(--ui-input-size-md-font-size)}.ui-input-lg{padding:var(--ui-input-size-lg-padding);font-size:var(--ui-input-size-lg-font-size)}.ui-input-xl{padding:var(--ui-input-size-xl-padding);font-size:var(--ui-input-size-xl-font-size)}.ui-input-error{border-color:var(--ui-input-error-border)}.ui-input-error:focus{border-color:var(--ui-input-error-border);box-shadow:var(--ui-input-error-ring)}.ui-helper-text{font-size:.8rem;color:var(--ui-text-muted)}.ui-helper-text-error{color:var(--ui-danger)}.ui-card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:var(--ui-card-bg);border:var(--ui-card-border);border-radius:var(--ui-card-radius);box-shadow:var(--ui-card-shadow);transition:border-color .2s ease,box-shadow .2s ease}.ui-card:hover{border-color:var(--ui-border-hover)}.ui-card__header{padding:var(--ui-card-header-padding);margin-bottom:0;background-color:var(--ui-card-header-bg);border-bottom:var(--ui-card-header-border);font-weight:600;font-size:var(--ui-card-header-font-size);color:var(--ui-text-main);border-top-left-radius:calc(var(--ui-card-radius) - 1px);border-top-right-radius:calc(var(--ui-card-radius) - 1px)}.ui-card__body{flex:1 1 auto;padding:var(--ui-card-padding);color:var(--ui-text-muted);font-size:var(--ui-card-font-size);line-height:1.6}.ui-card__footer{padding:var(--ui-card-footer-padding);background-color:var(--ui-card-footer-bg);border-top:var(--ui-card-footer-border);display:flex;align-items:center;border-bottom-left-radius:calc(var(--ui-card-radius) - 1px);border-bottom-right-radius:calc(var(--ui-card-radius) - 1px)}.ui-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:var(--ui-modal-backdrop-bg);-webkit-backdrop-filter:var(--ui-modal-backdrop-blur);backdrop-filter:var(--ui-modal-backdrop-blur);z-index:var(--ui-modal-z-index);padding:1rem;animation:ui-modal-fade-in .15s linear}.ui-modal{position:relative;display:flex;flex-direction:column;width:100%;max-height:90vh;background-color:var(--ui-modal-bg);border:var(--ui-modal-border);border-radius:var(--ui-modal-radius);box-shadow:var(--ui-modal-shadow);color:var(--ui-text-main);animation:ui-modal-slide-down .3s ease-out}.ui-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-modal-header-padding);border-bottom:1px solid var(--ui-border)}.ui-modal-title{margin:0;font-size:1.125rem;font-weight:600}.ui-modal-close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background:transparent;border:none;cursor:pointer;color:var(--ui-text-muted);border-radius:var(--ui-radius-sm);transition:all .2s}.ui-modal-close:hover{background-color:var(--ui-bg-subtle);color:var(--ui-text-main)}.ui-modal-body{padding:var(--ui-modal-body-padding);overflow-y:auto;font-size:.95rem;line-height:1.5}.ui-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:var(--ui-modal-footer-padding);background-color:var(--ui-bg-subtle);border-top:1px solid var(--ui-border);border-bottom-left-radius:calc(var(--ui-modal-radius) - 1px);border-bottom-right-radius:calc(var(--ui-modal-radius) - 1px)}.ui-modal-sm{max-width:var(--ui-modal-size-sm-width)}.ui-modal-md{max-width:var(--ui-modal-size-md-width)}.ui-modal-lg{max-width:var(--ui-modal-size-lg-width)}.ui-modal-xl{max-width:var(--ui-modal-size-xl-width)}@keyframes ui-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes ui-modal-slide-down{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:none}}@keyframes ui-modal-slide-up{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-50px)}}.ui-modal-overlay.ui-modal-closing{animation:ui-modal-fade-out .15s linear forwards}.ui-modal.ui-modal-closing{animation:ui-modal-slide-up .3s ease-out forwards}.ui-select-wrapper{position:relative;width:100%}.ui-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;text-align:left;background-color:var(--ui-select-bg);border:var(--ui-select-border);border-radius:var(--ui-select-radius);color:var(--ui-select-color);transition:all .15s ease-in-out}.ui-select-trigger:focus{outline:none;border-color:var(--ui-select-focus-border);box-shadow:var(--ui-select-focus-ring)}.ui-select-trigger.ui-select-error{border-color:var(--ui-select-error-border)}.ui-select-trigger.ui-select-error:focus{box-shadow:var(--ui-select-error-ring)}.ui-select-trigger.ui-select-disabled{opacity:.6;cursor:not-allowed;background-color:var(--ui-bg-subtle)}.ui-select-placeholder{color:var(--ui-select-placeholder)}.ui-select-icon{width:1.25rem;height:1.25rem;color:var(--ui-text-muted);transition:transform .2s}.ui-select-open .ui-select-icon{transform:rotate(180deg)}.ui-select-menu{position:absolute;top:100%;left:0;width:100%;margin-top:4px;padding:4px;background-color:var(--ui-select-menu-bg);border:var(--ui-select-menu-border);border-radius:var(--ui-select-radius);box-shadow:var(--ui-select-menu-shadow);z-index:10;max-height:250px;overflow-y:auto;animation:ui-select-fade-in .1s ease-out}.ui-select-option{display:flex;align-items:center;width:100%;padding:.5rem .75rem;font-size:.95rem;cursor:pointer;border-radius:var(--ui-radius-sm);color:var(--ui-text-main);transition:background-color .1s}.ui-select-option:hover{background-color:var(--ui-select-option-hover-bg)}.ui-select-option.ui-select-selected{background-color:var(--ui-select-option-selected-bg);color:var(--ui-select-option-selected-color);font-weight:500}.ui-select-sm{padding:var(--ui-select-size-sm-padding);font-size:var(--ui-select-size-sm-font-size)}.ui-select-md{padding:var(--ui-select-size-md-padding);font-size:var(--ui-select-size-md-font-size)}.ui-select-lg{padding:var(--ui-select-size-lg-padding);font-size:var(--ui-select-size-lg-font-size)}.ui-select-xl{padding:var(--ui-select-size-xl-padding);font-size:var(--ui-select-size-xl-font-size)}@keyframes ui-select-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ui-checkbox-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:var(--ui-checkbox-font-size, .95rem);-webkit-user-select:none;user-select:none;color:var(--ui-text-main)}.ui-checkbox-label.ui-checkbox-disabled{cursor:not-allowed;opacity:var(--ui-checkbox-disabled-opacity)}.ui-checkbox-input{position:absolute;opacity:0;width:0;height:0}.ui-checkbox-custom{display:flex;align-items:center;justify-content:center;width:var(--ui-checkbox-size);height:var(--ui-checkbox-size);background-color:var(--ui-checkbox-bg);border:var(--ui-checkbox-border);border-radius:var(--ui-checkbox-radius);transition:all .15s ease-in-out;color:transparent;flex-shrink:0}.ui-checkbox-label:hover .ui-checkbox-custom{border-color:var(--ui-border-hover)}.ui-checkbox-input:focus+.ui-checkbox-custom{box-shadow:0 0 0 3px var(--ui-primary-light);border-color:var(--ui-primary)}.ui-checkbox-input:checked+.ui-checkbox-custom{background-color:var(--ui-checkbox-checked-bg);border-color:var(--ui-checkbox-checked-border);color:var(--ui-checkbox-checked-color)}.ui-checkbox-icon{width:.8em;height:.8em;stroke-width:3}.ui-checkbox-sm{--ui-checkbox-size: var(--ui-checkbox-size-sm-size);font-size:var(--ui-checkbox-size-sm-font-size)}.ui-checkbox-md{--ui-checkbox-size: var(--ui-checkbox-size-md-size);font-size:var(--ui-checkbox-size-md-font-size)}.ui-checkbox-lg{--ui-checkbox-size: var(--ui-checkbox-size-lg-size);font-size:var(--ui-checkbox-size-lg-font-size)}.ui-checkbox-xl{--ui-checkbox-size: var(--ui-checkbox-size-xl-size);font-size:var(--ui-checkbox-size-xl-font-size)}.ui-checkbox-primary .ui-checkbox-input:checked+.ui-checkbox-custom{background-color:var(--ui-primary);border-color:var(--ui-primary)}.ui-checkbox-primary .ui-checkbox-input:focus+.ui-checkbox-custom{box-shadow:0 0 0 3px var(--ui-primary-light);border-color:var(--ui-primary)}.ui-checkbox-success .ui-checkbox-input:checked+.ui-checkbox-custom{background-color:var(--ui-success);border-color:var(--ui-success)}.ui-checkbox-success .ui-checkbox-input:focus+.ui-checkbox-custom{box-shadow:0 0 0 3px #10b98140;border-color:var(--ui-success)}.ui-checkbox-warning .ui-checkbox-input:checked+.ui-checkbox-custom{background-color:var(--ui-warning);border-color:var(--ui-warning)}.ui-checkbox-warning .ui-checkbox-input:focus+.ui-checkbox-custom{box-shadow:0 0 0 3px #f59e0b40;border-color:var(--ui-warning)}.ui-checkbox-danger .ui-checkbox-input:checked+.ui-checkbox-custom{background-color:var(--ui-danger);border-color:var(--ui-danger)}.ui-checkbox-danger .ui-checkbox-input:focus+.ui-checkbox-custom{box-shadow:0 0 0 3px #ef444440;border-color:var(--ui-danger)}.ui-radio-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:var(--ui-radio-font-size, .95rem);-webkit-user-select:none;user-select:none;color:var(--ui-text-main)}.ui-radio-label.ui-radio-disabled{cursor:not-allowed;opacity:var(--ui-radio-disabled-opacity)}.ui-radio-input{position:absolute;opacity:0;width:0;height:0}.ui-radio-custom{display:flex;align-items:center;justify-content:center;width:var(--ui-radio-size);height:var(--ui-radio-size);background-color:var(--ui-radio-bg);border:var(--ui-radio-border);border-radius:50%;transition:all .15s ease-in-out;flex-shrink:0}.ui-radio-dot{width:.5em;height:.5em;background-color:var(--ui-radio-checked-color);border-radius:50%;transform:scale(0);transition:transform .15s ease-in-out}.ui-radio-label:hover .ui-radio-custom{border-color:var(--ui-border-hover)}.ui-radio-input:focus+.ui-radio-custom{box-shadow:0 0 0 3px var(--ui-primary-light);border-color:var(--ui-primary)}.ui-radio-input:checked+.ui-radio-custom{background-color:var(--ui-radio-checked-bg);border-color:var(--ui-radio-checked-border)}.ui-radio-input:checked+.ui-radio-custom .ui-radio-dot{transform:scale(1)}.ui-radio-sm{--ui-radio-size: var(--ui-radio-size-sm-size);font-size:var(--ui-radio-size-sm-font-size)}.ui-radio-md{--ui-radio-size: var(--ui-radio-size-md-size);font-size:var(--ui-radio-size-md-font-size)}.ui-radio-lg{--ui-radio-size: var(--ui-radio-size-lg-size);font-size:var(--ui-radio-size-lg-font-size)}.ui-radio-xl{--ui-radio-size: var(--ui-radio-size-xl-size);font-size:var(--ui-radio-size-xl-font-size)}.ui-radio-primary .ui-radio-input:checked+.ui-radio-custom{background-color:var(--ui-primary);border-color:var(--ui-primary)}.ui-radio-primary .ui-radio-input:focus+.ui-radio-custom{box-shadow:0 0 0 3px var(--ui-primary-light);border-color:var(--ui-primary)}.ui-radio-success .ui-radio-input:checked+.ui-radio-custom{background-color:var(--ui-success);border-color:var(--ui-success)}.ui-radio-success .ui-radio-input:focus+.ui-radio-custom{box-shadow:0 0 0 3px #10b98140;border-color:var(--ui-success)}.ui-radio-warning .ui-radio-input:checked+.ui-radio-custom{background-color:var(--ui-warning);border-color:var(--ui-warning)}.ui-radio-warning .ui-radio-input:focus+.ui-radio-custom{box-shadow:0 0 0 3px #f59e0b40;border-color:var(--ui-warning)}.ui-radio-danger .ui-radio-input:checked+.ui-radio-custom{background-color:var(--ui-danger);border-color:var(--ui-danger)}.ui-radio-danger .ui-radio-input:focus+.ui-radio-custom{box-shadow:0 0 0 3px #ef444440;border-color:var(--ui-danger)}.ui-switch-label{display:inline-flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.95rem;-webkit-user-select:none;user-select:none;color:var(--ui-text-main)}.ui-switch-label.ui-switch-disabled{cursor:not-allowed;opacity:var(--ui-switch-disabled-opacity)}.ui-switch-input{position:absolute;opacity:0;width:0;height:0}.ui-switch-track{position:relative;width:var(--ui-switch-width);height:var(--ui-switch-height);background-color:var(--ui-border);border-radius:9999px;transition:background-color .2s ease-in-out;flex-shrink:0}.ui-switch-input:checked+.ui-switch-track{background-color:var(--ui-switch-checked-bg)}.ui-switch-thumb{position:absolute;top:50%;transform:translateY(-50%);left:2px;width:var(--ui-switch-thumb-size);height:var(--ui-switch-thumb-size);background-color:var(--ui-switch-thumb-bg);border-radius:50%;box-shadow:var(--ui-switch-thumb-shadow);transition:left .2s cubic-bezier(.4,0,.2,1)}.ui-switch-input:checked+.ui-switch-track .ui-switch-thumb{left:calc(100% - var(--ui-switch-thumb-size) - 2px)}.ui-switch-input:focus+.ui-switch-track{box-shadow:var(--ui-switch-focus-ring)}.ui-switch-sm{--ui-switch-width: var(--ui-switch-size-sm-width);--ui-switch-height: var(--ui-switch-size-sm-height);--ui-switch-thumb-size: var(--ui-switch-size-sm-thumb-size);font-size:var(--ui-font-size-sm)}.ui-switch-md{--ui-switch-width: var(--ui-switch-size-md-width);--ui-switch-height: var(--ui-switch-size-md-height);--ui-switch-thumb-size: var(--ui-switch-size-md-thumb-size);font-size:var(--ui-font-size-md)}.ui-switch-lg{--ui-switch-width: var(--ui-switch-size-lg-width);--ui-switch-height: var(--ui-switch-size-lg-height);--ui-switch-thumb-size: var(--ui-switch-size-lg-thumb-size);font-size:var(--ui-font-size-lg)}.ui-switch-xl{--ui-switch-width: var(--ui-switch-size-xl-width);--ui-switch-height: var(--ui-switch-size-xl-height);--ui-switch-thumb-size: var(--ui-switch-size-xl-thumb-size);font-size:var(--ui-font-size-xl)}.ui-switch-primary .ui-switch-input:focus+.ui-switch-track{box-shadow:0 0 0 3px var(--ui-primary-light)}.ui-switch-success .ui-switch-input:checked+.ui-switch-track{background-color:var(--ui-success)}.ui-switch-success .ui-switch-input:focus+.ui-switch-track{box-shadow:0 0 0 3px #10b98140}.ui-switch-warning .ui-switch-input:checked+.ui-switch-track{background-color:var(--ui-warning)}.ui-switch-warning .ui-switch-input:focus+.ui-switch-track{box-shadow:0 0 0 3px #f59e0b40}.ui-switch-danger .ui-switch-input:checked+.ui-switch-track{background-color:var(--ui-danger)}.ui-switch-danger .ui-switch-input:focus+.ui-switch-track{box-shadow:0 0 0 3px #ef444440}.ui-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:var(--ui-badge-radius);font-weight:var(--ui-badge-font-weight);line-height:1;transition:all .2s ease}.ui-badge-pill{border-radius:9999px}.ui-badge-sm{padding:var(--ui-badge-size-sm-padding);font-size:var(--ui-badge-size-sm-font-size)}.ui-badge-md{padding:var(--ui-badge-size-md-padding);font-size:var(--ui-badge-size-md-font-size)}.ui-badge-lg{padding:var(--ui-badge-size-lg-padding);font-size:var(--ui-badge-size-lg-font-size)}.ui-badge-primary{background-color:var(--ui-badge-primary-bg);color:var(--ui-badge-primary-text)}.ui-badge-success{background-color:var(--ui-badge-success-bg);color:var(--ui-badge-success-text)}.ui-badge-warning{background-color:var(--ui-badge-warning-bg);color:var(--ui-badge-warning-text)}.ui-badge-danger{background-color:var(--ui-badge-danger-bg);color:var(--ui-badge-danger-text)}.ui-badge-neutral{background-color:var(--ui-badge-neutral-bg);color:var(--ui-badge-neutral-text);border:1px solid var(--ui-border)}.ui-heading{margin:0;color:var(--ui-text-main);font-family:inherit}.ui-heading-h1{font-size:var(--ui-heading-h1-size);font-weight:var(--ui-heading-h1-weight);line-height:var(--ui-heading-h1-line-height)}.ui-heading-h2{font-size:var(--ui-heading-h2-size);font-weight:var(--ui-heading-h2-weight);line-height:var(--ui-heading-h2-line-height)}.ui-heading-h3{font-size:var(--ui-heading-h3-size);font-weight:var(--ui-heading-h3-weight);line-height:var(--ui-heading-h3-line-height)}.ui-heading-h4{font-size:var(--ui-heading-h4-size);font-weight:var(--ui-heading-h4-weight);line-height:var(--ui-heading-h4-line-height)}.ui-heading-h5{font-size:var(--ui-heading-h5-size);font-weight:var(--ui-heading-h5-weight);line-height:var(--ui-heading-h5-line-height)}.ui-heading-h6{font-size:var(--ui-heading-h6-size);font-weight:var(--ui-heading-h6-weight);line-height:var(--ui-heading-h6-line-height)}.ui-text{margin:0;color:var(--ui-text-main);font-family:inherit}.ui-text-muted{color:var(--ui-text-muted)}.ui-text-body{font-size:var(--ui-text-body-size);line-height:var(--ui-text-body-line-height)}.ui-text-small{font-size:var(--ui-text-small-size);line-height:var(--ui-text-small-line-height)}.ui-text-caption{font-size:var(--ui-text-caption-size);line-height:var(--ui-text-caption-line-height);color:var(--ui-text-muted)}.ui-text-lead{font-size:var(--ui-text-lead-size);line-height:var(--ui-text-lead-line-height);font-weight:var(--ui-text-lead-weight);color:var(--ui-text-muted)}.ui-text-weight-normal{font-weight:400}.ui-text-weight-medium{font-weight:500}.ui-text-weight-semibold{font-weight:600}.ui-text-weight-bold{font-weight:700}.ui-text-truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ui-text-clamp{display:-webkit-box;-webkit-line-clamp:var(--ui-line-clamp, 1);-webkit-box-orient:vertical;overflow:hidden;max-width:100%}.ui-tabs{display:flex;flex-direction:column;width:100%}.ui-tabs-list{display:flex;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none}.ui-tabs-list-line{border-bottom:1px solid var(--ui-tabs-border-color)}.ui-tabs-list-line .ui-tabs-trigger{border-bottom:2px solid transparent;margin-bottom:-1px}.ui-tabs-list-line .ui-tabs-trigger[data-state=active]{color:var(--ui-tabs-active-color);border-bottom-color:var(--ui-tabs-active-color)}.ui-tabs-list-pills{display:inline-flex;flex-wrap:wrap;gap:.5rem;padding:0;background:transparent;border-radius:0}.ui-tabs-list-pills .ui-tabs-trigger{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;line-height:1.5;border-radius:var(--ui-radius-md);border:1px solid transparent;background-color:transparent;color:var(--ui-text-main);flex:none;min-width:auto}.ui-tabs-list-pills .ui-tabs-trigger[data-state=active]{background-color:var(--ui-primary);color:#fff;border-color:var(--ui-primary);box-shadow:none}.ui-tabs-list-pills .ui-tabs-trigger:hover:not(:disabled):not([data-state=active]){background-color:var(--ui-bg-subtle);color:var(--ui-text-main)}.ui-tabs-trigger{position:relative;display:flex;align-items:center;justify-content:center;padding:var(--ui-tabs-trigger-padding);font-size:var(--ui-tabs-trigger-font-size);font-weight:var(--ui-tabs-trigger-weight);color:var(--ui-tabs-inactive-color);background:transparent;cursor:pointer;white-space:nowrap;transition:all .2s cubic-bezier(.4,0,.2,1);outline:none;-webkit-user-select:none;user-select:none}.ui-tabs-trigger:hover:not(:disabled):not([data-state=active]){background-color:var(--ui-tabs-hover-bg);color:var(--ui-text-main)}.ui-tabs-trigger:disabled{opacity:.5;cursor:not-allowed}.ui-tabs-trigger:focus-visible{border-radius:var(--ui-radius-sm);outline:2px solid var(--ui-primary);outline-offset:2px}.ui-tabs-content{padding:var(--ui-tabs-content-padding);outline:none}.ui-table{width:100%;margin-bottom:1rem;color:var(--ui-text-main);background-color:transparent;border-collapse:collapse;font-family:var(--ui-font-family);font-size:.95rem}.ui-table th,.ui-table td{padding:.75rem;vertical-align:top;border-bottom:1px solid var(--ui-border);text-align:left}.ui-table th{font-weight:600;color:var(--ui-text-main);background-color:var(--ui-bg-subtle);border-bottom-width:2px}.ui-table-bordered,.ui-table-bordered th,.ui-table-bordered td{border:1px solid var(--ui-border)}.ui-table-striped tbody tr:nth-of-type(odd){background-color:var(--ui-bg-subtle)}.ui-table-hover tbody tr:hover{background-color:var(--ui-primary-light);color:var(--ui-primary-dark)}.ui-table-sm th,.ui-table-sm td{padding:.375rem;font-size:.875rem}.ui-table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
1
+ :root{--ui-primary: #2563eb;--ui-primary-hover: color-mix(in srgb, var(--ui-primary), black 10%);--ui-primary-active: color-mix(in srgb, var(--ui-primary), black 20%);--ui-primary-light: #eff6ff;--ui-text-main: #111827;--ui-text-muted: #6b7280;--ui-border: #e5e7eb;--ui-border-hover: #d1d5db;--ui-bg-main: #ffffff;--ui-bg-subtle: #f9fafb;--ui-danger: #ef4444;--ui-success: #10b981;--ui-warning: #f59e0b;--ui-font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ui-font-size-sm: 12px;--ui-font-size-md: 13px;--ui-font-size-lg: 16px;--ui-font-size-xl: 21px;--ui-spacing-xs: 4px;--ui-spacing-xsl: 6px;--ui-spacing-sm: 8px;--ui-spacing-md: 12px;--ui-spacing-lg: 16px;--ui-spacing-xl: 21px;--ui-spacing-xxl: 24px;--ui-radius-sm: 2px;--ui-radius-md: 4px;--ui-radius-lg: 8px;--ui-radius-xl: 16px;--ui-radius-full: 50%;--ui-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--ui-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ui-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -2px rgb(0 0 0 / .05);--ui-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 10px 10px -5px rgb(0 0 0 / .04);--ui-btn-bg: transparent;--ui-btn-text: var(--ui-text-main);--ui-btn-border: transparent;--ui-btn-radius: var(--ui-radius-md);--ui-btn-padding: .5rem 1rem;--ui-btn-font-size: .95rem;--ui-btn-radius-sm: var(--ui-radius-md);--ui-btn-radius-md: var(--ui-radius-md);--ui-btn-radius-lg: var(--ui-radius-md);--ui-btn-radius-xl: var(--ui-radius-md);--ui-btn-padding-sm: .1rem .5rem;--ui-btn-padding-md: .25rem .5rem;--ui-btn-padding-lg: .25rem 1rem;--ui-btn-padding-xl: .5rem 1rem;--ui-btn-font-size-sm: var(--ui-font-size-sm);--ui-btn-font-size-md: var(--ui-font-size-md);--ui-btn-font-size-lg: var(--ui-font-size-lg);--ui-btn-font-size-xl: var(--ui-font-size-xl);--ui-input-radius: var(--ui-radius-md);--ui-input-bg: var(--ui-bg-main);--ui-input-border: 1px solid var(--ui-border);--ui-input-color: var(--ui-text-main);--ui-input-placeholder: var(--ui-text-muted);--ui-input-focus-border: var(--ui-primary);--ui-input-focus-ring: 0 0 0 3px var(--ui-primary-light);--ui-input-error-border: var(--ui-danger);--ui-input-error-ring: 0 0 0 3px rgba(239, 68, 68, .15);--ui-input-size-sm-padding: .35rem .5rem;--ui-input-size-sm-font-size: var(--ui-font-size-sm);--ui-input-size-md-padding: .5rem .75rem;--ui-input-size-md-font-size: var(--ui-font-size-md);--ui-input-size-lg-padding: .7rem 1rem;--ui-input-size-lg-font-size: var(--ui-font-size-lg);--ui-input-size-xl-padding: 1rem 1.25rem;--ui-input-size-xl-font-size: var(--ui-font-size-xl);--ui-select-radius: var(--ui-radius-md);--ui-select-bg: var(--ui-bg-main);--ui-select-border: 1px solid var(--ui-border);--ui-select-color: var(--ui-text-main);--ui-select-placeholder: var(--ui-text-muted);--ui-select-focus-border: var(--ui-primary);--ui-select-focus-ring: 0 0 0 3px var(--ui-primary-light);--ui-select-error-border: var(--ui-danger);--ui-select-error-ring: 0 0 0 3px rgba(239, 68, 68, .15);--ui-select-menu-bg: var(--ui-bg-main);--ui-select-menu-border: 1px solid var(--ui-border);--ui-select-menu-shadow: var(--ui-shadow-lg);--ui-select-option-hover-bg: var(--ui-bg-subtle);--ui-select-option-selected-bg: var(--ui-primary-light);--ui-select-option-selected-color: var(--ui-primary);--ui-select-size-sm-padding: var(--ui-input-size-sm-padding);--ui-select-size-sm-font-size: var(--ui-input-size-sm-font-size);--ui-select-size-md-padding: var(--ui-input-size-md-padding);--ui-select-size-md-font-size: var(--ui-input-size-md-font-size);--ui-select-size-lg-padding: var(--ui-input-size-lg-padding);--ui-select-size-lg-font-size: var(--ui-input-size-lg-font-size);--ui-select-size-xl-padding: var(--ui-input-size-xl-padding);--ui-select-size-xl-font-size: var(--ui-input-size-xl-font-size);--ui-card-radius: var(--ui-radius-md);--ui-card-bg: var(--ui-bg-main);--ui-card-border: 1px solid var(--ui-border);--ui-card-shadow: none;--ui-card-padding: var(--ui-spacing-md);--ui-card-header-bg: transparent;--ui-card-header-padding: var(--ui-spacing-md) var(--ui-spacing-md);--ui-card-header-border: 1px solid var(--ui-border);--ui-card-header-font-size: var(--ui-font-size-lg);--ui-card-font-size: var(--ui-font-size-md);--ui-card-footer-bg: var(--ui-bg-subtle);--ui-card-footer-padding: var(--ui-spacing-md) var(--ui-spacing-md);--ui-card-footer-border: 1px solid var(--ui-border);--ui-modal-radius: var(--ui-radius-lg);--ui-modal-bg: var(--ui-bg-main);--ui-modal-shadow: var(--ui-shadow-xl);--ui-modal-backdrop-bg: rgba(0, 0, 0, .4);--ui-modal-backdrop-blur: none;--ui-modal-border: 1px solid var(--ui-border);--ui-modal-z-index: 50;--ui-modal-header-padding: 1.25rem 1.5rem;--ui-modal-body-padding: 1.5rem;--ui-modal-footer-padding: 1.25rem 1.5rem;--ui-modal-size-sm-width: 400px;--ui-modal-size-md-width: 550px;--ui-modal-size-lg-width: 750px;--ui-modal-size-xl-width: 1140px;--ui-checkbox-size: 1.125rem;--ui-checkbox-radius: var(--ui-radius-sm);--ui-checkbox-bg: var(--ui-bg-main);--ui-checkbox-border: 1px solid var(--ui-border);--ui-checkbox-checked-bg: var(--ui-primary);--ui-checkbox-checked-border: var(--ui-primary);--ui-checkbox-checked-color: #ffffff;--ui-checkbox-disabled-opacity: .6;--ui-checkbox-size-sm-size: 1rem;--ui-checkbox-size-sm-font-size: var(--ui-font-size-sm);--ui-checkbox-size-md-size: 1.125rem;--ui-checkbox-size-md-font-size: var(--ui-font-size-md);--ui-checkbox-size-lg-size: 1.35rem;--ui-checkbox-size-lg-font-size: var(--ui-font-size-lg);--ui-checkbox-size-xl-size: 1.65rem;--ui-checkbox-size-xl-font-size: var(--ui-font-size-xl);--ui-radio-size: 1.125rem;--ui-radio-bg: var(--ui-bg-main);--ui-radio-border: 1px solid var(--ui-border);--ui-radio-checked-bg: var(--ui-primary);--ui-radio-checked-border: var(--ui-primary);--ui-radio-checked-color: #ffffff;--ui-radio-disabled-opacity: .6;--ui-radio-size-sm-size: 1rem;--ui-radio-size-sm-font-size: var(--ui-font-size-sm);--ui-radio-size-md-size: 1.125rem;--ui-radio-size-md-font-size: var(--ui-font-size-md);--ui-radio-size-lg-size: 1.35rem;--ui-radio-size-lg-font-size: var(--ui-font-size-lg);--ui-radio-size-xl-size: 1.65rem;--ui-radio-size-xl-font-size: var(--ui-font-size-xl);--ui-switch-width: 2.75rem;--ui-switch-height: 1.5rem;--ui-switch-bg: var(--ui-bg-subtle);--ui-switch-checked-bg: var(--ui-primary);--ui-switch-thumb-size: 1.125rem;--ui-switch-thumb-bg: #ffffff;--ui-switch-thumb-shadow: 0 1px 2px 0 rgb(0 0 0 / .15);--ui-switch-focus-ring: 0 0 0 3px var(--ui-primary-light);--ui-switch-disabled-opacity: .6;--ui-switch-size-sm-width: 2rem;--ui-switch-size-sm-height: 1.125rem;--ui-switch-size-sm-thumb-size: .8rem;--ui-switch-size-md-width: 2.75rem;--ui-switch-size-md-height: 1.5rem;--ui-switch-size-md-thumb-size: 1.125rem;--ui-switch-size-lg-width: 3.5rem;--ui-switch-size-lg-height: 1.875rem;--ui-switch-size-lg-thumb-size: 1.45rem;--ui-switch-size-xl-width: 4.25rem;--ui-switch-size-xl-height: 2.25rem;--ui-switch-size-xl-thumb-size: 1.75rem;--ui-badge-radius: var(--ui-radius-sm);--ui-badge-font-weight: 500;--ui-badge-size-sm-padding: .125rem .5rem;--ui-badge-size-sm-font-size: .75rem;--ui-badge-size-md-padding: .25rem .75rem;--ui-badge-size-md-font-size: .875rem;--ui-badge-size-lg-padding: .375rem .875rem;--ui-badge-size-lg-font-size: 1rem;--ui-badge-primary-bg: var(--ui-primary);--ui-badge-primary-text: #ffffff;--ui-badge-success-bg: var(--ui-success);--ui-badge-success-text: #ffffff;--ui-badge-warning-bg: var(--ui-warning);--ui-badge-warning-text: #ffffff;--ui-badge-danger-bg: var(--ui-danger);--ui-badge-danger-text: #ffffff;--ui-badge-neutral-bg: var(--ui-bg-subtle);--ui-badge-neutral-text: var(--ui-text-main);--ui-heading-h1-size: 2.5rem;--ui-heading-h1-line-height: 1.2;--ui-heading-h1-weight: 700;--ui-heading-h2-size: 2rem;--ui-heading-h2-line-height: 1.3;--ui-heading-h2-weight: 600;--ui-heading-h3-size: 1.75rem;--ui-heading-h3-line-height: 1.3;--ui-heading-h3-weight: 600;--ui-heading-h4-size: 1.5rem;--ui-heading-h4-line-height: 1.4;--ui-heading-h4-weight: 600;--ui-heading-h5-size: 1.25rem;--ui-heading-h5-line-height: 1.4;--ui-heading-h5-weight: 600;--ui-heading-h6-size: 1rem;--ui-heading-h6-line-height: 1.4;--ui-heading-h6-weight: 600;--ui-text-body-size: 1rem;--ui-text-body-line-height: 1.5;--ui-text-small-size: .875rem;--ui-text-small-line-height: 1.4;--ui-text-caption-size: .75rem;--ui-text-caption-line-height: 1.4;--ui-text-lead-weight: 400;--ui-tabs-border-color: var(--ui-border);--ui-tabs-active-color: var(--ui-primary);--ui-tabs-inactive-color: var(--ui-text-muted);--ui-tabs-hover-bg: var(--ui-bg-subtle);--ui-tabs-trigger-padding: .75rem 1rem;--ui-tabs-trigger-weight: 500;--ui-tabs-trigger-font-size: .95rem;--ui-tabs-content-padding: 1rem 0}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}body{line-height:1;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--ui-font-size-md)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;outline:none}table{border-collapse:collapse}button{background:none;border:none;cursor:pointer}.ui-m-xs{margin:var(--ui-spacing-xs)}.ui-mt-xs{margin-top:var(--ui-spacing-xs)}.ui-mb-xs{margin-bottom:var(--ui-spacing-xs)}.ui-ml-xs{margin-left:var(--ui-spacing-xs)}.ui-mr-xs{margin-right:var(--ui-spacing-xs)}.ui-mx-xs{margin-left:var(--ui-spacing-xs);margin-right:var(--ui-spacing-xs)}.ui-my-xs{margin-top:var(--ui-spacing-xs);margin-bottom:var(--ui-spacing-xs)}.ui-p-xs{padding:var(--ui-spacing-xs)}.ui-pt-xs{padding-top:var(--ui-spacing-xs)}.ui-pb-xs{padding-bottom:var(--ui-spacing-xs)}.ui-pl-xs{padding-left:var(--ui-spacing-xs)}.ui-pr-xs{padding-right:var(--ui-spacing-xs)}.ui-px-xs{padding-left:var(--ui-spacing-xs);padding-right:var(--ui-spacing-xs)}.ui-py-xs{padding-top:var(--ui-spacing-xs);padding-bottom:var(--ui-spacing-xs)}.ui-m-xsl{margin:var(--ui-spacing-xsl)}.ui-mt-xsl{margin-top:var(--ui-spacing-xsl)}.ui-mb-xsl{margin-bottom:var(--ui-spacing-xsl)}.ui-ml-xsl{margin-left:var(--ui-spacing-xsl)}.ui-mr-xsl{margin-right:var(--ui-spacing-xsl)}.ui-mx-xsl{margin-left:var(--ui-spacing-xsl);margin-right:var(--ui-spacing-xsl)}.ui-my-xsl{margin-top:var(--ui-spacing-xsl);margin-bottom:var(--ui-spacing-xsl)}.ui-p-xsl{padding:var(--ui-spacing-xsl)}.ui-pt-xsl{padding-top:var(--ui-spacing-xsl)}.ui-pb-xsl{padding-bottom:var(--ui-spacing-xsl)}.ui-pl-xsl{padding-left:var(--ui-spacing-xsl)}.ui-pr-xsl{padding-right:var(--ui-spacing-xsl)}.ui-px-xsl{padding-left:var(--ui-spacing-xsl);padding-right:var(--ui-spacing-xsl)}.ui-py-xsl{padding-top:var(--ui-spacing-xsl);padding-bottom:var(--ui-spacing-xsl)}.ui-m-sm{margin:var(--ui-spacing-sm)}.ui-mt-sm{margin-top:var(--ui-spacing-sm)}.ui-mb-sm{margin-bottom:var(--ui-spacing-sm)}.ui-ml-sm{margin-left:var(--ui-spacing-sm)}.ui-mr-sm{margin-right:var(--ui-spacing-sm)}.ui-mx-sm{margin-left:var(--ui-spacing-sm);margin-right:var(--ui-spacing-sm)}.ui-my-sm{margin-top:var(--ui-spacing-sm);margin-bottom:var(--ui-spacing-sm)}.ui-p-sm{padding:var(--ui-spacing-sm)}.ui-pt-sm{padding-top:var(--ui-spacing-sm)}.ui-pb-sm{padding-bottom:var(--ui-spacing-sm)}.ui-pl-sm{padding-left:var(--ui-spacing-sm)}.ui-pr-sm{padding-right:var(--ui-spacing-sm)}.ui-px-sm{padding-left:var(--ui-spacing-sm);padding-right:var(--ui-spacing-sm)}.ui-py-sm{padding-top:var(--ui-spacing-sm);padding-bottom:var(--ui-spacing-sm)}.ui-m-md{margin:var(--ui-spacing-md)}.ui-mt-md{margin-top:var(--ui-spacing-md)}.ui-mb-md{margin-bottom:var(--ui-spacing-md)}.ui-ml-md{margin-left:var(--ui-spacing-md)}.ui-mr-md{margin-right:var(--ui-spacing-md)}.ui-mx-md{margin-left:var(--ui-spacing-md);margin-right:var(--ui-spacing-md)}.ui-my-md{margin-top:var(--ui-spacing-md);margin-bottom:var(--ui-spacing-md)}.ui-p-md{padding:var(--ui-spacing-md)}.ui-pt-md{padding-top:var(--ui-spacing-md)}.ui-pb-md{padding-bottom:var(--ui-spacing-md)}.ui-pl-md{padding-left:var(--ui-spacing-md)}.ui-pr-md{padding-right:var(--ui-spacing-md)}.ui-px-md{padding-left:var(--ui-spacing-md);padding-right:var(--ui-spacing-md)}.ui-py-md{padding-top:var(--ui-spacing-md);padding-bottom:var(--ui-spacing-md)}.ui-m-lg{margin:var(--ui-spacing-lg)}.ui-mt-lg{margin-top:var(--ui-spacing-lg)}.ui-mb-lg{margin-bottom:var(--ui-spacing-lg)}.ui-ml-lg{margin-left:var(--ui-spacing-lg)}.ui-mr-lg{margin-right:var(--ui-spacing-lg)}.ui-mx-lg{margin-left:var(--ui-spacing-lg);margin-right:var(--ui-spacing-lg)}.ui-my-lg{margin-top:var(--ui-spacing-lg);margin-bottom:var(--ui-spacing-lg)}.ui-p-lg{padding:var(--ui-spacing-lg)}.ui-pt-lg{padding-top:var(--ui-spacing-lg)}.ui-pb-lg{padding-bottom:var(--ui-spacing-lg)}.ui-pl-lg{padding-left:var(--ui-spacing-lg)}.ui-pr-lg{padding-right:var(--ui-spacing-lg)}.ui-px-lg{padding-left:var(--ui-spacing-lg);padding-right:var(--ui-spacing-lg)}.ui-py-lg{padding-top:var(--ui-spacing-lg);padding-bottom:var(--ui-spacing-lg)}.ui-m-xl{margin:var(--ui-spacing-xl)}.ui-mt-xl{margin-top:var(--ui-spacing-xl)}.ui-mb-xl{margin-bottom:var(--ui-spacing-xl)}.ui-ml-xl{margin-left:var(--ui-spacing-xl)}.ui-mr-xl{margin-right:var(--ui-spacing-xl)}.ui-mx-xl{margin-left:var(--ui-spacing-xl);margin-right:var(--ui-spacing-xl)}.ui-my-xl{margin-top:var(--ui-spacing-xl);margin-bottom:var(--ui-spacing-xl)}.ui-p-xl{padding:var(--ui-spacing-xl)}.ui-pt-xl{padding-top:var(--ui-spacing-xl)}.ui-pb-xl{padding-bottom:var(--ui-spacing-xl)}.ui-pl-xl{padding-left:var(--ui-spacing-xl)}.ui-pr-xl{padding-right:var(--ui-spacing-xl)}.ui-px-xl{padding-left:var(--ui-spacing-xl);padding-right:var(--ui-spacing-xl)}.ui-py-xl{padding-top:var(--ui-spacing-xl);padding-bottom:var(--ui-spacing-xl)}.ui-m-xxl{margin:var(--ui-spacing-xxl)}.ui-mt-xxl{margin-top:var(--ui-spacing-xxl)}.ui-mb-xxl{margin-bottom:var(--ui-spacing-xxl)}.ui-ml-xxl{margin-left:var(--ui-spacing-xxl)}.ui-mr-xxl{margin-right:var(--ui-spacing-xxl)}.ui-mx-xxl{margin-left:var(--ui-spacing-xxl);margin-right:var(--ui-spacing-xxl)}.ui-my-xxl{margin-top:var(--ui-spacing-xxl);margin-bottom:var(--ui-spacing-xxl)}.ui-p-xxl{padding:var(--ui-spacing-xxl)}.ui-pt-xxl{padding-top:var(--ui-spacing-xxl)}.ui-pb-xxl{padding-bottom:var(--ui-spacing-xxl)}.ui-pl-xxl{padding-left:var(--ui-spacing-xxl)}.ui-pr-xxl{padding-right:var(--ui-spacing-xxl)}.ui-px-xxl{padding-left:var(--ui-spacing-xxl);padding-right:var(--ui-spacing-xxl)}.ui-py-xxl{padding-top:var(--ui-spacing-xxl);padding-bottom:var(--ui-spacing-xxl)}.ui-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--ui-btn-padding);font-size:var(--ui-btn-font-size);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);line-height:1.5;text-decoration:none;-webkit-user-select:none;user-select:none}.ui-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ui-btn-primary{background-color:var(--ui-primary);color:#fff;border-color:var(--ui-primary)}.ui-btn-primary:hover{background-color:var(--ui-primary-hover);border-color:var(--ui-primary-hover)}.ui-btn-primary:active{background-color:var(--ui-primary-active)}.ui-btn-secondary{background-color:#fff;color:var(--ui-text-main);border:1px solid var(--ui-border);box-shadow:var(--ui-shadow-sm)}.ui-btn-secondary:hover{background-color:var(--ui-bg-subtle);border-color:var(--ui-border-hover);color:#000}.ui-btn-outline{background-color:transparent;color:var(--ui-primary);border-color:var(--ui-primary)}.ui-btn-outline:hover{background-color:var(--ui-primary-light)}.ui-btn-outline-danger{background-color:transparent;color:var(--ui-danger);border:1px solid var(--ui-danger)}.ui-btn-outline-danger:hover{background-color:color-mix(in srgb,var(--ui-danger),transparent 90%)}.ui-btn-outline-success{background-color:transparent;color:var(--ui-success);border:1px solid var(--ui-success)}.ui-btn-outline-success:hover{background-color:color-mix(in srgb,var(--ui-success),transparent 90%)}.ui-btn-outline-warning{background-color:transparent;color:var(--ui-warning);border:1px solid var(--ui-warning)}.ui-btn-outline-warning:hover{background-color:color-mix(in srgb,var(--ui-warning),transparent 90%)}.ui-btn-danger{background-color:var(--ui-danger);color:#fff;border-color:var(--ui-danger)}.ui-btn-danger:hover{background-color:color-mix(in srgb,var(--ui-danger),black 10%);border-color:color-mix(in srgb,var(--ui-danger),black 10%)}.ui-btn-success{background-color:var(--ui-success);color:#fff;border-color:var(--ui-success)}.ui-btn-success:hover{background-color:color-mix(in srgb,var(--ui-success),black 10%);border-color:color-mix(in srgb,var(--ui-success),black 10%)}.ui-btn-warning{background-color:var(--ui-warning);color:#fff;border-color:var(--ui-warning)}.ui-btn-warning:hover{background-color:color-mix(in srgb,var(--ui-warning),black 10%);border-color:color-mix(in srgb,var(--ui-warning),black 10%)}.ui-btn-ghost{background-color:transparent;color:var(--ui-text-main)}.ui-btn-ghost:hover{background-color:var(--ui-bg-subtle)}.ui-btn-sm{--ui-btn-padding: var(--ui-btn-padding-sm);--ui-btn-font-size: var(--ui-btn-font-size-sm);border-radius:var(--ui-btn-radius-sm, var(--ui-radius-sm))}.ui-btn-md{--ui-btn-padding: var(--ui-btn-padding-md);--ui-btn-font-size: var(--ui-btn-font-size-md);border-radius:var(--ui-btn-radius-md, var(--ui-radius-md))}.ui-btn-lg{--ui-btn-padding: var(--ui-btn-padding-lg);--ui-btn-font-size: var(--ui-btn-font-size-lg);border-radius:var(--ui-btn-radius-lg, var(--ui-radius-lg))}.ui-btn-xl{--ui-btn-padding: var(--ui-btn-padding-xl);--ui-btn-font-size: var(--ui-btn-font-size-xl);border-radius:var(--ui-btn-radius-xl, var(--ui-radius-xl))}.ui-btn:focus-visible{outline:2px solid var(--ui-primary);outline-offset:2px}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.6;cursor:not-allowed;pointer-events:none;filter:grayscale(.5)}.ui-input-wrapper{display:inline-flex;flex-direction:column;gap:.375rem}.ui-input-wrapper-full{display:flex;width:100%}.ui-input-error{border-color:var(--ui-danger)}.ui-input-error:focus{box-shadow:0 0 0 3px #ef444426}.ui-label{font-size:.875rem;font-weight:500;color:var(--ui-text-main)}.ui-input{display:block;width:100%;padding:var(--ui-input-size-md-padding);font-size:var(--ui-input-size-md-font-size);font-family:var(--ui-font-family);color:var(--ui-input-color);background-color:var(--ui-input-bg);border:var(--ui-input-border);border-radius:var(--ui-input-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.ui-input::placeholder{color:var(--ui-input-placeholder);opacity:.8}.ui-input:hover{border-color:var(--ui-border-hover)}.ui-input:focus{border-color:var(--ui-input-focus-border);outline:0;box-shadow:var(--ui-input-focus-ring)}.ui-input-sm{padding:var(--ui-input-size-sm-padding);font-size:var(--ui-input-size-sm-font-size)}.ui-input-md{padding:var(--ui-input-size-md-padding);font-size:var(--ui-input-size-md-font-size)}.ui-input-lg{padding:var(--ui-input-size-lg-padding);font-size:var(--ui-input-size-lg-font-size)}.ui-input-xl{padding:var(--ui-input-size-xl-padding);font-size:var(--ui-input-size-xl-font-size)}.ui-input-error{border-color:var(--ui-input-error-border)}.ui-input-error:focus{border-color:var(--ui-input-error-border);box-shadow:var(--ui-input-error-ring)}.ui-helper-text{font-size:.8rem;color:var(--ui-text-muted)}.ui-helper-text-error{color:var(--ui-danger)}.ui-card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:var(--ui-card-bg);border:var(--ui-card-border);border-radius:var(--ui-card-radius);box-shadow:var(--ui-card-shadow);transition:border-color .2s ease,box-shadow .2s ease}.ui-card:hover{border-color:var(--ui-border-hover)}.ui-card__header{padding:var(--ui-card-header-padding);margin-bottom:0;background-color:var(--ui-card-header-bg);border-bottom:var(--ui-card-header-border);font-weight:600;font-size:var(--ui-card-header-font-size);color:var(--ui-text-main);border-top-left-radius:calc(var(--ui-card-radius) - 1px);border-top-right-radius:calc(var(--ui-card-radius) - 1px)}.ui-card__body{flex:1 1 auto;padding:var(--ui-card-padding);color:var(--ui-text-muted);font-size:var(--ui-card-font-size);line-height:1.6}.ui-card__footer{padding:var(--ui-card-footer-padding);background-color:var(--ui-card-footer-bg);border-top:var(--ui-card-footer-border);display:flex;align-items:center;border-bottom-left-radius:calc(var(--ui-card-radius) - 1px);border-bottom-right-radius:calc(var(--ui-card-radius) - 1px)}.ui-modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background-color:var(--ui-modal-backdrop-bg);-webkit-backdrop-filter:var(--ui-modal-backdrop-blur);backdrop-filter:var(--ui-modal-backdrop-blur);z-index:var(--ui-modal-z-index);padding:1rem;animation:ui-modal-fade-in .15s linear}.ui-modal{position:relative;display:flex;flex-direction:column;width:100%;max-height:90vh;background-color:var(--ui-modal-bg);border:var(--ui-modal-border);border-radius:var(--ui-modal-radius);box-shadow:var(--ui-modal-shadow);color:var(--ui-text-main);animation:ui-modal-slide-down .3s ease-out}.ui-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-modal-header-padding);border-bottom:1px solid var(--ui-border)}.ui-modal-title{margin:0;font-size:1.125rem;font-weight:600}.ui-modal-close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background:transparent;border:none;cursor:pointer;color:var(--ui-text-muted);border-radius:var(--ui-radius-sm);transition:all .2s}.ui-modal-close:hover{background-color:var(--ui-bg-subtle);color:var(--ui-text-main)}.ui-modal-body{padding:var(--ui-modal-body-padding);overflow-y:auto;font-size:.95rem;line-height:1.5}.ui-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:var(--ui-modal-footer-padding);background-color:var(--ui-bg-subtle);border-top:1px solid var(--ui-border);border-bottom-left-radius:calc(var(--ui-modal-radius) - 1px);border-bottom-right-radius:calc(var(--ui-modal-radius) - 1px)}.ui-modal-sm{max-width:var(--ui-modal-size-sm-width)}.ui-modal-md{max-width:var(--ui-modal-size-md-width)}.ui-modal-lg{max-width:var(--ui-modal-size-lg-width)}.ui-modal-xl{max-width:var(--ui-modal-size-xl-width)}@keyframes ui-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes ui-modal-slide-down{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:none}}@keyframes ui-modal-slide-up{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-50px)}}.ui-modal-overlay.ui-modal-closing{animation:ui-modal-fade-out .15s linear forwards}.ui-modal.ui-modal-closing{animation:ui-modal-slide-up .3s ease-out forwards}.ui-select-wrapper{position:relative;width:100%}.ui-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;text-align:left;background-color:var(--ui-select-bg);border:var(--ui-select-border);border-radius:var(--ui-select-radius);color:var(--ui-select-color);transition:all .15s ease-in-out}.ui-select-trigger:focus{outline:none;border-color:var(--ui-select-focus-border);box-shadow:var(--ui-select-focus-ring)}.ui-select-trigger.ui-select-error{border-color:var(--ui-select-error-border)}.ui-select-trigger.ui-select-error:focus{box-shadow:var(--ui-select-error-ring)}.ui-select-trigger.ui-select-disabled{opacity:.6;cursor:not-allowed;background-color:var(--ui-bg-subtle)}.ui-select-placeholder{color:var(--ui-select-placeholder)}.ui-select-icon{width:1.25rem;height:1.25rem;color:var(--ui-text-muted);transition:transform .2s}.ui-select-open .ui-select-icon{transform:rotate(180deg)}.ui-select-menu{position:absolute;top:100%;left:0;width:100%;margin-top:4px;padding:4px;background-color:var(--ui-select-menu-bg);border:var(--ui-select-menu-border);border-radius:var(--ui-select-radius);box-shadow:var(--ui-select-menu-shadow);z-index:10;max-height:250px;overflow-y:auto;animation:ui-select-fade-in .1s ease-out}.ui-select-option{display:flex;align-items:center;width:100%;padding:.5rem .75rem;font-size:.95rem;cursor:pointer;border-radius:var(--ui-radius-sm);color:var(--ui-text-main);transition:background-color .1s}.ui-select-option:hover{background-color:var(--ui-select-option-hover-bg)}.ui-select-option.ui-select-selected{background-color:var(--ui-select-option-selected-bg);color:var(--ui-select-option-selected-color);font-weight:500}.ui-select-sm{padding:var(--ui-select-size-sm-padding);font-size:var(--ui-select-size-sm-font-size)}.ui-select-md{padding:var(--ui-select-size-md-padding);font-size:var(--ui-select-size-md-font-size)}.ui-select-lg{padding:var(--ui-select-size-lg-padding);font-size:var(--ui-select-size-lg-font-size)}.ui-select-xl{padding:var(--ui-select-size-xl-padding);font-size:var(--ui-select-size-xl-font-size)}@keyframes ui-select-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ui-checkbox-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:var(--ui-checkbox-font-size, .95rem);-webkit-user-select:none;user-select:none;color:var(--ui-text-main)}.ui-checkbox-label.ui-checkbox-disabled{cursor:not-allowed;opacity:var(--ui-checkbox-disabled-opacity)}.ui-checkbox-input{position:absolute;opacity:0;width:0;height:0}.ui-checkbox-custom{display:flex;align-items:center;justify-content:center;width:var(--ui-checkbox-size);height:var(--ui-checkbox-size);background-color:var(--ui-checkbox-bg);border:var(--ui-checkbox-border);border-radius:var(--ui-checkbox-radius);transition:all .15s ease-in-out;color:transparent;flex-shrink:0}.ui-checkbox-label:hover .ui-checkbox-custom{border-color:var(--ui-border-hover)}.ui-checkbox-input:focus+.ui-checkbox-custom{box-shadow:0 0 0 3px var(--ui-primary-light);border-color:var(--ui-primary)}.ui-checkbox-input:checked+.ui-checkbox-custom{background-color:var(--ui-checkbox-checked-bg);border-color:var(--ui-checkbox-checked-border);color:var(--ui-checkbox-checked-color)}.ui-checkbox-icon{width:.8em;height:.8em;stroke-width:3}.ui-checkbox-sm{--ui-checkbox-size: var(--ui-checkbox-size-sm-size);font-size:var(--ui-checkbox-size-sm-font-size)}.ui-checkbox-md{--ui-checkbox-size: var(--ui-checkbox-size-md-size);font-size:var(--ui-checkbox-size-md-font-size)}.ui-checkbox-lg{--ui-checkbox-size: var(--ui-checkbox-size-lg-size);font-size:var(--ui-checkbox-size-lg-font-size)}.ui-checkbox-xl{--ui-checkbox-size: var(--ui-checkbox-size-xl-size);font-size:var(--ui-checkbox-size-xl-font-size)}.ui-checkbox-primary .ui-checkbox-input:checked+.ui-checkbox-custom{background-color:var(--ui-primary);border-color:var(--ui-primary)}.ui-checkbox-primary .ui-checkbox-input:focus+.ui-checkbox-custom{box-shadow:0 0 0 3px var(--ui-primary-light);border-color:var(--ui-primary)}.ui-checkbox-success .ui-checkbox-input:checked+.ui-checkbox-custom{background-color:var(--ui-success);border-color:var(--ui-success)}.ui-checkbox-success .ui-checkbox-input:focus+.ui-checkbox-custom{box-shadow:0 0 0 3px #10b98140;border-color:var(--ui-success)}.ui-checkbox-warning .ui-checkbox-input:checked+.ui-checkbox-custom{background-color:var(--ui-warning);border-color:var(--ui-warning)}.ui-checkbox-warning .ui-checkbox-input:focus+.ui-checkbox-custom{box-shadow:0 0 0 3px #f59e0b40;border-color:var(--ui-warning)}.ui-checkbox-danger .ui-checkbox-input:checked+.ui-checkbox-custom{background-color:var(--ui-danger);border-color:var(--ui-danger)}.ui-checkbox-danger .ui-checkbox-input:focus+.ui-checkbox-custom{box-shadow:0 0 0 3px #ef444440;border-color:var(--ui-danger)}.ui-radio-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:var(--ui-radio-font-size, .95rem);-webkit-user-select:none;user-select:none;color:var(--ui-text-main)}.ui-radio-label.ui-radio-disabled{cursor:not-allowed;opacity:var(--ui-radio-disabled-opacity)}.ui-radio-input{position:absolute;opacity:0;width:0;height:0}.ui-radio-custom{display:flex;align-items:center;justify-content:center;width:var(--ui-radio-size);height:var(--ui-radio-size);background-color:var(--ui-radio-bg);border:var(--ui-radio-border);border-radius:50%;transition:all .15s ease-in-out;flex-shrink:0}.ui-radio-dot{width:.5em;height:.5em;background-color:var(--ui-radio-checked-color);border-radius:50%;transform:scale(0);transition:transform .15s ease-in-out}.ui-radio-label:hover .ui-radio-custom{border-color:var(--ui-border-hover)}.ui-radio-input:focus+.ui-radio-custom{box-shadow:0 0 0 3px var(--ui-primary-light);border-color:var(--ui-primary)}.ui-radio-input:checked+.ui-radio-custom{background-color:var(--ui-radio-checked-bg);border-color:var(--ui-radio-checked-border)}.ui-radio-input:checked+.ui-radio-custom .ui-radio-dot{transform:scale(1)}.ui-radio-sm{--ui-radio-size: var(--ui-radio-size-sm-size);font-size:var(--ui-radio-size-sm-font-size)}.ui-radio-md{--ui-radio-size: var(--ui-radio-size-md-size);font-size:var(--ui-radio-size-md-font-size)}.ui-radio-lg{--ui-radio-size: var(--ui-radio-size-lg-size);font-size:var(--ui-radio-size-lg-font-size)}.ui-radio-xl{--ui-radio-size: var(--ui-radio-size-xl-size);font-size:var(--ui-radio-size-xl-font-size)}.ui-radio-primary .ui-radio-input:checked+.ui-radio-custom{background-color:var(--ui-primary);border-color:var(--ui-primary)}.ui-radio-primary .ui-radio-input:focus+.ui-radio-custom{box-shadow:0 0 0 3px var(--ui-primary-light);border-color:var(--ui-primary)}.ui-radio-success .ui-radio-input:checked+.ui-radio-custom{background-color:var(--ui-success);border-color:var(--ui-success)}.ui-radio-success .ui-radio-input:focus+.ui-radio-custom{box-shadow:0 0 0 3px #10b98140;border-color:var(--ui-success)}.ui-radio-warning .ui-radio-input:checked+.ui-radio-custom{background-color:var(--ui-warning);border-color:var(--ui-warning)}.ui-radio-warning .ui-radio-input:focus+.ui-radio-custom{box-shadow:0 0 0 3px #f59e0b40;border-color:var(--ui-warning)}.ui-radio-danger .ui-radio-input:checked+.ui-radio-custom{background-color:var(--ui-danger);border-color:var(--ui-danger)}.ui-radio-danger .ui-radio-input:focus+.ui-radio-custom{box-shadow:0 0 0 3px #ef444440;border-color:var(--ui-danger)}.ui-switch-label{display:inline-flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.95rem;-webkit-user-select:none;user-select:none;color:var(--ui-text-main)}.ui-switch-label.ui-switch-disabled{cursor:not-allowed;opacity:var(--ui-switch-disabled-opacity)}.ui-switch-input{position:absolute;opacity:0;width:0;height:0}.ui-switch-track{position:relative;width:var(--ui-switch-width);height:var(--ui-switch-height);background-color:var(--ui-border);border-radius:9999px;transition:background-color .2s ease-in-out;flex-shrink:0}.ui-switch-input:checked+.ui-switch-track{background-color:var(--ui-switch-checked-bg)}.ui-switch-thumb{position:absolute;top:50%;transform:translateY(-50%);left:2px;width:var(--ui-switch-thumb-size);height:var(--ui-switch-thumb-size);background-color:var(--ui-switch-thumb-bg);border-radius:50%;box-shadow:var(--ui-switch-thumb-shadow);transition:left .2s cubic-bezier(.4,0,.2,1)}.ui-switch-input:checked+.ui-switch-track .ui-switch-thumb{left:calc(100% - var(--ui-switch-thumb-size) - 2px)}.ui-switch-input:focus+.ui-switch-track{box-shadow:var(--ui-switch-focus-ring)}.ui-switch-sm{--ui-switch-width: var(--ui-switch-size-sm-width);--ui-switch-height: var(--ui-switch-size-sm-height);--ui-switch-thumb-size: var(--ui-switch-size-sm-thumb-size);font-size:var(--ui-font-size-sm)}.ui-switch-md{--ui-switch-width: var(--ui-switch-size-md-width);--ui-switch-height: var(--ui-switch-size-md-height);--ui-switch-thumb-size: var(--ui-switch-size-md-thumb-size);font-size:var(--ui-font-size-md)}.ui-switch-lg{--ui-switch-width: var(--ui-switch-size-lg-width);--ui-switch-height: var(--ui-switch-size-lg-height);--ui-switch-thumb-size: var(--ui-switch-size-lg-thumb-size);font-size:var(--ui-font-size-lg)}.ui-switch-xl{--ui-switch-width: var(--ui-switch-size-xl-width);--ui-switch-height: var(--ui-switch-size-xl-height);--ui-switch-thumb-size: var(--ui-switch-size-xl-thumb-size);font-size:var(--ui-font-size-xl)}.ui-switch-primary .ui-switch-input:focus+.ui-switch-track{box-shadow:0 0 0 3px var(--ui-primary-light)}.ui-switch-success .ui-switch-input:checked+.ui-switch-track{background-color:var(--ui-success)}.ui-switch-success .ui-switch-input:focus+.ui-switch-track{box-shadow:0 0 0 3px #10b98140}.ui-switch-warning .ui-switch-input:checked+.ui-switch-track{background-color:var(--ui-warning)}.ui-switch-warning .ui-switch-input:focus+.ui-switch-track{box-shadow:0 0 0 3px #f59e0b40}.ui-switch-danger .ui-switch-input:checked+.ui-switch-track{background-color:var(--ui-danger)}.ui-switch-danger .ui-switch-input:focus+.ui-switch-track{box-shadow:0 0 0 3px #ef444440}.ui-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:var(--ui-badge-radius);font-weight:var(--ui-badge-font-weight);line-height:1;transition:all .2s ease}.ui-badge-pill{border-radius:9999px}.ui-badge-sm{padding:var(--ui-badge-size-sm-padding);font-size:var(--ui-badge-size-sm-font-size)}.ui-badge-md{padding:var(--ui-badge-size-md-padding);font-size:var(--ui-badge-size-md-font-size)}.ui-badge-lg{padding:var(--ui-badge-size-lg-padding);font-size:var(--ui-badge-size-lg-font-size)}.ui-badge-primary{background-color:var(--ui-badge-primary-bg);color:var(--ui-badge-primary-text)}.ui-badge-success{background-color:var(--ui-badge-success-bg);color:var(--ui-badge-success-text)}.ui-badge-warning{background-color:var(--ui-badge-warning-bg);color:var(--ui-badge-warning-text)}.ui-badge-danger{background-color:var(--ui-badge-danger-bg);color:var(--ui-badge-danger-text)}.ui-badge-neutral{background-color:var(--ui-badge-neutral-bg);color:var(--ui-badge-neutral-text);border:1px solid var(--ui-border)}.ui-heading{margin:0;color:var(--ui-text-main);font-family:inherit}.ui-heading-h1{font-size:var(--ui-heading-h1-size);font-weight:var(--ui-heading-h1-weight);line-height:var(--ui-heading-h1-line-height)}.ui-heading-h2{font-size:var(--ui-heading-h2-size);font-weight:var(--ui-heading-h2-weight);line-height:var(--ui-heading-h2-line-height)}.ui-heading-h3{font-size:var(--ui-heading-h3-size);font-weight:var(--ui-heading-h3-weight);line-height:var(--ui-heading-h3-line-height)}.ui-heading-h4{font-size:var(--ui-heading-h4-size);font-weight:var(--ui-heading-h4-weight);line-height:var(--ui-heading-h4-line-height)}.ui-heading-h5{font-size:var(--ui-heading-h5-size);font-weight:var(--ui-heading-h5-weight);line-height:var(--ui-heading-h5-line-height)}.ui-heading-h6{font-size:var(--ui-heading-h6-size);font-weight:var(--ui-heading-h6-weight);line-height:var(--ui-heading-h6-line-height)}.ui-text{margin:0;color:var(--ui-text-main);font-family:inherit}.ui-text-muted{color:var(--ui-text-muted)}.ui-text-body{font-size:var(--ui-text-body-size);line-height:var(--ui-text-body-line-height)}.ui-text-small{font-size:var(--ui-text-small-size);line-height:var(--ui-text-small-line-height)}.ui-text-caption{font-size:var(--ui-text-caption-size);line-height:var(--ui-text-caption-line-height);color:var(--ui-text-muted)}.ui-text-lead{font-size:var(--ui-text-lead-size);line-height:var(--ui-text-lead-line-height);font-weight:var(--ui-text-lead-weight);color:var(--ui-text-muted)}.ui-text-weight-normal{font-weight:400}.ui-text-weight-medium{font-weight:500}.ui-text-weight-semibold{font-weight:600}.ui-text-weight-bold{font-weight:700}.ui-text-truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ui-text-clamp{display:-webkit-box;-webkit-line-clamp:var(--ui-line-clamp, 1);-webkit-box-orient:vertical;overflow:hidden;max-width:100%}.ui-tabs{display:flex;flex-direction:column;width:100%}.ui-tabs-list{display:flex;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none}.ui-tabs-list-line{border-bottom:1px solid var(--ui-tabs-border-color)}.ui-tabs-list-line .ui-tabs-trigger{border-bottom:2px solid transparent;margin-bottom:-1px}.ui-tabs-list-line .ui-tabs-trigger[data-state=active]{color:var(--ui-tabs-active-color);border-bottom-color:var(--ui-tabs-active-color)}.ui-tabs-list-pills{display:inline-flex;flex-wrap:wrap;gap:.5rem;padding:0;background:transparent;border-radius:0}.ui-tabs-list-pills .ui-tabs-trigger{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;line-height:1.5;border-radius:var(--ui-radius-md);border:1px solid transparent;background-color:transparent;color:var(--ui-text-main);flex:none;min-width:auto}.ui-tabs-list-pills .ui-tabs-trigger[data-state=active]{background-color:var(--ui-primary);color:#fff;border-color:var(--ui-primary);box-shadow:none}.ui-tabs-list-pills .ui-tabs-trigger:hover:not(:disabled):not([data-state=active]){background-color:var(--ui-bg-subtle);color:var(--ui-text-main)}.ui-tabs-trigger{position:relative;display:flex;align-items:center;justify-content:center;padding:var(--ui-tabs-trigger-padding);font-size:var(--ui-tabs-trigger-font-size);font-weight:var(--ui-tabs-trigger-weight);color:var(--ui-tabs-inactive-color);background:transparent;cursor:pointer;white-space:nowrap;transition:all .2s cubic-bezier(.4,0,.2,1);outline:none;-webkit-user-select:none;user-select:none}.ui-tabs-trigger:hover:not(:disabled):not([data-state=active]){background-color:var(--ui-tabs-hover-bg);color:var(--ui-text-main)}.ui-tabs-trigger:disabled{opacity:.5;cursor:not-allowed}.ui-tabs-trigger:focus-visible{border-radius:var(--ui-radius-sm);outline:2px solid var(--ui-primary);outline-offset:2px}.ui-tabs-content{padding:var(--ui-tabs-content-padding);outline:none}.ui-table{width:100%;margin-bottom:1rem;color:var(--ui-text-main);background-color:transparent;border-collapse:collapse;font-family:var(--ui-font-family);font-size:.95rem}.ui-table th,.ui-table td{padding:.75rem;vertical-align:top;border-bottom:1px solid var(--ui-border);text-align:left}.ui-table th{font-weight:600;color:var(--ui-text-main);background-color:var(--ui-bg-subtle);border-bottom-width:2px}.ui-table-bordered,.ui-table-bordered th,.ui-table-bordered td{border:1px solid var(--ui-border)}.ui-table-striped tbody tr:nth-of-type(odd){background-color:var(--ui-bg-subtle)}.ui-table-hover tbody tr:hover{background-color:var(--ui-primary-light);color:var(--ui-primary-dark)}.ui-table-sm th,.ui-table-sm td{padding:.375rem;font-size:.875rem}.ui-table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */;/* empty css */;/* empty css */const r=require("./components/Button/Button.cjs"),o=require("./components/Input/Input.cjs"),t=require("./components/Card/Card.cjs"),e=require("./components/Modal/Modal.cjs"),a=require("./components/Select/Select.cjs"),i=require("./components/Checkbox/Checkbox.cjs"),d=require("./components/Radio/Radio.cjs"),u=require("./components/Switch/Switch.cjs"),c=require("./components/Badge/Badge.cjs"),n=require("./components/Typography/Heading.cjs"),s=require("./components/Typography/Text.cjs"),l=require("./components/Tabs/Tabs.cjs"),q=require("./components/Table/Table.cjs"),T=require("./theme.cjs");exports.Button=r.Button;exports.Input=o.Input;exports.Card=t.Card;exports.Modal=e.Modal;exports.ModalBody=e.ModalBody;exports.ModalFooter=e.ModalFooter;exports.ModalHeader=e.ModalHeader;exports.Select=a.Select;exports.Checkbox=i.Checkbox;exports.Radio=d.Radio;exports.Switch=u.Switch;exports.Badge=c.Badge;exports.Heading=n.Heading;exports.Text=s.Text;exports.Tabs=l.Tabs;exports.Table=q.Table;exports.ThemeProvider=T.ThemeProvider;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react/jsx-runtime"),f=require("react"),y=require("prop-types");function l(o){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const e in o)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(s,e,r.get?r:{enumerable:!0,get:()=>o[e]})}}return s.default=o,Object.freeze(s)}const u=l(y);function d(o){return o&&typeof o=="object"&&!Array.isArray(o)}function b(o){const s={},e=(r,t)=>{Object.keys(r).forEach(i=>{const n=r[i],a=`${t}-${i}`;d(n)?e(n,a):s[`-${a}`]=n})};return o.colors&&Object.keys(o.colors).forEach(r=>{s[`--ui-${r}`]=o.colors[r]}),o.components&&Object.keys(o.components).forEach(r=>{const t=o.components[r];t&&e(t,`-ui-${r.toLowerCase()}`)}),o.spacing&&e(o.spacing,"-ui-spacing"),o.radius&&e(o.radius,"-ui-radius"),o.shadows&&e(o.shadows,"-ui-shadow"),o.typography&&e(o.typography,"-ui-typography"),s}const c=({theme:o,children:s})=>{const e=f.useMemo(()=>b(o),[o]);return p.jsx("div",{style:{display:"contents",...e},children:s})};c.displayName="ThemeProvider";c.propTypes={theme:u.object.isRequired,children:u.node};exports.ThemeProvider=c;
@@ -0,0 +1,23 @@
1
+ import { HTMLAttributes } from 'react';
2
+
3
+ /**
4
+ * Badge/Tag component properties.
5
+ */
6
+ export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
7
+ /**
8
+ * The visual style variant.
9
+ * @default 'primary'
10
+ */
11
+ variant?: 'primary' | 'success' | 'warning' | 'danger' | 'neutral';
12
+ /**
13
+ * The size of the badge.
14
+ * @default 'md'
15
+ */
16
+ size?: 'sm' | 'md' | 'lg';
17
+ /**
18
+ * The shape of the badge.
19
+ * @default 'rounded'
20
+ */
21
+ shape?: 'rounded' | 'pill';
22
+ }
23
+ export declare const Badge: import('react').ForwardRefExoticComponent<BadgeProps & import('react').RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,31 @@
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { forwardRef as t } from "react";
3
+ import { clsx as f } from "clsx";
4
+ import * as r from "prop-types";
5
+ /* empty css */
6
+ const e = t(
7
+ ({ className: a, children: o, variant: p = "primary", size: i = "md", shape: m = "rounded", ...s }, d) => /* @__PURE__ */ n(
8
+ "span",
9
+ {
10
+ ref: d,
11
+ className: f(
12
+ "ui-badge",
13
+ `ui-badge-${p}`,
14
+ `ui-badge-${i}`,
15
+ `ui-badge-${m}`,
16
+ a
17
+ ),
18
+ ...s,
19
+ children: o
20
+ }
21
+ )
22
+ );
23
+ e.displayName = "Badge";
24
+ e.propTypes = {
25
+ variant: r.oneOf(["primary", "success", "warning", "danger", "neutral"]),
26
+ size: r.oneOf(["sm", "md", "lg"]),
27
+ shape: r.oneOf(["rounded", "pill"])
28
+ };
29
+ export {
30
+ e as Badge
31
+ };
@@ -0,0 +1,22 @@
1
+ import { ButtonHTMLAttributes } from 'react';
2
+
3
+ /**
4
+ * Button component properties.
5
+ */
6
+ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
7
+ /**
8
+ * The visual style variant of the button.
9
+ * @default 'primary'
10
+ */
11
+ variant?: 'primary' | 'secondary' | 'outline' | 'danger' | 'success' | 'warning' | 'ghost' | 'outline-danger' | 'outline-success' | 'outline-warning';
12
+ /**
13
+ * The size of the button.
14
+ * @default 'md'
15
+ */
16
+ size?: 'sm' | 'md' | 'lg' | 'xl';
17
+ }
18
+ /**
19
+ * Primary action component.
20
+ * Supports various visual styles, sizes, and standard HTML button attributes.
21
+ */
22
+ export declare const Button: import('react').ForwardRefExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,24 @@
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { forwardRef as p } from "react";
3
+ import { clsx as u } from "clsx";
4
+ import * as o from "prop-types";
5
+ /* empty css */
6
+ const r = p(
7
+ ({ className: t, variant: n = "primary", size: s = "md", ...e }, i) => {
8
+ const a = u(
9
+ "ui-btn",
10
+ `ui-btn-${n}`,
11
+ `ui-btn-${s}`,
12
+ t
13
+ );
14
+ return /* @__PURE__ */ m("button", { ref: i, className: a, ...e });
15
+ }
16
+ );
17
+ r.displayName = "Button";
18
+ r.propTypes = {
19
+ variant: o.oneOf(["primary", "secondary", "outline", "danger", "success", "warning", "ghost", "outline-danger", "outline-success", "outline-warning"]),
20
+ size: o.oneOf(["sm", "md", "lg", "xl"])
21
+ };
22
+ export {
23
+ r as Button
24
+ };
@@ -0,0 +1,21 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+
3
+ /**
4
+ * Card component properties.
5
+ */
6
+ interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
7
+ /**
8
+ * Content to be displayed in the card header.
9
+ */
10
+ title?: ReactNode;
11
+ /**
12
+ * Content to be displayed in the card footer.
13
+ */
14
+ footer?: ReactNode;
15
+ }
16
+ /**
17
+ * Container component for content grouping.
18
+ * Includes slots for header (title) and footer.
19
+ */
20
+ export declare const Card: import('react').ForwardRefExoticComponent<CardProps & import('react').RefAttributes<HTMLDivElement>>;
21
+ export {};
@@ -0,0 +1,20 @@
1
+ import { jsxs as p, jsx as r } from "react/jsx-runtime";
2
+ import { forwardRef as l } from "react";
3
+ import { clsx as t } from "clsx";
4
+ import * as o from "prop-types";
5
+ /* empty css */
6
+ const e = l(
7
+ ({ className: i, title: a, footer: d, children: s, ...m }, c) => /* @__PURE__ */ p("div", { ref: c, className: t("ui-card", i), ...m, children: [
8
+ a && /* @__PURE__ */ r("div", { className: "ui-card__header", children: a }),
9
+ /* @__PURE__ */ r("div", { className: "ui-card__body", children: s }),
10
+ d && /* @__PURE__ */ r("div", { className: "ui-card__footer", children: d })
11
+ ] })
12
+ );
13
+ e.displayName = "Card";
14
+ e.propTypes = {
15
+ title: o.node,
16
+ footer: o.node
17
+ };
18
+ export {
19
+ e as Card
20
+ };
@@ -0,0 +1,26 @@
1
+ import { InputHTMLAttributes, ReactNode } from 'react';
2
+
3
+ /**
4
+ * Checkbox component properties.
5
+ */
6
+ export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
7
+ /**
8
+ * Label to display next to the checkbox.
9
+ */
10
+ label?: ReactNode;
11
+ /**
12
+ * If true, the checkbox will be styled with an error state.
13
+ */
14
+ error?: boolean;
15
+ /**
16
+ * The size of the checkbox.
17
+ * @default 'md'
18
+ */
19
+ size?: 'sm' | 'md' | 'lg' | 'xl';
20
+ /**
21
+ * The visual color variant.
22
+ * @default 'primary'
23
+ */
24
+ variant?: 'primary' | 'success' | 'warning' | 'danger';
25
+ }
26
+ export declare const Checkbox: import('react').ForwardRefExoticComponent<CheckboxProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,54 @@
1
+ import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as t } from "react";
3
+ import { clsx as x } from "clsx";
4
+ import * as o from "prop-types";
5
+ /* empty css */
6
+ const i = t(
7
+ ({ className: s, label: r, error: u, disabled: c, size: n = "md", variant: a = "primary", ...l }, p) => /* @__PURE__ */ m(
8
+ "label",
9
+ {
10
+ className: x(
11
+ "ui-checkbox-label",
12
+ `ui-checkbox-${n}`,
13
+ `ui-checkbox-${a}`,
14
+ c && "ui-checkbox-disabled",
15
+ s
16
+ ),
17
+ children: [
18
+ /* @__PURE__ */ e(
19
+ "input",
20
+ {
21
+ type: "checkbox",
22
+ className: "ui-checkbox-input",
23
+ disabled: c,
24
+ ref: p,
25
+ ...l
26
+ }
27
+ ),
28
+ /* @__PURE__ */ e("span", { className: "ui-checkbox-custom", children: /* @__PURE__ */ e(
29
+ "svg",
30
+ {
31
+ className: "ui-checkbox-icon",
32
+ viewBox: "0 0 24 24",
33
+ fill: "none",
34
+ stroke: "currentColor",
35
+ strokeLinecap: "round",
36
+ strokeLinejoin: "round",
37
+ children: /* @__PURE__ */ e("polyline", { points: "20 6 9 17 4 12" })
38
+ }
39
+ ) }),
40
+ r && /* @__PURE__ */ e("span", { className: "ui-checkbox-text", children: r })
41
+ ]
42
+ }
43
+ )
44
+ );
45
+ i.displayName = "Checkbox";
46
+ i.propTypes = {
47
+ label: o.node,
48
+ error: o.bool,
49
+ size: o.oneOf(["sm", "md", "lg", "xl"]),
50
+ variant: o.oneOf(["primary", "success", "warning", "danger"])
51
+ };
52
+ export {
53
+ i as Checkbox
54
+ };
@@ -0,0 +1,35 @@
1
+ import { InputHTMLAttributes } from 'react';
2
+
3
+ /**
4
+ * Input component properties.
5
+ */
6
+ interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
7
+ /**
8
+ * Label text displayed above the input.
9
+ */
10
+ label?: string;
11
+ /**
12
+ * If true, the input will be styled with an error state.
13
+ * @default false
14
+ */
15
+ error?: boolean;
16
+ /**
17
+ * Helper text displayed below the input.
18
+ */
19
+ helperText?: string;
20
+ /**
21
+ * If true, the input will take up the full width of its container.
22
+ * @default false
23
+ */
24
+ fullWidth?: boolean;
25
+ /**
26
+ * The size of the input.
27
+ * @default 'md'
28
+ */
29
+ size?: 'sm' | 'md' | 'lg' | 'xl';
30
+ }
31
+ /**
32
+ * Text input component with label, error state, and helper text support.
33
+ */
34
+ export declare const Input: import('react').ForwardRefExoticComponent<InputProps & import('react').RefAttributes<HTMLInputElement>>;
35
+ export {};