@possibly6400/ui-kit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 UI Kit Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
package/README.md ADDED
@@ -0,0 +1,411 @@
1
+ # UI Kit
2
+
3
+ A reusable, themeable component library built with React, TypeScript, and Tailwind CSS.
4
+
5
+ ## Features
6
+
7
+ - 🎨 **Themeable**: Supports dark and light modes with CSS variables
8
+ - 🔧 **TypeScript**: Fully typed components and props
9
+ - 🎯 **Accessible**: Built with accessibility best practices
10
+ - 📦 **Packaged**: Ready for npm distribution
11
+ - 🧩 **Composable**: Primitive components with semantic wrappers
12
+ - âš¡ **Lightweight**: No external dependencies except React
13
+
14
+ ## Components
15
+
16
+ ### Primitive Components
17
+
18
+ - **Button**: Generic visual button with variants, sizes, and states
19
+ - **Input**: Form input field with error states
20
+ - **Checkbox**: Animated SVG checkbox with smooth checkmark animation and label support
21
+ - **RadioButton**: Windows-style radio button with RadioGroup support for form selections
22
+ - **Toggle**: Switch/toggle component
23
+ - **Loader**: Animated loading spinner with rotating faces and glowing effects
24
+ - **ThemeSwitch**: Animated dark/light mode toggle with sun/moon and stars/clouds visual effects
25
+
26
+ ### Semantic Wrappers
27
+
28
+ - **Form**: Animated form container with rotating border effect, backdrop blur, and composable form components
29
+ - **SubmitButton**: Button wrapper for form submissions with loading/success states
30
+
31
+ ## Requirements
32
+
33
+ - React 18.0.0 or higher
34
+ - React DOM 18.0.0 or higher
35
+ - Node.js 16.0.0 or higher (for development)
36
+
37
+ **Note:** Tailwind CSS is compiled at build time. Consumers do not need Tailwind installed or configured.
38
+
39
+ ## Installation
40
+
41
+ ```bash
42
+ npm install @ui-kit/ui-kit
43
+ ```
44
+
45
+ ## Usage
46
+
47
+ Import components and styles separately:
48
+
49
+ ```tsx
50
+ import { Button, Input, ThemeProvider } from '@ui-kit/ui-kit';
51
+ import '@ui-kit/ui-kit/styles'; // Required: Import styles explicitly
52
+
53
+ function App() {
54
+ return (
55
+ <ThemeProvider defaultTheme="dark">
56
+ <Button variant="primary">Click me</Button>
57
+ <Input placeholder="Enter text" />
58
+ </ThemeProvider>
59
+ );
60
+ }
61
+ ```
62
+
63
+ **Important:** You must import the styles explicitly. The CSS is not automatically included when importing components.
64
+
65
+ ## Styling & Global CSS
66
+
67
+ The UI Kit includes global CSS that affects the document root:
68
+
69
+ - **CSS Variables**: Theme variables are defined on `:root` and `.theme-light`
70
+ - **Global Resets**: Basic resets for `box-sizing`, `html`, and `body` elements
71
+ - **Theme Classes**: Theme switching applies classes to `document.documentElement`
72
+
73
+ These global styles are intentional and necessary for the theme system to function. If you need to scope styles or avoid global resets, you can override them in your application CSS.
74
+
75
+ **SSR Compatibility:** The `ThemeProvider` is SSR-safe and works correctly with Next.js, Remix, and other SSR frameworks. All browser API access is properly guarded.
76
+
77
+ ## Theme System
78
+
79
+ The UI Kit supports dark and light themes:
80
+
81
+ ```tsx
82
+ import { ThemeProvider, useTheme } from '@ui-kit/ui-kit';
83
+
84
+ function App() {
85
+ const { theme, setTheme } = useTheme();
86
+
87
+ return (
88
+ <ThemeProvider defaultTheme="dark">
89
+ <button onClick={() => setTheme(theme === 'dark' ? 'light' : 'dark')}>
90
+ Toggle Theme
91
+ </button>
92
+ </ThemeProvider>
93
+ );
94
+ }
95
+ ```
96
+
97
+ ## Development
98
+
99
+ ### Preview
100
+
101
+ Start the preview environment to see all components:
102
+
103
+ ```bash
104
+ npm run dev
105
+ ```
106
+
107
+ ### Build
108
+
109
+ Build the library for distribution:
110
+
111
+ ```bash
112
+ npm run build
113
+ ```
114
+
115
+ ### Type Checking
116
+
117
+ ```bash
118
+ npm run type-check
119
+ ```
120
+
121
+ ### Linting
122
+
123
+ ```bash
124
+ npm run lint
125
+ ```
126
+
127
+ ## Component API
128
+
129
+ ### Button
130
+
131
+ ```tsx
132
+ <Button
133
+ variant="primary" | "secondary" | "danger" | "ghost"
134
+ size="sm" | "md" | "lg"
135
+ loading={boolean}
136
+ disabled={boolean}
137
+ onClick={function}
138
+ >
139
+ Button text
140
+ </Button>
141
+ ```
142
+
143
+ ### SubmitButton
144
+
145
+ ```tsx
146
+ <SubmitButton
147
+ size="sm" | "md" | "lg"
148
+ disabled={boolean}
149
+ onSubmit={async () => { /* submit logic */ }}
150
+ successText="Submitted!"
151
+ >
152
+ Submit Form
153
+ </SubmitButton>
154
+ ```
155
+
156
+ **States:**
157
+ - **Disabled** (form incomplete): Greyed out, no animations
158
+ - **Ready** (form valid): Full effects and animations
159
+ - **Success** (after submission): Automatic "sent" animation
160
+
161
+ ### Input
162
+
163
+ ```tsx
164
+ <Input
165
+ size="sm" | "md" | "lg"
166
+ error={boolean}
167
+ placeholder="Enter text"
168
+ value={string}
169
+ onChange={function}
170
+ />
171
+ ```
172
+
173
+ ### Checkbox
174
+
175
+ Animated checkbox with smooth SVG checkmark animation. The checkmark animates when checked/unchecked using stroke-dasharray transitions.
176
+
177
+ ```tsx
178
+ <Checkbox
179
+ label="Accept terms"
180
+ checked={boolean}
181
+ onChange={function}
182
+ error={boolean}
183
+ disabled={boolean}
184
+ />
185
+ ```
186
+
187
+ **Features:**
188
+ - Smooth animated checkmark using SVG path animation
189
+ - Theme-aware colors (adapts to light/dark mode)
190
+ - Error state support with danger color
191
+ - Disabled state with reduced opacity
192
+ - Size: 2em × 2em (scales with font size)
193
+
194
+ ### RadioButton
195
+
196
+ Windows-style radio button component with RadioGroup support for form selections. Features custom-styled radio buttons with hover effects and smooth transitions.
197
+
198
+ ```tsx
199
+ // Standalone radio button
200
+ <RadioButton
201
+ label="Option 1"
202
+ value="option1"
203
+ checked={boolean}
204
+ onChange={function}
205
+ disabled={boolean}
206
+ />
207
+
208
+ // Radio group
209
+ <RadioGroup
210
+ name="options"
211
+ legend="Choose an option"
212
+ value={string}
213
+ onValueChange={function}
214
+ disabled={boolean}
215
+ >
216
+ <RadioButton label="Option 1" value="option1" />
217
+ <RadioButton label="Option 2" value="option2" />
218
+ <RadioButton label="Option 3" value="option3" />
219
+ </RadioGroup>
220
+ ```
221
+
222
+ **Components:**
223
+ - **RadioButton**: Individual radio button with label support
224
+ - **RadioGroup**: Container for managing multiple radio buttons as a group
225
+
226
+ **Props:**
227
+ - `RadioButton`: `label?: string`, `value: string`, `checked?: boolean`, `disabled?: boolean`, `onChange?: function`, `onCheckedChange?: function`
228
+ - `RadioGroup`: `name?: string`, `legend?: string`, `value?: string`, `defaultValue?: string`, `disabled?: boolean`, `onValueChange?: function`
229
+
230
+ **Features:**
231
+ - Windows-style custom radio button appearance with 3D effects
232
+ - Smooth hover transitions with blue accent colors
233
+ - Support for controlled and uncontrolled modes
234
+ - RadioGroup context for managing multiple options
235
+ - Disabled state with grayscale filter
236
+ - Focus-visible outline for accessibility
237
+ - Standalone or grouped usage
238
+
239
+ ### Toggle
240
+
241
+ Animated toggle switch with celestial sparkle effects and smooth transitions. Features a star icon with animated sparkles that enhance when the toggle is active.
242
+
243
+ ```tsx
244
+ <Toggle
245
+ label="Enable feature"
246
+ checked={boolean}
247
+ onChange={function}
248
+ error={boolean}
249
+ disabled={boolean}
250
+ />
251
+ ```
252
+
253
+ **Features:**
254
+ - Beautiful animated sparkle effects with multiple particles
255
+ - Star icon that rotates and transforms when toggled
256
+ - Smooth transitions with radial gradient backgrounds
257
+ - Error state with red border indicator
258
+ - Disabled state with reduced opacity and paused animations
259
+ - Compact size (15px height) with responsive design
260
+
261
+ ### ThemeSwitch
262
+
263
+ Animated theme toggle component with beautiful sun/moon and stars/clouds visual effects. Automatically integrates with the ThemeProvider to switch between dark and light modes.
264
+
265
+ ```tsx
266
+ import { ThemeSwitch, ThemeProvider } from '@ui-kit/ui-kit';
267
+
268
+ function App() {
269
+ return (
270
+ <ThemeProvider defaultTheme="dark">
271
+ <ThemeSwitch showLabel={true} />
272
+ </ThemeProvider>
273
+ );
274
+ }
275
+ ```
276
+
277
+ **Props:**
278
+ - `showLabel?: boolean` - Show "Dark"/"Light" text next to the toggle (default: `true`)
279
+ - `className?: string` - Additional CSS classes
280
+
281
+ **Features:**
282
+ - Beautiful animated sun/moon transition
283
+ - Stars appear in dark mode, clouds in light mode
284
+ - Smooth animations with cubic-bezier easing
285
+ - Size matches medium button height (40px)
286
+ - Fully integrated with ThemeProvider
287
+
288
+ ### Loader
289
+
290
+ Animated loading spinner with two rotating circular faces featuring glowing effects. Perfect for indicating loading states in your application.
291
+
292
+ ```tsx
293
+ import { Loader, Spinner } from '@ui-kit/ui-kit';
294
+
295
+ // Standalone spinner
296
+ <Spinner size="sm" | "md" | "lg" />
297
+
298
+ // Inline loader with label
299
+ <Loader
300
+ variant="inline" | "container"
301
+ size="sm" | "md" | "lg"
302
+ label="Loading..."
303
+ />
304
+
305
+ // Full container loader
306
+ <Loader variant="container" size="lg" label="Loading content" />
307
+ ```
308
+
309
+ **Components:**
310
+ - **Spinner**: Standalone animated spinner without label
311
+ - **Loader**: Full loader component with optional label and container variant
312
+
313
+ **Props:**
314
+ - `size?: "sm" | "md" | "lg"` - Size of the loader (default: `"md"`)
315
+ - `variant?: "inline" | "container"` - Display variant (default: `"inline"`)
316
+ - `label?: string` - Optional loading text label
317
+
318
+ **Features:**
319
+ - Beautiful rotating faces animation with two circular arcs
320
+ - Gold and black arcs with white glow effects
321
+ - Smooth 3-second rotation animation
322
+ - Three size variants (sm, md, lg)
323
+ - Inline and full container display modes
324
+ - Optional loading text label
325
+
326
+ ### Form
327
+
328
+ Animated form container component with beautiful rotating border effect, backdrop blur, and composable form elements. Perfect for creating elegant login, signup, contact, and survey forms.
329
+
330
+ ```tsx
331
+ import { Form, FormField, FormButton, FormFooter, FormFooterLink } from '@ui-kit/ui-kit';
332
+
333
+ // Basic login form
334
+ <Form
335
+ title="Welcome Back"
336
+ showLogo={boolean}
337
+ width={number}
338
+ aspectRatio={number}
339
+ footer={ReactNode}
340
+ onSubmit={function}
341
+ >
342
+ <FormField
343
+ type="email"
344
+ placeholder="Email"
345
+ label="Email"
346
+ error={boolean}
347
+ />
348
+ <FormField
349
+ type="password"
350
+ placeholder="Password"
351
+ />
352
+ <FormButton type="submit">Sign In</FormButton>
353
+ <FormButton variant="google" type="button">
354
+ Sign in with Google
355
+ </FormButton>
356
+ <FormFooter>
357
+ Don't have an account?{' '}
358
+ <FormFooterLink href="#">Sign up</FormFooterLink>
359
+ </FormFooter>
360
+ </Form>
361
+ ```
362
+
363
+ **Components:**
364
+ - **Form**: Main form container with animated border and backdrop blur
365
+ - **FormField**: Input field wrapper with optional label and error state
366
+ - **FormButton**: Button component with primary and Google sign-in variants
367
+ - **FormFooter**: Footer container for form links and text
368
+ - **FormFooterLink**: Animated link component for footer content
369
+
370
+ **Props:**
371
+ - `Form`: `title?: string`, `showLogo?: boolean`, `width?: number`, `aspectRatio?: number`, `footer?: ReactNode`, `className?: string`, plus all standard form HTML attributes
372
+ - `FormField`: `label?: string`, `error?: boolean`, `size?: "sm" | "md" | "lg"`, plus all standard input HTML attributes
373
+ - `FormButton`: `variant?: "primary" | "google"`, plus all standard button HTML attributes
374
+ - `FormFooter`: Standard div HTML attributes
375
+ - `FormFooterLink`: Standard anchor HTML attributes
376
+
377
+ **Features:**
378
+ - Beautiful animated rotating border effect using conic gradient
379
+ - Backdrop blur effect for modern glassmorphism look
380
+ - Optional user/logo icon with animated design
381
+ - Theme-aware colors using CSS variables
382
+ - Composable structure - works with Checkbox, RadioButton, and other components
383
+ - Animated footer links with hover effects
384
+ - Customizable width and aspect ratio
385
+ - Full TypeScript support
386
+
387
+ ## Architecture Principles
388
+
389
+ 1. **Intent-based separation**: Components are separated by intent, not by feature
390
+ 2. **Primitive + Semantic**: Generic visual components with semantic wrappers
391
+ 3. **No hardcoded colors**: All colors derive from CSS variables
392
+ 4. **Theme agnostic**: No OS theme detection, explicit theme control
393
+ 5. **Composable**: Components can be combined and extended
394
+
395
+ ## Quality Assurance
396
+
397
+ A comprehensive professional audit has been conducted on all components. See [`AUDIT_REPORT.md`](./AUDIT_REPORT.md) for detailed findings, including:
398
+
399
+ - Architecture and design system integrity analysis
400
+ - Component API quality assessment
401
+ - Accessibility (A11y) compliance review
402
+ - Performance and maintainability evaluation
403
+ - Visual consistency and UX rules validation
404
+ - Styling strategy assessment
405
+ - Improvement recommendations prioritized by severity
406
+
407
+ The audit identifies critical issues, medium-priority improvements, and long-term scalability considerations to help harden the UI Kit into a production-ready design system.
408
+
409
+ ## License
410
+
411
+ MIT
package/dist/index.js ADDED
@@ -0,0 +1,30 @@
1
+ (function(N,k){typeof exports=="object"&&typeof module<"u"?k(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],k):(N=typeof globalThis<"u"?globalThis:N||self,k(N["UI-Kit"]={},N.React))})(this,function(N,k){"use strict";var we={exports:{}},ie={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var Fe;function br(){if(Fe)return ie;Fe=1;var r=k,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,i=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function l(d,p,h){var f,g={},w=null,z=null;h!==void 0&&(w=""+h),p.key!==void 0&&(w=""+p.key),p.ref!==void 0&&(z=p.ref);for(f in p)o.call(p,f)&&!c.hasOwnProperty(f)&&(g[f]=p[f]);if(d&&d.defaultProps)for(f in p=d.defaultProps,p)g[f]===void 0&&(g[f]=p[f]);return{$$typeof:t,type:d,key:w,ref:z,props:g,_owner:i.current}}return ie.Fragment=n,ie.jsx=l,ie.jsxs=l,ie}var le={};/**
10
+ * @license React
11
+ * react-jsx-runtime.development.js
12
+ *
13
+ * Copyright (c) Facebook, Inc. and its affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var Ie;function mr(){return Ie||(Ie=1,process.env.NODE_ENV!=="production"&&function(){var r=k,t=Symbol.for("react.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),d=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),g=Symbol.for("react.memo"),w=Symbol.for("react.lazy"),z=Symbol.for("react.offscreen"),E=Symbol.iterator,x="@@iterator";function v(e){if(e===null||typeof e!="object")return null;var a=E&&e[E]||e[x];return typeof a=="function"?a:null}var A=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function j(e){{for(var a=arguments.length,u=new Array(a>1?a-1:0),b=1;b<a;b++)u[b-1]=arguments[b];U("error",e,u)}}function U(e,a,u){{var b=A.ReactDebugCurrentFrame,S=b.getStackAddendum();S!==""&&(a+="%s",u=u.concat([S]));var T=u.map(function(C){return String(C)});T.unshift("Warning: "+a),Function.prototype.apply.call(console[e],console,T)}}var O=!1,Y=!1,q=!1,X=!1,he=!1,oe;oe=Symbol.for("react.module.reference");function ue(e){return!!(typeof e=="string"||typeof e=="function"||e===o||e===c||he||e===i||e===h||e===f||X||e===z||O||Y||q||typeof e=="object"&&e!==null&&(e.$$typeof===w||e.$$typeof===g||e.$$typeof===l||e.$$typeof===d||e.$$typeof===p||e.$$typeof===oe||e.getModuleId!==void 0))}function fe(e,a,u){var b=e.displayName;if(b)return b;var S=a.displayName||a.name||"";return S!==""?u+"("+S+")":u}function R(e){return e.displayName||"Context"}function W(e){if(e==null)return null;if(typeof e.tag=="number"&&j("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case o:return"Fragment";case n:return"Portal";case c:return"Profiler";case i:return"StrictMode";case h:return"Suspense";case f:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case d:var a=e;return R(a)+".Consumer";case l:var u=e;return R(u._context)+".Provider";case p:return fe(e,e.render,"ForwardRef");case g:var b=e.displayName||null;return b!==null?b:W(e.type)||"Memo";case w:{var S=e,T=S._payload,C=S._init;try{return W(C(T))}catch{return null}}}return null}var D=Object.assign,H=0,Q,pe,ne,J,be,$,Je;function Xe(){}Xe.__reactDisabledLog=!0;function Ct(){{if(H===0){Q=console.log,pe=console.info,ne=console.warn,J=console.error,be=console.group,$=console.groupCollapsed,Je=console.groupEnd;var e={configurable:!0,enumerable:!0,value:Xe,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}H++}}function jt(){{if(H--,H===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:D({},e,{value:Q}),info:D({},e,{value:pe}),warn:D({},e,{value:ne}),error:D({},e,{value:J}),group:D({},e,{value:be}),groupCollapsed:D({},e,{value:$}),groupEnd:D({},e,{value:Je})})}H<0&&j("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Se=A.ReactCurrentDispatcher,Ne;function xe(e,a,u){{if(Ne===void 0)try{throw Error()}catch(S){var b=S.stack.trim().match(/\n( *(at )?)/);Ne=b&&b[1]||""}return`
18
+ `+Ne+e}}var Re=!1,ge;{var kt=typeof WeakMap=="function"?WeakMap:Map;ge=new kt}function Qe(e,a){if(!e||Re)return"";{var u=ge.get(e);if(u!==void 0)return u}var b;Re=!0;var S=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var T;T=Se.current,Se.current=null,Ct();try{if(a){var C=function(){throw Error()};if(Object.defineProperty(C.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(C,[])}catch(L){b=L}Reflect.construct(e,[],C)}else{try{C.call()}catch(L){b=L}e.call(C.prototype)}}else{try{throw Error()}catch(L){b=L}e()}}catch(L){if(L&&b&&typeof L.stack=="string"){for(var _=L.stack.split(`
19
+ `),I=b.stack.split(`
20
+ `),M=_.length-1,F=I.length-1;M>=1&&F>=0&&_[M]!==I[F];)F--;for(;M>=1&&F>=0;M--,F--)if(_[M]!==I[F]){if(M!==1||F!==1)do if(M--,F--,F<0||_[M]!==I[F]){var B=`
21
+ `+_[M].replace(" at new "," at ");return e.displayName&&B.includes("<anonymous>")&&(B=B.replace("<anonymous>",e.displayName)),typeof e=="function"&&ge.set(e,B),B}while(M>=1&&F>=0);break}}}finally{Re=!1,Se.current=T,jt(),Error.prepareStackTrace=S}var ae=e?e.displayName||e.name:"",ee=ae?xe(ae):"";return typeof e=="function"&&ge.set(e,ee),ee}function Et(e,a,u){return Qe(e,!1)}function St(e){var a=e.prototype;return!!(a&&a.isReactComponent)}function ve(e,a,u){if(e==null)return"";if(typeof e=="function")return Qe(e,St(e));if(typeof e=="string")return xe(e);switch(e){case h:return xe("Suspense");case f:return xe("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case p:return Et(e.render);case g:return ve(e.type,a,u);case w:{var b=e,S=b._payload,T=b._init;try{return ve(T(S),a,u)}catch{}}}return""}var me=Object.prototype.hasOwnProperty,er={},rr=A.ReactDebugCurrentFrame;function ye(e){if(e){var a=e._owner,u=ve(e.type,e._source,a?a.type:null);rr.setExtraStackFrame(u)}else rr.setExtraStackFrame(null)}function Nt(e,a,u,b,S){{var T=Function.call.bind(me);for(var C in e)if(T(e,C)){var _=void 0;try{if(typeof e[C]!="function"){var I=Error((b||"React class")+": "+u+" type `"+C+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[C]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw I.name="Invariant Violation",I}_=e[C](a,C,b,u,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(M){_=M}_&&!(_ instanceof Error)&&(ye(S),j("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",b||"React class",u,C,typeof _),ye(null)),_ instanceof Error&&!(_.message in er)&&(er[_.message]=!0,ye(S),j("Failed %s type: %s",u,_.message),ye(null))}}}var Rt=Array.isArray;function Te(e){return Rt(e)}function Tt(e){{var a=typeof Symbol=="function"&&Symbol.toStringTag,u=a&&e[Symbol.toStringTag]||e.constructor.name||"Object";return u}}function Pt(e){try{return tr(e),!1}catch{return!0}}function tr(e){return""+e}function or(e){if(Pt(e))return j("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Tt(e)),tr(e)}var nr=A.ReactCurrentOwner,At={key:!0,ref:!0,__self:!0,__source:!0},sr,ar;function zt(e){if(me.call(e,"ref")){var a=Object.getOwnPropertyDescriptor(e,"ref").get;if(a&&a.isReactWarning)return!1}return e.ref!==void 0}function Mt(e){if(me.call(e,"key")){var a=Object.getOwnPropertyDescriptor(e,"key").get;if(a&&a.isReactWarning)return!1}return e.key!==void 0}function Ft(e,a){typeof e.ref=="string"&&nr.current}function It(e,a){{var u=function(){sr||(sr=!0,j("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",a))};u.isReactWarning=!0,Object.defineProperty(e,"key",{get:u,configurable:!0})}}function Lt(e,a){{var u=function(){ar||(ar=!0,j("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",a))};u.isReactWarning=!0,Object.defineProperty(e,"ref",{get:u,configurable:!0})}}var Ot=function(e,a,u,b,S,T,C){var _={$$typeof:t,type:e,key:a,ref:u,props:C,_owner:T};return _._store={},Object.defineProperty(_._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(_,"_self",{configurable:!1,enumerable:!1,writable:!1,value:b}),Object.defineProperty(_,"_source",{configurable:!1,enumerable:!1,writable:!1,value:S}),Object.freeze&&(Object.freeze(_.props),Object.freeze(_)),_};function Dt(e,a,u,b,S){{var T,C={},_=null,I=null;u!==void 0&&(or(u),_=""+u),Mt(a)&&(or(a.key),_=""+a.key),zt(a)&&(I=a.ref,Ft(a,S));for(T in a)me.call(a,T)&&!At.hasOwnProperty(T)&&(C[T]=a[T]);if(e&&e.defaultProps){var M=e.defaultProps;for(T in M)C[T]===void 0&&(C[T]=M[T])}if(_||I){var F=typeof e=="function"?e.displayName||e.name||"Unknown":e;_&&It(C,F),I&&Lt(C,F)}return Ot(e,_,I,S,b,nr.current,C)}}var Pe=A.ReactCurrentOwner,ir=A.ReactDebugCurrentFrame;function se(e){if(e){var a=e._owner,u=ve(e.type,e._source,a?a.type:null);ir.setExtraStackFrame(u)}else ir.setExtraStackFrame(null)}var Ae;Ae=!1;function ze(e){return typeof e=="object"&&e!==null&&e.$$typeof===t}function lr(){{if(Pe.current){var e=W(Pe.current.type);if(e)return`
22
+
23
+ Check the render method of \``+e+"`."}return""}}function $t(e){return""}var cr={};function Bt(e){{var a=lr();if(!a){var u=typeof e=="string"?e:e.displayName||e.name;u&&(a=`
24
+
25
+ Check the top-level render call using <`+u+">.")}return a}}function dr(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var u=Bt(a);if(cr[u])return;cr[u]=!0;var b="";e&&e._owner&&e._owner!==Pe.current&&(b=" It was passed a child from "+W(e._owner.type)+"."),se(e),j('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',u,b),se(null)}}function ur(e,a){{if(typeof e!="object")return;if(Te(e))for(var u=0;u<e.length;u++){var b=e[u];ze(b)&&dr(b,a)}else if(ze(e))e._store&&(e._store.validated=!0);else if(e){var S=v(e);if(typeof S=="function"&&S!==e.entries)for(var T=S.call(e),C;!(C=T.next()).done;)ze(C.value)&&dr(C.value,a)}}}function Gt(e){{var a=e.type;if(a==null||typeof a=="string")return;var u;if(typeof a=="function")u=a.propTypes;else if(typeof a=="object"&&(a.$$typeof===p||a.$$typeof===g))u=a.propTypes;else return;if(u){var b=W(a);Nt(u,e.props,"prop",b,e)}else if(a.PropTypes!==void 0&&!Ae){Ae=!0;var S=W(a);j("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",S||"Unknown")}typeof a.getDefaultProps=="function"&&!a.getDefaultProps.isReactClassApproved&&j("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Wt(e){{for(var a=Object.keys(e.props),u=0;u<a.length;u++){var b=a[u];if(b!=="children"&&b!=="key"){se(e),j("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",b),se(null);break}}e.ref!==null&&(se(e),j("Invalid attribute `ref` supplied to `React.Fragment`."),se(null))}}var fr={};function pr(e,a,u,b,S,T){{var C=ue(e);if(!C){var _="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(_+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var I=$t();I?_+=I:_+=lr();var M;e===null?M="null":Te(e)?M="array":e!==void 0&&e.$$typeof===t?(M="<"+(W(e.type)||"Unknown")+" />",_=" Did you accidentally export a JSX literal instead of a component?"):M=typeof e,j("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",M,_)}var F=Dt(e,a,u,S,T);if(F==null)return F;if(C){var B=a.children;if(B!==void 0)if(b)if(Te(B)){for(var ae=0;ae<B.length;ae++)ur(B[ae],e);Object.freeze&&Object.freeze(B)}else j("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else ur(B,e)}if(me.call(a,"key")){var ee=W(e),L=Object.keys(a).filter(function(qt){return qt!=="key"}),Me=L.length>0?"{key: someKey, "+L.join(": ..., ")+": ...}":"{key: someKey}";if(!fr[ee+Me]){var Kt=L.length>0?"{"+L.join(": ..., ")+": ...}":"{}";j(`A props object containing a "key" prop is being spread into JSX:
26
+ let props = %s;
27
+ <%s {...props} />
28
+ React keys must be passed directly to JSX without using spread:
29
+ let props = %s;
30
+ <%s key={someKey} {...props} />`,Me,ee,Kt,ee),fr[ee+Me]=!0}}return e===o?Wt(F):Gt(F),F}}function Vt(e,a,u){return pr(e,a,u,!0)}function Ut(e,a,u){return pr(e,a,u,!1)}var Yt=Ut,Zt=Vt;le.Fragment=o,le.jsx=Yt,le.jsxs=Zt}()),le}process.env.NODE_ENV==="production"?we.exports=br():we.exports=mr();var s=we.exports;function Le(r){var t,n,o="";if(typeof r=="string"||typeof r=="number")o+=r;else if(typeof r=="object")if(Array.isArray(r)){var i=r.length;for(t=0;t<i;t++)r[t]&&(n=Le(r[t]))&&(o&&(o+=" "),o+=n)}else for(n in r)r[n]&&(o&&(o+=" "),o+=n);return o}function hr(){for(var r,t,n=0,o="",i=arguments.length;n<i;n++)(r=arguments[n])&&(t=Le(r))&&(o&&(o+=" "),o+=t);return o}const _e="-",xr=r=>{const t=vr(r),{conflictingClassGroups:n,conflictingClassGroupModifiers:o}=r;return{getClassGroupId:l=>{const d=l.split(_e);return d[0]===""&&d.length!==1&&d.shift(),Oe(d,t)||gr(l)},getConflictingClassGroupIds:(l,d)=>{const p=n[l]||[];return d&&o[l]?[...p,...o[l]]:p}}},Oe=(r,t)=>{var l;if(r.length===0)return t.classGroupId;const n=r[0],o=t.nextPart.get(n),i=o?Oe(r.slice(1),o):void 0;if(i)return i;if(t.validators.length===0)return;const c=r.join(_e);return(l=t.validators.find(({validator:d})=>d(c)))==null?void 0:l.classGroupId},De=/^\[(.+)\]$/,gr=r=>{if(De.test(r)){const t=De.exec(r)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},vr=r=>{const{theme:t,prefix:n}=r,o={nextPart:new Map,validators:[]};return wr(Object.entries(r.classGroups),n).forEach(([c,l])=>{Ce(l,o,c,t)}),o},Ce=(r,t,n,o)=>{r.forEach(i=>{if(typeof i=="string"){const c=i===""?t:$e(t,i);c.classGroupId=n;return}if(typeof i=="function"){if(yr(i)){Ce(i(o),t,n,o);return}t.validators.push({validator:i,classGroupId:n});return}Object.entries(i).forEach(([c,l])=>{Ce(l,$e(t,c),n,o)})})},$e=(r,t)=>{let n=r;return t.split(_e).forEach(o=>{n.nextPart.has(o)||n.nextPart.set(o,{nextPart:new Map,validators:[]}),n=n.nextPart.get(o)}),n},yr=r=>r.isThemeGetter,wr=(r,t)=>t?r.map(([n,o])=>{const i=o.map(c=>typeof c=="string"?t+c:typeof c=="object"?Object.fromEntries(Object.entries(c).map(([l,d])=>[t+l,d])):c);return[n,i]}):r,_r=r=>{if(r<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,o=new Map;const i=(c,l)=>{n.set(c,l),t++,t>r&&(t=0,o=n,n=new Map)};return{get(c){let l=n.get(c);if(l!==void 0)return l;if((l=o.get(c))!==void 0)return i(c,l),l},set(c,l){n.has(c)?n.set(c,l):i(c,l)}}},Be="!",Cr=r=>{const{separator:t,experimentalParseClassName:n}=r,o=t.length===1,i=t[0],c=t.length,l=d=>{const p=[];let h=0,f=0,g;for(let v=0;v<d.length;v++){let A=d[v];if(h===0){if(A===i&&(o||d.slice(v,v+c)===t)){p.push(d.slice(f,v)),f=v+c;continue}if(A==="/"){g=v;continue}}A==="["?h++:A==="]"&&h--}const w=p.length===0?d:d.substring(f),z=w.startsWith(Be),E=z?w.substring(1):w,x=g&&g>f?g-f:void 0;return{modifiers:p,hasImportantModifier:z,baseClassName:E,maybePostfixModifierPosition:x}};return n?d=>n({className:d,parseClassName:l}):l},jr=r=>{if(r.length<=1)return r;const t=[];let n=[];return r.forEach(o=>{o[0]==="["?(t.push(...n.sort(),o),n=[]):n.push(o)}),t.push(...n.sort()),t},kr=r=>({cache:_r(r.cacheSize),parseClassName:Cr(r),...xr(r)}),Er=/\s+/,Sr=(r,t)=>{const{parseClassName:n,getClassGroupId:o,getConflictingClassGroupIds:i}=t,c=[],l=r.trim().split(Er);let d="";for(let p=l.length-1;p>=0;p-=1){const h=l[p],{modifiers:f,hasImportantModifier:g,baseClassName:w,maybePostfixModifierPosition:z}=n(h);let E=!!z,x=o(E?w.substring(0,z):w);if(!x){if(!E){d=h+(d.length>0?" "+d:d);continue}if(x=o(w),!x){d=h+(d.length>0?" "+d:d);continue}E=!1}const v=jr(f).join(":"),A=g?v+Be:v,j=A+x;if(c.includes(j))continue;c.push(j);const U=i(x,E);for(let O=0;O<U.length;++O){const Y=U[O];c.push(A+Y)}d=h+(d.length>0?" "+d:d)}return d};function Nr(){let r=0,t,n,o="";for(;r<arguments.length;)(t=arguments[r++])&&(n=Ge(t))&&(o&&(o+=" "),o+=n);return o}const Ge=r=>{if(typeof r=="string")return r;let t,n="";for(let o=0;o<r.length;o++)r[o]&&(t=Ge(r[o]))&&(n&&(n+=" "),n+=t);return n};function Rr(r,...t){let n,o,i,c=l;function l(p){const h=t.reduce((f,g)=>g(f),r());return n=kr(h),o=n.cache.get,i=n.cache.set,c=d,d(p)}function d(p){const h=o(p);if(h)return h;const f=Sr(p,n);return i(p,f),f}return function(){return c(Nr.apply(null,arguments))}}const P=r=>{const t=n=>n[r]||[];return t.isThemeGetter=!0,t},We=/^\[(?:([a-z-]+):)?(.+)\]$/i,Tr=/^\d+\/\d+$/,Pr=new Set(["px","full","screen"]),Ar=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,zr=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Mr=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,Fr=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ir=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,V=r=>re(r)||Pr.has(r)||Tr.test(r),Z=r=>te(r,"length",Vr),re=r=>!!r&&!Number.isNaN(Number(r)),je=r=>te(r,"number",re),ce=r=>!!r&&Number.isInteger(Number(r)),Lr=r=>r.endsWith("%")&&re(r.slice(0,-1)),m=r=>We.test(r),K=r=>Ar.test(r),Or=new Set(["length","size","percentage"]),Dr=r=>te(r,Or,Ve),$r=r=>te(r,"position",Ve),Br=new Set(["image","url"]),Gr=r=>te(r,Br,Yr),Wr=r=>te(r,"",Ur),de=()=>!0,te=(r,t,n)=>{const o=We.exec(r);return o?o[1]?typeof t=="string"?o[1]===t:t.has(o[1]):n(o[2]):!1},Vr=r=>zr.test(r)&&!Mr.test(r),Ve=()=>!1,Ur=r=>Fr.test(r),Yr=r=>Ir.test(r),Zr=Rr(()=>{const r=P("colors"),t=P("spacing"),n=P("blur"),o=P("brightness"),i=P("borderColor"),c=P("borderRadius"),l=P("borderSpacing"),d=P("borderWidth"),p=P("contrast"),h=P("grayscale"),f=P("hueRotate"),g=P("invert"),w=P("gap"),z=P("gradientColorStops"),E=P("gradientColorStopPositions"),x=P("inset"),v=P("margin"),A=P("opacity"),j=P("padding"),U=P("saturate"),O=P("scale"),Y=P("sepia"),q=P("skew"),X=P("space"),he=P("translate"),oe=()=>["auto","contain","none"],ue=()=>["auto","hidden","clip","visible","scroll"],fe=()=>["auto",m,t],R=()=>[m,t],W=()=>["",V,Z],D=()=>["auto",re,m],H=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],Q=()=>["solid","dashed","dotted","double","none"],pe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ne=()=>["start","end","center","between","around","evenly","stretch"],J=()=>["","0",m],be=()=>["auto","avoid","all","avoid-page","page","left","right","column"],$=()=>[re,m];return{cacheSize:500,separator:":",theme:{colors:[de],spacing:[V,Z],blur:["none","",K,m],brightness:$(),borderColor:[r],borderRadius:["none","","full",K,m],borderSpacing:R(),borderWidth:W(),contrast:$(),grayscale:J(),hueRotate:$(),invert:J(),gap:R(),gradientColorStops:[r],gradientColorStopPositions:[Lr,Z],inset:fe(),margin:fe(),opacity:$(),padding:R(),saturate:$(),scale:$(),sepia:J(),skew:$(),space:R(),translate:R()},classGroups:{aspect:[{aspect:["auto","square","video",m]}],container:["container"],columns:[{columns:[K]}],"break-after":[{"break-after":be()}],"break-before":[{"break-before":be()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...H(),m]}],overflow:[{overflow:ue()}],"overflow-x":[{"overflow-x":ue()}],"overflow-y":[{"overflow-y":ue()}],overscroll:[{overscroll:oe()}],"overscroll-x":[{"overscroll-x":oe()}],"overscroll-y":[{"overscroll-y":oe()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[x]}],"inset-x":[{"inset-x":[x]}],"inset-y":[{"inset-y":[x]}],start:[{start:[x]}],end:[{end:[x]}],top:[{top:[x]}],right:[{right:[x]}],bottom:[{bottom:[x]}],left:[{left:[x]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",ce,m]}],basis:[{basis:fe()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",m]}],grow:[{grow:J()}],shrink:[{shrink:J()}],order:[{order:["first","last","none",ce,m]}],"grid-cols":[{"grid-cols":[de]}],"col-start-end":[{col:["auto",{span:["full",ce,m]},m]}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":[de]}],"row-start-end":[{row:["auto",{span:[ce,m]},m]}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",m]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",m]}],gap:[{gap:[w]}],"gap-x":[{"gap-x":[w]}],"gap-y":[{"gap-y":[w]}],"justify-content":[{justify:["normal",...ne()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...ne(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...ne(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[j]}],px:[{px:[j]}],py:[{py:[j]}],ps:[{ps:[j]}],pe:[{pe:[j]}],pt:[{pt:[j]}],pr:[{pr:[j]}],pb:[{pb:[j]}],pl:[{pl:[j]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[X]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[X]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",m,t]}],"min-w":[{"min-w":[m,t,"min","max","fit"]}],"max-w":[{"max-w":[m,t,"none","full","min","max","fit","prose",{screen:[K]},K]}],h:[{h:[m,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[m,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[m,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[m,t,"auto","min","max","fit"]}],"font-size":[{text:["base",K,Z]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",je]}],"font-family":[{font:[de]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",m]}],"line-clamp":[{"line-clamp":["none",re,je]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",V,m]}],"list-image":[{"list-image":["none",m]}],"list-style-type":[{list:["none","disc","decimal",m]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[r]}],"placeholder-opacity":[{"placeholder-opacity":[A]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[r]}],"text-opacity":[{"text-opacity":[A]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Q(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",V,Z]}],"underline-offset":[{"underline-offset":["auto",V,m]}],"text-decoration-color":[{decoration:[r]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:R()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",m]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",m]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[A]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...H(),$r]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Dr]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Gr]}],"bg-color":[{bg:[r]}],"gradient-from-pos":[{from:[E]}],"gradient-via-pos":[{via:[E]}],"gradient-to-pos":[{to:[E]}],"gradient-from":[{from:[z]}],"gradient-via":[{via:[z]}],"gradient-to":[{to:[z]}],rounded:[{rounded:[c]}],"rounded-s":[{"rounded-s":[c]}],"rounded-e":[{"rounded-e":[c]}],"rounded-t":[{"rounded-t":[c]}],"rounded-r":[{"rounded-r":[c]}],"rounded-b":[{"rounded-b":[c]}],"rounded-l":[{"rounded-l":[c]}],"rounded-ss":[{"rounded-ss":[c]}],"rounded-se":[{"rounded-se":[c]}],"rounded-ee":[{"rounded-ee":[c]}],"rounded-es":[{"rounded-es":[c]}],"rounded-tl":[{"rounded-tl":[c]}],"rounded-tr":[{"rounded-tr":[c]}],"rounded-br":[{"rounded-br":[c]}],"rounded-bl":[{"rounded-bl":[c]}],"border-w":[{border:[d]}],"border-w-x":[{"border-x":[d]}],"border-w-y":[{"border-y":[d]}],"border-w-s":[{"border-s":[d]}],"border-w-e":[{"border-e":[d]}],"border-w-t":[{"border-t":[d]}],"border-w-r":[{"border-r":[d]}],"border-w-b":[{"border-b":[d]}],"border-w-l":[{"border-l":[d]}],"border-opacity":[{"border-opacity":[A]}],"border-style":[{border:[...Q(),"hidden"]}],"divide-x":[{"divide-x":[d]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[d]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[A]}],"divide-style":[{divide:Q()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...Q()]}],"outline-offset":[{"outline-offset":[V,m]}],"outline-w":[{outline:[V,Z]}],"outline-color":[{outline:[r]}],"ring-w":[{ring:W()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[r]}],"ring-opacity":[{"ring-opacity":[A]}],"ring-offset-w":[{"ring-offset":[V,Z]}],"ring-offset-color":[{"ring-offset":[r]}],shadow:[{shadow:["","inner","none",K,Wr]}],"shadow-color":[{shadow:[de]}],opacity:[{opacity:[A]}],"mix-blend":[{"mix-blend":[...pe(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":pe()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[o]}],contrast:[{contrast:[p]}],"drop-shadow":[{"drop-shadow":["","none",K,m]}],grayscale:[{grayscale:[h]}],"hue-rotate":[{"hue-rotate":[f]}],invert:[{invert:[g]}],saturate:[{saturate:[U]}],sepia:[{sepia:[Y]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[p]}],"backdrop-grayscale":[{"backdrop-grayscale":[h]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[f]}],"backdrop-invert":[{"backdrop-invert":[g]}],"backdrop-opacity":[{"backdrop-opacity":[A]}],"backdrop-saturate":[{"backdrop-saturate":[U]}],"backdrop-sepia":[{"backdrop-sepia":[Y]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",m]}],duration:[{duration:$()}],ease:[{ease:["linear","in","out","in-out",m]}],delay:[{delay:$()}],animate:[{animate:["none","spin","ping","pulse","bounce",m]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[O]}],"scale-x":[{"scale-x":[O]}],"scale-y":[{"scale-y":[O]}],rotate:[{rotate:[ce,m]}],"translate-x":[{"translate-x":[he]}],"translate-y":[{"translate-y":[he]}],"skew-x":[{"skew-x":[q]}],"skew-y":[{"skew-y":[q]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",m]}],accent:[{accent:["auto",r]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",m]}],"caret-color":[{caret:[r]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":R()}],"scroll-mx":[{"scroll-mx":R()}],"scroll-my":[{"scroll-my":R()}],"scroll-ms":[{"scroll-ms":R()}],"scroll-me":[{"scroll-me":R()}],"scroll-mt":[{"scroll-mt":R()}],"scroll-mr":[{"scroll-mr":R()}],"scroll-mb":[{"scroll-mb":R()}],"scroll-ml":[{"scroll-ml":R()}],"scroll-p":[{"scroll-p":R()}],"scroll-px":[{"scroll-px":R()}],"scroll-py":[{"scroll-py":R()}],"scroll-ps":[{"scroll-ps":R()}],"scroll-pe":[{"scroll-pe":R()}],"scroll-pt":[{"scroll-pt":R()}],"scroll-pr":[{"scroll-pr":R()}],"scroll-pb":[{"scroll-pb":R()}],"scroll-pl":[{"scroll-pl":R()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",m]}],fill:[{fill:[r,"none"]}],"stroke-w":[{stroke:[V,Z,je]}],stroke:[{stroke:[r,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}});function y(...r){return Zr(hr(r))}const Kr={primary:"bg-primary text-black theme-light:text-white border border-primary shadow-[inset_-4px_-4px_8px_var(--color-primary-shadow-dark),inset_4px_4px_8px_var(--color-primary-shadow-light)] active:shadow-[inset_3px_3px_6px_var(--color-primary-shadow-dark),_inset_-3px_-3px_6px_var(--color-primary-shadow-light)] disabled:shadow-none disabled:bg-primary-disabled disabled:text-text-disabled",secondary:"bg-secondary text-white border border-secondary shadow-[inset_-4px_-4px_8px_var(--color-secondary-shadow-dark),inset_4px_4px_8px_var(--color-secondary-shadow-light)] active:shadow-[inset_3px_3px_6px_var(--color-secondary-shadow-dark),_inset_-3px_-3px_6px_var(--color-secondary-shadow-light)] disabled:shadow-none disabled:bg-secondary-disabled disabled:text-text-disabled",danger:"bg-danger text-black theme-light:text-white border border-danger shadow-[inset_-4px_-4px_8px_var(--color-danger-shadow-dark),inset_4px_4px_8px_var(--color-danger-shadow-light)] active:shadow-[inset_3px_3px_6px_var(--color-danger-shadow-dark),_inset_-3px_-3px_6px_var(--color-danger-shadow-light)] disabled:shadow-none disabled:bg-danger-disabled disabled:text-text-disabled",ghost:"bg-ghost text-text-primary border border-transparent shadow-[inset_-4px_-4px_8px_var(--color-ghost-shadow-dark),inset_4px_4px_8px_var(--color-ghost-shadow-light)] active:shadow-[inset_3px_3px_6px_var(--color-ghost-shadow-dark),_inset_-3px_-3px_6px_var(--color-ghost-shadow-light)] disabled:shadow-none disabled:bg-ghost-disabled disabled:text-text-disabled"},qr={sm:"px-3 py-1 text-xs font-medium rounded-lg h-8",md:"px-4 py-1.5 text-sm font-medium rounded-lg h-10",lg:"px-6 py-2 text-md font-medium rounded-lg h-12"},ke=k.forwardRef(({variant:r="primary",size:t="md",loading:n=!1,disabled:o=!1,className:i,children:c,...l},d)=>s.jsxs("button",{ref:d,className:y("inline-flex items-center justify-center","font-medium transition-all duration-200","focus-visible focus:outline-none","disabled:cursor-not-allowed disabled:opacity-50",Kr[r],qr[t],i),disabled:o||n,...l,children:[s.jsx("span",{className:y("inline-flex items-center",n?"w-4 h-4 mr-2":"w-0 h-4"),children:s.jsxs("svg",{className:y("animate-spin h-4 w-4",!n&&"opacity-0"),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","aria-hidden":"true",children:[s.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),s.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}),c]}));ke.displayName="Button";const G={button:"_button_7snfv_7","button--size-sm":"_button--size-sm_7snfv_59",state:"_state_7snfv_75","button--size-md":"_button--size-md_7snfv_83","button--size-lg":"_button--size-lg_7snfv_107",icon:"_icon_7snfv_149",outline:"_outline_7snfv_207","state--default":"_state--default_7snfv_231","state--sent":"_state--sent_7snfv_717"},Ue=r=>r.split("").map((t,n)=>{const o=t===" "?" ":t;return s.jsx("span",{style:{"--i":n},children:o},n)}),Hr={sm:G["button--size-sm"],md:G["button--size-md"],lg:G["button--size-lg"]},Jr=({children:r="Send Message",successText:t="Sent",onSubmit:n,disabled:o,size:i="md",className:c,...l})=>{const[d,p]=k.useState(!1),h=k.useId(),f=k.useRef(null),g=async w=>{var z,E;if(n&&!d)try{await n(),p(!0),(z=f.current)==null||z.focus(),setTimeout(()=>{var x;p(!1),(x=f.current)==null||x.blur()},3e3)}catch(x){console.error("Submit failed:",x)}(E=l.onClick)==null||E.call(l,w)};return s.jsxs("button",{...l,ref:f,type:"submit",disabled:o,onClick:g,className:y(G.button,Hr[i],c),"aria-label":d?"Submission successful":l["aria-label"]||"Submit","aria-disabled":o,children:[s.jsx("div",{className:G.outline}),s.jsxs("div",{className:y(G.state,G["state--default"]),children:[s.jsx("div",{className:G.icon,children:s.jsxs("svg",{width:"1em",height:"1em",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[s.jsxs("g",{style:{filter:`url(#${h})`},children:[s.jsx("path",{d:"M14.2199 21.63C13.0399 21.63 11.3699 20.8 10.0499 16.83L9.32988 14.67L7.16988 13.95C3.20988 12.63 2.37988 10.96 2.37988 9.78001C2.37988 8.61001 3.20988 6.93001 7.16988 5.60001L15.6599 2.77001C17.7799 2.06001 19.5499 2.27001 20.6399 3.35001C21.7299 4.43001 21.9399 6.21001 21.2299 8.33001L18.3999 16.82C17.0699 20.8 15.3999 21.63 14.2199 21.63ZM7.63988 7.03001C4.85988 7.96001 3.86988 9.06001 3.86988 9.78001C3.86988 10.5 4.85988 11.6 7.63988 12.52L10.1599 13.36C10.3799 13.43 10.5599 13.61 10.6299 13.83L11.4699 16.35C12.3899 19.13 13.4999 20.12 14.2199 20.12C14.9399 20.12 16.0399 19.13 16.9699 16.35L19.7999 7.86001C20.3099 6.32001 20.2199 5.06001 19.5699 4.41001C18.9199 3.76001 17.6599 3.68001 16.1299 4.19001L7.63988 7.03001Z",fill:"currentColor"}),s.jsx("path",{d:"M10.11 14.4C9.92005 14.4 9.73005 14.33 9.58005 14.18C9.29005 13.89 9.29005 13.41 9.58005 13.12L13.16 9.53C13.45 9.24 13.93 9.24 14.22 9.53C14.51 9.82 14.51 10.3 14.22 10.59L10.64 14.18C10.5 14.33 10.3 14.4 10.11 14.4Z",fill:"currentColor"})]}),s.jsx("defs",{children:s.jsx("filter",{id:h,children:s.jsx("feDropShadow",{dx:"0",dy:"1",stdDeviation:"0.6",floodOpacity:"0.5"})})})]})}),s.jsx("p",{children:Ue(typeof r=="string"?r:"Send Message")})]}),s.jsxs("div",{className:y(G.state,G["state--sent"]),children:[s.jsx("div",{className:G.icon,children:s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",height:"1em",width:"1em",strokeWidth:"0.5px",stroke:"black",children:s.jsxs("g",{style:{filter:`url(#${h})`},children:[s.jsx("path",{fill:"currentColor",d:"M12 22.75C6.07 22.75 1.25 17.93 1.25 12C1.25 6.07 6.07 1.25 12 1.25C17.93 1.25 22.75 6.07 22.75 12C22.75 17.93 17.93 22.75 12 22.75ZM12 2.75C6.9 2.75 2.75 6.9 2.75 12C2.75 17.1 6.9 21.25 12 21.25C17.1 21.25 21.25 17.1 21.25 12C21.25 6.9 17.1 2.75 12 2.75Z"}),s.jsx("path",{fill:"currentColor",d:"M10.5795 15.5801C10.3795 15.5801 10.1895 15.5001 10.0495 15.3601L7.21945 12.5301C6.92945 12.2401 6.92945 11.7601 7.21945 11.4701C7.50945 11.1801 7.98945 11.1801 8.27945 11.4701L10.5795 13.7701L15.7195 8.6301C16.0095 8.3401 16.4895 8.3401 16.7795 8.6301C17.0695 8.9201 17.0695 9.4001 16.7795 9.6901L11.1095 15.3601C10.9695 15.5001 10.7795 15.5801 10.5795 15.5801Z"})]})})}),s.jsx("p",{children:Ue(t)})]})]})},Xr={sm:"px-3 py-1.5 text-xs rounded-md min-h-[2rem]",md:"px-4 py-2 text-sm rounded-md min-h-[2.5rem]",lg:"px-6 py-3 text-md rounded-lg min-h-[3rem]"},Ee=k.forwardRef(({size:r="md",error:t=!1,className:n,disabled:o,...i},c)=>s.jsx("input",{ref:c,className:y("w-full","bg-surface border border-border","text-text-primary placeholder-text-secondary","transition-colors duration-200","focus-visible focus:outline-none focus:border-border-focus","disabled:bg-surface-secondary disabled:text-text-disabled disabled:cursor-not-allowed",t&&"border-danger focus:border-danger",Xr[r],n),disabled:o,...i}));Ee.displayName="Input";const Ye=k.forwardRef(({label:r,error:t=!1,className:n,disabled:o,checked:i,onChange:c,...l},d)=>{const p=k.useId();return s.jsxs("div",{className:y("flex items-center space-x-2",n),children:[s.jsxs("label",{className:y("checkbox-container",o&&"opacity-50 cursor-not-allowed",!o&&"cursor-pointer"),children:[s.jsx("input",{ref:d,id:p,type:"checkbox",disabled:o,checked:i,onChange:c,"aria-checked":i,"aria-invalid":t,"aria-disabled":o,...l}),s.jsx("svg",{viewBox:"0 0 64 64",height:"1em",width:"1em",children:s.jsx("path",{d:"M 0 16 V 56 A 8 8 90 0 0 8 64 H 56 A 8 8 90 0 0 64 56 V 8 A 8 8 90 0 0 56 0 H 8 A 8 8 90 0 0 0 8 V 16 L 32 48 L 64 16 V 8 A 8 8 90 0 0 56 0 H 8 A 8 8 90 0 0 0 8 V 56 A 8 8 90 0 0 8 64 H 56 A 8 8 90 0 0 64 56 V 16",pathLength:"575.0541381835938",className:y("checkbox-path",t&&"checkbox-path-error")})})]}),r&&s.jsx("label",{htmlFor:p,className:y("text-sm font-medium select-none",o?"text-text-disabled cursor-not-allowed":"text-text-primary cursor-pointer"),children:r})]})});Ye.displayName="Checkbox";const Qr=({label:r,error:t=!1,className:n,disabled:o,checked:i,onChange:c,id:l,...d})=>{const p=l||k.useId(),h=f=>{if((f.key==="Enter"||f.key===" ")&&!o){f.preventDefault();const g=document.getElementById(p);if(g){g.checked=!g.checked;const w=new Event("change",{bubbles:!0});g.dispatchEvent(w)}}};return s.jsxs("div",{className:y("toggle-wrapper",t&&"toggle-wrapper--error",n),children:[s.jsx("input",{id:p,className:"toggle-checkbox",type:"checkbox",checked:i,onChange:c,disabled:o,role:"switch","aria-checked":i,"aria-disabled":o,...d}),s.jsx("div",{className:"toggle-container",onKeyDown:h,tabIndex:o?-1:0,role:"button","aria-hidden":"true",children:s.jsx("div",{className:"toggle-button",children:s.jsx("div",{className:"toggle-button-circles-container",children:Array.from({length:12}).map((f,g)=>s.jsx("div",{className:"toggle-button-circle"},g))})})}),r&&s.jsx("label",{htmlFor:p,className:y("text-sm font-medium select-none ml-2",o?"text-text-disabled cursor-not-allowed":"text-text-primary cursor-pointer"),children:r})]})},et=({className:r,...t})=>s.jsx("div",{className:y("card","w-full","rounded-lg border border-border","bg-surface-secondary text-text-primary","shadow-sm",r),...t}),rt=({className:r,...t})=>s.jsx("div",{className:y("flex items-start justify-between gap-4 px-6 py-4 border-b border-border",r),...t}),tt=({className:r,...t})=>s.jsx("div",{className:y("px-6 py-4",r),...t}),ot=({className:r,...t})=>s.jsx("div",{className:y("flex items-center justify-end gap-3 px-6 py-4 border-t border-border",r),...t}),Ze={sm:.7,md:1,lg:1.3},nt=({size:r="md",className:t,...n})=>{const o=8*Ze[r];return s.jsxs("div",{className:y("loader",t),style:{fontSize:`${o}px`},...n,children:[s.jsx("div",{className:"loader-face loader-face-1",children:s.jsx("div",{className:"loader-circle"})}),s.jsx("div",{className:"loader-face loader-face-2",children:s.jsx("div",{className:"loader-circle"})})]})},st=({size:r="md",variant:t="inline",label:n,className:o,...i})=>{const c=8*Ze[r];return t==="container"?s.jsx("div",{className:y("relative w-full min-h-[8rem] rounded-lg border border-border bg-surface-secondary flex items-center justify-center",o),...i,children:s.jsxs("div",{className:"flex flex-col items-center gap-3",children:[s.jsxs("div",{className:"loader",style:{fontSize:`${c}px`},children:[s.jsx("div",{className:"loader-face loader-face-1",children:s.jsx("div",{className:"loader-circle"})}),s.jsx("div",{className:"loader-face loader-face-2",children:s.jsx("div",{className:"loader-circle"})})]}),n&&s.jsx("span",{className:"text-sm text-text-secondary",children:n})]})}):s.jsxs("div",{className:y("inline-flex items-center gap-2",o),...i,children:[s.jsxs("div",{className:"loader",style:{fontSize:`${c}px`},children:[s.jsx("div",{className:"loader-face loader-face-1",children:s.jsx("div",{className:"loader-circle"})}),s.jsx("div",{className:"loader-face loader-face-2",children:s.jsx("div",{className:"loader-circle"})})]}),n&&s.jsx("span",{className:"text-sm text-text-secondary",children:n})]})},Ke=k.createContext(null),at=({name:r,legend:t,value:n,defaultValue:o,disabled:i=!1,onValueChange:c,className:l,children:d,...p})=>{const h=n!==void 0,[f,g]=k.useState(o),w=h?n:f,z=k.useCallback(E=>{h||g(E),c==null||c(E)},[h,c]);return s.jsx(Ke.Provider,{value:{name:r,value:w,disabled:i,onValueChange:z},children:s.jsxs("fieldset",{className:y("radio-input",i&&"opacity-60",l),disabled:i,...p,children:[t&&s.jsx("legend",{className:"text-sm font-medium text-text-primary",children:t}),d]})})},it=({label:r,value:t,disabled:n,checked:o,defaultChecked:i,name:c,onChange:l,onCheckedChange:d,className:p,...h})=>{const f=k.useContext(Ke),g=k.useId(),w=!!(n??(f==null?void 0:f.disabled)),z=c??(f==null?void 0:f.name),E=!!f,x=o!==void 0,[v,A]=k.useState(!!i),j=E?(f==null?void 0:f.value)===t:x?!!o:v,U=Y=>{var X;const q=Y.target.checked;E&&q?(X=f==null?void 0:f.onValueChange)==null||X.call(f,t):x||A(q),d==null||d(q),l==null||l(Y)},O=s.jsxs("label",{htmlFor:g,className:y(w&&"cursor-not-allowed",p),role:"radio","aria-checked":j,"aria-disabled":w,children:[s.jsx("input",{id:g,type:"radio",name:z,value:t,checked:j,disabled:w,onChange:U,role:"radio","aria-checked":j,"aria-disabled":w,...h}),s.jsx("span",{children:r||""})]});return E?O:s.jsx("div",{className:"radio-input",children:O})},lt={top:"bottom-full left-1/2 -translate-x-1/2 mb-1",bottom:"top-full left-1/2 -translate-x-1/2 mt-1",left:"right-full top-1/2 -translate-y-1/2 mr-1",right:"left-full top-1/2 -translate-y-1/2 ml-1"},ct={top:"top-full left-1/2 -translate-x-1/2 -mt-px",bottom:"bottom-full left-1/2 -translate-x-1/2 -mb-px",left:"left-full top-1/2 -translate-y-1/2 -ml-px",right:"right-full top-1/2 -translate-y-1/2 -mr-px"},dt={top:"border-t-border border-r-transparent border-b-transparent border-l-transparent border-t-[6px] border-r-[6px] border-l-[6px]",bottom:"border-b-border border-r-transparent border-t-transparent border-l-transparent border-b-[6px] border-r-[6px] border-l-[6px]",left:"border-l-border border-r-transparent border-t-transparent border-b-transparent border-l-[6px] border-t-[6px] border-b-[6px]",right:"border-r-border border-l-transparent border-t-transparent border-b-transparent border-r-[6px] border-t-[6px] border-b-[6px]"},ut={top:"top-full left-1/2 -translate-x-1/2 -mt-[5px]",bottom:"bottom-full left-1/2 -translate-x-1/2 -mb-[5px]",left:"left-full top-1/2 -translate-y-1/2 -ml-[5px]",right:"right-full top-1/2 -translate-y-1/2 -mr-[5px]"},ft=({open:r,onOpenChange:t,content:n,position:o="top",delay:i=0,disabled:c=!1,children:l,className:d})=>{const p=k.useRef(null),h=()=>{p.current!==null&&(window.clearTimeout(p.current),p.current=null)};k.useEffect(()=>h,[]);const f=()=>{if(!c){if(h(),i>0){p.current=window.setTimeout(()=>t==null?void 0:t(!0),i);return}t==null||t(!0)}},g=()=>{h(),t==null||t(!1)},w=k.Children.only(l),z=k.useId();return s.jsxs("span",{className:y("relative inline-block",d),children:[k.cloneElement(w,{"aria-describedby":r&&!c?z:void 0,onMouseEnter:E=>{var x,v;(v=(x=w.props).onMouseEnter)==null||v.call(x,E),f()},onMouseLeave:E=>{var x,v;(v=(x=w.props).onMouseLeave)==null||v.call(x,E),g()},onFocus:E=>{var x,v;(v=(x=w.props).onFocus)==null||v.call(x,E),f()},onBlur:E=>{var x,v;(v=(x=w.props).onBlur)==null||v.call(x,E),g()}}),r&&!c&&s.jsxs("span",{id:z,role:"tooltip",className:y("absolute z-50 pointer-events-none",lt[o],"whitespace-nowrap","rounded-md border border-border bg-surface text-text-primary","px-3 py-2 text-xs shadow-md"),children:[n,s.jsx("span",{className:y("absolute w-0 h-0",ct[o],dt[o])}),s.jsx("span",{className:y("absolute w-0 h-0 bg-surface",ut[o],o==="top"&&"border-t-[5px] border-r-[5px] border-l-[5px] border-t-surface border-r-transparent border-l-transparent",o==="bottom"&&"border-b-[5px] border-r-[5px] border-l-[5px] border-b-surface border-r-transparent border-l-transparent",o==="left"&&"border-l-[5px] border-t-[5px] border-b-[5px] border-l-surface border-t-transparent border-b-transparent",o==="right"&&"border-r-[5px] border-t-[5px] border-b-[5px] border-r-surface border-t-transparent border-b-transparent")})]})]})},qe=k.createContext(void 0),pt=({children:r,defaultTheme:t})=>{const n=()=>{if(typeof window<"u"){const l=localStorage.getItem("theme");if(l==="light"||l==="dark")return l}return typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t||"dark"},[o,i]=k.useState(n),c=k.useCallback(l=>{i(l),typeof window<"u"&&localStorage.setItem("theme",l)},[]);return k.useEffect(()=>{if(typeof document>"u")return;const l=document.documentElement;o==="light"?(l.classList.add("theme-light"),l.classList.remove("theme-dark")):(l.classList.add("theme-dark"),l.classList.remove("theme-light"))},[o]),k.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const l=window.matchMedia("(prefers-color-scheme: dark)"),d=p=>{typeof window<"u"&&!localStorage.getItem("theme")&&i(p.matches?"dark":"light")};if(l.addEventListener)return l.addEventListener("change",d),()=>l.removeEventListener("change",d);if(l.addListener)return l.addListener(d),()=>l.removeListener(d)},[]),s.jsx(qe.Provider,{value:{theme:o,setTheme:c},children:r})},He=()=>{const r=k.useContext(qe);if(r===void 0)throw new Error("useTheme must be used within a ThemeProvider");return r},bt=({className:r,showLabel:t=!0})=>{const{theme:n,setTheme:o}=He(),i=n==="dark",c=()=>{o(i?"light":"dark")},l=d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),c())};return s.jsxs("div",{className:y("flex items-center gap-3",r),children:[s.jsxs("label",{className:"theme-switch cursor-pointer",onKeyDown:l,tabIndex:0,role:"switch","aria-checked":i,"aria-label":i?"Switch to light mode":"Switch to dark mode",children:[s.jsx("input",{type:"checkbox",className:"theme-switch__checkbox",checked:i,onChange:c,"aria-hidden":"true"}),s.jsxs("div",{className:"theme-switch__container",children:[s.jsx("div",{className:"theme-switch__clouds"}),s.jsx("div",{className:"theme-switch__stars-container",children:s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 144 55",fill:"none",children:s.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M135.831 3.00688C135.055 3.85027 134.111 4.29946 133 4.35447C134.111 4.40947 135.055 4.85867 135.831 5.71123C136.607 6.55462 136.996 7.56303 136.996 8.72727C136.996 7.95722 137.172 7.25134 137.525 6.59129C137.886 5.93124 138.372 5.39954 138.98 5.00535C139.598 4.60199 140.268 4.39114 141 4.35447C139.88 4.2903 138.936 3.85027 138.16 3.00688C137.384 2.16348 136.996 1.16425 136.996 0C136.996 1.16425 136.607 2.16348 135.831 3.00688ZM31 23.3545C32.1114 23.2995 33.0551 22.8503 33.8313 22.0069C34.6075 21.1635 34.9956 20.1642 34.9956 19C34.9956 20.1642 35.3837 21.1635 36.1599 22.0069C36.9361 22.8503 37.8798 23.2903 39 23.3545C38.2679 23.3911 37.5976 23.602 36.9802 24.0053C36.3716 24.3995 35.8864 24.9312 35.5248 25.5913C35.172 26.2513 34.9956 26.9572 34.9956 27.7273C34.9956 26.563 34.6075 25.5546 33.8313 24.7112C33.0551 23.8587 32.1114 23.4095 31 23.3545ZM0 36.3545C1.11136 36.2995 2.05513 35.8503 2.83131 35.0069C3.6075 34.1635 3.99559 33.1642 3.99559 32C3.99559 33.1642 4.38368 34.1635 5.15987 35.0069C5.93605 35.8503 6.87982 36.2903 8 36.3545C7.26792 36.3911 6.59757 36.602 5.98015 37.0053C5.37155 37.3995 4.88644 37.9312 4.52481 38.5913C4.172 39.2513 3.99559 39.9572 3.99559 40.7273C3.99559 39.563 3.6075 38.5546 2.83131 37.7112C2.05513 36.8587 1.11136 36.4095 0 36.3545ZM56.8313 24.0069C56.0551 24.8503 55.1114 25.2995 54 25.3545C55.1114 25.4095 56.0551 25.8587 56.8313 26.7112C57.6075 27.5546 57.9956 28.563 57.9956 29.7273C57.9956 28.9572 58.172 28.2513 58.5248 27.5913C58.8864 26.9312 59.3716 26.3995 59.9802 26.0053C60.5976 25.602 61.2679 25.3911 62 25.3545C60.8798 25.2903 59.9361 24.8503 59.1599 24.0069C58.3837 23.1635 57.9956 22.1642 57.9956 21C57.9956 22.1642 57.6075 23.1635 56.8313 24.0069ZM81 25.3545C82.1114 25.2995 83.0551 24.8503 83.8313 24.0069C84.6075 23.1635 84.9956 22.1642 84.9956 21C84.9956 22.1642 85.3837 23.1635 86.1599 24.0069C86.9361 24.8503 87.8798 25.2903 89 25.3545C88.2679 25.3911 87.5976 25.602 86.9802 26.0053C86.3716 26.3995 85.8864 26.9312 85.5248 27.5913C85.172 28.2513 84.9956 28.9572 84.9956 29.7273C84.9956 28.563 84.6075 27.5546 83.8313 26.7112C83.0551 25.8587 82.1114 25.4095 81 25.3545ZM136 36.3545C137.111 36.2995 138.055 35.8503 138.831 35.0069C139.607 34.1635 139.996 33.1642 139.996 32C139.996 33.1642 140.384 34.1635 141.16 35.0069C141.936 35.8503 142.88 36.2903 144 36.3545C143.268 36.3911 142.598 36.602 141.98 37.0053C141.372 37.3995 140.886 37.9312 140.525 38.5913C140.172 39.2513 139.996 39.9572 139.996 40.7273C139.996 39.563 139.607 38.5546 138.831 37.7112C138.055 36.8587 137.111 36.4095 136 36.3545ZM101.831 49.0069C101.055 49.8503 100.111 50.2995 99 50.3545C100.111 50.4095 101.055 50.8587 101.831 51.7112C102.607 52.5546 102.996 53.563 102.996 54.7273C102.996 53.9572 103.172 53.2513 103.525 52.5913C103.886 51.9312 104.372 51.3995 104.98 51.0053C105.598 50.602 106.268 50.3911 107 50.3545C105.88 50.2903 104.936 49.8503 104.16 49.0069C103.384 48.1635 102.996 47.1642 102.996 46C102.996 47.1642 102.607 48.1635 101.831 49.0069Z",fill:"currentColor"})})}),s.jsx("div",{className:"theme-switch__circle-container",children:s.jsx("div",{className:"theme-switch__sun-moon-container",children:s.jsxs("div",{className:"theme-switch__moon",children:[s.jsx("div",{className:"theme-switch__spot"}),s.jsx("div",{className:"theme-switch__spot"}),s.jsx("div",{className:"theme-switch__spot"})]})})})]})]}),t&&s.jsx("span",{className:"text-sm font-medium text-text-primary",children:i?"Dark":"Light"})]})},mt=({width:r=315,aspectRatio:t=1.33,className:n,children:o,...i})=>s.jsxs("div",{className:y("relative flex justify-center items-center overflow-hidden","bg-surface-tertiary rounded-[24px]","shadow-[0_4px_8px_rgba(0,0,0,0.2),0_8px_16px_rgba(0,0,0,0.2),0_0_8px_rgba(255,255,255,0.1),0_0_16px_rgba(255,255,255,0.08)]","z-[8]",n),style:{width:`${r+1}px`,height:`${r*t+1}px`},...i,children:[s.jsx("div",{className:"absolute inset-[-50px] z-[-2] form-border-animation",style:{background:"conic-gradient(from 45deg, transparent 75%, var(--color-text-primary), transparent 100%)"}}),o]}),ht=({width:r=315,aspectRatio:t=1.33,className:n,children:o,...i})=>s.jsx("div",{className:y("absolute bg-surface-tertiary rounded-[24px] p-7 z-[10]","backdrop-blur-[15px]","shadow-[inset_0_40px_60px_-8px_rgba(255,255,255,0.12),inset_4px_0_12px_-6px_rgba(255,255,255,0.12),inset_0_0_12px_-4px_rgba(255,255,255,0.12)]",n),style:{width:`${r}px`,height:`${r*t}px`},...i,children:o}),xt=({className:r,...t})=>s.jsxs("div",{className:y("w-[65px] h-[65px] rounded-[20px] border-2 border-white","bg-gradient-to-br from-white/20 to-black/20","shadow-[8px_8px_16px_rgba(0,0,0,0.2),-8px_-8px_16px_rgba(255,255,255,0.06)]","flex justify-center items-center relative",r),...t,children:[s.jsx("div",{className:"absolute bottom-[10px] w-1/2 h-[20%] rounded-tl-[40px] rounded-tr-[40px] rounded-br-[20px] rounded-bl-[20px] border-[2.5px] border-white"}),s.jsx("div",{className:"absolute top-[10px] w-[30%] h-[30%] rounded-full border-[2.5px] border-white"})]}),gt=({title:r,showLogo:t=!1,footer:n,width:o=315,aspectRatio:i=1.33,className:c,children:l,...d})=>s.jsx(mt,{width:o,aspectRatio:i,children:s.jsxs(ht,{width:o,aspectRatio:i,children:[s.jsxs("form",{className:y("flex justify-center items-center flex-col gap-[10px]",c),...d,children:[t&&s.jsx("div",{className:"flex justify-center items-center mb-2",children:s.jsx(xt,{})}),r&&s.jsx("div",{className:"w-full text-center text-2xl font-bold py-1.5 text-text-primary flex justify-center items-center",children:r}),l]}),n&&s.jsx("div",{className:"w-full text-left text-text-secondary text-xs mt-4",children:n})]})}),vt=({label:r,error:t,className:n,size:o,...i})=>s.jsxs("div",{className:"w-full",children:[r&&s.jsx("label",{className:"block text-text-primary text-sm mb-1.5",children:r}),s.jsx(Ee,{className:y("w-full p-2.5 border-none rounded-xl bg-surface text-text-primary text-sm outline-none","focus:border focus:border-border-focus",n),error:t,size:o,...i})]}),yt=({variant:r="primary",className:t,children:n,...o})=>r==="google"?s.jsx("button",{className:y("w-full h-10 border-none rounded-[20px] text-sm font-semibold cursor-pointer","grid place-content-center gap-2.5 bg-surface-secondary text-text-primary","transition-all duration-300","shadow-[inset_0px_3px_6px_-4px_rgba(255,255,255,0.6),inset_0px_-3px_6px_-2px_rgba(0,0,0,0.8)]","hover:bg-white/25 hover:shadow-[inset_0px_3px_6px_rgba(255,255,255,0.6),inset_0px_-3px_6px_rgba(0,0,0,0.8),0px_0px_8px_rgba(255,255,255,0.05)]","flex justify-center items-center gap-2.5",t),...o,children:n}):s.jsx(ke,{className:y("w-full h-10 rounded-[20px] text-sm font-semibold mt-1.5",t),variant:"primary",...o,children:n}),wt=({className:r,children:t,...n})=>s.jsx("div",{className:y("w-full text-left text-text-secondary text-xs",r),...n,children:t}),_t=({className:r,children:t,...n})=>s.jsx("a",{className:y("relative text-text-secondary font-semibold no-underline transition-colors duration-300 ease-in-out","hover:text-white",'after:content-[""] after:absolute after:left-0 after:bottom-[-2px] after:w-0 after:rounded-md after:h-[1px] after:bg-current after:transition-[width] after:duration-300 after:ease-in-out',"hover:after:w-full",r),...n,children:t});N.Button=ke,N.Card=et,N.CardContent=tt,N.CardFooter=ot,N.CardHeader=rt,N.Checkbox=Ye,N.Form=gt,N.FormButton=yt,N.FormField=vt,N.FormFooter=wt,N.FormFooterLink=_t,N.Input=Ee,N.Loader=st,N.RadioButton=it,N.RadioGroup=at,N.Spinner=nt,N.SubmitButton=Jr,N.ThemeProvider=pt,N.ThemeSwitch=bt,N.Toggle=Qr,N.Tooltip=ft,N.useTheme=He,Object.defineProperty(N,Symbol.toStringTag,{value:"Module"})});