@equal-experts/kuat-vue 0.4.1 → 0.5.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 +61 -160
- package/dist/AccordionTrigger-BRz5PzEd.js +105 -0
- package/dist/AlertDialogTrigger.vue_vue_type_script_setup_true_lang-CK1Um8CY.js +173 -0
- 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/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
- package/dist/accordion.js +7 -6
- package/dist/alert-dialog.js +13 -12
- package/dist/badge.js +5 -4
- package/dist/button-group.js +7 -6
- package/dist/button.js +6 -6
- package/dist/checkbox.d.ts +3 -0
- package/dist/checkbox.js +10 -0
- package/dist/components/ui/badge/Badge.vue.d.ts +9 -2
- package/dist/components/ui/badge/constants.d.ts +4 -0
- package/dist/components/ui/badge/index.d.ts +12 -5
- package/dist/components/ui/breadcrumb/Breadcrumb.vue.d.ts +34 -0
- package/dist/components/ui/breadcrumb/index.d.ts +2 -0
- package/dist/components/ui/breadcrumb/types.d.ts +8 -0
- package/dist/components/ui/button/Button.vue.d.ts +13 -3
- package/dist/components/ui/button/constants.d.ts +12 -0
- package/dist/components/ui/button/index.d.ts +10 -6
- package/dist/components/ui/button-group/ButtonGroup.vue.d.ts +20 -6
- package/dist/components/ui/button-group/ButtonGroupText.vue.d.ts +0 -2
- package/dist/components/ui/button-group/constants.d.ts +2 -0
- package/dist/components/ui/button-group/index.d.ts +10 -5
- 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/content-card/ContentCard.vue.d.ts +62 -0
- package/dist/components/ui/content-card/index.d.ts +1 -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 +47 -0
- package/dist/components/ui/kuat-carousel/KuatCarouselContent.vue.d.ts +25 -0
- package/dist/components/ui/kuat-carousel/KuatCarouselItem.vue.d.ts +25 -0
- package/dist/components/ui/kuat-carousel/KuatCarouselNext.vue.d.ts +16 -0
- package/dist/components/ui/kuat-carousel/KuatCarouselPrevious.vue.d.ts +16 -0
- package/dist/components/ui/kuat-carousel/index.d.ts +6 -0
- package/dist/components/ui/kuat-header/EELogo.vue.d.ts +32 -0
- package/dist/components/ui/kuat-header/KuatHeader.vue.d.ts +55 -0
- package/dist/components/ui/kuat-header/constants.d.ts +4 -0
- package/dist/components/ui/kuat-header/index.d.ts +15 -0
- package/dist/components/ui/kuat-logo-lockup/EELogoIcon.vue.d.ts +18 -0
- package/dist/components/ui/kuat-logo-lockup/KuatLogoLockup.vue.d.ts +45 -0
- package/dist/components/ui/kuat-logo-lockup/constants.d.ts +4 -0
- package/dist/components/ui/kuat-logo-lockup/index.d.ts +4 -0
- package/dist/components/ui/kuat-radial-progress/KuatRadialProgress.vue.d.ts +52 -0
- package/dist/components/ui/kuat-radial-progress/constants.d.ts +4 -0
- package/dist/components/ui/kuat-radial-progress/index.d.ts +3 -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/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-C3VyxnTa.js +35 -0
- package/dist/index-CBmjn3iX.js +58 -0
- package/dist/index-iz_NZI-V.js +85 -0
- package/dist/index.d.ts +33 -22
- package/dist/index.js +2066 -29
- 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/style.css +1 -1
- package/dist/switch.d.ts +1 -0
- package/dist/switch.js +7 -0
- package/dist/test/setup.d.ts +1 -0
- package/dist/textarea.d.ts +3 -0
- package/dist/textarea.js +8 -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/dist/{utils-qaFjX9_3.js → utils-DLUjLwnh.js} +0 -1
- package/package.json +47 -3
- package/dist/AccordionTrigger.vue_vue_type_script_setup_true_lang-CG4FNPK2.js +0 -107
- package/dist/AlertDialogTrigger.vue_vue_type_script_setup_true_lang-chev-oxU.js +0 -185
- package/dist/Button.vue_vue_type_script_setup_true_lang-CtAz6Sf_.js +0 -30
- package/dist/index-B9dF2hh8.js +0 -103
- package/dist/index-CMJyKNIG.js +0 -45
- package/dist/index-D3egriua.js +0 -33
- package/dist/index-DACAHwoB.js +0 -34
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. For standard UI components (Button, Dialog, etc.), install them directly 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,65 +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
|
-
| `ButtonGroup` | Groups buttons together with proper styling |
|
|
57
|
-
| `ButtonGroupText` | Text element within a button group |
|
|
58
|
-
| `ButtonGroupSeparator` | Separator between button group items |
|
|
47
|
+
### Blocks
|
|
59
48
|
|
|
60
|
-
|
|
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` |
|
|
61
56
|
|
|
62
|
-
|
|
57
|
+
### Form and actions
|
|
63
58
|
|
|
64
|
-
|
|
65
|
-
|-------|-------------|
|
|
66
|
-
| `KuatHeader` | Brand header with logo, navigation, actions |
|
|
67
|
-
| `KuatFooter` | Brand footer with links and legal |
|
|
68
|
-
| `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`.
|
|
69
60
|
|
|
70
|
-
###
|
|
61
|
+
### Content and navigation
|
|
71
62
|
|
|
72
|
-
|
|
73
|
-
|---------|-------------|
|
|
74
|
-
| `cn()` | Class name merger using clsx + tailwind-merge |
|
|
63
|
+
`Accordion`, `AlertDialog`, `Breadcrumb` (Vue API may differ slightly from React—see Storybook: `apps/storybook-vue`).
|
|
75
64
|
|
|
76
|
-
|
|
65
|
+
### Tree-shakable subpath imports
|
|
77
66
|
|
|
78
|
-
|
|
67
|
+
Example:
|
|
79
68
|
|
|
80
|
-
|
|
69
|
+
```vue
|
|
70
|
+
<script setup lang="ts">
|
|
71
|
+
import { Switch } from '@equal-experts/kuat-vue/switch';
|
|
72
|
+
</script>
|
|
73
|
+
```
|
|
81
74
|
|
|
82
|
-
|
|
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).
|
|
83
76
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Recommended setup
|
|
87
80
|
|
|
88
|
-
###
|
|
81
|
+
### 1. Tailwind
|
|
89
82
|
|
|
90
83
|
```typescript
|
|
91
84
|
// tailwind.config.ts
|
|
@@ -101,39 +94,31 @@ export default {
|
|
|
101
94
|
} satisfies Config;
|
|
102
95
|
```
|
|
103
96
|
|
|
104
|
-
###
|
|
97
|
+
### 2. Design tokens
|
|
105
98
|
|
|
106
99
|
```typescript
|
|
107
100
|
// main.ts
|
|
108
|
-
import { createApp } from 'vue';
|
|
109
101
|
import '@equal-experts/kuat-core/variables.css';
|
|
110
|
-
import App from './App.vue';
|
|
111
|
-
|
|
112
|
-
createApp(App).mount('#app');
|
|
113
102
|
```
|
|
114
103
|
|
|
115
|
-
###
|
|
104
|
+
### 3. shadcn-vue for gaps
|
|
116
105
|
|
|
117
106
|
```bash
|
|
118
107
|
npx shadcn-vue@latest init
|
|
119
|
-
npx shadcn-vue@latest add
|
|
108
|
+
npx shadcn-vue@latest add dialog dropdown-menu
|
|
120
109
|
```
|
|
121
110
|
|
|
122
|
-
###
|
|
111
|
+
### 4. Use Kuat + shadcn-vue together
|
|
123
112
|
|
|
124
113
|
```vue
|
|
125
114
|
<script setup lang="ts">
|
|
126
|
-
|
|
127
|
-
import {
|
|
128
|
-
|
|
129
|
-
// shadcn-vue components from your local installation
|
|
130
|
-
import { Button } from '@/components/ui/button';
|
|
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,124 +126,54 @@ import { Button } from '@/components/ui/button';
|
|
|
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
|
-
import { ButtonGroup, ButtonGroupText } from '@equal-experts/kuat-vue';
|
|
153
|
-
import { Button } from '@/components/ui/button';
|
|
135
|
+
import { ButtonGroup, ButtonGroupText, Button } from '@equal-experts/kuat-vue';
|
|
154
136
|
</script>
|
|
155
137
|
|
|
156
138
|
<template>
|
|
157
|
-
<!-- Horizontal (default) -->
|
|
158
139
|
<ButtonGroup>
|
|
159
140
|
<Button variant="outline">Left</Button>
|
|
160
|
-
<Button variant="outline">Center</Button>
|
|
161
141
|
<Button variant="outline">Right</Button>
|
|
162
142
|
</ButtonGroup>
|
|
163
143
|
|
|
164
|
-
<!-- Vertical -->
|
|
165
144
|
<ButtonGroup orientation="vertical">
|
|
166
145
|
<Button variant="outline">Top</Button>
|
|
167
|
-
<Button variant="outline">Middle</Button>
|
|
168
146
|
<Button variant="outline">Bottom</Button>
|
|
169
147
|
</ButtonGroup>
|
|
170
148
|
|
|
171
|
-
<!-- With text label -->
|
|
172
149
|
<ButtonGroup>
|
|
173
150
|
<ButtonGroupText>Filter:</ButtonGroupText>
|
|
174
151
|
<Button variant="outline">All</Button>
|
|
175
|
-
<Button variant="outline">Active</Button>
|
|
176
|
-
<Button variant="outline">Completed</Button>
|
|
177
152
|
</ButtonGroup>
|
|
178
153
|
</template>
|
|
179
154
|
```
|
|
180
155
|
|
|
181
|
-
### cn()
|
|
182
|
-
|
|
183
|
-
Merge class names with Tailwind conflict resolution:
|
|
156
|
+
### `cn()` utility
|
|
184
157
|
|
|
185
158
|
```vue
|
|
186
159
|
<script setup lang="ts">
|
|
187
160
|
import { cn } from '@equal-experts/kuat-vue';
|
|
188
161
|
|
|
189
|
-
const
|
|
190
|
-
class?: string;
|
|
191
|
-
}>();
|
|
192
|
-
|
|
193
|
-
const containerClass = cn(
|
|
194
|
-
'bg-background text-foreground p-4',
|
|
195
|
-
props.class
|
|
196
|
-
);
|
|
197
|
-
</script>
|
|
198
|
-
|
|
199
|
-
<template>
|
|
200
|
-
<div :class="containerClass">
|
|
201
|
-
<slot />
|
|
202
|
-
</div>
|
|
203
|
-
</template>
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
## Migration Guide
|
|
209
|
-
|
|
210
|
-
If you were importing standard components from this package, migrate to direct shadcn-vue installation:
|
|
211
|
-
|
|
212
|
-
### Before (Deprecated)
|
|
213
|
-
|
|
214
|
-
```vue
|
|
215
|
-
<script setup lang="ts">
|
|
216
|
-
import { Button, Dialog, Badge } from '@equal-experts/kuat-vue';
|
|
162
|
+
const containerClass = cn('bg-background text-foreground p-4', props.class);
|
|
217
163
|
</script>
|
|
218
164
|
```
|
|
219
165
|
|
|
220
|
-
### After (Recommended)
|
|
221
|
-
|
|
222
|
-
```vue
|
|
223
|
-
<script setup lang="ts">
|
|
224
|
-
// Standard components from your local shadcn-vue installation
|
|
225
|
-
import { Button } from '@/components/ui/button';
|
|
226
|
-
import { Dialog } from '@/components/ui/dialog';
|
|
227
|
-
import { Badge } from '@/components/ui/badge';
|
|
228
|
-
|
|
229
|
-
// Kuat-specific components from this package
|
|
230
|
-
import { ButtonGroup } from '@equal-experts/kuat-vue';
|
|
231
|
-
</script>
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
### Migration Steps
|
|
235
|
-
|
|
236
|
-
1. Ensure `@equal-experts/kuat-core` is installed
|
|
237
|
-
2. Initialize shadcn-vue: `npx shadcn-vue@latest init`
|
|
238
|
-
3. Install needed components: `npx shadcn-vue@latest add button dialog badge`
|
|
239
|
-
4. Update imports to use local components
|
|
240
|
-
5. Keep imports for Kuat-specific components (ButtonGroup, etc.)
|
|
241
|
-
|
|
242
166
|
---
|
|
243
167
|
|
|
244
|
-
##
|
|
245
|
-
|
|
246
|
-
The following exports are deprecated and will be removed in the next major version. Install them directly via shadcn-vue CLI instead:
|
|
168
|
+
## Migration (legacy projects)
|
|
247
169
|
|
|
248
|
-
|
|
249
|
-
|-----------|-------------|
|
|
250
|
-
| `Button` | `npx shadcn-vue@latest add button` |
|
|
251
|
-
| `Accordion` | `npx shadcn-vue@latest add accordion` |
|
|
252
|
-
| `AlertDialog` | `npx shadcn-vue@latest add alert-dialog` |
|
|
253
|
-
| `Badge` | `npx shadcn-vue@latest add badge` |
|
|
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).
|
|
254
171
|
|
|
255
|
-
|
|
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.
|
|
256
173
|
|
|
257
174
|
---
|
|
258
175
|
|
|
259
|
-
## TypeScript
|
|
260
|
-
|
|
261
|
-
All components are fully typed:
|
|
176
|
+
## TypeScript
|
|
262
177
|
|
|
263
178
|
```vue
|
|
264
179
|
<script setup lang="ts">
|
|
@@ -271,30 +186,16 @@ const orientation: ButtonGroupVariants['orientation'] = 'horizontal';
|
|
|
271
186
|
|
|
272
187
|
---
|
|
273
188
|
|
|
274
|
-
## Dark
|
|
275
|
-
|
|
276
|
-
Dark mode is supported via the `.dark` class on your root element:
|
|
277
|
-
|
|
278
|
-
```vue
|
|
279
|
-
<template>
|
|
280
|
-
<div :class="{ dark: isDark }">
|
|
281
|
-
<App />
|
|
282
|
-
</div>
|
|
283
|
-
</template>
|
|
284
|
-
|
|
285
|
-
<script setup lang="ts">
|
|
286
|
-
import { ref } from 'vue';
|
|
287
|
-
const isDark = ref(false);
|
|
288
|
-
</script>
|
|
289
|
-
```
|
|
189
|
+
## Dark mode
|
|
290
190
|
|
|
291
|
-
|
|
191
|
+
Apply `.dark` on the root (or toggle a class on `<html>` / layout). Tokens come from `kuat-core`.
|
|
292
192
|
|
|
293
193
|
---
|
|
294
194
|
|
|
295
|
-
## Related
|
|
195
|
+
## Related documentation
|
|
296
196
|
|
|
297
|
-
- [Consumer
|
|
298
|
-
- [
|
|
299
|
-
- [
|
|
300
|
-
- [
|
|
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,105 @@
|
|
|
1
|
+
import { defineComponent as d, createBlock as i, openBlock as l, unref as o, normalizeProps as A, guardReactiveProps as y, withCtx as c, renderSlot as n, mergeProps as p, createElementVNode as B, normalizeClass as C, createVNode as g } from "vue";
|
|
2
|
+
import { useForwardPropsEmits as v, AccordionRoot as $, AccordionContent as h, useForwardProps as P, AccordionItem as b, AccordionHeader as w, AccordionTrigger as I } from "reka-ui";
|
|
3
|
+
import { c as m } from "./utils-DLUjLwnh.js";
|
|
4
|
+
import { r as u } from "./index-A7umpmtg.js";
|
|
5
|
+
import { _ } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
|
+
import { ChevronDown as V } from "lucide-vue-next";
|
|
7
|
+
const D = /* @__PURE__ */ d({
|
|
8
|
+
__name: "Accordion",
|
|
9
|
+
props: {
|
|
10
|
+
collapsible: { type: Boolean },
|
|
11
|
+
disabled: { type: Boolean },
|
|
12
|
+
dir: {},
|
|
13
|
+
orientation: {},
|
|
14
|
+
unmountOnHide: { type: Boolean },
|
|
15
|
+
asChild: { type: Boolean },
|
|
16
|
+
as: {},
|
|
17
|
+
type: {},
|
|
18
|
+
modelValue: {},
|
|
19
|
+
defaultValue: {}
|
|
20
|
+
},
|
|
21
|
+
emits: ["update:modelValue"],
|
|
22
|
+
setup(s, { emit: e }) {
|
|
23
|
+
const a = v(s, e);
|
|
24
|
+
return (f, k) => (l(), i(o($), A(y(o(a))), {
|
|
25
|
+
default: c(() => [
|
|
26
|
+
n(f.$slots, "default")
|
|
27
|
+
]),
|
|
28
|
+
_: 3
|
|
29
|
+
}, 16));
|
|
30
|
+
}
|
|
31
|
+
}), T = /* @__PURE__ */ d({
|
|
32
|
+
__name: "AccordionContent",
|
|
33
|
+
props: {
|
|
34
|
+
forceMount: { type: Boolean },
|
|
35
|
+
asChild: { type: Boolean },
|
|
36
|
+
as: {},
|
|
37
|
+
class: {}
|
|
38
|
+
},
|
|
39
|
+
setup(s) {
|
|
40
|
+
const e = s, r = u(e, "class");
|
|
41
|
+
return (t, a) => (l(), i(o(h), p(o(r), { class: "accordion-content" }), {
|
|
42
|
+
default: c(() => [
|
|
43
|
+
B("div", {
|
|
44
|
+
class: C(o(m)("accordion-content__body", e.class))
|
|
45
|
+
}, [
|
|
46
|
+
n(t.$slots, "default", {}, void 0, !0)
|
|
47
|
+
], 2)
|
|
48
|
+
]),
|
|
49
|
+
_: 3
|
|
50
|
+
}, 16));
|
|
51
|
+
}
|
|
52
|
+
}), M = /* @__PURE__ */ _(T, [["__scopeId", "data-v-323c4af0"]]), H = /* @__PURE__ */ d({
|
|
53
|
+
__name: "AccordionItem",
|
|
54
|
+
props: {
|
|
55
|
+
disabled: { type: Boolean },
|
|
56
|
+
value: {},
|
|
57
|
+
unmountOnHide: { type: Boolean },
|
|
58
|
+
asChild: { type: Boolean },
|
|
59
|
+
as: {},
|
|
60
|
+
class: {}
|
|
61
|
+
},
|
|
62
|
+
setup(s) {
|
|
63
|
+
const e = s, r = u(e, "class"), t = P(r);
|
|
64
|
+
return (a, f) => (l(), i(o(b), p(o(t), {
|
|
65
|
+
class: o(m)("accordion-item", e.class)
|
|
66
|
+
}), {
|
|
67
|
+
default: c(() => [
|
|
68
|
+
n(a.$slots, "default", {}, void 0, !0)
|
|
69
|
+
]),
|
|
70
|
+
_: 3
|
|
71
|
+
}, 16, ["class"]));
|
|
72
|
+
}
|
|
73
|
+
}), S = /* @__PURE__ */ _(H, [["__scopeId", "data-v-f0319512"]]), O = /* @__PURE__ */ d({
|
|
74
|
+
__name: "AccordionTrigger",
|
|
75
|
+
props: {
|
|
76
|
+
asChild: { type: Boolean },
|
|
77
|
+
as: {},
|
|
78
|
+
class: {}
|
|
79
|
+
},
|
|
80
|
+
setup(s) {
|
|
81
|
+
const e = s, r = u(e, "class");
|
|
82
|
+
return (t, a) => (l(), i(o(w), { class: "accordion-trigger-wrapper" }, {
|
|
83
|
+
default: c(() => [
|
|
84
|
+
g(o(I), p(o(r), {
|
|
85
|
+
class: o(m)("accordion-trigger", e.class)
|
|
86
|
+
}), {
|
|
87
|
+
default: c(() => [
|
|
88
|
+
n(t.$slots, "default", {}, void 0, !0),
|
|
89
|
+
n(t.$slots, "icon", {}, () => [
|
|
90
|
+
g(o(V), { class: "accordion-trigger__icon" })
|
|
91
|
+
], !0)
|
|
92
|
+
]),
|
|
93
|
+
_: 3
|
|
94
|
+
}, 16, ["class"])
|
|
95
|
+
]),
|
|
96
|
+
_: 3
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
}), j = /* @__PURE__ */ _(O, [["__scopeId", "data-v-a03b22b5"]]);
|
|
100
|
+
export {
|
|
101
|
+
S as A,
|
|
102
|
+
D as _,
|
|
103
|
+
j as a,
|
|
104
|
+
M as b
|
|
105
|
+
};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { defineComponent as l, createBlock as p, openBlock as r, unref as e, normalizeProps as D, guardReactiveProps as $, withCtx as n, renderSlot as c, mergeProps as u, createVNode as A, createElementBlock as v, normalizeClass as h } from "vue";
|
|
2
|
+
import { useForwardPropsEmits as C, AlertDialogRoot as y, AlertDialogAction as B, AlertDialogCancel as P, AlertDialogPortal as I, AlertDialogOverlay as O, AlertDialogContent as w, AlertDialogDescription as T, AlertDialogTitle as b, AlertDialogTrigger as F } from "reka-ui";
|
|
3
|
+
import { c as d } from "./utils-DLUjLwnh.js";
|
|
4
|
+
import { r as g } from "./index-A7umpmtg.js";
|
|
5
|
+
import { _ } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
|
+
const G = /* @__PURE__ */ l({
|
|
7
|
+
__name: "AlertDialog",
|
|
8
|
+
props: {
|
|
9
|
+
open: { type: Boolean },
|
|
10
|
+
defaultOpen: { type: Boolean }
|
|
11
|
+
},
|
|
12
|
+
emits: ["update:open"],
|
|
13
|
+
setup(s, { emit: t }) {
|
|
14
|
+
const i = C(s, t);
|
|
15
|
+
return (f, m) => (r(), p(e(y), D($(e(i))), {
|
|
16
|
+
default: n(() => [
|
|
17
|
+
c(f.$slots, "default")
|
|
18
|
+
]),
|
|
19
|
+
_: 3
|
|
20
|
+
}, 16));
|
|
21
|
+
}
|
|
22
|
+
}), k = /* @__PURE__ */ l({
|
|
23
|
+
__name: "AlertDialogAction",
|
|
24
|
+
props: {
|
|
25
|
+
asChild: { type: Boolean },
|
|
26
|
+
as: {},
|
|
27
|
+
class: {}
|
|
28
|
+
},
|
|
29
|
+
setup(s) {
|
|
30
|
+
const t = s, a = g(t, "class");
|
|
31
|
+
return (o, i) => (r(), p(e(B), u(e(a), {
|
|
32
|
+
class: e(d)("alert-dialog-action", t.class)
|
|
33
|
+
}), {
|
|
34
|
+
default: n(() => [
|
|
35
|
+
c(o.$slots, "default", {}, void 0, !0)
|
|
36
|
+
]),
|
|
37
|
+
_: 3
|
|
38
|
+
}, 16, ["class"]));
|
|
39
|
+
}
|
|
40
|
+
}), J = /* @__PURE__ */ _(k, [["__scopeId", "data-v-a5af5f97"]]), x = /* @__PURE__ */ l({
|
|
41
|
+
__name: "AlertDialogCancel",
|
|
42
|
+
props: {
|
|
43
|
+
asChild: { type: Boolean },
|
|
44
|
+
as: {},
|
|
45
|
+
class: {}
|
|
46
|
+
},
|
|
47
|
+
setup(s) {
|
|
48
|
+
const t = s, a = g(t, "class");
|
|
49
|
+
return (o, i) => (r(), p(e(P), u(e(a), {
|
|
50
|
+
class: e(d)("alert-dialog-cancel", t.class)
|
|
51
|
+
}), {
|
|
52
|
+
default: n(() => [
|
|
53
|
+
c(o.$slots, "default", {}, void 0, !0)
|
|
54
|
+
]),
|
|
55
|
+
_: 3
|
|
56
|
+
}, 16, ["class"]));
|
|
57
|
+
}
|
|
58
|
+
}), L = /* @__PURE__ */ _(x, [["__scopeId", "data-v-4ab33db4"]]), E = /* @__PURE__ */ l({
|
|
59
|
+
__name: "AlertDialogContent",
|
|
60
|
+
props: {
|
|
61
|
+
forceMount: { type: Boolean },
|
|
62
|
+
disableOutsidePointerEvents: { type: Boolean },
|
|
63
|
+
asChild: { type: Boolean },
|
|
64
|
+
as: {},
|
|
65
|
+
class: {}
|
|
66
|
+
},
|
|
67
|
+
emits: ["escapeKeyDown", "pointerDownOutside", "focusOutside", "interactOutside", "openAutoFocus", "closeAutoFocus"],
|
|
68
|
+
setup(s, { emit: t }) {
|
|
69
|
+
const a = s, o = t, i = g(a, "class"), f = C(i, o);
|
|
70
|
+
return (m, M) => (r(), p(e(I), null, {
|
|
71
|
+
default: n(() => [
|
|
72
|
+
A(e(O), { class: "alert-dialog-overlay" }),
|
|
73
|
+
A(e(w), u(e(f), {
|
|
74
|
+
class: e(d)("alert-dialog-content", a.class)
|
|
75
|
+
}), {
|
|
76
|
+
default: n(() => [
|
|
77
|
+
c(m.$slots, "default", {}, void 0, !0)
|
|
78
|
+
]),
|
|
79
|
+
_: 3
|
|
80
|
+
}, 16, ["class"])
|
|
81
|
+
]),
|
|
82
|
+
_: 3
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
}), Q = /* @__PURE__ */ _(E, [["__scopeId", "data-v-630d3e5f"]]), z = /* @__PURE__ */ l({
|
|
86
|
+
__name: "AlertDialogDescription",
|
|
87
|
+
props: {
|
|
88
|
+
asChild: { type: Boolean },
|
|
89
|
+
as: {},
|
|
90
|
+
class: {}
|
|
91
|
+
},
|
|
92
|
+
setup(s) {
|
|
93
|
+
const t = s, a = g(t, "class");
|
|
94
|
+
return (o, i) => (r(), p(e(T), u(e(a), {
|
|
95
|
+
class: e(d)("alert-dialog-description", t.class)
|
|
96
|
+
}), {
|
|
97
|
+
default: n(() => [
|
|
98
|
+
c(o.$slots, "default", {}, void 0, !0)
|
|
99
|
+
]),
|
|
100
|
+
_: 3
|
|
101
|
+
}, 16, ["class"]));
|
|
102
|
+
}
|
|
103
|
+
}), U = /* @__PURE__ */ _(z, [["__scopeId", "data-v-5a0d8461"]]), H = /* @__PURE__ */ l({
|
|
104
|
+
__name: "AlertDialogFooter",
|
|
105
|
+
props: {
|
|
106
|
+
class: {}
|
|
107
|
+
},
|
|
108
|
+
setup(s) {
|
|
109
|
+
const t = s;
|
|
110
|
+
return (a, o) => (r(), v("div", {
|
|
111
|
+
class: h(e(d)("alert-dialog-footer", t.class))
|
|
112
|
+
}, [
|
|
113
|
+
c(a.$slots, "default", {}, void 0, !0)
|
|
114
|
+
], 2));
|
|
115
|
+
}
|
|
116
|
+
}), W = /* @__PURE__ */ _(H, [["__scopeId", "data-v-59463818"]]), R = /* @__PURE__ */ l({
|
|
117
|
+
__name: "AlertDialogHeader",
|
|
118
|
+
props: {
|
|
119
|
+
class: {}
|
|
120
|
+
},
|
|
121
|
+
setup(s) {
|
|
122
|
+
const t = s;
|
|
123
|
+
return (a, o) => (r(), v("div", {
|
|
124
|
+
class: h(e(d)("alert-dialog-header", t.class))
|
|
125
|
+
}, [
|
|
126
|
+
c(a.$slots, "default", {}, void 0, !0)
|
|
127
|
+
], 2));
|
|
128
|
+
}
|
|
129
|
+
}), X = /* @__PURE__ */ _(R, [["__scopeId", "data-v-689b6152"]]), K = /* @__PURE__ */ l({
|
|
130
|
+
__name: "AlertDialogTitle",
|
|
131
|
+
props: {
|
|
132
|
+
asChild: { type: Boolean },
|
|
133
|
+
as: {},
|
|
134
|
+
class: {}
|
|
135
|
+
},
|
|
136
|
+
setup(s) {
|
|
137
|
+
const t = s, a = g(t, "class");
|
|
138
|
+
return (o, i) => (r(), p(e(b), u(e(a), {
|
|
139
|
+
class: e(d)("alert-dialog-title", t.class)
|
|
140
|
+
}), {
|
|
141
|
+
default: n(() => [
|
|
142
|
+
c(o.$slots, "default", {}, void 0, !0)
|
|
143
|
+
]),
|
|
144
|
+
_: 3
|
|
145
|
+
}, 16, ["class"]));
|
|
146
|
+
}
|
|
147
|
+
}), Y = /* @__PURE__ */ _(K, [["__scopeId", "data-v-f431895c"]]), Z = /* @__PURE__ */ l({
|
|
148
|
+
__name: "AlertDialogTrigger",
|
|
149
|
+
props: {
|
|
150
|
+
asChild: { type: Boolean },
|
|
151
|
+
as: {}
|
|
152
|
+
},
|
|
153
|
+
setup(s) {
|
|
154
|
+
const t = s;
|
|
155
|
+
return (a, o) => (r(), p(e(F), D($(t)), {
|
|
156
|
+
default: n(() => [
|
|
157
|
+
c(a.$slots, "default")
|
|
158
|
+
]),
|
|
159
|
+
_: 3
|
|
160
|
+
}, 16));
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
export {
|
|
164
|
+
J as A,
|
|
165
|
+
G as _,
|
|
166
|
+
L as a,
|
|
167
|
+
Q as b,
|
|
168
|
+
U as c,
|
|
169
|
+
W as d,
|
|
170
|
+
X as e,
|
|
171
|
+
Y as f,
|
|
172
|
+
Z as g
|
|
173
|
+
};
|