@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.
- package/README.md +38 -279
- package/dist/components/button/button.d.ts +19 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.d.ts +3 -23
- package/dist/index.es.js +2930 -0
- package/dist/lib/utils.d.ts +12 -0
- package/dist/style.css +7551 -0
- package/package.json +37 -175
- package/CHANGELOG.md +0 -379
- package/dist/assets/fonts/Geist-VariableFont_wght.ttf +0 -0
- package/dist/components/Accordion/Accordion.d.ts +0 -7
- package/dist/components/Accordion/Accordion.js +0 -2
- package/dist/components/Accordion/Accordion.js.map +0 -1
- package/dist/components/Badge/Badge.d.ts +0 -12
- package/dist/components/Badge/Badge.js +0 -2
- package/dist/components/Badge/Badge.js.map +0 -1
- package/dist/components/Button/Button.d.ts +0 -104
- package/dist/components/Button/Button.js +0 -2
- package/dist/components/Button/Button.js.map +0 -1
- package/dist/components/Button/IconButton.d.ts +0 -89
- package/dist/components/Button/IconButton.js +0 -2
- package/dist/components/Button/IconButton.js.map +0 -1
- package/dist/components/Checkbox/Checkbox.d.ts +0 -33
- package/dist/components/Checkbox/Checkbox.js +0 -2
- package/dist/components/Checkbox/Checkbox.js.map +0 -1
- package/dist/components/Dialog/Dialog.d.ts +0 -17
- package/dist/components/Dialog/Dialog.js +0 -2
- package/dist/components/Dialog/Dialog.js.map +0 -1
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +0 -23
- package/dist/components/DropdownMenu/DropdownMenu.js +0 -2
- package/dist/components/DropdownMenu/DropdownMenu.js.map +0 -1
- package/dist/components/Form/Form.d.ts +0 -34
- package/dist/components/Form/Form.js +0 -20
- package/dist/components/Form/Form.js.map +0 -1
- package/dist/components/Heading/Heading.d.ts +0 -11
- package/dist/components/Heading/Heading.js +0 -2
- package/dist/components/Heading/Heading.js.map +0 -1
- package/dist/components/Link/Link.d.ts +0 -6
- package/dist/components/Link/Link.js +0 -2
- package/dist/components/Link/Link.js.map +0 -1
- package/dist/components/Popover/Popover.d.ts +0 -12
- package/dist/components/Popover/Popover.js +0 -2
- package/dist/components/Popover/Popover.js.map +0 -1
- package/dist/components/Radio/Radio.d.ts +0 -33
- package/dist/components/Radio/Radio.js +0 -2
- package/dist/components/Radio/Radio.js.map +0 -1
- package/dist/components/Radio/RadioGroup.d.ts +0 -8
- package/dist/components/Radio/RadioGroup.js +0 -2
- package/dist/components/Radio/RadioGroup.js.map +0 -1
- package/dist/components/Select/Select.d.ts +0 -56
- package/dist/components/Select/Select.js +0 -2
- package/dist/components/Select/Select.js.map +0 -1
- package/dist/components/Separator/Separator.d.ts +0 -5
- package/dist/components/Separator/Separator.js +0 -2
- package/dist/components/Separator/Separator.js.map +0 -1
- package/dist/components/Switch/Switch.d.ts +0 -26
- package/dist/components/Switch/Switch.js +0 -2
- package/dist/components/Switch/Switch.js.map +0 -1
- package/dist/components/Tabs/Tabs.d.ts +0 -7
- package/dist/components/Tabs/Tabs.js +0 -2
- package/dist/components/Tabs/Tabs.js.map +0 -1
- package/dist/components/Text/Text.d.ts +0 -11
- package/dist/components/Text/Text.js +0 -2
- package/dist/components/Text/Text.js.map +0 -1
- package/dist/components/TextArea/TextArea.d.ts +0 -43
- package/dist/components/TextArea/TextArea.js +0 -2
- package/dist/components/TextArea/TextArea.js.map +0 -1
- package/dist/components/TextInput/TextInput.d.ts +0 -52
- package/dist/components/TextInput/TextInput.js +0 -2
- package/dist/components/TextInput/TextInput.js.map +0 -1
- package/dist/components/Tooltip/Tooltip.d.ts +0 -11
- package/dist/components/Tooltip/Tooltip.js +0 -2
- package/dist/components/Tooltip/Tooltip.js.map +0 -1
- package/dist/components/Validation/Validation.d.ts +0 -11
- package/dist/components/Validation/Validation.js +0 -2
- package/dist/components/Validation/Validation.js.map +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
- package/dist/styles/assets/fonts/Geist-VariableFont_wght.ttf +0 -0
- package/dist/styles/colors-semantic-utilities.css +0 -1744
- package/dist/styles/colors-style-utilities.css +0 -931
- package/dist/styles/colors-utilities.css +0 -632
- package/dist/styles/colors.css +0 -2020
- package/dist/styles/colors.scoped.css +0 -1
- package/dist/styles/outline.css +0 -7
- package/dist/styles/reset.css +0 -9
- package/dist/styles/reset.flat.css +0 -1
- package/dist/styles/reset.scoped.css +0 -1
- package/dist/styles/spacing.css +0 -17
- package/dist/styles/typography.css +0 -68
- package/dist/styles/volt-ui.css +0 -1
- package/dist/styles/volt-ui.flat.css +0 -1
- package/dist/styles/volt-ui.scoped.css +0 -1
- package/dist/styles/volt-ui.theme.css +0 -1
- package/dist/tokens/colors.d.ts +0 -2083
- package/dist/tokens/colors.js +0 -1510
- package/dist/tokens/colors.js.map +0 -1
- package/dist/types/components/Accordion/Accordion.d.ts +0 -7
- package/dist/types/components/Badge/Badge.d.ts +0 -12
- package/dist/types/components/Button/Button.d.ts +0 -104
- package/dist/types/components/Button/IconButton.d.ts +0 -89
- package/dist/types/components/Checkbox/Checkbox.d.ts +0 -33
- package/dist/types/components/Dialog/Dialog.d.ts +0 -17
- package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +0 -23
- package/dist/types/components/Form/Form.d.ts +0 -34
- package/dist/types/components/Heading/Heading.d.ts +0 -11
- package/dist/types/components/Link/Link.d.ts +0 -6
- package/dist/types/components/Popover/Popover.d.ts +0 -12
- package/dist/types/components/Radio/Radio.d.ts +0 -33
- package/dist/types/components/Radio/RadioGroup.d.ts +0 -8
- package/dist/types/components/Select/Select.d.ts +0 -56
- package/dist/types/components/Separator/Separator.d.ts +0 -5
- package/dist/types/components/Switch/Switch.d.ts +0 -26
- package/dist/types/components/Tabs/Tabs.d.ts +0 -7
- package/dist/types/components/Text/Text.d.ts +0 -11
- package/dist/types/components/TextArea/TextArea.d.ts +0 -43
- package/dist/types/components/TextInput/TextInput.d.ts +0 -52
- package/dist/types/components/Tooltip/Tooltip.d.ts +0 -11
- package/dist/types/components/Validation/Validation.d.ts +0 -11
- package/dist/types/index.d.ts +0 -23
- package/dist/types/tokens/colors.d.ts +0 -2083
package/README.md
CHANGED
|
@@ -1,291 +1,50 @@
|
|
|
1
|
-
#
|
|
1
|
+
# React + TypeScript + Vite
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Currently, two official plugins are available:
|
|
6
6
|
|
|
7
|
-
|
|
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
|
-
|
|
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
|
-
|
|
12
|
+
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
|
|
18
13
|
|
|
19
|
-
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
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
|
-
```
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
|
2
|
-
export { Button } from "./components/
|
|
3
|
-
export {
|
|
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";
|