@komarcalabs/design-system 0.1.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.
Files changed (131) hide show
  1. package/README.md +409 -0
  2. package/dist/carousel-D_f-K2v2.js +83 -0
  3. package/dist/index.d.ts +4 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +51 -0
  6. package/dist/plugin-DfFKi2ZR.js +941 -0
  7. package/dist/react/components/KmAlert.d.ts +8 -0
  8. package/dist/react/components/KmAlert.d.ts.map +1 -0
  9. package/dist/react/components/KmBadge.d.ts +7 -0
  10. package/dist/react/components/KmBadge.d.ts.map +1 -0
  11. package/dist/react/components/KmButton.d.ts +18 -0
  12. package/dist/react/components/KmButton.d.ts.map +1 -0
  13. package/dist/react/components/KmCard.d.ts +7 -0
  14. package/dist/react/components/KmCard.d.ts.map +1 -0
  15. package/dist/react/components/KmInput.d.ts +14 -0
  16. package/dist/react/components/KmInput.d.ts.map +1 -0
  17. package/dist/react/components/KmSelect.d.ts +23 -0
  18. package/dist/react/components/KmSelect.d.ts.map +1 -0
  19. package/dist/react/components/KmStack.d.ts +13 -0
  20. package/dist/react/components/KmStack.d.ts.map +1 -0
  21. package/dist/react/components/KmStepper.d.ts +17 -0
  22. package/dist/react/components/KmStepper.d.ts.map +1 -0
  23. package/dist/react/components/KmTextarea.d.ts +14 -0
  24. package/dist/react/components/KmTextarea.d.ts.map +1 -0
  25. package/dist/react/components/KmToggleSwitch.d.ts +11 -0
  26. package/dist/react/components/KmToggleSwitch.d.ts.map +1 -0
  27. package/dist/react/components/index.d.ts +11 -0
  28. package/dist/react/components/index.d.ts.map +1 -0
  29. package/dist/react/index.d.ts +2 -0
  30. package/dist/react/index.d.ts.map +1 -0
  31. package/dist/react.d.ts +2 -0
  32. package/dist/react.d.ts.map +1 -0
  33. package/dist/react.js +363 -0
  34. package/dist/styles.css +1 -0
  35. package/dist/theme-CI9qhP-e.js +337 -0
  36. package/dist/toggleSwitch-CpBXc_jq.js +369 -0
  37. package/dist/tokens/colors.d.ts +284 -0
  38. package/dist/tokens/colors.d.ts.map +1 -0
  39. package/dist/tokens/index.d.ts +5 -0
  40. package/dist/tokens/index.d.ts.map +1 -0
  41. package/dist/tokens/spacing.d.ts +31 -0
  42. package/dist/tokens/spacing.d.ts.map +1 -0
  43. package/dist/tokens/theme.d.ts +96 -0
  44. package/dist/tokens/theme.d.ts.map +1 -0
  45. package/dist/tokens/typography.d.ts +22 -0
  46. package/dist/tokens/typography.d.ts.map +1 -0
  47. package/dist/tokens.d.ts +3 -0
  48. package/dist/tokens.d.ts.map +1 -0
  49. package/dist/tokens.js +31 -0
  50. package/dist/utils/classNames.d.ts +3 -0
  51. package/dist/utils/classNames.d.ts.map +1 -0
  52. package/dist/utils/index.d.ts +3 -0
  53. package/dist/utils/index.d.ts.map +1 -0
  54. package/dist/utils/useId.d.ts +9 -0
  55. package/dist/utils/useId.d.ts.map +1 -0
  56. package/dist/variants/alert.d.ts +85 -0
  57. package/dist/variants/alert.d.ts.map +1 -0
  58. package/dist/variants/avatar.d.ts +37 -0
  59. package/dist/variants/avatar.d.ts.map +1 -0
  60. package/dist/variants/badge.d.ts +46 -0
  61. package/dist/variants/badge.d.ts.map +1 -0
  62. package/dist/variants/button.d.ts +108 -0
  63. package/dist/variants/button.d.ts.map +1 -0
  64. package/dist/variants/card.d.ts +46 -0
  65. package/dist/variants/card.d.ts.map +1 -0
  66. package/dist/variants/carousel.d.ts +40 -0
  67. package/dist/variants/carousel.d.ts.map +1 -0
  68. package/dist/variants/field.d.ts +46 -0
  69. package/dist/variants/field.d.ts.map +1 -0
  70. package/dist/variants/index.d.ts +15 -0
  71. package/dist/variants/index.d.ts.map +1 -0
  72. package/dist/variants/input.d.ts +4 -0
  73. package/dist/variants/input.d.ts.map +1 -0
  74. package/dist/variants/select.d.ts +4 -0
  75. package/dist/variants/select.d.ts.map +1 -0
  76. package/dist/variants/spinner.d.ts +40 -0
  77. package/dist/variants/spinner.d.ts.map +1 -0
  78. package/dist/variants/stack.d.ts +91 -0
  79. package/dist/variants/stack.d.ts.map +1 -0
  80. package/dist/variants/stepper.d.ts +160 -0
  81. package/dist/variants/stepper.d.ts.map +1 -0
  82. package/dist/variants/textarea.d.ts +4 -0
  83. package/dist/variants/textarea.d.ts.map +1 -0
  84. package/dist/variants/toggleSwitch.d.ts +115 -0
  85. package/dist/variants/toggleSwitch.d.ts.map +1 -0
  86. package/dist/vue/components/KmAlert.vue.d.ts +26 -0
  87. package/dist/vue/components/KmAlert.vue.d.ts.map +1 -0
  88. package/dist/vue/components/KmAvatar.vue.d.ts +12 -0
  89. package/dist/vue/components/KmAvatar.vue.d.ts.map +1 -0
  90. package/dist/vue/components/KmBadge.vue.d.ts +24 -0
  91. package/dist/vue/components/KmBadge.vue.d.ts.map +1 -0
  92. package/dist/vue/components/KmButton.vue.d.ts +35 -0
  93. package/dist/vue/components/KmButton.vue.d.ts.map +1 -0
  94. package/dist/vue/components/KmCard.vue.d.ts +20 -0
  95. package/dist/vue/components/KmCard.vue.d.ts.map +1 -0
  96. package/dist/vue/components/KmCarousel.vue.d.ts +29 -0
  97. package/dist/vue/components/KmCarousel.vue.d.ts.map +1 -0
  98. package/dist/vue/components/KmDialog/KmDialog.vue.d.ts +30 -0
  99. package/dist/vue/components/KmDialog/KmDialog.vue.d.ts.map +1 -0
  100. package/dist/vue/components/KmDialog/KmDialogBody.vue.d.ts +18 -0
  101. package/dist/vue/components/KmDialog/KmDialogBody.vue.d.ts.map +1 -0
  102. package/dist/vue/components/KmDialog/KmDialogFooter.vue.d.ts +22 -0
  103. package/dist/vue/components/KmDialog/KmDialogFooter.vue.d.ts.map +1 -0
  104. package/dist/vue/components/KmDialog/KmDialogHeader.vue.d.ts +12 -0
  105. package/dist/vue/components/KmDialog/KmDialogHeader.vue.d.ts.map +1 -0
  106. package/dist/vue/components/KmDialog/index.d.ts +7 -0
  107. package/dist/vue/components/KmDialog/index.d.ts.map +1 -0
  108. package/dist/vue/components/KmInput.vue.d.ts +20 -0
  109. package/dist/vue/components/KmInput.vue.d.ts.map +1 -0
  110. package/dist/vue/components/KmSelect.vue.d.ts +29 -0
  111. package/dist/vue/components/KmSelect.vue.d.ts.map +1 -0
  112. package/dist/vue/components/KmSpinner.vue.d.ts +11 -0
  113. package/dist/vue/components/KmSpinner.vue.d.ts.map +1 -0
  114. package/dist/vue/components/KmStack.vue.d.ts +34 -0
  115. package/dist/vue/components/KmStack.vue.d.ts.map +1 -0
  116. package/dist/vue/components/KmStepper.vue.d.ts +22 -0
  117. package/dist/vue/components/KmStepper.vue.d.ts.map +1 -0
  118. package/dist/vue/components/KmTextarea.vue.d.ts +20 -0
  119. package/dist/vue/components/KmTextarea.vue.d.ts.map +1 -0
  120. package/dist/vue/components/KmToggleSwitch.vue.d.ts +20 -0
  121. package/dist/vue/components/KmToggleSwitch.vue.d.ts.map +1 -0
  122. package/dist/vue/components/index.d.ts +15 -0
  123. package/dist/vue/components/index.d.ts.map +1 -0
  124. package/dist/vue/index.d.ts +3 -0
  125. package/dist/vue/index.d.ts.map +1 -0
  126. package/dist/vue/plugin.d.ts +3 -0
  127. package/dist/vue/plugin.d.ts.map +1 -0
  128. package/dist/vue.d.ts +2 -0
  129. package/dist/vue.d.ts.map +1 -0
  130. package/dist/vue.js +22 -0
  131. package/package.json +86 -0
package/README.md ADDED
@@ -0,0 +1,409 @@
1
+ # Komarca Design System
2
+
3
+ > **"Construimos tecnología como ingenieros."**
4
+
5
+ Librería compartida para construir interfaces consistentes en las apps de **Komarca Labs**.
6
+
7
+ El paquete está preparado para **Vue** y **React**. El enfoque inicial es **Vue**, por eso los componentes Vue son la primera API estable.
8
+
9
+ ---
10
+
11
+ ## 🔗 Enlaces Rápidos
12
+
13
+ | Recurso | Link |
14
+ |---------|------|
15
+ | 📖 [Storybook](http://localhost:6006) | Componentes interactivos |
16
+ | 🎨 [Brand Guidelines](./docs/assets/brand-guidelines.png) | Identidad visual completa |
17
+ | 🔘 [Botones y Variantes](./docs/assets/buttons-variants.png) | Sistema de botones |
18
+ | 📚 [Brand Identity](./docs/brand-identity.md) | Documentación de identidad |
19
+ | 📦 [CRM App Guide](./apps/crm-app/docs/buttons-guide.md) | Guía para CRM App |
20
+
21
+ ---
22
+
23
+ ## 📖 ¿Qué es Komarca Design System?
24
+
25
+ Es nuestro **sistema de diseño unificado** que define cómo se ven y comportan todas las interfaces de Komarca Labs.
26
+
27
+ ### 🎯 Propósito
28
+
29
+ Proporcionar una **base visual coherente** para:
30
+
31
+ - ✅ **Dashboards empresariales** (ERP, CRM, Analytics)
32
+ - ✅ **Plataformas de automatización**
33
+ - ✅ **Sistemas de IA y workflows**
34
+ - ✅ **Landing pages corporativas**
35
+ - ✅ **Herramientas internas**
36
+
37
+ ### 🏗️ ¿Qué Incluye?
38
+
39
+ | Categoría | Contenido |
40
+ |-----------|-----------|
41
+ | 🎨 **Tokens** | Colores, tipografía, spacing, shadows, radius |
42
+ | 🧩 **Componentes** | Buttons, Inputs, Cards, Alerts, Badges, etc. |
43
+ | 📐 **Variants** | Combinaciones tipadas con `tailwind-variants` |
44
+ | 📚 **Documentación** | Storybook, guías de uso, ejemplos |
45
+ | 🖼️ **Assets** | Iconos, logos, ilustraciones técnicas |
46
+
47
+ ### 🔧 Stack Tecnológico
48
+
49
+ - **Tailwind CSS v4** - Utility-first CSS framework
50
+ - **tailwind-variants** - System for component variants
51
+ - **Vue 3** + **React 18** - Frameworks soportados
52
+ - **Storybook 10** - Documentación y testing visual
53
+ - **Vite** - Build tool y dev server
54
+
55
+ ---
56
+
57
+ ## 🖼️ Referencias Visuales
58
+
59
+ ### Brand Guidelines Completo
60
+
61
+ ![Komarca Labs Brand Guidelines](./docs/assets/brand-guidelines.png)
62
+
63
+ **📄 Ver completo:** [brand-guidelines.png](./docs/assets/brand-guidelines.png)
64
+
65
+ **Incluye:**
66
+ - Paleta de colores principal y neutros
67
+ - Colores semánticos
68
+ - Tipografía (Inter / Geist / Manrope)
69
+ - Iconografía técnica
70
+ - Efectos glow
71
+ - Modos de diseño (Blueprint, Corporate, Glow Tech)
72
+ - Áreas de aplicación
73
+
74
+ ---
75
+
76
+ ### Botones y Variantes
77
+
78
+ ![Botones y Variantes](./docs/assets/buttons-variants.png)
79
+
80
+ **📄 Ver completo:** [buttons-variants.png](./docs/assets/buttons-variants.png)
81
+
82
+ **Incluye:**
83
+ - 5 estilos principales (Solid, Outline, Soft, Ghost, Link)
84
+ - 4 estados (Default, Hover, Focus, Disabled)
85
+ - Botones por semántica (Éxito, Advertencia, Error, Información)
86
+ - 4 tamaños (XS, SM, MD, LG)
87
+ - Botones con íconos (izquierda, derecha, solo ícono)
88
+ - Floating Action Buttons (FAB)
89
+ - Estados especiales (Cargando, Procesando, Éxito, Error)
90
+ - Uso en temas (Claro / Oscuro)
91
+
92
+ ---
93
+
94
+ ## 📚 Documentación Completa
95
+
96
+ | Documento | Descripción |
97
+ |-----------|-------------|
98
+ | [🎨 Brand Identity](./docs/brand-identity.md) | Identidad visual completa, colores, tipografía, modos de diseño |
99
+ | [🔘 Buttons Guide](./apps/crm-app/docs/buttons-guide.md) | Guía de uso de botones con ejemplos |
100
+ | [📖 Storybook](http://localhost:6006) | Documentación interactiva de componentes |
101
+
102
+ ---
103
+
104
+ ## 🎨 Identidad Visual Komarca Labs
105
+
106
+ ### Brand Essence
107
+
108
+ Komarca Labs representa **ingeniería de software aplicada a sistemas empresariales**. No somos una startup genérica ni una agencia de marketing — construimos tecnología real.
109
+
110
+ **La UI debe comunicar:**
111
+ - ✅ Técnica
112
+ - ✅ Premium
113
+ - ✅ Moderna
114
+ - ✅ Estructurada
115
+ - ✅ Tecnológica
116
+
117
+ **NO debe sentirse como:**
118
+ - ❌ Startup genérica
119
+ - ❌ Agencia de marketing
120
+ - ❌ SaaS pastel
121
+
122
+ ---
123
+
124
+ ### Core Colors
125
+
126
+ | Color | Hex | Uso | Sensación |
127
+ |-------|-----|-----|-----------|
128
+ | **Primary Blue** | `#0D589D` | Botones, links, branding | Tecnología seria, ingeniería |
129
+ | **Primary Hover** | `#0A4A84` | Interactive states | Profundidad, acción |
130
+ | **Primary Dark** | `#083A69` | Fondos premium, dashboards | Robustez, corporativo |
131
+ | **Primary Light** | `#DCEBFA` | Backgrounds suaves, badges | Informativo, sutil |
132
+ | **Accent Cyan** | `#22D3EE` | IA, automatización, glow | Innovación, energía |
133
+ | **Ink** | `#1E293B` | Blueprint, wireframes | Ingeniería, precisión |
134
+
135
+ ### Neutral Palette
136
+
137
+ ```css
138
+ --km-gray-50: #F8FAFC; /* Backgrounds limpios */
139
+ --km-gray-100: #F1F5F9; /* Surfaces sutiles */
140
+ --km-gray-200: #E2E8F0; /* Bordes */
141
+ --km-gray-500: #64748B; /* Texto secundario */
142
+ --km-gray-700: #334155; /* Texto principal */
143
+ --km-gray-900: #0F172A; /* Texto dark mode */
144
+ ```
145
+
146
+ ### Semantic Colors
147
+
148
+ | Semantic | Color | Background |
149
+ |----------|-------|------------|
150
+ | Success | `#10B981` | `#D1FAE5` |
151
+ | Warning | `#F59E0B` | `#FEF3C7` |
152
+ | Danger | `#EF4444` | `#FEE2E2` |
153
+ | Info | `#3B82F6` | `#DBEAFE` |
154
+
155
+ ---
156
+
157
+ ### Design Modes
158
+
159
+ #### 1. Blueprint Light
160
+ - Fondo claro, sketches técnicos
161
+ - Wireframes, grids, diagramas
162
+ - **Uso:** Landing pages, marketing, servicios
163
+
164
+ #### 2. Corporate Dark
165
+ - Dark mode premium, glass effects
166
+ - Glow sutil, profundidad
167
+ - **Uso:** Dashboards, ERP, CRM, analytics
168
+
169
+ #### 3. Glow Tech
170
+ - Cyan glow, motion moderno
171
+ - IA, automatización
172
+ - **Uso:** Hero sections, features tecnológicas
173
+
174
+ ---
175
+
176
+ ### Typography
177
+
178
+ **Primary:** Inter — Clean, technical, modern
179
+ **Code:** JetBrains Mono / SFMono — Engineering precision
180
+
181
+ ### UI Style
182
+
183
+ **Buttons:**
184
+ - Rounded-lg o rounded-xl
185
+ - Sombras suaves
186
+ - Glow ligero en hover
187
+
188
+ **Cards:**
189
+ - Bordes suaves, sombras sutiles
190
+ - Espacio blanco, overlays blueprint
191
+ - Grids técnicos
192
+
193
+ **Sections:**
194
+ - Alternar fondos claros/dark
195
+ - Overlays técnicos, wireframes
196
+
197
+ ---
198
+
199
+ ### Glow Effects
200
+
201
+ ```css
202
+ --km-glow-blue: rgba(13, 88, 157, 0.35); /* Primary blue glow */
203
+ --km-glow-cyan: rgba(34, 211, 238, 0.25); /* Accent cyan glow */
204
+ ```
205
+
206
+ **Dark mode:** Más intensos (0.4-0.5 alpha)
207
+
208
+ ---
209
+
210
+ ### What To Avoid
211
+
212
+ ❌ Gradients crypto exagerados
213
+ ❌ Demasiados colores
214
+ ❌ Palettes pastel
215
+ ❌ Estilos gamer
216
+ ❌ Neones agresivos
217
+ ❌ UI demasiado juvenil
218
+
219
+ ---
220
+
221
+ ### Brand Positioning
222
+
223
+ Komarca Labs construye:
224
+ - Software empresarial
225
+ - Automatización
226
+ - Sistemas
227
+ - IA
228
+ - Dashboards
229
+ - Integraciones
230
+ - Plataformas tecnológicas
231
+
232
+ > **"Ingeniería tecnológica profesional."**
233
+
234
+ ---
235
+
236
+ ## Instalacion local
237
+
238
+ Desde el root del monorepo:
239
+
240
+ ```bash
241
+ bun run install:design-system
242
+ ```
243
+
244
+ ---
245
+
246
+ ## Uso en Vue
247
+
248
+ ```ts
249
+ import { createApp } from "vue";
250
+ import { KomarcaVueDesignSystem } from "@komarcalabs/design-system/vue";
251
+ import "@komarcalabs/design-system/styles.css";
252
+
253
+ import App from "./App.vue";
254
+
255
+ createApp(App).use(KomarcaVueDesignSystem).mount("#app");
256
+ ```
257
+
258
+ Tambien puedes importar componentes puntuales:
259
+
260
+ ```vue
261
+ <script setup lang="ts">
262
+ import { KmButton, KmInput } from "@komarcalabs/design-system/vue";
263
+ </script>
264
+
265
+ <template>
266
+ <KmInput label="Correo" placeholder="usuario@empresa.com" />
267
+ <KmButton variant="primary">Guardar</KmButton>
268
+ </template>
269
+ ```
270
+
271
+ ---
272
+
273
+ ## 📖 Storybook
274
+
275
+ Storybook es nuestro **laboratorio vivo de componentes**. Aquí puedes ver, probar y documentar todos los componentes del Design System en un entorno aislado.
276
+
277
+ ### ¿Por qué usar Storybook?
278
+
279
+ - ✅ **Explorar componentes** — Ver todos los componentes disponibles
280
+ - ✅ **Probar variantes** — Interactuar con props y ver cambios en tiempo real
281
+ - ✅ **Ver código** — Copiar ejemplos de uso directamente
282
+ - ✅ **Documentación viva** — Siempre actualizada con el último código
283
+ - ✅ **Accesibilidad** — Tests automáticos de a11y
284
+
285
+ ### Comandos Disponibles
286
+
287
+ **Vue (Entorno principal):**
288
+
289
+ ```bash
290
+ # Build + Serve en http://localhost:6006
291
+ bun run storybook:vue
292
+
293
+ # Dev mode con live reload
294
+ bun run storybook:vue:dev
295
+ ```
296
+
297
+ **React:**
298
+
299
+ ```bash
300
+ # Build + Serve en http://localhost:6007
301
+ bun run storybook:react
302
+
303
+ # Dev mode con live reload
304
+ bun run storybook:react:dev
305
+ ```
306
+
307
+ **Build Estático:**
308
+
309
+ ```bash
310
+ # Genera build estático para deploy
311
+ bun run build-storybook
312
+ ```
313
+
314
+ ### Requisitos
315
+
316
+ - **Node.js:** `>=20.10` (Storybook 10)
317
+ - **Navegador:** Chrome, Firefox, Edge (últimas versiones)
318
+
319
+ ### Estructura de Stories
320
+
321
+ ```txt
322
+ src/vue/stories/
323
+ Button.stories.ts # KmButton variants
324
+ Input.stories.ts # KmInput variants
325
+ Alert.stories.ts # KmAlert tones
326
+ Badge.stories.ts # KmBadge tones
327
+ Avatar.stories.ts # KmAvatar sizes
328
+ Card.stories.ts # KmCard layouts
329
+ Select.stories.ts # KmSelect options
330
+ Textarea.stories.ts # KmTextarea
331
+ Spinner.stories.ts # KmSpinner states
332
+ Stack.stories.ts # KmStack layouts
333
+ Feedback.stories.ts # Feedback overview
334
+ Form.stories.ts # Form examples
335
+ Layout.stories.ts # Layout examples
336
+ ```
337
+
338
+ ### URLs de Acceso
339
+
340
+ | Entorno | URL | Estado |
341
+ |---------|-----|--------|
342
+ | Vue Storybook | `http://localhost:6006` | ✅ Activo |
343
+ | React Storybook | `http://localhost:6007` | ✅ Activo |
344
+
345
+ ### Tips de Uso
346
+
347
+ 1. **Hot Reload:** Usa `storybook:vue:dev` para desarrollo
348
+ 2. **Build limpio:** Ejecuta `build-storybook` antes de deploy
349
+ 3. **Accesibilidad:** Revisa el panel de a11y en cada story
350
+ 4. **Controls:** Usa el panel derecho para probar variantes
351
+ 5. **Docs:** Cambia a la pestaña "Docs" para ver documentación
352
+
353
+ ---
354
+
355
+ ## Uso en React
356
+
357
+ ```tsx
358
+ import { KmButton, KmInput } from "@komarcalabs/design-system/react";
359
+ import "@komarcalabs/design-system/styles.css";
360
+
361
+ export function Example() {
362
+ return (
363
+ <>
364
+ <KmInput label="Correo" placeholder="usuario@empresa.com" />
365
+ <KmButton variant="primary">Guardar</KmButton>
366
+ </>
367
+ );
368
+ }
369
+ ```
370
+
371
+ ---
372
+
373
+ ## Estructura
374
+
375
+ ```txt
376
+ src/
377
+ tokens/ Escalas de diseño en TypeScript
378
+ styles/ Variables CSS, theme Tailwind y base global
379
+ variants/ Variants tipadas con tailwind-variants
380
+ vue/ Componentes y plugin Vue
381
+ react/ Componentes React equivalentes
382
+ utils/ Utilidades compartidas
383
+ ```
384
+
385
+ ---
386
+
387
+ ## Tailwind CSS v4
388
+
389
+ El paquete usa **Tailwind CSS v4** con el plugin oficial de Vite:
390
+
391
+ ```ts
392
+ import tailwindcss from "@tailwindcss/vite";
393
+
394
+ export default defineConfig({
395
+ plugins: [tailwindcss()],
396
+ });
397
+ ```
398
+
399
+ La configuración visual vive en CSS con `@theme`, siguiendo el enfoque **CSS-first** de Tailwind v4. Las variants de componentes viven en `src/variants` con `tailwind-variants`.
400
+
401
+ ---
402
+
403
+ ## Principios
404
+
405
+ - **Tokens primero:** color, espacio, radio, sombra y tipografía salen de una fuente común.
406
+ - **Tailwind compartido:** Vue y React usan las mismas variants tipadas.
407
+ - **Accesibilidad por defecto:** labels, focus visible, estados disabled e invalid.
408
+ - **API pequeña y estable:** componentes simples antes de abstracciones grandes.
409
+ - **Identidad Komarca:** técnica, premium, estructurada, tecnológica.
@@ -0,0 +1,83 @@
1
+ import { tv as e } from "tailwind-variants";
2
+ const r = e({
3
+ base: [
4
+ "relative rounded-full bg-km-muted text-km-muted-foreground flex justify-center items-center border border-km-border font-semibold overflow-hidden shrink-0"
5
+ ],
6
+ variants: {
7
+ size: {
8
+ xs: "h-4 w-4 text-[8px]",
9
+ sm: "h-5 w-5 text-xs",
10
+ md: "h-8 w-8 text-sm",
11
+ lg: "h-10 w-10 text-base"
12
+ },
13
+ hasImage: {
14
+ true: "p-0",
15
+ false: ""
16
+ }
17
+ },
18
+ compoundVariants: [
19
+ {
20
+ hasImage: !1,
21
+ size: "xs",
22
+ class: "p-0.5"
23
+ },
24
+ {
25
+ hasImage: !1,
26
+ size: "sm",
27
+ class: "p-1"
28
+ },
29
+ {
30
+ hasImage: !1,
31
+ size: "md",
32
+ class: "p-1.5"
33
+ },
34
+ {
35
+ hasImage: !1,
36
+ size: "lg",
37
+ class: "p-2"
38
+ }
39
+ ],
40
+ defaultVariants: {
41
+ size: "sm",
42
+ hasImage: !1
43
+ }
44
+ }), a = e({
45
+ base: "animate-spin shrink-0",
46
+ variants: {
47
+ size: {
48
+ xs: "h-3 w-3",
49
+ sm: "h-4 w-4",
50
+ md: "h-6 w-6",
51
+ lg: "h-8 w-8"
52
+ },
53
+ color: {
54
+ current: "text-current",
55
+ primary: "text-km-primary",
56
+ muted: "text-km-muted-foreground"
57
+ }
58
+ },
59
+ defaultVariants: {
60
+ size: "sm",
61
+ color: "current"
62
+ }
63
+ }), t = e({
64
+ slots: {
65
+ root: "relative group/carousel w-full",
66
+ button: [
67
+ "absolute top-1/2 -translate-y-1/2 z-10 w-9 h-9 rounded-full",
68
+ "bg-km-surface shadow-km-sm border border-km-border",
69
+ "flex items-center justify-center text-km-muted-foreground",
70
+ "hover:text-km-primary hover:border-km-primary hover:shadow-km-md",
71
+ "transition-all active:scale-90 cursor-pointer"
72
+ ],
73
+ wrapper: [
74
+ "flex gap-4 overflow-x-auto pb-4 pt-1 px-1",
75
+ "scroll-smooth snap-x snap-mandatory scrollbar-none"
76
+ ]
77
+ }
78
+ });
79
+ export {
80
+ r as a,
81
+ t as c,
82
+ a as s
83
+ };
@@ -0,0 +1,4 @@
1
+ export * from './tokens/index';
2
+ export * from './variants';
3
+ export * from './vue/index';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,51 @@
1
+ /* empty css */
2
+ import { _ as e, a as r, b as i, c as o, d as m, K as n, e as p, f as K, g, h as l, i as c, j as V, k as d, l as h, m as f, n as S, o as u, p as x } from "./plugin-DfFKi2ZR.js";
3
+ import { a as D, b as T, c as y, d as w, f as C, i as k, s as B, e as v, g as A, t as j, h as F } from "./toggleSwitch-CpBXc_jq.js";
4
+ import { a as I, c as R, g as _, h as q, r as z, b as E, d as G, s as J, e as L, f as M, t as N, i as O } from "./theme-CI9qhP-e.js";
5
+ import { a as Q, c as U, s as W } from "./carousel-D_f-K2v2.js";
6
+ export {
7
+ e as KmAlert,
8
+ r as KmAvatar,
9
+ i as KmBadge,
10
+ o as KmButton,
11
+ m as KmCard,
12
+ n as KmCarousel,
13
+ p as KmDialog,
14
+ K as KmDialogBody,
15
+ g as KmDialogFooter,
16
+ l as KmDialogHeader,
17
+ c as KmInput,
18
+ V as KmSelect,
19
+ d as KmSpinner,
20
+ h as KmStack,
21
+ f as KmStepper,
22
+ S as KmTextarea,
23
+ u as KmToggleSwitch,
24
+ x as KomarcaVueDesignSystem,
25
+ D as alertVariants,
26
+ I as applyTheme,
27
+ Q as avatarVariants,
28
+ T as badgeVariants,
29
+ y as buttonVariants,
30
+ w as cardVariants,
31
+ U as carouselVariants,
32
+ R as colors,
33
+ C as fieldVariants,
34
+ _ as getThemeVar,
35
+ q as hexToRgba,
36
+ k as inputVariants,
37
+ z as radii,
38
+ E as rawSemanticColors,
39
+ G as resetTheme,
40
+ B as selectVariants,
41
+ J as semanticColors,
42
+ L as shadows,
43
+ M as spacing,
44
+ W as spinnerVariants,
45
+ v as stackVariants,
46
+ A as stepperVariants,
47
+ j as textareaVariants,
48
+ N as themeDefinitions,
49
+ F as toggleSwitchVariants,
50
+ O as typography
51
+ };