@epilot/volt-ui 1.0.0-alpha.1 → 1.0.0-alpha.10

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 (121) hide show
  1. package/README.md +38 -279
  2. package/dist/components/button/button.d.ts +19 -0
  3. package/dist/index.cjs.js +1 -0
  4. package/dist/index.d.ts +3 -23
  5. package/dist/index.es.js +2930 -0
  6. package/dist/lib/utils.d.ts +12 -0
  7. package/dist/style.css +7551 -0
  8. package/package.json +37 -175
  9. package/CHANGELOG.md +0 -379
  10. package/dist/assets/fonts/Geist-VariableFont_wght.ttf +0 -0
  11. package/dist/components/Accordion/Accordion.d.ts +0 -7
  12. package/dist/components/Accordion/Accordion.js +0 -2
  13. package/dist/components/Accordion/Accordion.js.map +0 -1
  14. package/dist/components/Badge/Badge.d.ts +0 -12
  15. package/dist/components/Badge/Badge.js +0 -2
  16. package/dist/components/Badge/Badge.js.map +0 -1
  17. package/dist/components/Button/Button.d.ts +0 -104
  18. package/dist/components/Button/Button.js +0 -2
  19. package/dist/components/Button/Button.js.map +0 -1
  20. package/dist/components/Button/IconButton.d.ts +0 -89
  21. package/dist/components/Button/IconButton.js +0 -2
  22. package/dist/components/Button/IconButton.js.map +0 -1
  23. package/dist/components/Checkbox/Checkbox.d.ts +0 -33
  24. package/dist/components/Checkbox/Checkbox.js +0 -2
  25. package/dist/components/Checkbox/Checkbox.js.map +0 -1
  26. package/dist/components/Dialog/Dialog.d.ts +0 -17
  27. package/dist/components/Dialog/Dialog.js +0 -2
  28. package/dist/components/Dialog/Dialog.js.map +0 -1
  29. package/dist/components/DropdownMenu/DropdownMenu.d.ts +0 -23
  30. package/dist/components/DropdownMenu/DropdownMenu.js +0 -2
  31. package/dist/components/DropdownMenu/DropdownMenu.js.map +0 -1
  32. package/dist/components/Form/Form.d.ts +0 -34
  33. package/dist/components/Form/Form.js +0 -20
  34. package/dist/components/Form/Form.js.map +0 -1
  35. package/dist/components/Heading/Heading.d.ts +0 -11
  36. package/dist/components/Heading/Heading.js +0 -2
  37. package/dist/components/Heading/Heading.js.map +0 -1
  38. package/dist/components/Link/Link.d.ts +0 -6
  39. package/dist/components/Link/Link.js +0 -2
  40. package/dist/components/Link/Link.js.map +0 -1
  41. package/dist/components/Popover/Popover.d.ts +0 -12
  42. package/dist/components/Popover/Popover.js +0 -2
  43. package/dist/components/Popover/Popover.js.map +0 -1
  44. package/dist/components/Radio/Radio.d.ts +0 -33
  45. package/dist/components/Radio/Radio.js +0 -2
  46. package/dist/components/Radio/Radio.js.map +0 -1
  47. package/dist/components/Radio/RadioGroup.d.ts +0 -8
  48. package/dist/components/Radio/RadioGroup.js +0 -2
  49. package/dist/components/Radio/RadioGroup.js.map +0 -1
  50. package/dist/components/Select/Select.d.ts +0 -56
  51. package/dist/components/Select/Select.js +0 -2
  52. package/dist/components/Select/Select.js.map +0 -1
  53. package/dist/components/Separator/Separator.d.ts +0 -5
  54. package/dist/components/Separator/Separator.js +0 -2
  55. package/dist/components/Separator/Separator.js.map +0 -1
  56. package/dist/components/Switch/Switch.d.ts +0 -26
  57. package/dist/components/Switch/Switch.js +0 -2
  58. package/dist/components/Switch/Switch.js.map +0 -1
  59. package/dist/components/Tabs/Tabs.d.ts +0 -7
  60. package/dist/components/Tabs/Tabs.js +0 -2
  61. package/dist/components/Tabs/Tabs.js.map +0 -1
  62. package/dist/components/Text/Text.d.ts +0 -11
  63. package/dist/components/Text/Text.js +0 -2
  64. package/dist/components/Text/Text.js.map +0 -1
  65. package/dist/components/TextArea/TextArea.d.ts +0 -43
  66. package/dist/components/TextArea/TextArea.js +0 -2
  67. package/dist/components/TextArea/TextArea.js.map +0 -1
  68. package/dist/components/TextInput/TextInput.d.ts +0 -52
  69. package/dist/components/TextInput/TextInput.js +0 -2
  70. package/dist/components/TextInput/TextInput.js.map +0 -1
  71. package/dist/components/Tooltip/Tooltip.d.ts +0 -11
  72. package/dist/components/Tooltip/Tooltip.js +0 -2
  73. package/dist/components/Tooltip/Tooltip.js.map +0 -1
  74. package/dist/components/Validation/Validation.d.ts +0 -11
  75. package/dist/components/Validation/Validation.js +0 -2
  76. package/dist/components/Validation/Validation.js.map +0 -1
  77. package/dist/index.js +0 -2
  78. package/dist/index.js.map +0 -1
  79. package/dist/styles/assets/fonts/Geist-VariableFont_wght.ttf +0 -0
  80. package/dist/styles/colors-semantic-utilities.css +0 -1744
  81. package/dist/styles/colors-style-utilities.css +0 -931
  82. package/dist/styles/colors-utilities.css +0 -632
  83. package/dist/styles/colors.css +0 -2020
  84. package/dist/styles/colors.scoped.css +0 -1
  85. package/dist/styles/outline.css +0 -7
  86. package/dist/styles/reset.css +0 -9
  87. package/dist/styles/reset.flat.css +0 -1
  88. package/dist/styles/reset.scoped.css +0 -1
  89. package/dist/styles/spacing.css +0 -17
  90. package/dist/styles/typography.css +0 -68
  91. package/dist/styles/volt-ui.css +0 -1
  92. package/dist/styles/volt-ui.flat.css +0 -1
  93. package/dist/styles/volt-ui.scoped.css +0 -1
  94. package/dist/styles/volt-ui.theme.css +0 -1
  95. package/dist/tokens/colors.d.ts +0 -2083
  96. package/dist/tokens/colors.js +0 -1510
  97. package/dist/tokens/colors.js.map +0 -1
  98. package/dist/types/components/Accordion/Accordion.d.ts +0 -7
  99. package/dist/types/components/Badge/Badge.d.ts +0 -12
  100. package/dist/types/components/Button/Button.d.ts +0 -104
  101. package/dist/types/components/Button/IconButton.d.ts +0 -89
  102. package/dist/types/components/Checkbox/Checkbox.d.ts +0 -33
  103. package/dist/types/components/Dialog/Dialog.d.ts +0 -17
  104. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +0 -23
  105. package/dist/types/components/Form/Form.d.ts +0 -34
  106. package/dist/types/components/Heading/Heading.d.ts +0 -11
  107. package/dist/types/components/Link/Link.d.ts +0 -6
  108. package/dist/types/components/Popover/Popover.d.ts +0 -12
  109. package/dist/types/components/Radio/Radio.d.ts +0 -33
  110. package/dist/types/components/Radio/RadioGroup.d.ts +0 -8
  111. package/dist/types/components/Select/Select.d.ts +0 -56
  112. package/dist/types/components/Separator/Separator.d.ts +0 -5
  113. package/dist/types/components/Switch/Switch.d.ts +0 -26
  114. package/dist/types/components/Tabs/Tabs.d.ts +0 -7
  115. package/dist/types/components/Text/Text.d.ts +0 -11
  116. package/dist/types/components/TextArea/TextArea.d.ts +0 -43
  117. package/dist/types/components/TextInput/TextInput.d.ts +0 -52
  118. package/dist/types/components/Tooltip/Tooltip.d.ts +0 -11
  119. package/dist/types/components/Validation/Validation.d.ts +0 -11
  120. package/dist/types/index.d.ts +0 -23
  121. package/dist/types/tokens/colors.d.ts +0 -2083
package/README.md CHANGED
@@ -1,291 +1,50 @@
1
- # @epilot/volt-ui
1
+ # React + TypeScript + Vite
2
2
 
3
- A clean, lightweight, and tree-shakeable design system library for React applications. Built with Tailwind CSS v4, Radix UI primitives, and TypeScript.
3
+ This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4
4
 
5
- 📖 [View Storybook Documentation](https://main--68f5f302db3229e0eb83856e.chromatic.com/)
5
+ Currently, two official plugins are available:
6
6
 
7
- ## Features
7
+ - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
8
+ - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
8
9
 
9
- - 🌳 **Tree-shakeable**: Import only the components you need
10
- - 🎨 **Tailwind CSS v4**: No config needed, works with any framework
11
- - 🚀 **Zero runtime injection**: CSS is extracted at build time
12
- - 📦 **Modular**: Individual component imports for optimal bundle size
13
- - 🎯 **TypeScript**: Full type safety and IntelliSense support
14
- - 🌙 **Theme support**: Light and dark mode ready
15
- - 🧩 **Composable**: Self-contained components with intuitive composition patterns
10
+ ## Expanding the ESLint configuration
16
11
 
17
- ## Architecture
12
+ If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
18
13
 
19
- Form components (TextInput, TextArea, Select) are fully self-contained with their own:
20
- - Context management for state and accessibility
21
- - Container styling with state-based backgrounds
22
- - Composable sub-components (Root, Container, Label, Control, etc.)
23
- - Independent type definitions and validation
14
+ - Configure the top-level `parserOptions` property like this:
24
15
 
25
- This architecture makes each component:
26
- - Easy to understand and maintain
27
- - ✅ Independent from shared abstractions
28
- - Consistent API patterns across all form components
29
-
30
- ## Installation
31
-
32
- ```bash
33
- npm install @epilot/volt-ui
34
- # or
35
- yarn add @epilot/volt-ui
36
- ```
37
-
38
- ## Quick Start
39
-
40
- ### For React Applications
41
-
42
- ```tsx
43
- import { Button } from "@epilot/volt-ui";
44
-
45
- function App() {
46
- return <Button>Hello World</Button>;
47
- }
48
- ```
49
-
50
- ### Composable Form Components
51
-
52
- ```tsx
53
- import { TextInput } from "@epilot/volt-ui";
54
-
55
- function LoginForm() {
56
- return (
57
- <TextInput.Root id="email">
58
- <TextInput.Container>
59
- <TextInput.Label>Email</TextInput.Label>
60
- <TextInput.Control>
61
- <TextInput.Input type="email" placeholder="Enter your email" />
62
- </TextInput.Control>
63
- <TextInput.HelperText>We'll never share your email</TextInput.HelperText>
64
- </TextInput.Container>
65
- </TextInput.Root>
66
- );
67
- }
68
- ```
69
-
70
- All form components (TextInput, TextArea, Select) follow this composable pattern for maximum flexibility.
71
-
72
- ### For Tree Shaking (Recommended)
73
-
74
- ```tsx
75
- // Import only what you need
76
- import { Button } from "@epilot/volt-ui/components/Button";
77
- import { TextInput } from "@epilot/volt-ui/components/TextInput";
16
+ ```js
17
+ export default tseslint.config({
18
+ languageOptions: {
19
+ // other options...
20
+ parserOptions: {
21
+ project: ['./tsconfig.node.json', './tsconfig.app.json'],
22
+ tsconfigRootDir: import.meta.dirname,
23
+ },
24
+ },
25
+ })
78
26
  ```
79
27
 
80
- ### CSS Artifacts and Which One To Use
28
+ - Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked`
29
+ - Optionally add `...tseslint.configs.stylisticTypeChecked`
30
+ - Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config:
81
31
 
82
- ```css
83
- /* Tailwind 4 self-compile: Use with your own TW v4 pipeline */
84
- @import "@epilot/volt-ui/volt-ui.theme.css";
85
- ```
86
-
87
- ```css
88
- /* Tailwind 4 precompiled: includes all component and theme utility classes */
89
- @import "@epilot/volt-ui/volt-ui.css";
90
- ```
91
-
92
- ```css
93
- /* Scoped build: volt-ui styles only apply within [data-volt] container */
94
- @import "@epilot/volt-ui/volt-ui.scoped.css";
95
- ```
32
+ ```js
33
+ // eslint.config.js
34
+ import react from 'eslint-plugin-react'
96
35
 
97
- ```css
98
- /* Non-Tailwind or Tailwind 3 apps precompiled: includes all component and theme utility classes */
99
- @import "@epilot/volt-ui/volt-ui.flat.css";
36
+ export default tseslint.config({
37
+ // Set the react version
38
+ settings: { react: { version: '18.3' } },
39
+ plugins: {
40
+ // Add the react plugin
41
+ react,
42
+ },
43
+ rules: {
44
+ // other rules...
45
+ // Enable its recommended rules
46
+ ...react.configs.recommended.rules,
47
+ ...react.configs['jsx-runtime'].rules,
48
+ },
49
+ })
100
50
  ```
101
-
102
- ```css
103
- /* Reset variants (opt-in) */
104
- @import "@epilot/volt-ui/reset.css"; /* Global reset (affects page) */
105
- @import "@epilot/volt-ui/reset.flat.css"; /* Flattened reset for non-TW/TW3 */
106
- @import "@epilot/volt-ui/reset.scoped.css"; /* Scoped reset under [data-volt] */
107
- ```
108
-
109
- #### Scoped usage
110
-
111
- ```tsx
112
- import "@epilot/volt-ui/volt-ui.scoped.css";
113
-
114
- export function ScopedArea() {
115
- return (
116
- <div data-volt>
117
- {/* Your volt-ui components here are isolated from the host page */}
118
- </div>
119
- );
120
- }
121
- ```
122
-
123
- **Note:** Components that use portals (Dialog, Popover, DropdownMenu, Tooltip, Select) automatically add a `data-volt-portal` attribute to their portaled content, ensuring scoped styles work correctly even when content is rendered outside the main `data-volt` container.
124
-
125
- #### Reset is now opt-in
126
-
127
- The main styles no longer include a global reset. Choose one of the reset variants:
128
-
129
- ```ts
130
- // Global (affects entire page)
131
- import "@epilot/volt-ui/reset.css";
132
-
133
- // Flat (for non-Tailwind/Tailwind 3 pipelines)
134
- import "@epilot/volt-ui/reset.flat.css";
135
-
136
- // Scoped (only inside [data-volt])
137
- import "@epilot/volt-ui/reset.scoped.css";
138
- ```
139
-
140
-
141
- ### Scoped CSS for Micro Frontends (MFE)
142
-
143
- When embedding this library inside an MFE, you should scope the styles to your MFE root to prevent leaking styles outside of your container.
144
-
145
- Recommended approaches:
146
-
147
- 1) Shadow DOM (recommended)
148
- - Mount your MFE in a Shadow Root and attach the stylesheet there. This encapsulates styles to your component only.
149
-
150
- 2) Build-time prefixing
151
- - Use a CSS build step (e.g., PostCSS prefixing) in your host app to prefix all rules from `@epilot/volt-ui/volt-ui.flat.css` with your MFE root selector (for example `#epilot360-YourMFE`). This ensures all styles only apply inside that container.
152
-
153
- Note: Some preprocessors allow nesting an import under a selector. If your toolchain supports it, you can conceptually scope like this (example selector `#epilot360-YourMFE`):
154
-
155
- ```css
156
- /* app-level stylesheet (consumer app) */
157
- #epilot360-entity {
158
- /* Import the precompiled CSS so it only applies within your container */
159
- @import "@epilot/volt-ui/volt-ui.flat.css";
160
- }
161
- ```
162
-
163
- If your preprocessor does not support nested imports, prefer Shadow DOM or build-time prefixing.
164
-
165
- #### Shadow DOM injection in React (JS-scoped import)
166
-
167
- You can scope styles at runtime by rendering your MFE inside a Shadow Root and injecting the stylesheet there.
168
-
169
- ```tsx
170
- // Example: mount your MFE into a Shadow Root with scoped styles
171
- import React from "react";
172
- import ReactDOM from "react-dom/client";
173
- // Vite/Webpack (asset url) style import. If unsupported, see the fallback below.
174
- import voltUiCssUrl from "@epilot/volt-ui/volt-ui.flat.css?url";
175
- import { Button } from "@epilot/volt-ui";
176
-
177
- const App = () => (
178
- <div className="p-2 space-y-2">
179
- <Button variant="primary">Hello from Shadow DOM</Button>
180
- </div>
181
- );
182
-
183
- export const mountMFEWithShadowDOM = (hostElement: HTMLElement) => {
184
- const shadowRoot = hostElement.attachShadow({ mode: "open" });
185
-
186
- const link = document.createElement("link");
187
- link.rel = "stylesheet";
188
- link.href = voltUiCssUrl; // ensures styles are scoped to this Shadow Root
189
- shadowRoot.appendChild(link);
190
-
191
- const mountPoint = document.createElement("div");
192
- shadowRoot.appendChild(mountPoint);
193
-
194
- const root = ReactDOM.createRoot(mountPoint);
195
- root.render(<App />);
196
-
197
- return () => root.unmount();
198
- };
199
- ```
200
-
201
- Fallback if your bundler does not support `?url` imports: pass a resolvable CSS URL yourself or fetch CSS text at runtime and inject it as a `<style>`:
202
-
203
- ```ts
204
- // Given a cssUrl string (e.g., served by your host app), inject into the Shadow Root
205
- function injectScopedStyles(shadowRoot: ShadowRoot, cssUrl: string) {
206
- const link = document.createElement("link");
207
- link.rel = "stylesheet";
208
- link.href = cssUrl;
209
- shadowRoot.appendChild(link);
210
- }
211
-
212
- // Or, fetch and inline as a <style> (avoids extra request redirects but is synchronous after fetch)
213
- async function injectScopedInlineStyles(shadowRoot: ShadowRoot, cssUrl: string) {
214
- const cssText = await fetch(cssUrl).then((r) => r.text());
215
- const style = document.createElement("style");
216
- style.textContent = cssText;
217
- shadowRoot.appendChild(style);
218
- }
219
- ```
220
-
221
- ## Package Structure
222
-
223
- ```
224
- @epilot/volt-ui/
225
- ├── index.js # Main entry point
226
- ├── styles/
227
- │ ├── volt-ui.css # Tailwind 4 precompiled component styles
228
- │ ├── volt-ui.scoped.css # Scoped CSS (requires wrapping with [data-volt])
229
- │ ├── volt-ui.flat.css # Flattened CSS for Tailwind 3 / no Tailwind
230
- │ ├── volt-ui.theme.css # Tailwind 4 input for consumer build
231
- │ ├── colors.css # tokens
232
- │ ├── colors-utilities.css # utilities
233
- │ ├── colors-style-utilities.css
234
- │ ├── colors-semantic-utilities.css
235
- │ ├── typography.css
236
- │ ├── spacing.css
237
- │ └── outline.css
238
- ├── assets/fonts/ # Packaged fonts used by styles
239
- └── components/
240
- ├── Button/
241
- │ ├── Button.js # Individual components
242
- │ └── IconButton.js
243
- ├── Checkbox/
244
- │ ├── Checkbox.js
245
- │ └── CheckboxField.js
246
- └── ... (all other components)
247
- ```
248
-
249
- ## Migration from Previous Versions
250
-
251
- ### Breaking Changes
252
-
253
- - **CSS Import Required**: You must now import the CSS file explicitly:
254
-
255
- ```tsx
256
- import "@epilot/volt-ui/volt-ui.css";
257
- ```
258
-
259
- - **No Runtime CSS Injection**: CSS is no longer injected at runtime
260
- - **Tree Shaking**: Use individual component imports for optimal bundle size
261
- - **Reset is opt-in**: If you previously relied on a global reset, add:
262
-
263
- ```ts
264
- import "@epilot/volt-ui/reset.css";
265
- ```
266
-
267
- ### Migration Guide
268
-
269
- **Before:**
270
-
271
- ```tsx
272
- import { Button } from "@epilot/volt-ui";
273
- // CSS was automatically injected
274
- ```
275
-
276
- **After:**
277
-
278
- ```tsx
279
- import { Button } from "@epilot/volt-ui";
280
- import "@epilot/volt-ui/volt-ui.css"; // Required!
281
- ```
282
-
283
- ## Development
284
-
285
- This package is built with:
286
-
287
- - **Rollup** with `preserveModules` for optimal tree shaking
288
- - **TypeScript** for type safety
289
- - **Tailwind CSS v4** for styling
290
- - **Radix UI** for accessible primitives
291
- - **Zero runtime dependencies** for minimal bundle impact
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import type { ComponentPropsWithoutRef } from "react";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ declare const buttonVariants: (props?: ({
5
+ variant?: "primary" | "secondary" | "tertiary" | "destructive" | null | undefined;
6
+ size?: "sm" | "base" | "large" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export type ButtonVariant = VariantProps<typeof buttonVariants>["variant"];
9
+ export type ButtonSize = VariantProps<typeof buttonVariants>["size"];
10
+ export type ButtonProps = ComponentPropsWithoutRef<"button"> & VariantProps<typeof buttonVariants> & {
11
+ asChild?: boolean;
12
+ };
13
+ export declare const Button: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & VariantProps<(props?: ({
14
+ variant?: "primary" | "secondary" | "tertiary" | "destructive" | null | undefined;
15
+ size?: "sm" | "base" | "large" | null | undefined;
16
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
17
+ asChild?: boolean;
18
+ } & React.RefAttributes<HTMLButtonElement>>;
19
+ export {};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ie=require("react/jsx-runtime"),K=require("react");function Fe(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 k=Fe(K);function he(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function $e(...e){return r=>{let t=!1;const o=e.map(n=>{const s=he(n,r);return!t&&typeof s=="function"&&(t=!0),s});if(t)return()=>{for(let n=0;n<o.length;n++){const s=o[n];typeof s=="function"?s():he(e[n],null)}}}}var De=Symbol.for("react.lazy"),Q=k[" use ".trim().toString()];function Ue(e){return typeof e=="object"&&e!==null&&"then"in e}function Se(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===De&&"_payload"in e&&Ue(e._payload)}function Ye(e){const r=He(e),t=k.forwardRef((o,n)=>{let{children:s,...i}=o;Se(s)&&typeof Q=="function"&&(s=Q(s._payload));const u=k.Children.toArray(s),c=u.find(Ze);if(c){const m=c.props.children,b=u.map(g=>g===c?k.Children.count(m)>1?k.Children.only(null):k.isValidElement(m)?m.props.children:null:g);return ie.jsx(r,{...i,ref:n,children:k.isValidElement(m)?k.cloneElement(m,void 0,b):null})}return ie.jsx(r,{...i,ref:n,children:s})});return t.displayName=`${e}.Slot`,t}var qe=Ye("Slot");function He(e){const r=k.forwardRef((t,o)=>{let{children:n,...s}=t;if(Se(n)&&typeof Q=="function"&&(n=Q(n._payload)),k.isValidElement(n)){const i=Ke(n),u=Je(s,n.props);return n.type!==k.Fragment&&(u.ref=o?$e(o,i):i),k.cloneElement(n,u)}return k.Children.count(n)>1?k.Children.only(null):null});return r.displayName=`${e}.SlotClone`,r}var Xe=Symbol("radix.slottable");function Ze(e){return k.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Xe}function Je(e,r){const t={...r};for(const o in r){const n=e[o],s=r[o];/^on[A-Z]/.test(o)?n&&s?t[o]=(...u)=>{const c=s(...u);return n(...u),c}:n&&(t[o]=n):o==="style"?t[o]={...n,...s}:o==="className"&&(t[o]=[n,s].filter(Boolean).join(" "))}return{...e,...t}}function Ke(e){var o,n;let r=(o=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:o.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=(n=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:n.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}function Ae(e){var r,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(r=0;r<n;r++)e[r]&&(t=Ae(e[r]))&&(o&&(o+=" "),o+=t)}else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function Re(){for(var e,r,t=0,o="",n=arguments.length;t<n;t++)(e=arguments[t])&&(r=Ae(e))&&(o&&(o+=" "),o+=r);return o}const Qe=(e,r)=>{const t=new Array(e.length+r.length);for(let o=0;o<e.length;o++)t[o]=e[o];for(let o=0;o<r.length;o++)t[e.length+o]=r[o];return t},et=(e,r)=>({classGroupId:e,validator:r}),Pe=(e=new Map,r=null,t)=>({nextPart:e,validators:r,classGroupId:t}),ee="-",ve=[],tt="arbitrary..",ot=e=>{const r=nt(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return rt(i);const u=i.split(ee),c=u[0]===""&&u.length>1?1:0;return je(u,c,r)},getConflictingClassGroupIds:(i,u)=>{if(u){const c=o[i],m=t[i];return c?m?Qe(m,c):c:m||ve}return t[i]||ve}}},je=(e,r,t)=>{if(e.length-r===0)return t.classGroupId;const n=e[r],s=t.nextPart.get(n);if(s){const m=je(e,r+1,s);if(m)return m}const i=t.validators;if(i===null)return;const u=r===0?e.join(ee):e.slice(r).join(ee),c=i.length;for(let m=0;m<c;m++){const b=i[m];if(b.validator(u))return b.classGroupId}},rt=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=e.slice(1,-1),t=r.indexOf(":"),o=r.slice(0,t);return o?tt+o:void 0})(),nt=e=>{const{theme:r,classGroups:t}=e;return st(t,r)},st=(e,r)=>{const t=Pe();for(const o in e){const n=e[o];le(n,t,o,r)}return t},le=(e,r,t,o)=>{const n=e.length;for(let s=0;s<n;s++){const i=e[s];it(i,r,t,o)}},it=(e,r,t,o)=>{if(typeof e=="string"){at(e,r,t);return}if(typeof e=="function"){lt(e,r,t,o);return}ct(e,r,t,o)},at=(e,r,t)=>{const o=e===""?r:Ie(r,e);o.classGroupId=t},lt=(e,r,t,o)=>{if(dt(e)){le(e(o),r,t,o);return}r.validators===null&&(r.validators=[]),r.validators.push(et(t,e))},ct=(e,r,t,o)=>{const n=Object.entries(e),s=n.length;for(let i=0;i<s;i++){const[u,c]=n[i];le(c,Ie(r,u),t,o)}},Ie=(e,r)=>{let t=e;const o=r.split(ee),n=o.length;for(let s=0;s<n;s++){const i=o[s];let u=t.nextPart.get(i);u||(u=Pe(),t.nextPart.set(i,u)),t=u}return t},dt=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,ut=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=Object.create(null),o=Object.create(null);const n=(s,i)=>{t[s]=i,r++,r>e&&(r=0,o=t,t=Object.create(null))};return{get(s){let i=t[s];if(i!==void 0)return i;if((i=o[s])!==void 0)return n(s,i),i},set(s,i){s in t?t[s]=i:n(s,i)}}},ae="!",ye=":",mt=[],xe=(e,r,t,o,n)=>({modifiers:e,hasImportantModifier:r,baseClassName:t,maybePostfixModifierPosition:o,isExternal:n}),pt=e=>{const{prefix:r,experimentalParseClassName:t}=e;let o=n=>{const s=[];let i=0,u=0,c=0,m;const b=n.length;for(let C=0;C<b;C++){const x=n[C];if(i===0&&u===0){if(x===ye){s.push(n.slice(c,C)),c=C+1;continue}if(x==="/"){m=C;continue}}x==="["?i++:x==="]"?i--:x==="("?u++:x===")"&&u--}const g=s.length===0?n:n.slice(c);let y=g,S=!1;g.endsWith(ae)?(y=g.slice(0,-1),S=!0):g.startsWith(ae)&&(y=g.slice(1),S=!0);const A=m&&m>c?m-c:void 0;return xe(s,S,y,A)};if(r){const n=r+ye,s=o;o=i=>i.startsWith(n)?s(i.slice(n.length)):xe(mt,!1,i,void 0,!0)}if(t){const n=o;o=s=>t({className:s,parseClassName:n})}return o},ft=e=>{const r=new Map;return e.orderSensitiveModifiers.forEach((t,o)=>{r.set(t,1e6+o)}),t=>{const o=[];let n=[];for(let s=0;s<t.length;s++){const i=t[s],u=i[0]==="[",c=r.has(i);u||c?(n.length>0&&(n.sort(),o.push(...n),n=[]),o.push(i)):n.push(i)}return n.length>0&&(n.sort(),o.push(...n)),o}},bt=e=>({cache:ut(e.cacheSize),parseClassName:pt(e),sortModifiers:ft(e),...ot(e)}),gt=/\s+/,ht=(e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:n,sortModifiers:s}=r,i=[],u=e.trim().split(gt);let c="";for(let m=u.length-1;m>=0;m-=1){const b=u[m],{isExternal:g,modifiers:y,hasImportantModifier:S,baseClassName:A,maybePostfixModifierPosition:C}=t(b);if(g){c=b+(c.length>0?" "+c:c);continue}let x=!!C,O=o(x?A.substring(0,C):A);if(!O){if(!x){c=b+(c.length>0?" "+c:c);continue}if(O=o(A),!O){c=b+(c.length>0?" "+c:c);continue}x=!1}const D=y.length===0?"":y.length===1?y[0]:s(y).join(":"),B=S?D+ae:D,V=B+O;if(i.indexOf(V)>-1)continue;i.push(V);const N=n(O,x);for(let M=0;M<N.length;++M){const F=N[M];i.push(B+F)}c=b+(c.length>0?" "+c:c)}return c},vt=(...e)=>{let r=0,t,o,n="";for(;r<e.length;)(t=e[r++])&&(o=Oe(t))&&(n&&(n+=" "),n+=o);return n},Oe=e=>{if(typeof e=="string")return e;let r,t="";for(let o=0;o<e.length;o++)e[o]&&(r=Oe(e[o]))&&(t&&(t+=" "),t+=r);return t},yt=(e,...r)=>{let t,o,n,s;const i=c=>{const m=r.reduce((b,g)=>g(b),e());return t=bt(m),o=t.cache.get,n=t.cache.set,s=u,u(c)},u=c=>{const m=o(c);if(m)return m;const b=ht(c,t);return n(c,b),b};return s=i,(...c)=>s(vt(...c))},xt=[],h=e=>{const r=t=>t[e]||xt;return r.isThemeGetter=!0,r},Me=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Te=/^\((?:(\w[\w-]*):)?(.+)\)$/i,wt=/^\d+\/\d+$/,kt=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ct=/\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$/,zt=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,St=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,At=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,G=e=>wt.test(e),f=e=>!!e&&!Number.isNaN(Number(e)),I=e=>!!e&&Number.isInteger(Number(e)),ne=e=>e.endsWith("%")&&f(e.slice(0,-1)),j=e=>kt.test(e),Rt=()=>!0,Pt=e=>Ct.test(e)&&!zt.test(e),Ee=()=>!1,jt=e=>St.test(e),It=e=>At.test(e),Ot=e=>!a(e)&&!l(e),Mt=e=>L(e,_e,Ee),a=e=>Me.test(e),E=e=>L(e,Ge,Pt),se=e=>L(e,_t,f),we=e=>L(e,Ve,Ee),Tt=e=>L(e,Ne,It),Z=e=>L(e,Le,jt),l=e=>Te.test(e),$=e=>W(e,Ge),Et=e=>W(e,Gt),ke=e=>W(e,Ve),Vt=e=>W(e,_e),Nt=e=>W(e,Ne),J=e=>W(e,Le,!0),L=(e,r,t)=>{const o=Me.exec(e);return o?o[1]?r(o[1]):t(o[2]):!1},W=(e,r,t=!1)=>{const o=Te.exec(e);return o?o[1]?r(o[1]):t:!1},Ve=e=>e==="position"||e==="percentage",Ne=e=>e==="image"||e==="url",_e=e=>e==="length"||e==="size"||e==="bg-size",Ge=e=>e==="length",_t=e=>e==="number",Gt=e=>e==="family-name",Le=e=>e==="shadow",Lt=()=>{const e=h("color"),r=h("font"),t=h("text"),o=h("font-weight"),n=h("tracking"),s=h("leading"),i=h("breakpoint"),u=h("container"),c=h("spacing"),m=h("radius"),b=h("shadow"),g=h("inset-shadow"),y=h("text-shadow"),S=h("drop-shadow"),A=h("blur"),C=h("perspective"),x=h("aspect"),O=h("ease"),D=h("animate"),B=()=>["auto","avoid","all","avoid-page","page","left","right","column"],V=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],N=()=>[...V(),l,a],M=()=>["auto","hidden","clip","visible","scroll"],F=()=>["auto","contain","none"],p=()=>[l,a,c],R=()=>[G,"full","auto",...p()],ce=()=>[I,"none","subgrid",l,a],de=()=>["auto",{span:["full",I,l,a]},I,l,a],U=()=>[I,"auto",l,a],ue=()=>["auto","min","max","fr",l,a],te=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],_=()=>["start","end","center","stretch","center-safe","end-safe"],P=()=>["auto",...p()],T=()=>[G,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...p()],d=()=>[e,l,a],me=()=>[...V(),ke,we,{position:[l,a]}],pe=()=>["no-repeat",{repeat:["","x","y","space","round"]}],fe=()=>["auto","cover","contain",Vt,Mt,{size:[l,a]}],oe=()=>[ne,$,E],w=()=>["","none","full",m,l,a],z=()=>["",f,$,E],Y=()=>["solid","dashed","dotted","double"],be=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],v=()=>[f,ne,ke,we],ge=()=>["","none",A,l,a],q=()=>["none",f,l,a],H=()=>["none",f,l,a],re=()=>[f,l,a],X=()=>[G,"full",...p()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[j],breakpoint:[j],color:[Rt],container:[j],"drop-shadow":[j],ease:["in","out","in-out"],font:[Ot],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[j],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[j],shadow:[j],spacing:["px",f],text:[j],"text-shadow":[j],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",G,a,l,x]}],container:["container"],columns:[{columns:[f,a,l,u]}],"break-after":[{"break-after":B()}],"break-before":[{"break-before":B()}],"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"],sr:["sr-only","not-sr-only"],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:N()}],overflow:[{overflow:M()}],"overflow-x":[{"overflow-x":M()}],"overflow-y":[{"overflow-y":M()}],overscroll:[{overscroll:F()}],"overscroll-x":[{"overscroll-x":F()}],"overscroll-y":[{"overscroll-y":F()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:R()}],"inset-x":[{"inset-x":R()}],"inset-y":[{"inset-y":R()}],start:[{start:R()}],end:[{end:R()}],top:[{top:R()}],right:[{right:R()}],bottom:[{bottom:R()}],left:[{left:R()}],visibility:["visible","invisible","collapse"],z:[{z:[I,"auto",l,a]}],basis:[{basis:[G,"full","auto",u,...p()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[f,G,"auto","initial","none",a]}],grow:[{grow:["",f,l,a]}],shrink:[{shrink:["",f,l,a]}],order:[{order:[I,"first","last","none",l,a]}],"grid-cols":[{"grid-cols":ce()}],"col-start-end":[{col:de()}],"col-start":[{"col-start":U()}],"col-end":[{"col-end":U()}],"grid-rows":[{"grid-rows":ce()}],"row-start-end":[{row:de()}],"row-start":[{"row-start":U()}],"row-end":[{"row-end":U()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ue()}],"auto-rows":[{"auto-rows":ue()}],gap:[{gap:p()}],"gap-x":[{"gap-x":p()}],"gap-y":[{"gap-y":p()}],"justify-content":[{justify:[...te(),"normal"]}],"justify-items":[{"justify-items":[..._(),"normal"]}],"justify-self":[{"justify-self":["auto",..._()]}],"align-content":[{content:["normal",...te()]}],"align-items":[{items:[..._(),{baseline:["","last"]}]}],"align-self":[{self:["auto",..._(),{baseline:["","last"]}]}],"place-content":[{"place-content":te()}],"place-items":[{"place-items":[..._(),"baseline"]}],"place-self":[{"place-self":["auto",..._()]}],p:[{p:p()}],px:[{px:p()}],py:[{py:p()}],ps:[{ps:p()}],pe:[{pe:p()}],pt:[{pt:p()}],pr:[{pr:p()}],pb:[{pb:p()}],pl:[{pl:p()}],m:[{m:P()}],mx:[{mx:P()}],my:[{my:P()}],ms:[{ms:P()}],me:[{me:P()}],mt:[{mt:P()}],mr:[{mr:P()}],mb:[{mb:P()}],ml:[{ml:P()}],"space-x":[{"space-x":p()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":p()}],"space-y-reverse":["space-y-reverse"],size:[{size:T()}],w:[{w:[u,"screen",...T()]}],"min-w":[{"min-w":[u,"screen","none",...T()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[i]},...T()]}],h:[{h:["screen","lh",...T()]}],"min-h":[{"min-h":["screen","lh","none",...T()]}],"max-h":[{"max-h":["screen","lh",...T()]}],"font-size":[{text:["base",t,$,E]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,l,se]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ne,a]}],"font-family":[{font:[Et,a,r]}],"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:[n,l,a]}],"line-clamp":[{"line-clamp":[f,"none",l,se]}],leading:[{leading:[s,...p()]}],"list-image":[{"list-image":["none",l,a]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",l,a]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:d()}],"text-color":[{text:d()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Y(),"wavy"]}],"text-decoration-thickness":[{decoration:[f,"from-font","auto",l,E]}],"text-decoration-color":[{decoration:d()}],"underline-offset":[{"underline-offset":[f,"auto",l,a]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:p()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",l,a]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",l,a]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:me()}],"bg-repeat":[{bg:pe()}],"bg-size":[{bg:fe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},I,l,a],radial:["",l,a],conic:[I,l,a]},Nt,Tt]}],"bg-color":[{bg:d()}],"gradient-from-pos":[{from:oe()}],"gradient-via-pos":[{via:oe()}],"gradient-to-pos":[{to:oe()}],"gradient-from":[{from:d()}],"gradient-via":[{via:d()}],"gradient-to":[{to:d()}],rounded:[{rounded:w()}],"rounded-s":[{"rounded-s":w()}],"rounded-e":[{"rounded-e":w()}],"rounded-t":[{"rounded-t":w()}],"rounded-r":[{"rounded-r":w()}],"rounded-b":[{"rounded-b":w()}],"rounded-l":[{"rounded-l":w()}],"rounded-ss":[{"rounded-ss":w()}],"rounded-se":[{"rounded-se":w()}],"rounded-ee":[{"rounded-ee":w()}],"rounded-es":[{"rounded-es":w()}],"rounded-tl":[{"rounded-tl":w()}],"rounded-tr":[{"rounded-tr":w()}],"rounded-br":[{"rounded-br":w()}],"rounded-bl":[{"rounded-bl":w()}],"border-w":[{border:z()}],"border-w-x":[{"border-x":z()}],"border-w-y":[{"border-y":z()}],"border-w-s":[{"border-s":z()}],"border-w-e":[{"border-e":z()}],"border-w-t":[{"border-t":z()}],"border-w-r":[{"border-r":z()}],"border-w-b":[{"border-b":z()}],"border-w-l":[{"border-l":z()}],"divide-x":[{"divide-x":z()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":z()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Y(),"hidden","none"]}],"divide-style":[{divide:[...Y(),"hidden","none"]}],"border-color":[{border:d()}],"border-color-x":[{"border-x":d()}],"border-color-y":[{"border-y":d()}],"border-color-s":[{"border-s":d()}],"border-color-e":[{"border-e":d()}],"border-color-t":[{"border-t":d()}],"border-color-r":[{"border-r":d()}],"border-color-b":[{"border-b":d()}],"border-color-l":[{"border-l":d()}],"divide-color":[{divide:d()}],"outline-style":[{outline:[...Y(),"none","hidden"]}],"outline-offset":[{"outline-offset":[f,l,a]}],"outline-w":[{outline:["",f,$,E]}],"outline-color":[{outline:d()}],shadow:[{shadow:["","none",b,J,Z]}],"shadow-color":[{shadow:d()}],"inset-shadow":[{"inset-shadow":["none",g,J,Z]}],"inset-shadow-color":[{"inset-shadow":d()}],"ring-w":[{ring:z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:d()}],"ring-offset-w":[{"ring-offset":[f,E]}],"ring-offset-color":[{"ring-offset":d()}],"inset-ring-w":[{"inset-ring":z()}],"inset-ring-color":[{"inset-ring":d()}],"text-shadow":[{"text-shadow":["none",y,J,Z]}],"text-shadow-color":[{"text-shadow":d()}],opacity:[{opacity:[f,l,a]}],"mix-blend":[{"mix-blend":[...be(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":be()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[f]}],"mask-image-linear-from-pos":[{"mask-linear-from":v()}],"mask-image-linear-to-pos":[{"mask-linear-to":v()}],"mask-image-linear-from-color":[{"mask-linear-from":d()}],"mask-image-linear-to-color":[{"mask-linear-to":d()}],"mask-image-t-from-pos":[{"mask-t-from":v()}],"mask-image-t-to-pos":[{"mask-t-to":v()}],"mask-image-t-from-color":[{"mask-t-from":d()}],"mask-image-t-to-color":[{"mask-t-to":d()}],"mask-image-r-from-pos":[{"mask-r-from":v()}],"mask-image-r-to-pos":[{"mask-r-to":v()}],"mask-image-r-from-color":[{"mask-r-from":d()}],"mask-image-r-to-color":[{"mask-r-to":d()}],"mask-image-b-from-pos":[{"mask-b-from":v()}],"mask-image-b-to-pos":[{"mask-b-to":v()}],"mask-image-b-from-color":[{"mask-b-from":d()}],"mask-image-b-to-color":[{"mask-b-to":d()}],"mask-image-l-from-pos":[{"mask-l-from":v()}],"mask-image-l-to-pos":[{"mask-l-to":v()}],"mask-image-l-from-color":[{"mask-l-from":d()}],"mask-image-l-to-color":[{"mask-l-to":d()}],"mask-image-x-from-pos":[{"mask-x-from":v()}],"mask-image-x-to-pos":[{"mask-x-to":v()}],"mask-image-x-from-color":[{"mask-x-from":d()}],"mask-image-x-to-color":[{"mask-x-to":d()}],"mask-image-y-from-pos":[{"mask-y-from":v()}],"mask-image-y-to-pos":[{"mask-y-to":v()}],"mask-image-y-from-color":[{"mask-y-from":d()}],"mask-image-y-to-color":[{"mask-y-to":d()}],"mask-image-radial":[{"mask-radial":[l,a]}],"mask-image-radial-from-pos":[{"mask-radial-from":v()}],"mask-image-radial-to-pos":[{"mask-radial-to":v()}],"mask-image-radial-from-color":[{"mask-radial-from":d()}],"mask-image-radial-to-color":[{"mask-radial-to":d()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":V()}],"mask-image-conic-pos":[{"mask-conic":[f]}],"mask-image-conic-from-pos":[{"mask-conic-from":v()}],"mask-image-conic-to-pos":[{"mask-conic-to":v()}],"mask-image-conic-from-color":[{"mask-conic-from":d()}],"mask-image-conic-to-color":[{"mask-conic-to":d()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:me()}],"mask-repeat":[{mask:pe()}],"mask-size":[{mask:fe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",l,a]}],filter:[{filter:["","none",l,a]}],blur:[{blur:ge()}],brightness:[{brightness:[f,l,a]}],contrast:[{contrast:[f,l,a]}],"drop-shadow":[{"drop-shadow":["","none",S,J,Z]}],"drop-shadow-color":[{"drop-shadow":d()}],grayscale:[{grayscale:["",f,l,a]}],"hue-rotate":[{"hue-rotate":[f,l,a]}],invert:[{invert:["",f,l,a]}],saturate:[{saturate:[f,l,a]}],sepia:[{sepia:["",f,l,a]}],"backdrop-filter":[{"backdrop-filter":["","none",l,a]}],"backdrop-blur":[{"backdrop-blur":ge()}],"backdrop-brightness":[{"backdrop-brightness":[f,l,a]}],"backdrop-contrast":[{"backdrop-contrast":[f,l,a]}],"backdrop-grayscale":[{"backdrop-grayscale":["",f,l,a]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[f,l,a]}],"backdrop-invert":[{"backdrop-invert":["",f,l,a]}],"backdrop-opacity":[{"backdrop-opacity":[f,l,a]}],"backdrop-saturate":[{"backdrop-saturate":[f,l,a]}],"backdrop-sepia":[{"backdrop-sepia":["",f,l,a]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":p()}],"border-spacing-x":[{"border-spacing-x":p()}],"border-spacing-y":[{"border-spacing-y":p()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",l,a]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[f,"initial",l,a]}],ease:[{ease:["linear","initial",O,l,a]}],delay:[{delay:[f,l,a]}],animate:[{animate:["none",D,l,a]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[C,l,a]}],"perspective-origin":[{"perspective-origin":N()}],rotate:[{rotate:q()}],"rotate-x":[{"rotate-x":q()}],"rotate-y":[{"rotate-y":q()}],"rotate-z":[{"rotate-z":q()}],scale:[{scale:H()}],"scale-x":[{"scale-x":H()}],"scale-y":[{"scale-y":H()}],"scale-z":[{"scale-z":H()}],"scale-3d":["scale-3d"],skew:[{skew:re()}],"skew-x":[{"skew-x":re()}],"skew-y":[{"skew-y":re()}],transform:[{transform:[l,a,"","none","gpu","cpu"]}],"transform-origin":[{origin:N()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:X()}],"translate-x":[{"translate-x":X()}],"translate-y":[{"translate-y":X()}],"translate-z":[{"translate-z":X()}],"translate-none":["translate-none"],accent:[{accent:d()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:d()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],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",l,a]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":p()}],"scroll-mx":[{"scroll-mx":p()}],"scroll-my":[{"scroll-my":p()}],"scroll-ms":[{"scroll-ms":p()}],"scroll-me":[{"scroll-me":p()}],"scroll-mt":[{"scroll-mt":p()}],"scroll-mr":[{"scroll-mr":p()}],"scroll-mb":[{"scroll-mb":p()}],"scroll-ml":[{"scroll-ml":p()}],"scroll-p":[{"scroll-p":p()}],"scroll-px":[{"scroll-px":p()}],"scroll-py":[{"scroll-py":p()}],"scroll-ps":[{"scroll-ps":p()}],"scroll-pe":[{"scroll-pe":p()}],"scroll-pt":[{"scroll-pt":p()}],"scroll-pr":[{"scroll-pr":p()}],"scroll-pb":[{"scroll-pb":p()}],"scroll-pl":[{"scroll-pl":p()}],"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",l,a]}],fill:[{fill:["none",...d()]}],"stroke-w":[{stroke:[f,$,E,se]}],stroke:[{stroke:["none",...d()]}],"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-x","border-w-y","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-x","border-color-y","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"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"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"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Wt=yt(Lt),We=(...e)=>Wt(Re(e)),Ce=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,ze=Re,Bt=(e,r)=>t=>{var o;if((r==null?void 0:r.variants)==null)return ze(e,t==null?void 0:t.class,t==null?void 0:t.className);const{variants:n,defaultVariants:s}=r,i=Object.keys(n).map(m=>{const b=t==null?void 0:t[m],g=s==null?void 0:s[m];if(b===null)return null;const y=Ce(b)||Ce(g);return n[m][y]}),u=t&&Object.entries(t).reduce((m,b)=>{let[g,y]=b;return y===void 0||(m[g]=y),m},{}),c=r==null||(o=r.compoundVariants)===null||o===void 0?void 0:o.reduce((m,b)=>{let{class:g,className:y,...S}=b;return Object.entries(S).every(A=>{let[C,x]=A;return Array.isArray(x)?x.includes({...s,...u}[C]):{...s,...u}[C]===x})?[...m,g,y]:m},[]);return ze(e,i,c,t==null?void 0:t.class,t==null?void 0:t.className)},Ft=Bt("volt-ui-inline-flex volt-ui-items-center volt-ui-justify-center volt-ui-gap-2 volt-ui-font-normal volt-ui-whitespace-nowrap volt-ui-transition-all volt-ui-cursor-pointer volt-ui-focus-visible:outline-2 volt-ui-focus-visible:outline-offset-2 volt-ui-disabled:pointer-events-none volt-ui-disabled:opacity-50 volt-ui-rounded-full volt-ui-shrink-0 volt-ui-[&_svg]:shrink-0 volt-ui-[&_svg]:pointer-events-none",{variants:{variant:{primary:"volt-ui-bg-accent-solid volt-ui-text-accent-contrast volt-ui-hover:bg-accent-solid-hover volt-ui-active:bg-accent-solid-hover volt-ui-focus-visible:outline-accent-a8",secondary:"volt-ui-bg-accent-soft volt-ui-text-accent-light volt-ui-hover:bg-accent-soft-hover volt-ui-focus-visible:outline-accent-a8",tertiary:"volt-ui-bg-transparent volt-ui-text-accent-light volt-ui-hover:bg-accent-soft volt-ui-focus-visible:outline-accent-a8",destructive:"volt-ui-bg-error-a9 volt-ui-text-error-contrast volt-ui-hover:bg-error-solid-hover volt-ui-active:bg-error-solid-hover volt-ui-focus-visible:outline-error-a8"},size:{sm:"volt-ui-px-3 volt-ui-py-1 volt-ui-min-h-6 volt-ui-text-sm volt-ui-has-[>svg]:px-2.5",base:"volt-ui-px-4 volt-ui-py-1 volt-ui-min-h-8 volt-ui-text-base volt-ui-has-[>svg]:px-3",large:"volt-ui-px-6 volt-ui-py-2.5 volt-ui-min-h-10 volt-ui-text-lg volt-ui-has-[>svg]:px-4"}},defaultVariants:{variant:"primary",size:"base"}}),Be=K.forwardRef(({variant:e,size:r,asChild:t=!1,className:o,type:n="button",children:s,...i},u)=>{const c=t?qe:"button",b=K.Children.toArray(s).some(g=>K.isValidElement(g)&&(g.type==="svg"||typeof g.type=="string"&&g.type.includes("svg")))?"px-4.5":"";return ie.jsx(c,{className:We(Ft({variant:e,size:r}),b,o),ref:u,type:t?void 0:n,...i,children:s})});Be.displayName="Button";exports.Button=Be;exports.cn=We;
package/dist/index.d.ts CHANGED
@@ -1,23 +1,3 @@
1
- import cx from "classnames";
2
- export { Button } from "./components/Button/Button";
3
- export { IconButton } from "./components/Button/IconButton";
4
- export { Checkbox, CheckboxField } from "./components/Checkbox/Checkbox";
5
- export { Heading } from "./components/Heading/Heading";
6
- export { Popover } from "./components/Popover/Popover";
7
- export { Switch, SwitchField } from "./components/Switch/Switch";
8
- export { Tabs } from "./components/Tabs/Tabs";
9
- export { Text } from "./components/Text/Text";
10
- export { Tooltip } from "./components/Tooltip/Tooltip";
11
- export { Badge } from "./components/Badge/Badge";
12
- export { Accordion } from "./components/Accordion/Accordion";
13
- export { Radio, RadioField } from "./components/Radio/Radio";
14
- export { RadioGroup } from "./components/Radio/RadioGroup";
15
- export { TextArea } from "./components/TextArea/TextArea";
16
- export { Select } from "./components/Select/Select";
17
- export { TextInput } from "./components/TextInput/TextInput";
18
- export { Dialog } from "./components/Dialog/Dialog";
19
- export { Separator } from "./components/Separator/Separator";
20
- export { Validation } from "./components/Validation/Validation";
21
- export { Link } from "./components/Link/Link";
22
- export { DropdownMenu } from "./components/DropdownMenu/DropdownMenu";
23
- export { cx };
1
+ import "@/styles/index.css";
2
+ export { Button } from "./components/button/button";
3
+ export { cn } from "./lib/utils";