@equal-experts/kuat-vue 0.4.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -142
- package/dist/FieldSet.vue_vue_type_script_setup_true_lang-D9i4ciy0.js +119 -0
- package/dist/FieldTitle.vue_vue_type_script_setup_true_lang-Bu8UIwRT.js +108 -0
- package/dist/KuatSelect.vue_vue_type_script_setup_true_lang-DP66U_wg.js +493 -0
- package/dist/Toggle.vue_vue_type_script_setup_true_lang-CZM1GrLQ.js +38 -0
- package/dist/accordion.js +7 -6
- package/dist/alert-dialog.js +13 -12
- package/dist/badge.js +4 -3
- package/dist/button-group.js +7 -6
- package/dist/button.js +4 -3
- package/dist/checkbox.d.ts +3 -0
- package/dist/checkbox.js +10 -0
- package/dist/components/ui/carousel/Carousel.vue.d.ts +52 -0
- package/dist/components/ui/carousel/CarouselContent.vue.d.ts +25 -0
- package/dist/components/ui/carousel/CarouselItem.vue.d.ts +27 -0
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +16 -0
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +16 -0
- package/dist/components/ui/carousel/context.d.ts +18 -0
- package/dist/components/ui/carousel/index.d.ts +7 -0
- package/dist/components/ui/checkbox/Checkbox.vue.d.ts +13 -0
- package/dist/components/ui/checkbox/CheckboxField.vue.d.ts +68 -0
- package/dist/components/ui/checkbox/constants.d.ts +4 -0
- package/dist/components/ui/checkbox/index.d.ts +4 -0
- package/dist/components/ui/field/Field.vue.d.ts +48 -0
- package/dist/components/ui/field/FieldContent.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldDescription.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldError.vue.d.ts +33 -0
- package/dist/components/ui/field/FieldGroup.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldLabel.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldLegend.vue.d.ts +43 -0
- package/dist/components/ui/field/FieldSeparator.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldSet.vue.d.ts +26 -0
- package/dist/components/ui/field/FieldTitle.vue.d.ts +26 -0
- package/dist/components/ui/field/constants.d.ts +4 -0
- package/dist/components/ui/field/index.d.ts +12 -0
- package/dist/components/ui/input/Input.vue.d.ts +34 -0
- package/dist/components/ui/input/constants.d.ts +2 -0
- package/dist/components/ui/input/index.d.ts +3 -0
- package/dist/components/ui/kuat-carousel/KuatCarousel.vue.d.ts +7 -3
- package/dist/components/ui/kuat-carousel/KuatCarouselItem.vue.d.ts +2 -0
- package/dist/components/ui/radio/RadioField.vue.d.ts +58 -0
- package/dist/components/ui/radio/RadioGroup.vue.d.ts +31 -0
- package/dist/components/ui/radio/RadioGroupItem.vue.d.ts +22 -0
- package/dist/components/ui/radio/constants.d.ts +4 -0
- package/dist/components/ui/radio/index.d.ts +5 -0
- package/dist/components/ui/select/KuatSelect.vue.d.ts +104 -0
- package/dist/components/ui/select/Select.vue.d.ts +28 -0
- package/dist/components/ui/select/SelectContent.vue.d.ts +52 -0
- package/dist/components/ui/select/SelectGroup.vue.d.ts +22 -0
- package/dist/components/ui/select/SelectItem.vue.d.ts +40 -0
- package/dist/components/ui/select/SelectLabel.vue.d.ts +27 -0
- package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectSeparator.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +72 -0
- package/dist/components/ui/select/SelectValue.vue.d.ts +18 -0
- package/dist/components/ui/select/constants.d.ts +18 -0
- package/dist/components/ui/select/index.d.ts +13 -0
- package/dist/components/ui/sonner/KuatSonner.vue.d.ts +54 -0
- package/dist/components/ui/sonner/KuatSonnerContent.vue.d.ts +53 -0
- package/dist/components/ui/sonner/constants.d.ts +2 -0
- package/dist/components/ui/sonner/index.d.ts +7 -0
- package/dist/components/ui/sonner/toast.d.ts +17 -0
- package/dist/components/ui/switch/Switch.vue.d.ts +13 -0
- package/dist/components/ui/switch/SwitchField.vue.d.ts +68 -0
- package/dist/components/ui/switch/constants.d.ts +4 -0
- package/dist/components/ui/switch/index.d.ts +4 -0
- package/dist/components/ui/textarea/Textarea.vue.d.ts +24 -0
- package/dist/components/ui/textarea/constants.d.ts +2 -0
- package/dist/components/ui/textarea/index.d.ts +3 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +42 -0
- package/dist/components/ui/toggle/constants.d.ts +4 -0
- package/dist/components/ui/toggle/index.d.ts +3 -0
- package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +45 -0
- package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +49 -0
- package/dist/components/ui/toggle-group/constants.d.ts +2 -0
- package/dist/components/ui/toggle-group/index.d.ts +4 -0
- package/dist/constants-4SN0MW4f.js +61 -0
- package/dist/constants-BpzIL1jq.js +141 -0
- package/dist/constants-CXAkjttx.js +5 -0
- package/dist/constants-CpIWAssv.js +32 -0
- package/dist/constants-D_fYMnOg.js +154 -0
- package/dist/constants-Ils7NSfg.js +131 -0
- package/dist/field.d.ts +3 -0
- package/dist/field.js +19 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +1291 -1119
- package/dist/input.d.ts +3 -0
- package/dist/input.js +8 -0
- package/dist/radio.d.ts +3 -0
- package/dist/radio.js +11 -0
- package/dist/select.d.ts +3 -0
- package/dist/select.js +19 -0
- package/dist/sonner.d.ts +1 -0
- package/dist/sonner.js +7 -0
- package/dist/style.css +1 -1
- package/dist/switch.d.ts +1 -0
- package/dist/switch.js +7 -0
- package/dist/textarea.d.ts +3 -0
- package/dist/textarea.js +8 -0
- package/dist/toast-LJYTMaV_.js +113 -0
- package/dist/toggle-group.d.ts +5 -0
- package/dist/toggle-group.js +71 -0
- package/dist/toggle.d.ts +3 -0
- package/dist/toggle.js +10 -0
- package/package.json +53 -12
package/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
# @equal-experts/kuat-vue
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Vue 3 components and blocks for the Kuat Design System: **localized primitives** and **composed blocks**. Use **`@equal-experts/kuat-core`** for tokens and **shadcn-vue** only for UI that Kuat does not ship (for example Dialog, DropdownMenu).
|
|
4
|
+
|
|
5
|
+
**When to import from here vs shadcn-vue:** [Choosing components](https://github.com/equalexperts/kuat-mono/blob/master/kuat-docs/setup/choosing-components.md) · [Public API inventory](https://github.com/equalexperts/kuat-mono/blob/master/kuat-docs/setup/public-api-inventory.md)
|
|
4
6
|
|
|
5
7
|
---
|
|
6
8
|
|
|
7
9
|
## Architecture
|
|
8
10
|
|
|
9
|
-
This package provides **custom components** and **blocks** that are unique to Kuat. It also provides a localized **Button** component. For other UI components (e.g. Dialog), install them via shadcn-vue CLI with kuat-core theming.
|
|
10
|
-
|
|
11
11
|
```
|
|
12
12
|
┌─────────────────────────────────────────────────────┐
|
|
13
13
|
│ Your Application │
|
|
14
14
|
├─────────────────────────────────────────────────────┤
|
|
15
|
-
│ Kuat
|
|
15
|
+
│ Kuat blocks (KuatHeader, KuatCarousel, …) │ ← This package
|
|
16
16
|
├─────────────────────────────────────────────────────┤
|
|
17
|
-
│ Kuat
|
|
17
|
+
│ Kuat primitives (Button, Field, Select, …) │ ← This package
|
|
18
18
|
├─────────────────────────────────────────────────────┤
|
|
19
|
-
│ shadcn-vue
|
|
19
|
+
│ shadcn-vue-only (Dialog, DropdownMenu, …) │ ← Installed in your app
|
|
20
20
|
├─────────────────────────────────────────────────────┤
|
|
21
|
-
│ @equal-experts/kuat-core
|
|
21
|
+
│ @equal-experts/kuat-core │
|
|
22
22
|
└─────────────────────────────────────────────────────┘
|
|
23
23
|
```
|
|
24
24
|
|
|
@@ -27,66 +27,58 @@ This package provides **custom components** and **blocks** that are unique to Ku
|
|
|
27
27
|
## Installation
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
|
|
31
|
-
pnpm add @equal-experts/kuat-vue
|
|
32
|
-
|
|
33
|
-
# Using npm
|
|
34
|
-
npm install @equal-experts/kuat-vue
|
|
35
|
-
|
|
36
|
-
# Using yarn
|
|
37
|
-
yarn add @equal-experts/kuat-vue
|
|
30
|
+
pnpm add @equal-experts/kuat-core @equal-experts/kuat-vue
|
|
38
31
|
```
|
|
39
32
|
|
|
40
|
-
### Peer
|
|
33
|
+
### Peer dependencies
|
|
41
34
|
|
|
42
|
-
|
|
43
|
-
pnpm add vue radix-vue reka-ui
|
|
44
|
-
```
|
|
35
|
+
See this package’s `package.json` `peerDependencies` (for example `vue`, `radix-vue` / `reka-ui` as appropriate to your stack).
|
|
45
36
|
|
|
46
37
|
---
|
|
47
38
|
|
|
48
|
-
## What
|
|
39
|
+
## What’s included
|
|
49
40
|
|
|
50
|
-
###
|
|
41
|
+
### Utilities
|
|
51
42
|
|
|
52
|
-
|
|
43
|
+
| Export | Description |
|
|
44
|
+
|--------|-------------|
|
|
45
|
+
| `cn` | Class name merger |
|
|
53
46
|
|
|
54
|
-
|
|
55
|
-
|-----------|-------------|
|
|
56
|
-
| `Button` | Primary actions with variant (primary, secondary, outline, ghost, ghost-muted, destructive) and color |
|
|
57
|
-
| `ButtonGroup` | Groups buttons together with proper styling |
|
|
58
|
-
| `ButtonGroupText` | Text element within a button group |
|
|
59
|
-
| `ButtonGroupSeparator` | Separator between button group items |
|
|
47
|
+
### Blocks
|
|
60
48
|
|
|
61
|
-
|
|
49
|
+
| Area | Examples |
|
|
50
|
+
|------|----------|
|
|
51
|
+
| Header / brand | `KuatHeader`, `EELogo` |
|
|
52
|
+
| Carousel | `KuatCarousel`, `KuatCarouselContent`, `KuatCarouselItem`, `KuatCarouselPrevious`, `KuatCarouselNext` |
|
|
53
|
+
| Logo lockup | `KuatLogoLockup`, `EELogoIcon` |
|
|
54
|
+
| Progress | `KuatRadialProgress` |
|
|
55
|
+
| Cards | `ContentCard` |
|
|
62
56
|
|
|
63
|
-
|
|
57
|
+
### Form and actions
|
|
64
58
|
|
|
65
|
-
|
|
66
|
-
|-------|-------------|
|
|
67
|
-
| `KuatHeader` | Brand header with logo, navigation, actions |
|
|
68
|
-
| `KuatFooter` | Brand footer with links and legal |
|
|
69
|
-
| `KuatSearchPattern` | Search input with suggestions |
|
|
59
|
+
`Button`, `ButtonGroup`, `ButtonGroupText`, `ButtonGroupSeparator`, `Badge`, `Input`, `Textarea`, `Field` (+ subcomponents), `KuatSelect` / `Select` (+ primitives), `Checkbox` / `CheckboxField`, `RadioGroup` / `RadioField`, `Switch` / `SwitchField`, `Toggle`, `ToggleGroup`.
|
|
70
60
|
|
|
71
|
-
###
|
|
61
|
+
### Content and navigation
|
|
72
62
|
|
|
73
|
-
|
|
74
|
-
|---------|-------------|
|
|
75
|
-
| `cn()` | Class name merger using clsx + tailwind-merge |
|
|
63
|
+
`Accordion`, `AlertDialog`, `Breadcrumb` (Vue API may differ slightly from React—see Storybook: `apps/storybook-vue`).
|
|
76
64
|
|
|
77
|
-
|
|
65
|
+
### Tree-shakable subpath imports
|
|
78
66
|
|
|
79
|
-
|
|
67
|
+
Example:
|
|
68
|
+
|
|
69
|
+
```vue
|
|
70
|
+
<script setup lang="ts">
|
|
71
|
+
import { Switch } from '@equal-experts/kuat-vue/switch';
|
|
72
|
+
</script>
|
|
73
|
+
```
|
|
80
74
|
|
|
81
|
-
|
|
75
|
+
See `package.json` `exports` and [public-api-inventory.md](https://github.com/equalexperts/kuat-mono/blob/master/kuat-docs/setup/public-api-inventory.md).
|
|
82
76
|
|
|
83
|
-
|
|
77
|
+
---
|
|
84
78
|
|
|
85
|
-
|
|
86
|
-
pnpm add @equal-experts/kuat-core @equal-experts/kuat-vue
|
|
87
|
-
```
|
|
79
|
+
## Recommended setup
|
|
88
80
|
|
|
89
|
-
###
|
|
81
|
+
### 1. Tailwind
|
|
90
82
|
|
|
91
83
|
```typescript
|
|
92
84
|
// tailwind.config.ts
|
|
@@ -102,38 +94,31 @@ export default {
|
|
|
102
94
|
} satisfies Config;
|
|
103
95
|
```
|
|
104
96
|
|
|
105
|
-
###
|
|
97
|
+
### 2. Design tokens
|
|
106
98
|
|
|
107
99
|
```typescript
|
|
108
100
|
// main.ts
|
|
109
|
-
import { createApp } from 'vue';
|
|
110
101
|
import '@equal-experts/kuat-core/variables.css';
|
|
111
|
-
import App from './App.vue';
|
|
112
|
-
|
|
113
|
-
createApp(App).mount('#app');
|
|
114
102
|
```
|
|
115
103
|
|
|
116
|
-
###
|
|
104
|
+
### 3. shadcn-vue for gaps
|
|
117
105
|
|
|
118
106
|
```bash
|
|
119
107
|
npx shadcn-vue@latest init
|
|
120
|
-
npx shadcn-vue@latest add
|
|
108
|
+
npx shadcn-vue@latest add dialog dropdown-menu
|
|
121
109
|
```
|
|
122
110
|
|
|
123
|
-
###
|
|
111
|
+
### 4. Use Kuat + shadcn-vue together
|
|
124
112
|
|
|
125
113
|
```vue
|
|
126
114
|
<script setup lang="ts">
|
|
127
|
-
|
|
128
|
-
import {
|
|
129
|
-
|
|
130
|
-
// Other shadcn-vue components from your local installation if needed
|
|
115
|
+
import { Button, ButtonGroup } from '@equal-experts/kuat-vue';
|
|
116
|
+
import { Dialog, DialogContent } from '@/components/ui/dialog';
|
|
131
117
|
</script>
|
|
132
118
|
|
|
133
119
|
<template>
|
|
134
120
|
<ButtonGroup>
|
|
135
121
|
<Button variant="outline">Edit</Button>
|
|
136
|
-
<Button variant="outline">Save</Button>
|
|
137
122
|
<Button variant="destructive">Delete</Button>
|
|
138
123
|
</ButtonGroup>
|
|
139
124
|
</template>
|
|
@@ -141,107 +126,54 @@ import { ButtonGroup, ButtonGroupText, Button } from '@equal-experts/kuat-vue';
|
|
|
141
126
|
|
|
142
127
|
---
|
|
143
128
|
|
|
144
|
-
## Component
|
|
129
|
+
## Component examples
|
|
145
130
|
|
|
146
131
|
### ButtonGroup
|
|
147
132
|
|
|
148
|
-
Groups buttons together with seamless borders:
|
|
149
|
-
|
|
150
133
|
```vue
|
|
151
134
|
<script setup lang="ts">
|
|
152
135
|
import { ButtonGroup, ButtonGroupText, Button } from '@equal-experts/kuat-vue';
|
|
153
136
|
</script>
|
|
154
137
|
|
|
155
138
|
<template>
|
|
156
|
-
<!-- Horizontal (default) -->
|
|
157
139
|
<ButtonGroup>
|
|
158
140
|
<Button variant="outline">Left</Button>
|
|
159
|
-
<Button variant="outline">Center</Button>
|
|
160
141
|
<Button variant="outline">Right</Button>
|
|
161
142
|
</ButtonGroup>
|
|
162
143
|
|
|
163
|
-
<!-- Vertical -->
|
|
164
144
|
<ButtonGroup orientation="vertical">
|
|
165
145
|
<Button variant="outline">Top</Button>
|
|
166
|
-
<Button variant="outline">Middle</Button>
|
|
167
146
|
<Button variant="outline">Bottom</Button>
|
|
168
147
|
</ButtonGroup>
|
|
169
148
|
|
|
170
|
-
<!-- With text label -->
|
|
171
149
|
<ButtonGroup>
|
|
172
150
|
<ButtonGroupText>Filter:</ButtonGroupText>
|
|
173
151
|
<Button variant="outline">All</Button>
|
|
174
|
-
<Button variant="outline">Active</Button>
|
|
175
|
-
<Button variant="outline">Completed</Button>
|
|
176
152
|
</ButtonGroup>
|
|
177
153
|
</template>
|
|
178
154
|
```
|
|
179
155
|
|
|
180
|
-
### cn()
|
|
181
|
-
|
|
182
|
-
Merge class names with Tailwind conflict resolution:
|
|
156
|
+
### `cn()` utility
|
|
183
157
|
|
|
184
158
|
```vue
|
|
185
159
|
<script setup lang="ts">
|
|
186
160
|
import { cn } from '@equal-experts/kuat-vue';
|
|
187
161
|
|
|
188
|
-
const
|
|
189
|
-
class?: string;
|
|
190
|
-
}>();
|
|
191
|
-
|
|
192
|
-
const containerClass = cn(
|
|
193
|
-
'bg-background text-foreground p-4',
|
|
194
|
-
props.class
|
|
195
|
-
);
|
|
162
|
+
const containerClass = cn('bg-background text-foreground p-4', props.class);
|
|
196
163
|
</script>
|
|
197
|
-
|
|
198
|
-
<template>
|
|
199
|
-
<div :class="containerClass">
|
|
200
|
-
<slot />
|
|
201
|
-
</div>
|
|
202
|
-
</template>
|
|
203
164
|
```
|
|
204
165
|
|
|
205
166
|
---
|
|
206
167
|
|
|
207
|
-
## Migration
|
|
208
|
-
|
|
209
|
-
If you were importing standard components from this package, migrate to direct shadcn-vue installation:
|
|
210
|
-
|
|
211
|
-
### Before (Deprecated)
|
|
212
|
-
|
|
213
|
-
```vue
|
|
214
|
-
<script setup lang="ts">
|
|
215
|
-
import { Button, Dialog } from '@equal-experts/kuat-vue';
|
|
216
|
-
</script>
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
### After (Recommended)
|
|
220
|
-
|
|
221
|
-
```vue
|
|
222
|
-
<script setup lang="ts">
|
|
223
|
-
// Standard components from your local shadcn-vue installation
|
|
224
|
-
import { Button } from '@/components/ui/button';
|
|
225
|
-
import { Dialog } from '@/components/ui/dialog';
|
|
226
|
-
|
|
227
|
-
// Kuat-specific components from this package (including Badge)
|
|
228
|
-
import { ButtonGroup, Badge } from '@equal-experts/kuat-vue';
|
|
229
|
-
</script>
|
|
230
|
-
```
|
|
168
|
+
## Migration (legacy projects)
|
|
231
169
|
|
|
232
|
-
|
|
170
|
+
**Prefer** imports from `@equal-experts/kuat-vue` for primitives this package publishes. Use **shadcn-vue** under `@/components/ui` for components **not** in Kuat (for example Dialog).
|
|
233
171
|
|
|
234
|
-
|
|
235
|
-
2. Initialize shadcn-vue: `npx shadcn-vue@latest init`
|
|
236
|
-
3. Install needed components: `npx shadcn-vue@latest add button dialog`
|
|
237
|
-
4. Update imports to use local components
|
|
238
|
-
5. Keep imports for Kuat-specific components (Button, ButtonGroup, Badge, etc.)
|
|
172
|
+
Do **not** move `Button` to a local shadcn-vue copy unless you have a deliberate fork—prefer Kuat’s `Button` for consistency with tokens and variants.
|
|
239
173
|
|
|
240
174
|
---
|
|
241
175
|
|
|
242
|
-
## TypeScript
|
|
243
|
-
|
|
244
|
-
All components are fully typed:
|
|
176
|
+
## TypeScript
|
|
245
177
|
|
|
246
178
|
```vue
|
|
247
179
|
<script setup lang="ts">
|
|
@@ -254,30 +186,16 @@ const orientation: ButtonGroupVariants['orientation'] = 'horizontal';
|
|
|
254
186
|
|
|
255
187
|
---
|
|
256
188
|
|
|
257
|
-
## Dark
|
|
258
|
-
|
|
259
|
-
Dark mode is supported via the `.dark` class on your root element:
|
|
260
|
-
|
|
261
|
-
```vue
|
|
262
|
-
<template>
|
|
263
|
-
<div :class="{ dark: isDark }">
|
|
264
|
-
<App />
|
|
265
|
-
</div>
|
|
266
|
-
</template>
|
|
267
|
-
|
|
268
|
-
<script setup lang="ts">
|
|
269
|
-
import { ref } from 'vue';
|
|
270
|
-
const isDark = ref(false);
|
|
271
|
-
</script>
|
|
272
|
-
```
|
|
189
|
+
## Dark mode
|
|
273
190
|
|
|
274
|
-
|
|
191
|
+
Apply `.dark` on the root (or toggle a class on `<html>` / layout). Tokens come from `kuat-core`.
|
|
275
192
|
|
|
276
193
|
---
|
|
277
194
|
|
|
278
|
-
## Related
|
|
195
|
+
## Related documentation
|
|
279
196
|
|
|
280
|
-
- [Consumer
|
|
281
|
-
- [
|
|
282
|
-
- [
|
|
283
|
-
- [
|
|
197
|
+
- [Consumer setup](https://github.com/equalexperts/kuat-mono/blob/master/kuat-docs/setup/consumer-setup.md)
|
|
198
|
+
- [Choosing components](https://github.com/equalexperts/kuat-mono/blob/master/kuat-docs/setup/choosing-components.md)
|
|
199
|
+
- [kuat-core integration](https://github.com/equalexperts/kuat-mono/blob/master/kuat-docs/setup/kuat-core-integration.md)
|
|
200
|
+
- [Component patterns (contributors)](https://github.com/equalexperts/kuat-mono/blob/master/kuat-docs/rules/components/patterns.md)
|
|
201
|
+
- [shadcn-vue](https://www.shadcn-vue.com)
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { defineComponent as i, useAttrs as u, computed as d, createElementBlock as o, createCommentVNode as h, openBlock as n, mergeProps as p, unref as f, renderSlot as _, toDisplayString as A, Fragment as $, renderList as F } from "vue";
|
|
2
|
+
import { c as m } from "./utils-DLUjLwnh.js";
|
|
3
|
+
import "./FieldTitle.vue_vue_type_script_setup_true_lang-Bu8UIwRT.js";
|
|
4
|
+
const L = ["responsive", "vertical", "horizontal"], N = ["legend", "label"], y = { key: 1 }, E = {
|
|
5
|
+
key: 2,
|
|
6
|
+
class: "field-error__list"
|
|
7
|
+
}, D = /* @__PURE__ */ i({
|
|
8
|
+
inheritAttrs: !1,
|
|
9
|
+
__name: "FieldError",
|
|
10
|
+
props: {
|
|
11
|
+
class: {},
|
|
12
|
+
errors: {},
|
|
13
|
+
issues: {}
|
|
14
|
+
},
|
|
15
|
+
setup(r) {
|
|
16
|
+
const t = r, a = u(), l = d(() => {
|
|
17
|
+
const { class: e, ...g } = a;
|
|
18
|
+
return g;
|
|
19
|
+
}), s = d(() => {
|
|
20
|
+
const e = Array.isArray(t.errors) ? t.errors : t.errors ? [t.errors] : [], g = t.issues ?? [];
|
|
21
|
+
return [...e, ...g].map((c) => {
|
|
22
|
+
var v;
|
|
23
|
+
return (v = c == null ? void 0 : c.message) == null ? void 0 : v.trim();
|
|
24
|
+
}).filter((c) => !!c);
|
|
25
|
+
});
|
|
26
|
+
return (e, g) => e.$slots.default || s.value.length ? (n(), o("div", p({
|
|
27
|
+
key: 0,
|
|
28
|
+
"data-slot": "field-error",
|
|
29
|
+
class: f(m)("field-error", t.class)
|
|
30
|
+
}, l.value), [
|
|
31
|
+
e.$slots.default ? _(e.$slots, "default", { key: 0 }) : s.value.length === 1 ? (n(), o("span", y, A(s.value[0]), 1)) : s.value.length > 1 ? (n(), o("ul", E, [
|
|
32
|
+
(n(!0), o($, null, F(s.value, (c) => (n(), o("li", { key: c }, A(c), 1))), 128))
|
|
33
|
+
])) : h("", !0)
|
|
34
|
+
], 16)) : h("", !0);
|
|
35
|
+
}
|
|
36
|
+
}), B = /* @__PURE__ */ i({
|
|
37
|
+
inheritAttrs: !1,
|
|
38
|
+
__name: "FieldGroup",
|
|
39
|
+
props: {
|
|
40
|
+
class: {}
|
|
41
|
+
},
|
|
42
|
+
setup(r) {
|
|
43
|
+
const t = r, a = u(), l = d(() => {
|
|
44
|
+
const { class: s, ...e } = a;
|
|
45
|
+
return e;
|
|
46
|
+
});
|
|
47
|
+
return (s, e) => (n(), o("div", p({
|
|
48
|
+
"data-slot": "field-group",
|
|
49
|
+
class: f(m)("field-group", t.class)
|
|
50
|
+
}, l.value), [
|
|
51
|
+
_(s.$slots, "default")
|
|
52
|
+
], 16));
|
|
53
|
+
}
|
|
54
|
+
}), T = /* @__PURE__ */ i({
|
|
55
|
+
inheritAttrs: !1,
|
|
56
|
+
__name: "FieldLegend",
|
|
57
|
+
props: {
|
|
58
|
+
class: {},
|
|
59
|
+
variant: { default: "legend" }
|
|
60
|
+
},
|
|
61
|
+
setup(r) {
|
|
62
|
+
const t = r, a = u(), l = d(() => {
|
|
63
|
+
const { class: s, ...e } = a;
|
|
64
|
+
return e;
|
|
65
|
+
});
|
|
66
|
+
return (s, e) => (n(), o("legend", p({
|
|
67
|
+
"data-slot": "field-legend",
|
|
68
|
+
class: f(m)("field-legend", `field-legend--${r.variant}`, t.class)
|
|
69
|
+
}, l.value), [
|
|
70
|
+
_(s.$slots, "default")
|
|
71
|
+
], 16));
|
|
72
|
+
}
|
|
73
|
+
}), b = /* @__PURE__ */ i({
|
|
74
|
+
inheritAttrs: !1,
|
|
75
|
+
__name: "FieldSeparator",
|
|
76
|
+
props: {
|
|
77
|
+
class: {}
|
|
78
|
+
},
|
|
79
|
+
setup(r) {
|
|
80
|
+
const t = r, a = u(), l = d(() => {
|
|
81
|
+
const { class: s, ...e } = a;
|
|
82
|
+
return e;
|
|
83
|
+
});
|
|
84
|
+
return (s, e) => (n(), o("div", p({
|
|
85
|
+
"data-slot": "field-separator",
|
|
86
|
+
role: "separator",
|
|
87
|
+
class: f(m)("field-separator", t.class)
|
|
88
|
+
}, l.value), [
|
|
89
|
+
_(s.$slots, "default")
|
|
90
|
+
], 16));
|
|
91
|
+
}
|
|
92
|
+
}), C = /* @__PURE__ */ i({
|
|
93
|
+
inheritAttrs: !1,
|
|
94
|
+
__name: "FieldSet",
|
|
95
|
+
props: {
|
|
96
|
+
class: {}
|
|
97
|
+
},
|
|
98
|
+
setup(r) {
|
|
99
|
+
const t = r, a = u(), l = d(() => {
|
|
100
|
+
const { class: s, ...e } = a;
|
|
101
|
+
return e;
|
|
102
|
+
});
|
|
103
|
+
return (s, e) => (n(), o("fieldset", p({
|
|
104
|
+
"data-slot": "field-set",
|
|
105
|
+
class: f(m)("field-set", t.class)
|
|
106
|
+
}, l.value), [
|
|
107
|
+
_(s.$slots, "default")
|
|
108
|
+
], 16));
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
export {
|
|
112
|
+
N as F,
|
|
113
|
+
D as _,
|
|
114
|
+
B as a,
|
|
115
|
+
T as b,
|
|
116
|
+
b as c,
|
|
117
|
+
C as d,
|
|
118
|
+
L as e
|
|
119
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { defineComponent as c, useAttrs as o, computed as n, createBlock as v, openBlock as i, resolveDynamicComponent as A, mergeProps as d, unref as u, withCtx as $, renderSlot as p, createElementBlock as _ } from "vue";
|
|
2
|
+
import { c as f } from "./utils-DLUjLwnh.js";
|
|
3
|
+
const F = /* @__PURE__ */ c({
|
|
4
|
+
inheritAttrs: !1,
|
|
5
|
+
__name: "Field",
|
|
6
|
+
props: {
|
|
7
|
+
class: {},
|
|
8
|
+
orientation: { default: "responsive" },
|
|
9
|
+
as: { default: "div" }
|
|
10
|
+
},
|
|
11
|
+
setup(e) {
|
|
12
|
+
const l = e, a = o(), r = n(() => {
|
|
13
|
+
const { class: t, "data-slot": m, ...h } = a;
|
|
14
|
+
return h;
|
|
15
|
+
}), s = n(() => {
|
|
16
|
+
const t = a["data-slot"];
|
|
17
|
+
return typeof t == "string" ? t : "field";
|
|
18
|
+
});
|
|
19
|
+
return (t, m) => (i(), v(A(e.as), d({
|
|
20
|
+
class: u(f)("field", `field--orientation-${e.orientation}`, l.class),
|
|
21
|
+
"data-slot": s.value
|
|
22
|
+
}, r.value), {
|
|
23
|
+
default: $(() => [
|
|
24
|
+
p(t.$slots, "default")
|
|
25
|
+
]),
|
|
26
|
+
_: 3
|
|
27
|
+
}, 16, ["class", "data-slot"]));
|
|
28
|
+
}
|
|
29
|
+
}), C = /* @__PURE__ */ c({
|
|
30
|
+
inheritAttrs: !1,
|
|
31
|
+
__name: "FieldContent",
|
|
32
|
+
props: {
|
|
33
|
+
class: {}
|
|
34
|
+
},
|
|
35
|
+
setup(e) {
|
|
36
|
+
const l = e, a = o(), r = n(() => {
|
|
37
|
+
const { class: s, ...t } = a;
|
|
38
|
+
return t;
|
|
39
|
+
});
|
|
40
|
+
return (s, t) => (i(), _("div", d({
|
|
41
|
+
"data-slot": "field-content",
|
|
42
|
+
class: u(f)("field-content", l.class)
|
|
43
|
+
}, r.value), [
|
|
44
|
+
p(s.$slots, "default")
|
|
45
|
+
], 16));
|
|
46
|
+
}
|
|
47
|
+
}), k = /* @__PURE__ */ c({
|
|
48
|
+
inheritAttrs: !1,
|
|
49
|
+
__name: "FieldDescription",
|
|
50
|
+
props: {
|
|
51
|
+
class: {}
|
|
52
|
+
},
|
|
53
|
+
setup(e) {
|
|
54
|
+
const l = e, a = o(), r = n(() => {
|
|
55
|
+
const { class: s, ...t } = a;
|
|
56
|
+
return t;
|
|
57
|
+
});
|
|
58
|
+
return (s, t) => (i(), _("p", d({
|
|
59
|
+
"data-slot": "field-description",
|
|
60
|
+
class: u(f)("field-description", l.class)
|
|
61
|
+
}, r.value), [
|
|
62
|
+
p(s.$slots, "default")
|
|
63
|
+
], 16));
|
|
64
|
+
}
|
|
65
|
+
}), B = /* @__PURE__ */ c({
|
|
66
|
+
inheritAttrs: !1,
|
|
67
|
+
__name: "FieldLabel",
|
|
68
|
+
props: {
|
|
69
|
+
class: {}
|
|
70
|
+
},
|
|
71
|
+
setup(e) {
|
|
72
|
+
const l = e, a = o(), r = n(() => {
|
|
73
|
+
const { class: s, ...t } = a;
|
|
74
|
+
return t;
|
|
75
|
+
});
|
|
76
|
+
return (s, t) => (i(), _("label", d({
|
|
77
|
+
"data-slot": "field-label",
|
|
78
|
+
class: u(f)("field-label", l.class)
|
|
79
|
+
}, r.value), [
|
|
80
|
+
p(s.$slots, "default")
|
|
81
|
+
], 16));
|
|
82
|
+
}
|
|
83
|
+
}), x = /* @__PURE__ */ c({
|
|
84
|
+
inheritAttrs: !1,
|
|
85
|
+
__name: "FieldTitle",
|
|
86
|
+
props: {
|
|
87
|
+
class: {}
|
|
88
|
+
},
|
|
89
|
+
setup(e) {
|
|
90
|
+
const l = e, a = o(), r = n(() => {
|
|
91
|
+
const { class: s, ...t } = a;
|
|
92
|
+
return t;
|
|
93
|
+
});
|
|
94
|
+
return (s, t) => (i(), _("div", d({
|
|
95
|
+
"data-slot": "field-title",
|
|
96
|
+
class: u(f)("field-title", l.class)
|
|
97
|
+
}, r.value), [
|
|
98
|
+
p(s.$slots, "default")
|
|
99
|
+
], 16));
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
export {
|
|
103
|
+
F as _,
|
|
104
|
+
C as a,
|
|
105
|
+
k as b,
|
|
106
|
+
B as c,
|
|
107
|
+
x as d
|
|
108
|
+
};
|