@equal-experts/kuat-vue 0.1.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +614 -0
  2. package/dist/AccordionTrigger.vue_vue_type_script_setup_true_lang-vy6KzwI7.js +107 -0
  3. package/dist/AlertDialogTrigger.vue_vue_type_script_setup_true_lang-DNFUKWlR.js +185 -0
  4. package/dist/Button.vue_vue_type_script_setup_true_lang-Xhp6qpI9.js +30 -0
  5. package/dist/accordion.d.ts +2 -0
  6. package/dist/accordion.js +9 -0
  7. package/dist/alert-dialog.d.ts +2 -0
  8. package/dist/alert-dialog.js +14 -0
  9. package/dist/badge.d.ts +3 -0
  10. package/dist/badge.js +7 -0
  11. package/dist/button-group.d.ts +3 -0
  12. package/dist/button-group.js +9 -0
  13. package/dist/button.d.ts +3 -0
  14. package/dist/button.js +8 -0
  15. package/dist/components/ui/accordion/Accordion.vue.d.ts +26 -0
  16. package/dist/components/ui/accordion/AccordionContent.vue.d.ts +27 -0
  17. package/dist/components/ui/accordion/AccordionItem.vue.d.ts +27 -0
  18. package/dist/components/ui/accordion/AccordionTrigger.vue.d.ts +28 -0
  19. package/dist/components/ui/accordion/index.d.ts +4 -0
  20. package/dist/components/ui/alert-dialog/AlertDialog.vue.d.ts +26 -0
  21. package/dist/components/ui/alert-dialog/AlertDialogAction.vue.d.ts +27 -0
  22. package/dist/components/ui/alert-dialog/AlertDialogCancel.vue.d.ts +27 -0
  23. package/dist/components/ui/alert-dialog/AlertDialogContent.vue.d.ts +41 -0
  24. package/dist/components/ui/alert-dialog/AlertDialogDescription.vue.d.ts +27 -0
  25. package/dist/components/ui/alert-dialog/AlertDialogFooter.vue.d.ts +26 -0
  26. package/dist/components/ui/alert-dialog/AlertDialogHeader.vue.d.ts +26 -0
  27. package/dist/components/ui/alert-dialog/AlertDialogTitle.vue.d.ts +27 -0
  28. package/dist/components/ui/alert-dialog/AlertDialogTrigger.vue.d.ts +22 -0
  29. package/dist/components/ui/alert-dialog/index.d.ts +9 -0
  30. package/dist/components/ui/badge/Badge.vue.d.ts +42 -0
  31. package/dist/components/ui/badge/index.d.ts +7 -0
  32. package/dist/components/ui/button/Button.vue.d.ts +43 -0
  33. package/dist/components/ui/button/index.d.ts +8 -0
  34. package/dist/components/ui/button-group/ButtonGroup.vue.d.ts +29 -0
  35. package/dist/components/ui/button-group/ButtonGroupSeparator.vue.d.ts +32 -0
  36. package/dist/components/ui/button-group/ButtonGroupText.vue.d.ts +42 -0
  37. package/dist/components/ui/button-group/index.d.ts +9 -0
  38. package/dist/components/ui/separator/Separator.vue.d.ts +35 -0
  39. package/dist/components/ui/separator/index.d.ts +1 -0
  40. package/dist/index-A7umpmtg.js +37 -0
  41. package/dist/index-BS0sZM3b.js +45 -0
  42. package/dist/index-Cctx-joO.js +103 -0
  43. package/dist/index-D5fkjZ2l.js +34 -0
  44. package/dist/index-DCxse3sU.js +33 -0
  45. package/dist/index.d.ts +9 -0
  46. package/dist/index.js +31 -0
  47. package/dist/lib/utils.d.ts +3 -0
  48. package/dist/style.css +1 -0
  49. package/dist/styles-qaFjX9_3.js +2278 -0
  50. package/docs/README.md +35 -0
  51. package/docs/components/guidelines.md +221 -0
  52. package/docs/content/README.md +297 -0
  53. package/docs/content/content-foundations.md +506 -0
  54. package/docs/content/content-marketing-sales.md +454 -0
  55. package/docs/content/content-product-ux.md +875 -0
  56. package/docs/design/borders.md +500 -0
  57. package/docs/design/colours.md +523 -0
  58. package/docs/design/design-system.md +148 -0
  59. package/docs/design/layouts.md +681 -0
  60. package/docs/design/logo.md +383 -0
  61. package/docs/design/spacing.md +477 -0
  62. package/docs/design/typography.md +451 -0
  63. package/package.json +77 -22
  64. package/scripts/copy-docs.js +88 -0
  65. package/scripts/setup-docs.js +169 -0
  66. package/dist/index.mjs +0 -390
  67. package/dist/index.umd.js +0 -1
  68. package/index.html +0 -12
  69. package/playground/App.vue +0 -31
  70. package/playground/index.html +0 -12
  71. package/playground/main.ts +0 -5
  72. package/src/components/Button/Button.vue +0 -49
  73. package/src/components/index.ts +0 -5
  74. package/src/index.ts +0 -5
  75. package/src/playground/App.vue +0 -15
  76. package/src/playground/main.ts +0 -5
  77. package/src/shims-vue.d.ts +0 -5
  78. package/src/types/equal-experts__kuat-core.d.ts +0 -1
  79. package/tsconfig.json +0 -28
  80. package/tsconfig.node.json +0 -10
  81. package/vite.config.ts +0 -26
package/README.md ADDED
@@ -0,0 +1,614 @@
1
+ # @equal-experts/kuat-vue
2
+
3
+ A guide for integrating the Kuat Design System Vue component library into your application.
4
+
5
+ ---
6
+
7
+ ## Installation
8
+
9
+ ### Prerequisites
10
+
11
+ - Vue 3.4.0 or higher
12
+ - Node.js 18 or higher
13
+ - A package manager (npm, pnpm, or yarn)
14
+
15
+ ### Install the Package
16
+
17
+ ```bash
18
+ # Using pnpm (recommended)
19
+ pnpm add @equal-experts/kuat-vue
20
+
21
+ # Using npm
22
+ npm install @equal-experts/kuat-vue
23
+
24
+ # Using yarn
25
+ yarn add @equal-experts/kuat-vue
26
+ ```
27
+
28
+ ### Install Peer Dependencies
29
+
30
+ The library requires Vue, Radix Vue, and Reka UI as peer dependencies:
31
+
32
+ ```bash
33
+ # Required peer dependencies
34
+ pnpm add vue radix-vue reka-ui
35
+
36
+ # Optional: Install lucide-vue-next for icons (or use your preferred icon library)
37
+ pnpm add lucide-vue-next
38
+ ```
39
+
40
+ **Note:** `@equal-experts/kuat-core` is bundled with this package - you don't need to install it separately.
41
+
42
+ ### Recommended: Use Subpath Imports
43
+
44
+ To avoid installing all peer dependencies when you only need specific components, use **subpath imports**. This allows you to import only the components you need and only install their required peer dependencies.
45
+
46
+ **Example: Only using Button**
47
+
48
+ ```bash
49
+ # Only install peer dependencies for Button
50
+ pnpm add vue radix-vue reka-ui
51
+ ```
52
+
53
+ ```vue
54
+ <script setup>
55
+ // Import from subpath - only Button and its dependencies are required
56
+ import { Button } from "@equal-experts/kuat-vue/button";
57
+ </script>
58
+ ```
59
+
60
+ **Component Peer Dependencies:**
61
+
62
+ - **Button**: `vue`, `radix-vue`, `reka-ui`
63
+ - **Accordion**: `vue`, `radix-vue`, `reka-ui`, `lucide-vue-next`
64
+ - **AlertDialog**: `vue`, `radix-vue`, `reka-ui`
65
+ - **Badge**: `vue`, `radix-vue`, `reka-ui`
66
+
67
+ **Using Main Export (All Components):**
68
+
69
+ If you import from the main package, you'll need all peer dependencies:
70
+
71
+ ```vue
72
+ <script setup>
73
+ // This requires ALL peer dependencies to be installed
74
+ import { Button, Accordion, AlertDialog } from "@equal-experts/kuat-vue";
75
+ </script>
76
+ ```
77
+
78
+ **lucide-vue-next Version Support:**
79
+
80
+ The package supports `lucide-vue-next` versions `^0.344.0 || >=0.400.0`, including the latest versions.
81
+
82
+ ---
83
+
84
+ ## Setup
85
+
86
+ ### 1. Configure Tailwind CSS
87
+
88
+ The Kuat Design System uses Tailwind CSS v4. You'll need to configure Tailwind in your project.
89
+
90
+ #### Install Tailwind CSS v4
91
+
92
+ ```bash
93
+ pnpm add -D tailwindcss@next @tailwindcss/vite
94
+ ```
95
+
96
+ #### Create `tailwind.config.ts`
97
+
98
+ ```typescript
99
+ import type { Config } from "tailwindcss";
100
+
101
+ const config: Config = {
102
+ content: [
103
+ "./src/**/*.{js,ts,jsx,tsx,vue}",
104
+ "./node_modules/@equal-experts/kuat-vue/**/*.{js,ts,vue}", // Include Kuat components
105
+ ],
106
+ theme: {
107
+ extend: {
108
+ colors: {
109
+ background: "var(--background)",
110
+ foreground: "var(--foreground)",
111
+ primary: {
112
+ DEFAULT: "var(--primary)",
113
+ foreground: "var(--primary-foreground)",
114
+ },
115
+ secondary: {
116
+ DEFAULT: "var(--secondary)",
117
+ foreground: "var(--secondary-foreground)",
118
+ },
119
+ // ... other color tokens from @equal-experts/kuat-core
120
+ },
121
+ borderRadius: {
122
+ lg: "var(--radius)",
123
+ md: "calc(var(--radius) - 2px)",
124
+ sm: "calc(var(--radius) - 4px)",
125
+ },
126
+ fontFamily: {
127
+ sans: ["var(--font-sans)"],
128
+ serif: ["var(--font-serif)"],
129
+ mono: ["var(--font-mono)"],
130
+ },
131
+ },
132
+ },
133
+ plugins: [],
134
+ };
135
+
136
+ export default config;
137
+ ```
138
+
139
+ #### Configure Vite (if using Vite)
140
+
141
+ ```typescript
142
+ // vite.config.ts
143
+ import { defineConfig } from "vite";
144
+ import vue from "@vitejs/plugin-vue";
145
+ import tailwindcss from "@tailwindcss/vite";
146
+
147
+ export default defineConfig({
148
+ plugins: [vue(), tailwindcss()],
149
+ });
150
+ ```
151
+
152
+ ### 2. Import Styles
153
+
154
+ Import the Kuat Design System styles in your application's entry point:
155
+
156
+ ```typescript
157
+ // main.ts
158
+ import { createApp } from "vue";
159
+ import App from "./App.vue";
160
+ import "@equal-experts/kuat-vue/styles";
161
+
162
+ createApp(App).mount("#app");
163
+ ```
164
+
165
+ This imports the bundled CSS file which includes all design tokens from `@equal-experts/kuat-core` (no need to install `@equal-experts/kuat-core` separately).
166
+
167
+ **Note:** The styles include:
168
+ - Design tokens from `@equal-experts/kuat-core` (colors, spacing, typography)
169
+ - Tailwind CSS base styles
170
+ - Component-specific styles
171
+
172
+ ### 3. (Optional) Configure Fonts
173
+
174
+ The Kuat Design System uses Lexend (sans-serif), Lora (serif), and JetBrains Mono (monospace) fonts. These are loaded via Google Fonts in the core package.
175
+
176
+ If you want to use different fonts or load them differently, you can override the CSS variables:
177
+
178
+ ```css
179
+ :root {
180
+ --font-sans: 'Your Sans Font', sans-serif;
181
+ --font-serif: 'Your Serif Font', serif;
182
+ --font-mono: 'Your Mono Font', monospace;
183
+ }
184
+ ```
185
+
186
+ ---
187
+
188
+ ## AI Agent Documentation Setup
189
+
190
+ The Kuat Design System includes AI-friendly documentation optimized for LLM consumption. This documentation helps AI assistants understand the design system, generate code that follows design patterns, and maintain brand consistency.
191
+
192
+ ### Setup Documentation
193
+
194
+ To make the agent documentation available in your repository for LLM context (e.g., Cursor), run the setup script:
195
+
196
+ ```bash
197
+ # Using pnpm exec (recommended)
198
+ pnpm exec @equal-experts/kuat-vue setup-docs
199
+
200
+ # Using npm exec
201
+ npm exec @equal-experts/kuat-vue setup-docs
202
+
203
+ # Or if you have the package installed locally
204
+ cd node_modules/@equal-experts/kuat-vue && pnpm setup-docs
205
+ ```
206
+
207
+ This will copy the agent documentation to `.cursor/rules/kuat-docs/` in your repository root.
208
+
209
+ ### What Gets Copied
210
+
211
+ The setup script copies the following documentation:
212
+
213
+ - **Design System** (`design/`) - Colors, typography, spacing, borders, layouts, logo usage
214
+ - **Component Guidelines** (`components/`) - Component development patterns and best practices
215
+ - **Content Guidelines** (`content/`) - Content writing guidelines for marketing, sales, and product interfaces
216
+
217
+ ### Using the Documentation
218
+
219
+ Once copied, you can:
220
+
221
+ 1. **Reference in Cursor Rules**: Add references to `.cursor/rules/kuat-docs/` in your `.cursorrules` file
222
+ 2. **LLM Context**: The documentation is optimized for LLM consumption and provides context for:
223
+ - Understanding the design system
224
+ - Using components correctly
225
+ - Maintaining brand consistency
226
+ - Writing appropriate content
227
+
228
+ ### Updating Documentation
229
+
230
+ After installing a new version of `@equal-experts/kuat-vue`, run the setup script again to update the documentation:
231
+
232
+ ```bash
233
+ pnpm exec @equal-experts/kuat-vue setup-docs
234
+ ```
235
+
236
+ The script will automatically clean and replace the existing documentation.
237
+
238
+ ### Documentation Location
239
+
240
+ The documentation is copied to:
241
+ ```
242
+ .cursor/rules/kuat-docs/
243
+ ```
244
+
245
+ This location is chosen because:
246
+ - It's within the `.cursor/` directory (typically gitignored)
247
+ - It's in the `rules/` subdirectory where Cursor looks for context files
248
+ - It's clearly namespaced as `kuat-docs/` to avoid conflicts
249
+
250
+ ---
251
+
252
+ ## Basic Usage
253
+
254
+ ### Import Components
255
+
256
+ You can import components in two ways:
257
+
258
+ **Option 1: Subpath Import (Recommended for single components)**
259
+
260
+ ```typescript
261
+ // Import only Button - only requires Button's peer dependencies
262
+ import { Button } from "@equal-experts/kuat-vue/button";
263
+ ```
264
+
265
+ **Option 2: Main Package Import**
266
+
267
+ ```typescript
268
+ // Import from main package - requires all peer dependencies
269
+ import { Button } from "@equal-experts/kuat-vue";
270
+ ```
271
+
272
+ ### Use in Your App
273
+
274
+ ```vue
275
+ <template>
276
+ <div>
277
+ <Button>Click me</Button>
278
+ <Button variant="outline">Outline button</Button>
279
+ <Button variant="destructive">Delete</Button>
280
+ </div>
281
+ </template>
282
+
283
+ <script setup lang="ts">
284
+ // Recommended: Subpath import
285
+ import { Button } from "@equal-experts/kuat-vue/button";
286
+
287
+ // Or: Main package import
288
+ // import { Button } from "@equal-experts/kuat-vue";
289
+ </script>
290
+ ```
291
+
292
+ ---
293
+
294
+ ## Component Examples
295
+
296
+ ### Button
297
+
298
+ The Button component supports multiple variants and sizes:
299
+
300
+ ```vue
301
+ <template>
302
+ <div class="space-x-4">
303
+ <!-- Variants -->
304
+ <Button variant="default">Default</Button>
305
+ <Button variant="destructive">Destructive</Button>
306
+ <Button variant="outline">Outline</Button>
307
+ <Button variant="secondary">Secondary</Button>
308
+ <Button variant="ghost">Ghost</Button>
309
+ <Button variant="link">Link</Button>
310
+
311
+ <!-- Sizes -->
312
+ <Button size="sm">Small</Button>
313
+ <Button size="default">Default</Button>
314
+ <Button size="lg">Large</Button>
315
+ <Button size="icon">🚀</Button>
316
+ <Button size="icon-sm">📱</Button>
317
+ <Button size="icon-lg">💻</Button>
318
+
319
+ <!-- With click handler -->
320
+ <Button @click="handleClick">
321
+ Click me
322
+ </Button>
323
+
324
+ <!-- Disabled -->
325
+ <Button disabled>Disabled</Button>
326
+
327
+ <!-- As child (for composition) -->
328
+ <Button as-child>
329
+ <a href="/link">Link Button</a>
330
+ </Button>
331
+ </div>
332
+ </template>
333
+
334
+ <script setup lang="ts">
335
+ import { Button } from "@equal-experts/kuat-vue";
336
+
337
+ function handleClick() {
338
+ alert("Clicked!");
339
+ }
340
+ </script>
341
+ ```
342
+
343
+ ### TypeScript Support
344
+
345
+ All components are fully typed:
346
+
347
+ ```vue
348
+ <script setup lang="ts">
349
+ import { Button, type ButtonVariants } from "@equal-experts/kuat-vue";
350
+
351
+ const variant: ButtonVariants["variant"] = "outline";
352
+ const size: ButtonVariants["size"] = "lg";
353
+ </script>
354
+
355
+ <template>
356
+ <Button :variant="variant" :size="size">
357
+ Typed Button
358
+ </Button>
359
+ </template>
360
+ ```
361
+
362
+ ---
363
+
364
+ ## Styling and Theming
365
+
366
+ ### Using Design Tokens
367
+
368
+ The Kuat Design System provides CSS variables for all design tokens. Use them in your custom components:
369
+
370
+ ```vue
371
+ <template>
372
+ <div class="custom-component">
373
+ Custom styled component
374
+ </div>
375
+ </template>
376
+
377
+ <style scoped>
378
+ .custom-component {
379
+ background-color: var(--background);
380
+ color: var(--foreground);
381
+ padding: var(--spacing);
382
+ border-color: var(--border);
383
+ border-radius: var(--radius);
384
+ }
385
+ </style>
386
+ ```
387
+
388
+ Or with Tailwind classes:
389
+
390
+ ```vue
391
+ <template>
392
+ <div class="bg-background text-foreground p-4 rounded-lg border border-border">
393
+ Custom styled component
394
+ </div>
395
+ </template>
396
+ ```
397
+
398
+ ### Dark Mode
399
+
400
+ Dark mode is supported via the `.dark` class. Apply it to your root element:
401
+
402
+ ```vue
403
+ <!-- In your root component -->
404
+ <template>
405
+ <div :class="{ dark: isDark }">
406
+ <App />
407
+ </div>
408
+ </template>
409
+
410
+ <script setup lang="ts">
411
+ import { ref } from "vue";
412
+
413
+ const isDark = ref(false);
414
+ </script>
415
+ ```
416
+
417
+ Or toggle dynamically:
418
+
419
+ ```vue
420
+ <template>
421
+ <div :class="{ dark: isDark }">
422
+ <button @click="isDark = !isDark">
423
+ Toggle theme
424
+ </button>
425
+ <!-- Your app -->
426
+ </div>
427
+ </template>
428
+
429
+ <script setup lang="ts">
430
+ import { ref } from "vue";
431
+
432
+ const isDark = ref(false);
433
+ </script>
434
+ ```
435
+
436
+ ### Customizing Colors
437
+
438
+ Override CSS variables to customize the theme:
439
+
440
+ ```css
441
+ /* In your global CSS file */
442
+ :root {
443
+ --primary: oklch(0.645 0.163 237.5); /* Your primary color */
444
+ --primary-foreground: oklch(1.0 0.0 0.0); /* White */
445
+ }
446
+
447
+ .dark {
448
+ --primary: oklch(0.585 0.145 237.5); /* Darker primary for dark mode */
449
+ --primary-foreground: oklch(1.0 0.0 0.0); /* White */
450
+ }
451
+ ```
452
+
453
+ ---
454
+
455
+ ## Advanced Usage
456
+
457
+ ### Composing Components
458
+
459
+ Use the `as-child` prop to compose components:
460
+
461
+ ```vue
462
+ <template>
463
+ <Button as-child variant="ghost">
464
+ <router-link to="/dashboard">Dashboard</router-link>
465
+ </Button>
466
+ </template>
467
+
468
+ <script setup lang="ts">
469
+ import { Button } from "@equal-experts/kuat-vue";
470
+ </script>
471
+ ```
472
+
473
+ ### Using Variants Programmatically
474
+
475
+ Import and use variant functions:
476
+
477
+ ```vue
478
+ <template>
479
+ <button :class="buttonClass">
480
+ Custom Button
481
+ </button>
482
+ </template>
483
+
484
+ <script setup lang="ts">
485
+ import { buttonVariants } from "@equal-experts/kuat-vue";
486
+ import { cn } from "@equal-experts/kuat-vue";
487
+
488
+ const buttonClass = cn(
489
+ buttonVariants({ variant: "outline", size: "lg" }),
490
+ "custom-class"
491
+ );
492
+ </script>
493
+ ```
494
+
495
+ ### Global Component Registration
496
+
497
+ Register components globally if preferred:
498
+
499
+ ```typescript
500
+ // main.ts
501
+ import { createApp } from "vue";
502
+ import App from "./App.vue";
503
+ import * as KuatComponents from "@equal-experts/kuat-vue";
504
+
505
+ const app = createApp(App);
506
+
507
+ // Register all components globally
508
+ Object.entries(KuatComponents).forEach(([name, component]) => {
509
+ if (name !== "default" && typeof component === "object") {
510
+ app.component(name, component);
511
+ }
512
+ });
513
+
514
+ app.mount("#app");
515
+ ```
516
+
517
+ Then use without importing:
518
+
519
+ ```vue
520
+ <template>
521
+ <Button>No import needed</Button>
522
+ </template>
523
+ ```
524
+
525
+ ---
526
+
527
+ ## Troubleshooting
528
+
529
+ ### Styles Not Loading
530
+
531
+ 1. **Check import order**: Ensure you import `@equal-experts/kuat-vue/styles` before your own styles
532
+ 2. **Verify Tailwind config**: Make sure `@equal-experts/kuat-vue` is included in your `content` paths
533
+ 3. **Check build output**: Ensure the CSS file is being included in your build
534
+ 4. **Vue SFC**: If using Single File Components, ensure styles are processed correctly
535
+
536
+ ### TypeScript Errors
537
+
538
+ 1. **Install types**: Ensure Vue TypeScript support is configured
539
+ 2. **Check TypeScript version**: Requires TypeScript 5.3 or higher
540
+ 3. **Verify imports**: Use named imports, not default imports
541
+ 4. **Vue TSConfig**: Ensure your `tsconfig.json` includes Vue file types
542
+
543
+ ### Components Not Rendering
544
+
545
+ 1. **Check Vue version**: Requires Vue 3.4.0 or higher
546
+ 2. **Verify peer dependencies**: Ensure `vue` is installed
547
+ 3. **Check console**: Look for runtime errors in the browser console
548
+ 4. **Build mode**: Ensure you're using the correct build mode (ES modules)
549
+
550
+ ---
551
+
552
+ ## Package Structure
553
+
554
+ ```
555
+ @equal-experts/kuat-vue
556
+ ├── dist/
557
+ │ ├── index.js # Compiled JavaScript
558
+ │ ├── index.d.ts # TypeScript definitions
559
+ │ └── index.css # Compiled styles
560
+ └── src/
561
+ ├── components/ # Component source files
562
+ ├── lib/ # Utilities
563
+ └── styles.css # Style source
564
+ ```
565
+
566
+ ---
567
+
568
+ ## Additional Resources
569
+
570
+ - **shadcn-vue Documentation**: [https://www.shadcn-vue.com](https://www.shadcn-vue.com)
571
+ - **Tailwind CSS v4**: [https://tailwindcss.com](https://tailwindcss.com)
572
+ - **Vue 3 Documentation**: [https://vuejs.org](https://vuejs.org)
573
+ - **Radix Vue Documentation**: [https://www.radix-vue.com](https://www.radix-vue.com)
574
+
575
+ ---
576
+
577
+ ## AI Agent Documentation
578
+
579
+ This package includes AI-friendly documentation in the `docs/` directory, optimized for LLM consumption.
580
+
581
+ ### Included Documentation
582
+
583
+ - **[Design System](./docs/design/)** - Colors, typography, spacing, borders, and design tokens
584
+ - **[Component Guidelines](./docs/components/guidelines.md)** - Component development patterns and best practices
585
+ - **[Content Guidelines](./docs/content/)** - Content writing guidelines for marketing and product UX
586
+
587
+ ### Accessing Documentation
588
+
589
+ The documentation is available in your `node_modules` after installation:
590
+
591
+ ```
592
+ node_modules/@equal-experts/kuat-vue/docs/
593
+ ├── design/ # Design system guidelines
594
+ ├── components/ # Component patterns
595
+ └── content/ # Content writing guidelines
596
+ ```
597
+
598
+ ### For AI Agents
599
+
600
+ You can reference this documentation in your `.cursorrules` or similar configuration:
601
+
602
+ ```
603
+ # Kuat Design System Documentation
604
+ - Design tokens: node_modules/@equal-experts/kuat-vue/docs/design/
605
+ - Component patterns: node_modules/@equal-experts/kuat-vue/docs/components/
606
+ - Brand colors available: EE Blue, Tech Blue, Transform Teal, Equal Ember
607
+ ```
608
+
609
+ ---
610
+
611
+ ## Support
612
+
613
+ For issues, questions, or contributions, please refer to the main repository documentation or open an issue in the project repository.
614
+
@@ -0,0 +1,107 @@
1
+ import { defineComponent as l, createBlock as d, openBlock as i, unref as e, normalizeProps as h, guardReactiveProps as y, withCtx as n, renderSlot as c, mergeProps as p, createElementVNode as B, normalizeClass as g, createVNode as _ } from "vue";
2
+ import { useForwardPropsEmits as w, AccordionRoot as C, AccordionContent as A, useForwardProps as P, AccordionItem as b, AccordionHeader as v, AccordionTrigger as $ } from "reka-ui";
3
+ import { c as m } from "./styles-qaFjX9_3.js";
4
+ import { r as u } from "./index-A7umpmtg.js";
5
+ import { ChevronDown as x } from "lucide-vue-next";
6
+ const F = /* @__PURE__ */ l({
7
+ __name: "Accordion",
8
+ props: {
9
+ collapsible: { type: Boolean },
10
+ disabled: { type: Boolean },
11
+ dir: {},
12
+ orientation: {},
13
+ unmountOnHide: { type: Boolean },
14
+ asChild: { type: Boolean },
15
+ as: {},
16
+ type: {},
17
+ modelValue: {},
18
+ defaultValue: {}
19
+ },
20
+ emits: ["update:modelValue"],
21
+ setup(s, { emit: o }) {
22
+ const r = w(s, o);
23
+ return (f, V) => (i(), d(e(C), h(y(e(r))), {
24
+ default: n(() => [
25
+ c(f.$slots, "default")
26
+ ]),
27
+ _: 3
28
+ }, 16));
29
+ }
30
+ }), I = /* @__PURE__ */ l({
31
+ __name: "AccordionContent",
32
+ props: {
33
+ forceMount: { type: Boolean },
34
+ asChild: { type: Boolean },
35
+ as: {},
36
+ class: {}
37
+ },
38
+ setup(s) {
39
+ const o = s, a = u(o, "class");
40
+ return (t, r) => (i(), d(e(A), p(e(a), { class: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" }), {
41
+ default: n(() => [
42
+ B("div", {
43
+ class: g(e(m)("pb-4 pt-0", o.class))
44
+ }, [
45
+ c(t.$slots, "default")
46
+ ], 2)
47
+ ]),
48
+ _: 3
49
+ }, 16));
50
+ }
51
+ }), N = /* @__PURE__ */ l({
52
+ __name: "AccordionItem",
53
+ props: {
54
+ disabled: { type: Boolean },
55
+ value: {},
56
+ unmountOnHide: { type: Boolean },
57
+ asChild: { type: Boolean },
58
+ as: {},
59
+ class: {}
60
+ },
61
+ setup(s) {
62
+ const o = s, a = u(o, "class"), t = P(a);
63
+ return (r, f) => (i(), d(e(b), p(e(t), {
64
+ class: e(m)("border-b", o.class)
65
+ }), {
66
+ default: n(() => [
67
+ c(r.$slots, "default")
68
+ ]),
69
+ _: 3
70
+ }, 16, ["class"]));
71
+ }
72
+ }), R = /* @__PURE__ */ l({
73
+ __name: "AccordionTrigger",
74
+ props: {
75
+ asChild: { type: Boolean },
76
+ as: {},
77
+ class: {}
78
+ },
79
+ setup(s) {
80
+ const o = s, a = u(o, "class");
81
+ return (t, r) => (i(), d(e(v), { class: "flex" }, {
82
+ default: n(() => [
83
+ _(e($), p(e(a), {
84
+ class: e(m)(
85
+ "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
86
+ o.class
87
+ )
88
+ }), {
89
+ default: n(() => [
90
+ c(t.$slots, "default"),
91
+ c(t.$slots, "icon", {}, () => [
92
+ _(e(x), { class: "h-4 w-4 shrink-0 transition-transform duration-200" })
93
+ ])
94
+ ]),
95
+ _: 3
96
+ }, 16, ["class"])
97
+ ]),
98
+ _: 3
99
+ }));
100
+ }
101
+ });
102
+ export {
103
+ F as _,
104
+ N as a,
105
+ R as b,
106
+ I as c
107
+ };