@iaclinical/components 1.0.0 → 1.0.1

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 ADDED
@@ -0,0 +1,389 @@
1
+ # @iaclinical/components
2
+
3
+ Librería de componentes Vue 3 del IAclinical Design System, construida con Tailwind CSS.
4
+
5
+ ## 📦 Instalación
6
+
7
+ ### Usando pnpm (Recomendado)
8
+
9
+ ```bash
10
+ pnpm add @iaclinical/components @iaclinical/tailwind-preset
11
+ ```
12
+
13
+ ### Usando npm
14
+
15
+ ```bash
16
+ npm install @iaclinical/components @iaclinical/tailwind-preset
17
+ ```
18
+
19
+ ### Usando yarn
20
+
21
+ ```bash
22
+ yarn add @iaclinical/components @iaclinical/tailwind-preset
23
+ ```
24
+
25
+ ## ⚙️ Configuración
26
+
27
+ ### 1. Configurar Tailwind CSS
28
+
29
+ Crea o actualiza tu `tailwind.config.js`:
30
+
31
+ ```javascript
32
+ import iaclinicalPreset from "@iaclinical/tailwind-preset";
33
+
34
+ /** @type {import('tailwindcss').Config} */
35
+ export default {
36
+ presets: [iaclinicalPreset],
37
+ content: [
38
+ "./index.html",
39
+ "./src/**/*.{vue,js,ts,jsx,tsx}",
40
+ "./node_modules/@iaclinical/components/**/*.{js,ts,vue}",
41
+ ],
42
+ theme: {
43
+ extend: {},
44
+ },
45
+ plugins: [],
46
+ };
47
+ ```
48
+
49
+ ### 2. Importar estilos
50
+
51
+ En tu archivo principal (ej. `main.ts` o `main.js`):
52
+
53
+ ```typescript
54
+ import { createApp } from "vue";
55
+ import App from "./App.vue";
56
+
57
+ // Importar estilos de la librería
58
+ import "@iaclinical/components/style.css";
59
+
60
+ createApp(App).mount("#app");
61
+ ```
62
+
63
+ ## 🚀 Uso Básico
64
+
65
+ ### Importación de Componentes
66
+
67
+ ```vue
68
+ <script setup lang="ts">
69
+ import { Button, Card, Dialog, AppBar } from "@iaclinical/components";
70
+ import { ref } from "vue";
71
+
72
+ const isDialogOpen = ref(false);
73
+ </script>
74
+
75
+ <template>
76
+ <div>
77
+ <!-- Button -->
78
+ <Button variant="primary" size="md"> Click me </Button>
79
+
80
+ <!-- Card -->
81
+ <Card title="Card Title" subtitle="Card subtitle">
82
+ <p>Card content goes here</p>
83
+ </Card>
84
+
85
+ <!-- Dialog -->
86
+ <Button @click="isDialogOpen = true"> Open Dialog </Button>
87
+ <Dialog
88
+ v-model:open="isDialogOpen"
89
+ title="Dialog Title"
90
+ description="Dialog description"
91
+ >
92
+ <p>Dialog content</p>
93
+ </Dialog>
94
+ </div>
95
+ </template>
96
+ ```
97
+
98
+ ## 📚 Componentes Disponibles
99
+
100
+ ### Button
101
+
102
+ Botón versátil con múltiples variantes y tamaños.
103
+
104
+ ```vue
105
+ <template>
106
+ <!-- Variantes -->
107
+ <Button variant="primary">Primary</Button>
108
+ <Button variant="secondary">Secondary</Button>
109
+ <Button variant="outline">Outline</Button>
110
+ <Button variant="ghost">Ghost</Button>
111
+ <Button variant="danger">Danger</Button>
112
+
113
+ <!-- Tamaños -->
114
+ <Button size="sm">Small</Button>
115
+ <Button size="md">Medium</Button>
116
+ <Button size="lg">Large</Button>
117
+
118
+ <!-- Con badge (para variant="icon") -->
119
+ <Button variant="icon" :badge="5" aria-label="Notifications">
120
+ <BellIcon class="w-5 h-5" />
121
+ </Button>
122
+
123
+ <!-- Deshabilitado -->
124
+ <Button disabled>Disabled</Button>
125
+ </template>
126
+ ```
127
+
128
+ **Props:**
129
+
130
+ - `variant`: `'primary' | 'secondary' | 'outline' | 'ghost' | 'danger' | 'icon'`
131
+ - `size`: `'sm' | 'md' | 'lg'`
132
+ - `radius`: `'full' | 'xl' | 'lg' | 'md' | 'sm' | 'none'`
133
+ - `disabled`: `boolean`
134
+ - `badge`: `number` (solo para variant="icon")
135
+ - `ariaLabel`: `string`
136
+
137
+ ### AppBar
138
+
139
+ Barra de navegación flexible con slots personalizables.
140
+
141
+ ```vue
142
+ <template>
143
+ <AppBar variant="default">
144
+ <template #left>
145
+ <Button variant="icon" @click="toggleMenu">
146
+ <MenuIcon class="w-6 h-6" />
147
+ </Button>
148
+ </template>
149
+
150
+ <template #center>
151
+ <h1 class="text-lg font-semibold">My App</h1>
152
+ </template>
153
+
154
+ <template #right>
155
+ <Button variant="icon" :badge="3">
156
+ <BellIcon class="w-5 h-5" />
157
+ </Button>
158
+ <Select v-model="selectedUser" :options="userOptions" />
159
+ </template>
160
+ </AppBar>
161
+ </template>
162
+ ```
163
+
164
+ **Props:**
165
+
166
+ - `variant`: `'default' | 'dark' | 'light'`
167
+
168
+ **Slots:**
169
+
170
+ - `left`: Contenido izquierdo
171
+ - `center`: Contenido central
172
+ - `right`: Contenido derecho
173
+
174
+ **Events:**
175
+
176
+ - `menu-toggle`: Emitido al hacer clic en el área del menú
177
+
178
+ ### Card
179
+
180
+ Contenedor de contenido con título y subtítulo opcionales.
181
+
182
+ ```vue
183
+ <template>
184
+ <Card title="Card Title" subtitle="Optional subtitle" padding="md">
185
+ <p>Your content here</p>
186
+
187
+ <template #actions>
188
+ <Button size="sm">Action</Button>
189
+ </template>
190
+ </Card>
191
+ </template>
192
+ ```
193
+
194
+ **Props:**
195
+
196
+ - `title`: `string`
197
+ - `subtitle`: `string`
198
+ - `padding`: `'none' | 'sm' | 'md' | 'lg'`
199
+
200
+ ### Dialog
201
+
202
+ Modal/diálogo con overlay y animaciones.
203
+
204
+ ```vue
205
+ <script setup>
206
+ import { ref } from "vue";
207
+
208
+ const isOpen = ref(false);
209
+ </script>
210
+
211
+ <template>
212
+ <Dialog
213
+ v-model:open="isOpen"
214
+ title="Confirm Action"
215
+ description="Are you sure you want to proceed?"
216
+ >
217
+ <div class="flex gap-2 justify-end mt-4">
218
+ <Button variant="ghost" @click="isOpen = false"> Cancel </Button>
219
+ <Button variant="primary" @click="handleConfirm"> Confirm </Button>
220
+ </div>
221
+ </Dialog>
222
+ </template>
223
+ ```
224
+
225
+ **Props:**
226
+
227
+ - `open`: `boolean` (v-model)
228
+ - `title`: `string`
229
+ - `description`: `string`
230
+
231
+ ### Select
232
+
233
+ Selector con opciones y acciones personalizables.
234
+
235
+ ```vue
236
+ <script setup>
237
+ import { ref } from "vue";
238
+
239
+ const selected = ref("");
240
+ const options = [
241
+ { label: "Option 1", value: "1" },
242
+ { label: "Option 2", value: "2" },
243
+ ];
244
+ const actions = [{ label: "Logout", action: () => console.log("logout") }];
245
+ </script>
246
+
247
+ <template>
248
+ <Select
249
+ v-model="selected"
250
+ :options="options"
251
+ :actions="actions"
252
+ placeholder="Select an option"
253
+ />
254
+ </template>
255
+ ```
256
+
257
+ **Props:**
258
+
259
+ - `modelValue`: `string | number`
260
+ - `options`: `SelectOption[]`
261
+ - `actions`: `ActionItem[]`
262
+ - `placeholder`: `string`
263
+ - `size`: `'sm' | 'md' | 'lg'`
264
+ - `disabled`: `boolean`
265
+
266
+ ### Table
267
+
268
+ Tabla de datos con soporte para paginación y acciones.
269
+
270
+ ```vue
271
+ <script setup>
272
+ const columns = [
273
+ { key: "name", label: "Name" },
274
+ { key: "email", label: "Email" },
275
+ { key: "role", label: "Role" },
276
+ ];
277
+
278
+ const data = [
279
+ { id: 1, name: "John Doe", email: "john@example.com", role: "Admin" },
280
+ { id: 2, name: "Jane Smith", email: "jane@example.com", role: "User" },
281
+ ];
282
+
283
+ const handleEdit = (row) => console.log("Edit", row);
284
+ const handleDelete = (row) => console.log("Delete", row);
285
+ </script>
286
+
287
+ <template>
288
+ <Table
289
+ :columns="columns"
290
+ :data="data"
291
+ :actions="[
292
+ { label: 'Edit', handler: handleEdit },
293
+ { label: 'Delete', handler: handleDelete },
294
+ ]"
295
+ />
296
+ </template>
297
+ ```
298
+
299
+ ### Otros Componentes
300
+
301
+ - **FileUpload**: Carga de archivos con drag & drop
302
+ - **Loader**: Indicador de carga
303
+ - **Tabs**: Navegación por pestañas
304
+ - **Text**: Texto con estilos predefinidos
305
+
306
+ ## 📖 Documentación Completa
307
+
308
+ Para ver la documentación completa con ejemplos interactivos, visita:
309
+
310
+ ```bash
311
+ # Clonar el repositorio
312
+ git clone https://github.com/iaclinical/design-system.git
313
+
314
+ # Instalar dependencias
315
+ pnpm install
316
+
317
+ # Ejecutar la documentación
318
+ pnpm --filter @iaclinical/docs dev
319
+ ```
320
+
321
+ ## 🎨 Personalización
322
+
323
+ ### Colores del Tema
324
+
325
+ El preset de Tailwind incluye los colores del sistema de diseño:
326
+
327
+ - `primary`: Color principal (azul IAclinical)
328
+ - `ia-primary`: Alias del color principal
329
+ - `secondary`: Color secundario
330
+ - `danger`: Color de error/peligro
331
+ - `success`: Color de éxito
332
+ - `warning`: Color de advertencia
333
+
334
+ ```vue
335
+ <template>
336
+ <!-- Usando clases de Tailwind con colores del preset -->
337
+ <div class="bg-primary-500 text-white p-4">Content with primary color</div>
338
+
339
+ <div class="bg-ia-primary-600 text-white p-4">
340
+ Content with ia-primary color
341
+ </div>
342
+ </template>
343
+ ```
344
+
345
+ ### Fuentes
346
+
347
+ El sistema de diseño incluye Roboto como fuente principal:
348
+
349
+ ```css
350
+ /* Ya incluido en los estilos de la librería */
351
+ font-family: "Roboto", sans-serif;
352
+ ```
353
+
354
+ ## 🔧 TypeScript
355
+
356
+ Todos los componentes incluyen definiciones de tipos completas:
357
+
358
+ ```typescript
359
+ import type {
360
+ ButtonProps,
361
+ CardProps,
362
+ DialogProps,
363
+ SelectOption,
364
+ TableColumn,
365
+ } from "@iaclinical/components";
366
+
367
+ // Uso con tipos
368
+ const buttonProps: ButtonProps = {
369
+ variant: "primary",
370
+ size: "md",
371
+ disabled: false,
372
+ };
373
+ ```
374
+
375
+ ## 📄 Licencia
376
+
377
+ MIT © IAclinical
378
+
379
+ ## 🤝 Contribuir
380
+
381
+ Para contribuir al desarrollo de esta librería, consulta el repositorio principal:
382
+
383
+ [https://github.com/iaclinical/design-system](https://github.com/iaclinical/design-system)
384
+
385
+ ## 📞 Soporte
386
+
387
+ Para reportar bugs o solicitar nuevas características, abre un issue en:
388
+
389
+ [https://github.com/iaclinical/design-system/issues](https://github.com/iaclinical/design-system/issues)
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),D={class:"flex items-center gap-4"},T={key:1,class:"text-lg font-bold text-primary-50 font-poppins"},M={class:"flex-1 flex justify-center"},j={class:"flex items-center gap-3"},L=e.defineComponent({__name:"AppBar",props:{title:{default:""},showMenuButton:{type:Boolean,default:!0},variant:{default:"default"},sticky:{type:Boolean,default:!0},shadow:{type:Boolean,default:!1},height:{default:"md"}},emits:["toggle-menu"],setup(t,{emit:m}){const o=t,c=m,a=e.computed(()=>{const s="flex items-center justify-between px-6 z-50",n={default:"bg-primary-700 text-primary-50",dark:"bg-secondary-900 text-white",light:"bg-white text-secondary-900 border-b border-secondary-200"},r={sm:"h-12",md:"h-14",lg:"h-16"},l=o.sticky?"sticky top-0":"",g=o.shadow?"shadow-md":"";return[s,n[o.variant],r[o.height],l,g].join(" ")});return(s,n)=>(e.openBlock(),e.createElementBlock("header",{class:e.normalizeClass(a.value)},[e.createElementVNode("div",D,[t.showMenuButton?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:n[0]||(n[0]=r=>c("toggle-menu")),class:"p-2 hover:bg-primary-600 rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500","aria-label":"Toggle menu"},[...n[1]||(n[1]=[e.createElementVNode("svg",{class:"w-6 h-6 text-primary-50",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h16"})],-1)])])):e.createCommentVNode("",!0),t.title?(e.openBlock(),e.createElementBlock("div",T,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"left",{},void 0,!0)]),e.createElementVNode("div",M,[e.renderSlot(s.$slots,"center",{},void 0,!0)]),e.createElementVNode("div",j,[e.renderSlot(s.$slots,"right",{},void 0,!0)])],2))}}),B=(t,m)=>{const o=t.__vccOpts||t;for(const[c,a]of m)o[c]=a;return o},F=B(L,[["__scopeId","data-v-8c81fc6d"]]),O=["type","disabled","aria-label"],I={key:0,class:"absolute top-0 right-0 inline-flex items-center justify-center px-1.5 py-0.5 text-xs font-bold leading-none text-white transform translate-x-1/2 -translate-y-1/2 bg-danger-600 rounded-full min-w-[1.25rem]"},A=e.defineComponent({__name:"Button",props:{variant:{default:"primary"},size:{default:"md"},radius:{default:"full"},type:{default:"button"},disabled:{type:Boolean,default:!1},badge:{default:0},ariaLabel:{default:""}},emits:["click"],setup(t,{emit:m}){const o=t,c=m,a=e.computed(()=>o.variant==="icon"),s=e.computed(()=>o.badge>99?"99+":o.badge.toString()),n=e.computed(()=>{const l="inline-flex items-center justify-center font-semibold tracking-wide transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",g={primary:"bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700 focus-visible:ring-primary-700",secondary:"bg-secondary-200 text-secondary-900 hover:bg-secondary-300 focus-visible:ring-secondary-500",outline:"border border-secondary-300 bg-transparent hover:bg-secondary-100 focus-visible:ring-secondary-500",ghost:"hover:bg-secondary-100 focus-visible:ring-secondary-500",danger:"bg-danger-600 text-white hover:bg-danger-700 focus-visible:ring-danger-600",icon:"hover:bg-secondary-100 focus-visible:ring-secondary-500 relative"},p={sm:a.value?"p-1.5":"h-8 px-3 text-sm",md:a.value?"p-2":"h-10 px-4 text-base",lg:a.value?"p-3":"h-12 px-6 text-lg"},b={full:"rounded-full",xl:"rounded-2xl",lg:"rounded-xl",md:"rounded-lg",sm:"rounded-md",none:"rounded-none"};return`${l} ${g[o.variant]} ${p[o.size]} ${b[o.radius]}`}),r=l=>{o.disabled||c("click",l)};return(l,g)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(n.value),type:t.type,disabled:t.disabled,onClick:r,"aria-label":t.ariaLabel},[e.renderSlot(l.$slots,"default"),a.value&&t.badge&&t.badge>0?(e.openBlock(),e.createElementBlock("span",I,e.toDisplayString(s.value),1)):e.createCommentVNode("",!0)],10,O))}}),q={key:0,class:"border-b border-gray-100 px-6 py-4"},H={class:"px-6 py-4"},K={key:1,class:"border-t border-gray-100 px-6 py-4 bg-gray-50"},P=e.defineComponent({__name:"Card",props:{shadow:{default:"md"},rounded:{default:"lg"},bordered:{type:Boolean,default:!1}},setup(t){const m=t,o={none:"",sm:"shadow-sm",md:"shadow",lg:"shadow-lg",xl:"shadow-xl"},c={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl",full:"rounded-full"},a=e.computed(()=>["w-full bg-white",o[m.shadow],c[m.rounded],m.bordered?"border border-gray-200":""]);return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(a.value)},[s.$slots.header?(e.openBlock(),e.createElementBlock("div",q,[e.renderSlot(s.$slots,"header")])):e.createCommentVNode("",!0),e.createElementVNode("div",H,[e.renderSlot(s.$slots,"default")]),s.$slots.footer?(e.openBlock(),e.createElementBlock("div",K,[e.renderSlot(s.$slots,"footer")])):e.createCommentVNode("",!0)],2))}}),W={class:"flex items-center justify-between border-b border-gray-100 px-8 py-6"},U={class:"text-xl font-semibold text-gray-900"},G={class:"px-8 py-6"},Q={key:0,class:"border-t border-gray-100 px-8 py-6 bg-gray-50"},J=e.defineComponent({__name:"Dialog",props:{modelValue:{type:Boolean,default:!1},title:{default:"Diálogo"},closeOnBackdrop:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(t,{emit:m}){const o=t,c=m,a=e.computed({get:()=>o.modelValue,set:r=>c("update:modelValue",r)}),s=()=>{a.value=!1},n=()=>{o.closeOnBackdrop&&s()};return(r,l)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"dialog"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:n},[e.createElementVNode("div",{class:"relative w-full max-w-2xl rounded-lg bg-white shadow-xl",onClick:l[0]||(l[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",W,[e.createElementVNode("h2",U,[e.renderSlot(r.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)],!0)]),e.createElementVNode("button",{type:"button",class:"inline-flex items-center justify-center rounded-md p-1 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500","aria-label":"Cerrar diálogo",onClick:s},[...l[1]||(l[1]=[e.createElementVNode("svg",{class:"h-6 w-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),e.createElementVNode("div",G,[e.renderSlot(r.$slots,"default",{},void 0,!0)]),r.$slots.footer?(e.openBlock(),e.createElementBlock("div",Q,[e.renderSlot(r.$slots,"footer",{},void 0,!0)])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)]),_:3})]))}}),R=B(J,[["__scopeId","data-v-091e8739"]]),X=["accept","multiple","disabled"],Y={class:"flex flex-col items-center justify-center gap-4 text-center"},Z={class:"w-32 h-32 flex items-center justify-center"},ee=["src","alt"],te={key:1,class:"w-full h-full text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},oe={class:"text-center"},le={class:"text-base font-medium text-gray-700"},ne={class:"text-primary-700"},ae={class:"flex items-center gap-3 flex-1 min-w-0"},se={class:"flex-1 min-w-0"},re={class:"text-sm font-medium text-gray-900 truncate"},ie={class:"text-xs text-gray-500"},ce={key:1,class:"text-xs text-gray-500 mt-2"},de={key:2,class:"text-sm text-danger-500 mt-2"},ue=e.defineComponent({__name:"FileUpload",props:{modelValue:{default:null},accept:{default:"*"},multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},illustration:{default:void 0},illustrationAlt:{default:"Subir archivo"},mainText:{default:"Suelta aquí un archivo o"},linkText:{default:"selecciónalo desde tu equipo"},helperText:{default:""},maxSize:{default:void 0}},emits:["update:modelValue","change","error"],setup(t,{emit:m}){const o=t,c=m,a=e.ref(null),s=e.ref(!1),n=e.ref(o.modelValue),r=e.ref(""),l=()=>{var x;(x=a.value)==null||x.click()},g=()=>{o.disabled||l()},p=x=>{o.disabled||(s.value=!0)},b=()=>{s.value=!1},k=x=>{if(r.value="",o.maxSize&&x.size>o.maxSize){const f=(o.maxSize/1048576).toFixed(2);return r.value=`El archivo excede el tamaño máximo de ${f}MB`,c("error",r.value),!1}return!0},w=x=>{var h;const y=(h=x.target.files)==null?void 0:h[0];y&&k(y)&&(n.value=y,c("update:modelValue",y),c("change",y))},C=x=>{var y;s.value=!1;const f=(y=x.dataTransfer)==null?void 0:y.files[0];f&&k(f)&&(n.value=f,c("update:modelValue",f),c("change",f))},E=()=>{n.value=null,r.value="",a.value&&(a.value.value=""),c("update:modelValue",null),c("change",null)},V=x=>{if(x===0)return"0 Bytes";const f=1024,y=["Bytes","KB","MB","GB"],h=Math.floor(Math.log(x)/Math.log(f));return Math.round(x/Math.pow(f,h)*100)/100+" "+y[h]};return(x,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["relative border-2 border-dashed rounded-lg p-8 transition-colors",[s.value?"border-primary-700 bg-primary-50":"border-gray-300 bg-white hover:border-primary-500",t.disabled?"opacity-50 cursor-not-allowed":"cursor-pointer"]]),onClick:g,onDragover:e.withModifiers(p,["prevent"]),onDragleave:e.withModifiers(b,["prevent"]),onDrop:e.withModifiers(C,["prevent"])},[e.createElementVNode("input",{ref_key:"fileInput",ref:a,type:"file",accept:t.accept,multiple:t.multiple,disabled:t.disabled,class:"hidden",onChange:w},null,40,X),e.createElementVNode("div",Y,[e.createElementVNode("div",Z,[t.illustration?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.illustration,alt:t.illustrationAlt,class:"max-w-full max-h-full object-contain"},null,8,ee)):(e.openBlock(),e.createElementBlock("svg",te,[...f[1]||(f[1]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},null,-1)])]))]),e.createElementVNode("div",oe,[e.createElementVNode("p",le,[e.createTextVNode(e.toDisplayString(t.mainText)+" ",1),e.createElementVNode("span",ne,e.toDisplayString(t.linkText),1)])]),n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full max-w-md bg-gray-50 rounded-lg p-4 flex items-center justify-between",onClick:f[0]||(f[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",ae,[f[2]||(f[2]=e.createElementVNode("svg",{class:"w-6 h-6 text-gray-600 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})],-1)),e.createElementVNode("div",se,[e.createElementVNode("p",re,e.toDisplayString(n.value.name),1),e.createElementVNode("p",ie,e.toDisplayString(V(n.value.size)),1)])]),t.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,onClick:e.withModifiers(E,["stop"]),class:"ml-3 text-gray-400 hover:text-danger-500 transition-colors"},[...f[3]||(f[3]=[e.createElementVNode("svg",{class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)])]))])):e.createCommentVNode("",!0),t.helperText?(e.openBlock(),e.createElementBlock("p",ce,e.toDisplayString(t.helperText),1)):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("p",de,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0)])],34))}}),me=["stroke-width"],pe={class:"w-full h-full rounded-lg overflow-hidden",style:{"background-color":"#f7f7f7"}},fe=e.defineComponent({__name:"Loader",props:{type:{default:"circular"},size:{default:"40px"},height:{default:"4px"},color:{default:"primary"},strokeWidth:{default:4},progress:{default:void 0}},setup(t){const m=t,o={primary:"text-primary-700",secondary:"text-secondary-500",success:"text-success-500",warning:"text-warning-500",danger:"text-danger-500",info:"text-info-500"},c={primary:"bg-primary-700",secondary:"bg-secondary-500",success:"bg-success-500",warning:"bg-warning-500",danger:"bg-danger-500",info:"bg-info-500"},a=e.computed(()=>[o[m.color]]),s=e.computed(()=>[c[m.color]]);return(n,r)=>t.type==="circular"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(a.value)},[(e.openBlock(),e.createElementBlock("svg",{class:"animate-spin",style:e.normalizeStyle({width:t.size,height:t.size}),viewBox:"0 0 24 24"},[e.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":t.strokeWidth,fill:"none"},null,8,me),r[0]||(r[0]=e.createElementVNode("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1))],4))],2)):t.type==="linear"?(e.openBlock(),e.createElementBlock("div",{key:1,class:"w-full",style:e.normalizeStyle({height:t.height})},[e.createElementVNode("div",pe,[e.createElementVNode("div",{class:e.normalizeClass([s.value,"h-full rounded-lg animate-linear-loader"]),style:e.normalizeStyle({width:t.progress?`${t.progress}%`:void 0})},null,6)])],4)):e.createCommentVNode("",!0)}}),ge=B(fe,[["__scopeId","data-v-8df4ec38"]]),xe=["for"],ye={key:0,class:"text-danger-600"},he={class:"relative"},be=["id","disabled","aria-expanded"],ke={key:0,class:"flex items-center gap-3 flex-1"},ve={key:0,class:"w-8 h-8 rounded-full overflow-hidden bg-primary-50 flex-shrink-0"},Be=["src","alt"],we={key:1,class:"w-8 h-8 rounded-full bg-primary-700 flex items-center justify-center flex-shrink-0 font-bold text-white text-sm"},Ce={class:"flex flex-col items-start flex-1 min-w-0"},Ee={key:1,class:"flex-1 text-left truncate"},Ve={key:0,class:"p-2 border-b border-secondary-200"},Ne=["placeholder"],$e={class:"max-h-64 overflow-y-auto"},_e={key:0,class:"px-4 py-3 text-sm text-secondary-500 text-center"},Se=["onClick"],ze={key:0,class:"flex items-center gap-3 w-full"},De={key:0,class:"w-10 h-10 rounded-full overflow-hidden bg-primary-50 flex-shrink-0"},Te=["src","alt"],Me={key:1,class:"w-10 h-10 rounded-full bg-primary-700 flex items-center justify-center flex-shrink-0 font-bold text-white"},je={class:"flex flex-col items-start flex-1 min-w-0"},Le={class:"text-sm font-semibold text-secondary-900 truncate w-full"},Fe={key:0,class:"text-xs text-secondary-600 truncate w-full"},Oe={key:1,class:"text-xs text-secondary-500 truncate w-full"},Ie={key:2,class:"w-5 h-5 text-primary-600 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Ae={key:1,class:"flex items-center justify-between w-full"},qe={class:"truncate"},He={key:0,class:"w-5 h-5 text-primary-600 flex-shrink-0 ml-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Ke={key:0,class:"border-t border-secondary-200 my-1"},Pe=["onClick"],We=["innerHTML"],Ue={key:1,class:"mt-1 text-sm text-danger-600"},Ge={key:2,class:"mt-1 text-sm text-secondary-600"},Qe=e.defineComponent({__name:"Select",props:{modelValue:{default:null},options:{default:()=>[]},actionItems:{default:()=>[]},mode:{default:"normal"},label:{default:""},placeholder:{default:"Seleccionar..."},size:{default:"md"},variant:{default:"default"},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},searchPlaceholder:{default:"Buscar..."},emptyText:{default:"No hay opciones disponibles"},error:{default:""},helperText:{default:""},fullWidth:{type:Boolean,default:!1},menuPosition:{default:"bottom"}},emits:["update:modelValue","change","action"],setup(t,{emit:m}){const o=t,c=m,a=e.ref(!1),s=e.ref(""),n=e.ref(null),r=e.computed(()=>`select-${Math.random().toString(36).substr(2,9)}`),l=e.computed(()=>o.options.find(i=>i.value===o.modelValue)||null),g=e.computed(()=>{if(!o.searchable||!s.value)return o.options;const i=s.value.toLowerCase();return o.options.filter(u=>{var d,v;return u.label.toLowerCase().includes(i)||((d=u.subtitle)==null?void 0:d.toLowerCase().includes(i))||((v=u.description)==null?void 0:v.toLowerCase().includes(i))})}),p=e.computed(()=>"block text-sm font-semibold text-secondary-700 mb-1"),b=e.computed(()=>{const i="w-full flex items-center justify-between gap-2 border rounded-md transition-colors focus:outline-none focus:ring-2 focus:ring-primary-500 disabled:opacity-50 disabled:cursor-not-allowed",u={sm:"px-3 py-1.5 text-sm",md:"px-4 py-2 text-base",lg:"px-5 py-3 text-lg"},d={default:"bg-white border-secondary-300 hover:border-secondary-400",outline:"bg-transparent border-secondary-300 hover:border-primary-500",filled:"bg-secondary-100 border-transparent hover:bg-secondary-200"},v=o.mode==="menu"?"bg-primary-700 border-primary-700 hover:bg-primary-600":"",z=o.error?"border-danger-600 focus:ring-danger-500":"";return[i,u[o.size],v||d[o.variant],z].join(" ")}),k=e.computed(()=>o.mode==="menu"?"text-white":"text-secondary-900"),w=e.computed(()=>o.mode==="menu"?"text-primary-100":"text-secondary-600"),C=e.computed(()=>o.mode==="menu"?"text-white":"text-secondary-600"),E=e.computed(()=>`absolute ${o.menuPosition==="top"?"bottom-full mb-1":"top-full mt-1"} left-0 right-0 bg-white rounded-lg shadow-lg border border-secondary-200 z-50 overflow-hidden`),V=i=>{const u="w-full px-4 py-2 text-left hover:bg-primary-50 transition-colors focus:outline-none focus:bg-primary-50 disabled:opacity-50 disabled:cursor-not-allowed",d=f(i)?"bg-primary-50":"";return[u,d].join(" ")},x=i=>{const u="w-full px-4 py-2 text-left text-sm font-semibold transition-colors focus:outline-none flex items-center gap-3";return i.variant==="danger"?`${u} text-danger-600 hover:bg-danger-50 focus:bg-danger-50`:`${u} text-secondary-700 hover:bg-secondary-50 focus:bg-secondary-50`},f=i=>i.value===o.modelValue,y=()=>{o.disabled||(a.value=!a.value,a.value&&o.searchable&&e.nextTick(()=>{var i;(i=n.value)==null||i.focus()}))},h=()=>{a.value=!1,s.value=""},N=i=>{i.disabled||(c("update:modelValue",i.value),c("change",i),h())},$=i=>{i.action&&i.action(),c("action",i),h()},_=i=>{const u=i.relatedTarget;u&&u.closest(".select-wrapper")||setTimeout(()=>{h()},200)},S=i=>{i.key==="Escape"?h():(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),y())};return e.watch(a,i=>{i&&(s.value="")}),(i,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["select-wrapper",{"w-full":t.fullWidth}])},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:r.value,class:e.normalizeClass(p.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",ye,"*")):e.createCommentVNode("",!0)],10,xe)):e.createCommentVNode("",!0),e.createElementVNode("div",he,[e.createElementVNode("button",{id:r.value,type:"button",class:e.normalizeClass(b.value),disabled:t.disabled,"aria-expanded":a.value,"aria-haspopup":!0,onClick:y,onBlur:_,onKeydown:S},[t.mode==="menu"&&l.value?(e.openBlock(),e.createElementBlock("div",ke,[l.value.avatar?(e.openBlock(),e.createElementBlock("div",ve,[e.createElementVNode("img",{src:l.value.avatar,alt:l.value.label,class:"w-full h-full object-cover"},null,8,Be)])):l.value.initials?(e.openBlock(),e.createElementBlock("div",we,e.toDisplayString(l.value.initials),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Ce,[e.createElementVNode("span",{class:e.normalizeClass(["text-sm font-semibold truncate w-full",k.value])},e.toDisplayString(l.value.label),3),l.value.subtitle?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["text-xs truncate w-full",w.value])},e.toDisplayString(l.value.subtitle),3)):e.createCommentVNode("",!0)])])):(e.openBlock(),e.createElementBlock("span",Ee,e.toDisplayString(l.value?l.value.label:t.placeholder),1)),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-5 h-5 flex-shrink-0 transition-transform",[a.value?"rotate-180":"",C.value]]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[...u[3]||(u[3]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))],42,be),a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(E.value),onClick:u[2]||(u[2]=e.withModifiers(()=>{},["stop"]))},[t.searchable?(e.openBlock(),e.createElementBlock("div",Ve,[e.withDirectives(e.createElementVNode("input",{ref_key:"searchInput",ref:n,"onUpdate:modelValue":u[0]||(u[0]=d=>s.value=d),type:"text",class:"w-full px-3 py-2 text-sm border border-secondary-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary-500",placeholder:t.searchPlaceholder,onKeydown:u[1]||(u[1]=e.withModifiers(()=>{},["stop"]))},null,40,Ne),[[e.vModelText,s.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",$e,[g.value.length===0?(e.openBlock(),e.createElementBlock("div",_e,e.toDisplayString(t.emptyText),1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d.value,type:"button",class:e.normalizeClass(V(d)),onClick:v=>N(d)},[t.mode==="menu"?(e.openBlock(),e.createElementBlock("div",ze,[d.avatar?(e.openBlock(),e.createElementBlock("div",De,[e.createElementVNode("img",{src:d.avatar,alt:d.label,class:"w-full h-full object-cover"},null,8,Te)])):d.initials?(e.openBlock(),e.createElementBlock("div",Me,e.toDisplayString(d.initials),1)):e.createCommentVNode("",!0),e.createElementVNode("div",je,[e.createElementVNode("span",Le,e.toDisplayString(d.label),1),d.subtitle?(e.openBlock(),e.createElementBlock("span",Fe,e.toDisplayString(d.subtitle),1)):e.createCommentVNode("",!0),d.description?(e.openBlock(),e.createElementBlock("span",Oe,e.toDisplayString(d.description),1)):e.createCommentVNode("",!0)]),f(d)?(e.openBlock(),e.createElementBlock("svg",Ie,[...u[4]||(u[4]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Ae,[e.createElementVNode("span",qe,e.toDisplayString(d.label),1),f(d)?(e.openBlock(),e.createElementBlock("svg",He,[...u[5]||(u[5]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):e.createCommentVNode("",!0)]))],10,Se))),128)),t.actionItems.length>0?(e.openBlock(),e.createElementBlock("div",Ke)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actionItems,d=>(e.openBlock(),e.createElementBlock("button",{key:d.id,type:"button",class:e.normalizeClass(x(d)),onClick:v=>$(d)},[d.icon?(e.openBlock(),e.createElementBlock("svg",{key:0,class:"w-4 h-4 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",innerHTML:d.icon},null,8,We)):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(d.label),1)],10,Pe))),128))],64))])],2)):e.createCommentVNode("",!0)]),t.error?(e.openBlock(),e.createElementBlock("p",Ue,e.toDisplayString(t.error),1)):t.helperText?(e.openBlock(),e.createElementBlock("p",Ge,e.toDisplayString(t.helperText),1)):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createElementBlock("div",{key:3,onClick:h,class:"fixed inset-0 z-40"})):e.createCommentVNode("",!0)],2))}}),Je=B(Qe,[["__scopeId","data-v-5644cc74"]]),Re={class:"w-full overflow-x-auto"},Xe={class:"w-full border-collapse"},Ye={class:"w-full"},Ze={class:"bg-white border-b border-gray-100 w-full"},et=["onClick"],tt={class:"flex items-center gap-2"},ot={key:0,class:"text-xs text-gray-400"},lt={key:0},nt={key:1},at={class:"w-full"},st={key:0,class:"flex items-center justify-center py-12 text-gray-400"},rt={key:1,class:"w-full px-6 py-4 bg-white"},it=e.defineComponent({__name:"Table",props:{columns:{},data:{}},setup(t){const m=t,o=e.ref(null),c=e.ref("asc"),a=n=>{o.value===n?c.value=c.value==="asc"?"desc":"asc":(o.value=n,c.value="asc")},s=e.computed(()=>{if(!o.value)return m.data;const n=[...m.data];return n.sort((r,l)=>{const g=r[o.value],p=l[o.value];return typeof g=="string"&&typeof p=="string"?c.value==="asc"?g.localeCompare(p):p.localeCompare(g):typeof g=="number"&&typeof p=="number"?c.value==="asc"?g-p:p-g:0}),n});return(n,r)=>(e.openBlock(),e.createElementBlock("div",Re,[e.createElementVNode("table",Xe,[e.createElementVNode("thead",Ye,[e.createElementVNode("tr",Ze,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,l=>(e.openBlock(),e.createElementBlock("th",{key:l.key,style:e.normalizeStyle(l.width?{width:l.width}:{}),class:e.normalizeClass(["px-8 py-4 text-left text-base font-semibold text-gray-900 border-0",l.sortable?"cursor-pointer hover:text-primary-700 select-none transition-colors":""]),onClick:g=>l.sortable&&a(l.key)},[e.createElementVNode("div",tt,[e.createElementVNode("span",null,e.toDisplayString(l.label),1),l.sortable?(e.openBlock(),e.createElementBlock("span",ot,[o.value!==l.key?(e.openBlock(),e.createElementBlock("span",lt,"⇅")):(e.openBlock(),e.createElementBlock("span",nt,e.toDisplayString(c.value==="asc"?"↑":"↓"),1))])):e.createCommentVNode("",!0)])],14,et))),128))])]),e.createElementVNode("tbody",at,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(l,g)=>(e.openBlock(),e.createElementBlock("tr",{key:g,class:"w-full hover:bg-gray-50 transition-colors"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,p=>(e.openBlock(),e.createElementBlock("td",{key:`${g}-${p.key}`,class:"px-8 py-4 text-base text-gray-700 border-0"},[e.renderSlot(n.$slots,`cell-${p.key}`,{value:l[p.key],row:l},()=>[e.createTextVNode(e.toDisplayString(l[p.key]),1)],!0)]))),128))]))),128))])]),s.value.length===0?(e.openBlock(),e.createElementBlock("div",st,[e.renderSlot(n.$slots,"empty",{},()=>[r[0]||(r[0]=e.createTextVNode("No hay datos disponibles",-1))],!0)])):e.createCommentVNode("",!0),n.$slots.footer?(e.openBlock(),e.createElementBlock("div",rt,[e.renderSlot(n.$slots,"footer",{},void 0,!0)])):e.createCommentVNode("",!0)]))}}),ct=B(it,[["__scopeId","data-v-6b3ff0a8"]]),dt={class:"w-full"},ut={class:"flex border-b border-gray-100",role:"tablist"},mt=["aria-selected","onClick"],pt={role:"tabpanel"},ft="relative px-6 py-3 text-base font-semibold tracking-wide transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary-500",gt="text-primary-700 border-b-4 border-primary-700",xt="text-gray-600 border-b-4 border-transparent hover:text-gray-800",yt=e.defineComponent({__name:"Tabs",props:{modelValue:{},tabs:{}},emits:["update:modelValue"],setup(t,{emit:m}){const o=t,c=m,a=l=>o.modelValue===l,s=l=>{a(l)||c("update:modelValue",l)},n=e.computed(()=>o.modelValue),r=e.computed(()=>o.tabs.find(l=>l.value===n.value));return(l,g)=>(e.openBlock(),e.createElementBlock("div",dt,[e.createElementVNode("div",ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabs,p=>(e.openBlock(),e.createElementBlock("button",{key:p.value,type:"button",class:e.normalizeClass([ft,a(p.value)?gt:xt]),"aria-selected":a(p.value),role:"tab",onClick:b=>s(p.value)},e.toDisplayString(p.label),11,mt))),128))]),e.createElementVNode("div",pt,[e.renderSlot(l.$slots,n.value,{active:n.value,tab:r.value})])]))}}),ht="font-sans",bt=e.defineComponent({__name:"Text",props:{variant:{default:"body1"},as:{},color:{default:"default"},align:{default:"left"},uppercase:{type:Boolean,default:!1},truncate:{type:Boolean,default:!1},weight:{}},setup(t){const m={h1:"text-[40px] leading-[57px] tracking-[0px] font-extrabold",h2:"text-[40px] leading-[57px] tracking-[0px] font-bold",h3:"text-[28px] leading-[39px] tracking-[0px] font-extrabold",h4:"text-[21px] leading-[29px] tracking-[0px] font-extrabold",h5:"text-[16px] leading-[22px] tracking-[0px] font-extrabold",h6:"text-[13px] leading-[18px] tracking-[0px] font-extrabold",subtitle1:"text-[16px] leading-[24px] tracking-[0.15px] font-medium",subtitle2:"text-[14px] leading-[21px] tracking-[0.1px] font-medium",subtitle3:"text-[12px] leading-[18px] tracking-[0.1px] font-medium",subtitle4:"text-[10px] leading-[15px] tracking-[0.1px] font-medium",body1:"text-[16px] leading-[24px] tracking-[0.5px] font-light",body2:"text-[14px] leading-[21px] tracking-[0.25px] font-light",body3:"text-[12px] leading-[18px] tracking-[0.25px] font-light",body4:"text-[10px] leading-[15px] tracking-[0.25px] font-light",button1:"text-[14px] leading-[24px] tracking-[1.25px] font-bold",button2:"text-[14px] leading-[20px] tracking-[1.25px] font-bold",button3:"text-[12px] leading-[18px] tracking-[1.25px] font-bold",caption:"text-[12px] leading-[18px] tracking-[0.4px] font-normal",overline:"text-[10px] leading-[15px] tracking-[1.5px] font-medium"},o={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"p",subtitle2:"p",subtitle3:"p",subtitle4:"p",body1:"p",body2:"p",body3:"p",body4:"p",button1:"span",button2:"span",button3:"span",caption:"span",overline:"span"},c={left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"},a={default:"text-secondary-900",muted:"text-secondary-600",primary:"text-primary-600",secondary:"text-secondary-700",danger:"text-danger-600",success:"text-success-600",warning:"text-warning-600"},s={light:"font-light",normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold",extrabold:"font-extrabold"},n=t,r=e.computed(()=>n.variant),l=e.computed(()=>n.color),g=e.computed(()=>n.align),p=e.computed(()=>n.as||o[r.value]||"span"),b=e.computed(()=>n.weight?s[n.weight]:"");return(k,w)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),{class:e.normalizeClass([ht,m[r.value],a[l.value],c[g.value],b.value,{uppercase:t.uppercase||r.value==="overline",truncate:t.truncate}])},{default:e.withCtx(()=>[e.renderSlot(k.$slots,"default")]),_:3},8,["class"]))}});exports.AppBar=F;exports.Button=A;exports.Card=P;exports.Dialog=R;exports.FileUpload=ue;exports.Loader=ge;exports.Select=Je;exports.Table=ct;exports.Tabs=yt;exports.Text=bt;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),D={class:"flex items-center gap-4"},T={key:1,class:"text-lg font-bold text-primary-50 font-poppins"},M={class:"flex-1 flex justify-center"},j={class:"flex items-center gap-3"},L=e.defineComponent({__name:"AppBar",props:{title:{default:""},showMenuButton:{type:Boolean,default:!0},variant:{default:"default"},sticky:{type:Boolean,default:!0},shadow:{type:Boolean,default:!1},height:{default:"md"}},emits:["toggle-menu"],setup(t,{emit:m}){const o=t,c=m,a=e.computed(()=>{const s="flex items-center justify-between px-6 z-50",n={default:"bg-primary-700 text-primary-50",dark:"bg-secondary-900 text-white",light:"bg-white text-secondary-900 border-b border-secondary-200"},r={sm:"h-12",md:"h-14",lg:"h-16"},l=o.sticky?"sticky top-0":"",g=o.shadow?"shadow-md":"";return[s,n[o.variant],r[o.height],l,g].join(" ")});return(s,n)=>(e.openBlock(),e.createElementBlock("header",{class:e.normalizeClass(a.value)},[e.createElementVNode("div",D,[t.showMenuButton?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:n[0]||(n[0]=r=>c("toggle-menu")),class:"p-2 hover:bg-primary-600 rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500","aria-label":"Toggle menu"},[...n[1]||(n[1]=[e.createElementVNode("svg",{class:"w-6 h-6 text-primary-50",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h16"})],-1)])])):e.createCommentVNode("",!0),t.title?(e.openBlock(),e.createElementBlock("div",T,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"left",{},void 0,!0)]),e.createElementVNode("div",M,[e.renderSlot(s.$slots,"center",{},void 0,!0)]),e.createElementVNode("div",j,[e.renderSlot(s.$slots,"right",{},void 0,!0)])],2))}}),B=(t,m)=>{const o=t.__vccOpts||t;for(const[c,a]of m)o[c]=a;return o},F=B(L,[["__scopeId","data-v-0699e70b"]]),O=["type","disabled","aria-label"],I={key:0,class:"absolute top-0 right-0 inline-flex items-center justify-center px-1.5 py-0.5 text-xs font-bold leading-none text-white transform translate-x-1/2 -translate-y-1/2 bg-danger-600 rounded-full min-w-[1.25rem]"},A=e.defineComponent({__name:"Button",props:{variant:{default:"primary"},size:{default:"md"},radius:{default:"full"},type:{default:"button"},disabled:{type:Boolean,default:!1},badge:{default:0},ariaLabel:{default:""}},emits:["click"],setup(t,{emit:m}){const o=t,c=m,a=e.computed(()=>o.variant==="icon"),s=e.computed(()=>o.badge>99?"99+":o.badge.toString()),n=e.computed(()=>{const l="inline-flex items-center justify-center font-semibold tracking-wide transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",g={primary:"bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700 focus-visible:ring-primary-700",secondary:"bg-secondary-200 text-secondary-900 hover:bg-secondary-300 focus-visible:ring-secondary-500",outline:"border border-secondary-300 bg-transparent hover:bg-secondary-100 focus-visible:ring-secondary-500",ghost:"hover:bg-secondary-100 focus-visible:ring-secondary-500",danger:"bg-danger-600 text-white hover:bg-danger-700 focus-visible:ring-danger-600",icon:"hover:bg-secondary-100 focus-visible:ring-secondary-500 relative"},p={sm:a.value?"p-1.5":"h-8 px-3 text-sm",md:a.value?"p-2":"h-10 px-4 text-base",lg:a.value?"p-3":"h-12 px-6 text-lg"},b={full:"rounded-full",xl:"rounded-2xl",lg:"rounded-xl",md:"rounded-lg",sm:"rounded-md",none:"rounded-none"};return`${l} ${g[o.variant]} ${p[o.size]} ${b[o.radius]}`}),r=l=>{o.disabled||c("click",l)};return(l,g)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(n.value),type:t.type,disabled:t.disabled,onClick:r,"aria-label":t.ariaLabel},[e.renderSlot(l.$slots,"default"),a.value&&t.badge&&t.badge>0?(e.openBlock(),e.createElementBlock("span",I,e.toDisplayString(s.value),1)):e.createCommentVNode("",!0)],10,O))}}),q={key:0,class:"border-b border-gray-100 px-6 py-4"},H={class:"px-6 py-4"},K={key:1,class:"border-t border-gray-100 px-6 py-4 bg-gray-50"},P=e.defineComponent({__name:"Card",props:{shadow:{default:"md"},rounded:{default:"lg"},bordered:{type:Boolean,default:!1}},setup(t){const m=t,o={none:"",sm:"shadow-sm",md:"shadow",lg:"shadow-lg",xl:"shadow-xl"},c={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl",full:"rounded-full"},a=e.computed(()=>["w-full bg-white",o[m.shadow],c[m.rounded],m.bordered?"border border-gray-200":""]);return(s,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(a.value)},[s.$slots.header?(e.openBlock(),e.createElementBlock("div",q,[e.renderSlot(s.$slots,"header")])):e.createCommentVNode("",!0),e.createElementVNode("div",H,[e.renderSlot(s.$slots,"default")]),s.$slots.footer?(e.openBlock(),e.createElementBlock("div",K,[e.renderSlot(s.$slots,"footer")])):e.createCommentVNode("",!0)],2))}}),W={class:"flex items-center justify-between border-b border-gray-100 px-8 py-6"},U={class:"text-xl font-semibold text-gray-900"},G={class:"px-8 py-6"},Q={key:0,class:"border-t border-gray-100 px-8 py-6 bg-gray-50"},J=e.defineComponent({__name:"Dialog",props:{modelValue:{type:Boolean,default:!1},title:{default:"Diálogo"},closeOnBackdrop:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(t,{emit:m}){const o=t,c=m,a=e.computed({get:()=>o.modelValue,set:r=>c("update:modelValue",r)}),s=()=>{a.value=!1},n=()=>{o.closeOnBackdrop&&s()};return(r,l)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"dialog"},{default:e.withCtx(()=>[a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:n},[e.createElementVNode("div",{class:"relative w-full max-w-2xl rounded-lg bg-white shadow-xl",onClick:l[0]||(l[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",W,[e.createElementVNode("h2",U,[e.renderSlot(r.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)],!0)]),e.createElementVNode("button",{type:"button",class:"inline-flex items-center justify-center rounded-md p-1 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500","aria-label":"Cerrar diálogo",onClick:s},[...l[1]||(l[1]=[e.createElementVNode("svg",{class:"h-6 w-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),e.createElementVNode("div",G,[e.renderSlot(r.$slots,"default",{},void 0,!0)]),r.$slots.footer?(e.openBlock(),e.createElementBlock("div",Q,[e.renderSlot(r.$slots,"footer",{},void 0,!0)])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)]),_:3})]))}}),R=B(J,[["__scopeId","data-v-688a0d21"]]),X=["accept","multiple","disabled"],Y={class:"flex flex-col items-center justify-center gap-4 text-center"},Z={class:"w-32 h-32 flex items-center justify-center"},ee=["src","alt"],te={key:1,class:"w-full h-full text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},oe={class:"text-center"},le={class:"text-base font-medium text-gray-700"},ne={class:"text-primary-700"},ae={class:"flex items-center gap-3 flex-1 min-w-0"},se={class:"flex-1 min-w-0"},re={class:"text-sm font-medium text-gray-900 truncate"},ie={class:"text-xs text-gray-500"},ce={key:1,class:"text-xs text-gray-500 mt-2"},de={key:2,class:"text-sm text-danger-500 mt-2"},ue=e.defineComponent({__name:"FileUpload",props:{modelValue:{default:null},accept:{default:"*"},multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},illustration:{default:void 0},illustrationAlt:{default:"Subir archivo"},mainText:{default:"Suelta aquí un archivo o"},linkText:{default:"selecciónalo desde tu equipo"},helperText:{default:""},maxSize:{default:void 0}},emits:["update:modelValue","change","error"],setup(t,{emit:m}){const o=t,c=m,a=e.ref(null),s=e.ref(!1),n=e.ref(o.modelValue),r=e.ref(""),l=()=>{var x;(x=a.value)==null||x.click()},g=()=>{o.disabled||l()},p=x=>{o.disabled||(s.value=!0)},b=()=>{s.value=!1},k=x=>{if(r.value="",o.maxSize&&x.size>o.maxSize){const f=(o.maxSize/1048576).toFixed(2);return r.value=`El archivo excede el tamaño máximo de ${f}MB`,c("error",r.value),!1}return!0},w=x=>{var h;const y=(h=x.target.files)==null?void 0:h[0];y&&k(y)&&(n.value=y,c("update:modelValue",y),c("change",y))},C=x=>{var y;s.value=!1;const f=(y=x.dataTransfer)==null?void 0:y.files[0];f&&k(f)&&(n.value=f,c("update:modelValue",f),c("change",f))},E=()=>{n.value=null,r.value="",a.value&&(a.value.value=""),c("update:modelValue",null),c("change",null)},V=x=>{if(x===0)return"0 Bytes";const f=1024,y=["Bytes","KB","MB","GB"],h=Math.floor(Math.log(x)/Math.log(f));return Math.round(x/Math.pow(f,h)*100)/100+" "+y[h]};return(x,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["relative border-2 border-dashed rounded-lg p-8 transition-colors",[s.value?"border-primary-700 bg-primary-50":"border-gray-300 bg-white hover:border-primary-500",t.disabled?"opacity-50 cursor-not-allowed":"cursor-pointer"]]),onClick:g,onDragover:e.withModifiers(p,["prevent"]),onDragleave:e.withModifiers(b,["prevent"]),onDrop:e.withModifiers(C,["prevent"])},[e.createElementVNode("input",{ref_key:"fileInput",ref:a,type:"file",accept:t.accept,multiple:t.multiple,disabled:t.disabled,class:"hidden",onChange:w},null,40,X),e.createElementVNode("div",Y,[e.createElementVNode("div",Z,[t.illustration?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.illustration,alt:t.illustrationAlt,class:"max-w-full max-h-full object-contain"},null,8,ee)):(e.openBlock(),e.createElementBlock("svg",te,[...f[1]||(f[1]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},null,-1)])]))]),e.createElementVNode("div",oe,[e.createElementVNode("p",le,[e.createTextVNode(e.toDisplayString(t.mainText)+" ",1),e.createElementVNode("span",ne,e.toDisplayString(t.linkText),1)])]),n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full max-w-md bg-gray-50 rounded-lg p-4 flex items-center justify-between",onClick:f[0]||(f[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",ae,[f[2]||(f[2]=e.createElementVNode("svg",{class:"w-6 h-6 text-gray-600 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})],-1)),e.createElementVNode("div",se,[e.createElementVNode("p",re,e.toDisplayString(n.value.name),1),e.createElementVNode("p",ie,e.toDisplayString(V(n.value.size)),1)])]),t.disabled?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,onClick:e.withModifiers(E,["stop"]),class:"ml-3 text-gray-400 hover:text-danger-500 transition-colors"},[...f[3]||(f[3]=[e.createElementVNode("svg",{class:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20"},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z","clip-rule":"evenodd"})],-1)])]))])):e.createCommentVNode("",!0),t.helperText?(e.openBlock(),e.createElementBlock("p",ce,e.toDisplayString(t.helperText),1)):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("p",de,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0)])],34))}}),me=["stroke-width"],pe={class:"w-full h-full rounded-lg overflow-hidden",style:{"background-color":"#f7f7f7"}},fe=e.defineComponent({__name:"Loader",props:{type:{default:"circular"},size:{default:"40px"},height:{default:"4px"},color:{default:"primary"},strokeWidth:{default:4},progress:{default:void 0}},setup(t){const m=t,o={primary:"text-primary-700",secondary:"text-secondary-500",success:"text-success-500",warning:"text-warning-500",danger:"text-danger-500",info:"text-info-500"},c={primary:"bg-primary-700",secondary:"bg-secondary-500",success:"bg-success-500",warning:"bg-warning-500",danger:"bg-danger-500",info:"bg-info-500"},a=e.computed(()=>[o[m.color]]),s=e.computed(()=>[c[m.color]]);return(n,r)=>t.type==="circular"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(a.value)},[(e.openBlock(),e.createElementBlock("svg",{class:"animate-spin",style:e.normalizeStyle({width:t.size,height:t.size}),viewBox:"0 0 24 24"},[e.createElementVNode("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":t.strokeWidth,fill:"none"},null,8,me),r[0]||(r[0]=e.createElementVNode("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1))],4))],2)):t.type==="linear"?(e.openBlock(),e.createElementBlock("div",{key:1,class:"w-full",style:e.normalizeStyle({height:t.height})},[e.createElementVNode("div",pe,[e.createElementVNode("div",{class:e.normalizeClass([s.value,"h-full rounded-lg animate-linear-loader"]),style:e.normalizeStyle({width:t.progress?`${t.progress}%`:void 0})},null,6)])],4)):e.createCommentVNode("",!0)}}),ge=B(fe,[["__scopeId","data-v-ce539e88"]]),xe=["for"],ye={key:0,class:"text-danger-600"},he={class:"relative"},be=["id","disabled","aria-expanded"],ke={key:0,class:"flex items-center gap-3 flex-1"},ve={key:0,class:"w-8 h-8 rounded-full overflow-hidden bg-primary-50 flex-shrink-0"},Be=["src","alt"],we={key:1,class:"w-8 h-8 rounded-full bg-primary-700 flex items-center justify-center flex-shrink-0 font-bold text-white text-sm"},Ce={class:"flex flex-col items-start flex-1 min-w-0"},Ee={key:1,class:"flex-1 text-left truncate"},Ve={key:0,class:"p-2 border-b border-secondary-200"},Ne=["placeholder"],$e={class:"max-h-64 overflow-y-auto"},_e={key:0,class:"px-4 py-3 text-sm text-secondary-500 text-center"},Se=["onClick"],ze={key:0,class:"flex items-center gap-3 w-full"},De={key:0,class:"w-10 h-10 rounded-full overflow-hidden bg-primary-50 flex-shrink-0"},Te=["src","alt"],Me={key:1,class:"w-10 h-10 rounded-full bg-primary-700 flex items-center justify-center flex-shrink-0 font-bold text-white"},je={class:"flex flex-col items-start flex-1 min-w-0"},Le={class:"text-sm font-semibold text-secondary-900 truncate w-full"},Fe={key:0,class:"text-xs text-secondary-600 truncate w-full"},Oe={key:1,class:"text-xs text-secondary-500 truncate w-full"},Ie={key:2,class:"w-5 h-5 text-primary-600 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Ae={key:1,class:"flex items-center justify-between w-full"},qe={class:"truncate"},He={key:0,class:"w-5 h-5 text-primary-600 flex-shrink-0 ml-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Ke={key:0,class:"border-t border-secondary-200 my-1"},Pe=["onClick"],We=["innerHTML"],Ue={key:1,class:"mt-1 text-sm text-danger-600"},Ge={key:2,class:"mt-1 text-sm text-secondary-600"},Qe=e.defineComponent({__name:"Select",props:{modelValue:{default:null},options:{default:()=>[]},actionItems:{default:()=>[]},mode:{default:"normal"},label:{default:""},placeholder:{default:"Seleccionar..."},size:{default:"md"},variant:{default:"default"},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},searchPlaceholder:{default:"Buscar..."},emptyText:{default:"No hay opciones disponibles"},error:{default:""},helperText:{default:""},fullWidth:{type:Boolean,default:!1},menuPosition:{default:"bottom"}},emits:["update:modelValue","change","action"],setup(t,{emit:m}){const o=t,c=m,a=e.ref(!1),s=e.ref(""),n=e.ref(null),r=e.computed(()=>`select-${Math.random().toString(36).substr(2,9)}`),l=e.computed(()=>o.options.find(i=>i.value===o.modelValue)||null),g=e.computed(()=>{if(!o.searchable||!s.value)return o.options;const i=s.value.toLowerCase();return o.options.filter(u=>{var d,v;return u.label.toLowerCase().includes(i)||((d=u.subtitle)==null?void 0:d.toLowerCase().includes(i))||((v=u.description)==null?void 0:v.toLowerCase().includes(i))})}),p=e.computed(()=>"block text-sm font-semibold text-secondary-700 mb-1"),b=e.computed(()=>{const i="w-full flex items-center justify-between gap-2 border rounded-md transition-colors focus:outline-none focus:ring-2 focus:ring-primary-500 disabled:opacity-50 disabled:cursor-not-allowed",u={sm:"px-3 py-1.5 text-sm",md:"px-4 py-2 text-base",lg:"px-5 py-3 text-lg"},d={default:"bg-white border-secondary-300 hover:border-secondary-400",outline:"bg-transparent border-secondary-300 hover:border-primary-500",filled:"bg-secondary-100 border-transparent hover:bg-secondary-200"},v=o.mode==="menu"?"bg-primary-700 border-primary-700 hover:bg-primary-600":"",z=o.error?"border-danger-600 focus:ring-danger-500":"";return[i,u[o.size],v||d[o.variant],z].join(" ")}),k=e.computed(()=>o.mode==="menu"?"text-white":"text-secondary-900"),w=e.computed(()=>o.mode==="menu"?"text-primary-100":"text-secondary-600"),C=e.computed(()=>o.mode==="menu"?"text-white":"text-secondary-600"),E=e.computed(()=>`absolute ${o.menuPosition==="top"?"bottom-full mb-1":"top-full mt-1"} left-0 right-0 bg-white rounded-lg shadow-lg border border-secondary-200 z-50 overflow-hidden`),V=i=>{const u="w-full px-4 py-2 text-left hover:bg-primary-50 transition-colors focus:outline-none focus:bg-primary-50 disabled:opacity-50 disabled:cursor-not-allowed",d=f(i)?"bg-primary-50":"";return[u,d].join(" ")},x=i=>{const u="w-full px-4 py-2 text-left text-sm font-semibold transition-colors focus:outline-none flex items-center gap-3";return i.variant==="danger"?`${u} text-danger-600 hover:bg-danger-50 focus:bg-danger-50`:`${u} text-secondary-700 hover:bg-secondary-50 focus:bg-secondary-50`},f=i=>i.value===o.modelValue,y=()=>{o.disabled||(a.value=!a.value,a.value&&o.searchable&&e.nextTick(()=>{var i;(i=n.value)==null||i.focus()}))},h=()=>{a.value=!1,s.value=""},N=i=>{i.disabled||(c("update:modelValue",i.value),c("change",i),h())},$=i=>{i.action&&i.action(),c("action",i),h()},_=i=>{const u=i.relatedTarget;u&&u.closest(".select-wrapper")||setTimeout(()=>{h()},200)},S=i=>{i.key==="Escape"?h():(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),y())};return e.watch(a,i=>{i&&(s.value="")}),(i,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["select-wrapper",{"w-full":t.fullWidth}])},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:r.value,class:e.normalizeClass(p.value)},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",ye,"*")):e.createCommentVNode("",!0)],10,xe)):e.createCommentVNode("",!0),e.createElementVNode("div",he,[e.createElementVNode("button",{id:r.value,type:"button",class:e.normalizeClass(b.value),disabled:t.disabled,"aria-expanded":a.value,"aria-haspopup":!0,onClick:y,onBlur:_,onKeydown:S},[t.mode==="menu"&&l.value?(e.openBlock(),e.createElementBlock("div",ke,[l.value.avatar?(e.openBlock(),e.createElementBlock("div",ve,[e.createElementVNode("img",{src:l.value.avatar,alt:l.value.label,class:"w-full h-full object-cover"},null,8,Be)])):l.value.initials?(e.openBlock(),e.createElementBlock("div",we,e.toDisplayString(l.value.initials),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Ce,[e.createElementVNode("span",{class:e.normalizeClass(["text-sm font-semibold truncate w-full",k.value])},e.toDisplayString(l.value.label),3),l.value.subtitle?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["text-xs truncate w-full",w.value])},e.toDisplayString(l.value.subtitle),3)):e.createCommentVNode("",!0)])])):(e.openBlock(),e.createElementBlock("span",Ee,e.toDisplayString(l.value?l.value.label:t.placeholder),1)),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-5 h-5 flex-shrink-0 transition-transform",[a.value?"rotate-180":"",C.value]]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},[...u[3]||(u[3]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))],42,be),a.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(E.value),onClick:u[2]||(u[2]=e.withModifiers(()=>{},["stop"]))},[t.searchable?(e.openBlock(),e.createElementBlock("div",Ve,[e.withDirectives(e.createElementVNode("input",{ref_key:"searchInput",ref:n,"onUpdate:modelValue":u[0]||(u[0]=d=>s.value=d),type:"text",class:"w-full px-3 py-2 text-sm border border-secondary-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary-500",placeholder:t.searchPlaceholder,onKeydown:u[1]||(u[1]=e.withModifiers(()=>{},["stop"]))},null,40,Ne),[[e.vModelText,s.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",$e,[g.value.length===0?(e.openBlock(),e.createElementBlock("div",_e,e.toDisplayString(t.emptyText),1)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d.value,type:"button",class:e.normalizeClass(V(d)),onClick:v=>N(d)},[t.mode==="menu"?(e.openBlock(),e.createElementBlock("div",ze,[d.avatar?(e.openBlock(),e.createElementBlock("div",De,[e.createElementVNode("img",{src:d.avatar,alt:d.label,class:"w-full h-full object-cover"},null,8,Te)])):d.initials?(e.openBlock(),e.createElementBlock("div",Me,e.toDisplayString(d.initials),1)):e.createCommentVNode("",!0),e.createElementVNode("div",je,[e.createElementVNode("span",Le,e.toDisplayString(d.label),1),d.subtitle?(e.openBlock(),e.createElementBlock("span",Fe,e.toDisplayString(d.subtitle),1)):e.createCommentVNode("",!0),d.description?(e.openBlock(),e.createElementBlock("span",Oe,e.toDisplayString(d.description),1)):e.createCommentVNode("",!0)]),f(d)?(e.openBlock(),e.createElementBlock("svg",Ie,[...u[4]||(u[4]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Ae,[e.createElementVNode("span",qe,e.toDisplayString(d.label),1),f(d)?(e.openBlock(),e.createElementBlock("svg",He,[...u[5]||(u[5]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"},null,-1)])])):e.createCommentVNode("",!0)]))],10,Se))),128)),t.actionItems.length>0?(e.openBlock(),e.createElementBlock("div",Ke)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actionItems,d=>(e.openBlock(),e.createElementBlock("button",{key:d.id,type:"button",class:e.normalizeClass(x(d)),onClick:v=>$(d)},[d.icon?(e.openBlock(),e.createElementBlock("svg",{key:0,class:"w-4 h-4 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",innerHTML:d.icon},null,8,We)):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(d.label),1)],10,Pe))),128))],64))])],2)):e.createCommentVNode("",!0)]),t.error?(e.openBlock(),e.createElementBlock("p",Ue,e.toDisplayString(t.error),1)):t.helperText?(e.openBlock(),e.createElementBlock("p",Ge,e.toDisplayString(t.helperText),1)):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createElementBlock("div",{key:3,onClick:h,class:"fixed inset-0 z-40"})):e.createCommentVNode("",!0)],2))}}),Je=B(Qe,[["__scopeId","data-v-dc970e20"]]),Re={class:"w-full overflow-x-auto"},Xe={class:"w-full border-collapse"},Ye={class:"w-full"},Ze={class:"bg-white border-b border-gray-100 w-full"},et=["onClick"],tt={class:"flex items-center gap-2"},ot={key:0,class:"text-xs text-gray-400"},lt={key:0},nt={key:1},at={class:"w-full"},st={key:0,class:"flex items-center justify-center py-12 text-gray-400"},rt={key:1,class:"w-full px-6 py-4 bg-white"},it=e.defineComponent({__name:"Table",props:{columns:{},data:{}},setup(t){const m=t,o=e.ref(null),c=e.ref("asc"),a=n=>{o.value===n?c.value=c.value==="asc"?"desc":"asc":(o.value=n,c.value="asc")},s=e.computed(()=>{if(!o.value)return m.data;const n=[...m.data];return n.sort((r,l)=>{const g=r[o.value],p=l[o.value];return typeof g=="string"&&typeof p=="string"?c.value==="asc"?g.localeCompare(p):p.localeCompare(g):typeof g=="number"&&typeof p=="number"?c.value==="asc"?g-p:p-g:0}),n});return(n,r)=>(e.openBlock(),e.createElementBlock("div",Re,[e.createElementVNode("table",Xe,[e.createElementVNode("thead",Ye,[e.createElementVNode("tr",Ze,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,l=>(e.openBlock(),e.createElementBlock("th",{key:l.key,style:e.normalizeStyle(l.width?{width:l.width}:{}),class:e.normalizeClass(["px-8 py-4 text-left text-base font-semibold text-gray-900 border-0",l.sortable?"cursor-pointer hover:text-primary-700 select-none transition-colors":""]),onClick:g=>l.sortable&&a(l.key)},[e.createElementVNode("div",tt,[e.createElementVNode("span",null,e.toDisplayString(l.label),1),l.sortable?(e.openBlock(),e.createElementBlock("span",ot,[o.value!==l.key?(e.openBlock(),e.createElementBlock("span",lt,"⇅")):(e.openBlock(),e.createElementBlock("span",nt,e.toDisplayString(c.value==="asc"?"↑":"↓"),1))])):e.createCommentVNode("",!0)])],14,et))),128))])]),e.createElementVNode("tbody",at,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(l,g)=>(e.openBlock(),e.createElementBlock("tr",{key:g,class:"w-full hover:bg-gray-50 transition-colors"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,p=>(e.openBlock(),e.createElementBlock("td",{key:`${g}-${p.key}`,class:"px-8 py-4 text-base text-gray-700 border-0"},[e.renderSlot(n.$slots,`cell-${p.key}`,{value:l[p.key],row:l},()=>[e.createTextVNode(e.toDisplayString(l[p.key]),1)],!0)]))),128))]))),128))])]),s.value.length===0?(e.openBlock(),e.createElementBlock("div",st,[e.renderSlot(n.$slots,"empty",{},()=>[r[0]||(r[0]=e.createTextVNode("No hay datos disponibles",-1))],!0)])):e.createCommentVNode("",!0),n.$slots.footer?(e.openBlock(),e.createElementBlock("div",rt,[e.renderSlot(n.$slots,"footer",{},void 0,!0)])):e.createCommentVNode("",!0)]))}}),ct=B(it,[["__scopeId","data-v-84096741"]]),dt={class:"w-full"},ut={class:"flex border-b border-gray-100",role:"tablist"},mt=["aria-selected","onClick"],pt={role:"tabpanel"},ft="relative px-6 py-3 text-base font-semibold tracking-wide transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary-500",gt="text-primary-700 border-b-4 border-primary-700",xt="text-gray-600 border-b-4 border-transparent hover:text-gray-800",yt=e.defineComponent({__name:"Tabs",props:{modelValue:{},tabs:{}},emits:["update:modelValue"],setup(t,{emit:m}){const o=t,c=m,a=l=>o.modelValue===l,s=l=>{a(l)||c("update:modelValue",l)},n=e.computed(()=>o.modelValue),r=e.computed(()=>o.tabs.find(l=>l.value===n.value));return(l,g)=>(e.openBlock(),e.createElementBlock("div",dt,[e.createElementVNode("div",ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabs,p=>(e.openBlock(),e.createElementBlock("button",{key:p.value,type:"button",class:e.normalizeClass([ft,a(p.value)?gt:xt]),"aria-selected":a(p.value),role:"tab",onClick:b=>s(p.value)},e.toDisplayString(p.label),11,mt))),128))]),e.createElementVNode("div",pt,[e.renderSlot(l.$slots,n.value,{active:n.value,tab:r.value})])]))}}),ht="font-sans",bt=e.defineComponent({__name:"Text",props:{variant:{default:"body1"},as:{},color:{default:"default"},align:{default:"left"},uppercase:{type:Boolean,default:!1},truncate:{type:Boolean,default:!1},weight:{}},setup(t){const m={h1:"text-[40px] leading-[57px] tracking-[0px] font-extrabold",h2:"text-[40px] leading-[57px] tracking-[0px] font-bold",h3:"text-[28px] leading-[39px] tracking-[0px] font-extrabold",h4:"text-[21px] leading-[29px] tracking-[0px] font-extrabold",h5:"text-[16px] leading-[22px] tracking-[0px] font-extrabold",h6:"text-[13px] leading-[18px] tracking-[0px] font-extrabold",subtitle1:"text-[16px] leading-[24px] tracking-[0.15px] font-medium",subtitle2:"text-[14px] leading-[21px] tracking-[0.1px] font-medium",subtitle3:"text-[12px] leading-[18px] tracking-[0.1px] font-medium",subtitle4:"text-[10px] leading-[15px] tracking-[0.1px] font-medium",body1:"text-[16px] leading-[24px] tracking-[0.5px] font-light",body2:"text-[14px] leading-[21px] tracking-[0.25px] font-light",body3:"text-[12px] leading-[18px] tracking-[0.25px] font-light",body4:"text-[10px] leading-[15px] tracking-[0.25px] font-light",button1:"text-[14px] leading-[24px] tracking-[1.25px] font-bold",button2:"text-[14px] leading-[20px] tracking-[1.25px] font-bold",button3:"text-[12px] leading-[18px] tracking-[1.25px] font-bold",caption:"text-[12px] leading-[18px] tracking-[0.4px] font-normal",overline:"text-[10px] leading-[15px] tracking-[1.5px] font-medium"},o={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"p",subtitle2:"p",subtitle3:"p",subtitle4:"p",body1:"p",body2:"p",body3:"p",body4:"p",button1:"span",button2:"span",button3:"span",caption:"span",overline:"span"},c={left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"},a={default:"text-secondary-900",muted:"text-secondary-600",primary:"text-primary-600",secondary:"text-secondary-700",danger:"text-danger-600",success:"text-success-600",warning:"text-warning-600"},s={light:"font-light",normal:"font-normal",medium:"font-medium",semibold:"font-semibold",bold:"font-bold",extrabold:"font-extrabold"},n=t,r=e.computed(()=>n.variant),l=e.computed(()=>n.color),g=e.computed(()=>n.align),p=e.computed(()=>n.as||o[r.value]||"span"),b=e.computed(()=>n.weight?s[n.weight]:"");return(k,w)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),{class:e.normalizeClass([ht,m[r.value],a[l.value],c[g.value],b.value,{uppercase:t.uppercase||r.value==="overline",truncate:t.truncate}])},{default:e.withCtx(()=>[e.renderSlot(k.$slots,"default")]),_:3},8,["class"]))}});exports.AppBar=F;exports.Button=A;exports.Card=P;exports.Dialog=R;exports.FileUpload=ue;exports.Loader=ge;exports.Select=Je;exports.Table=ct;exports.Tabs=yt;exports.Text=bt;
@@ -73,7 +73,7 @@ const se = { class: "flex items-center gap-4" }, le = {
73
73
  for (const [u, r] of h)
74
74
  l[u] = r;
75
75
  return l;
76
- }, It = /* @__PURE__ */ I(ne, [["__scopeId", "data-v-8c81fc6d"]]), re = ["type", "disabled", "aria-label"], ie = {
76
+ }, It = /* @__PURE__ */ I(ne, [["__scopeId", "data-v-0699e70b"]]), re = ["type", "disabled", "aria-label"], ie = {
77
77
  key: 0,
78
78
  class: "absolute top-0 right-0 inline-flex items-center justify-center px-1.5 py-0.5 text-xs font-bold leading-none text-white transform translate-x-1/2 -translate-y-1/2 bg-danger-600 rounded-full min-w-[1.25rem]"
79
79
  }, Ot = /* @__PURE__ */ B({
@@ -244,7 +244,7 @@ const se = { class: "flex items-center gap-4" }, le = {
244
244
  })
245
245
  ]));
246
246
  }
247
- }), At = /* @__PURE__ */ I(he, [["__scopeId", "data-v-091e8739"]]), be = ["accept", "multiple", "disabled"], ve = { class: "flex flex-col items-center justify-center gap-4 text-center" }, ye = { class: "w-32 h-32 flex items-center justify-center" }, me = ["src", "alt"], ke = {
247
+ }), At = /* @__PURE__ */ I(he, [["__scopeId", "data-v-688a0d21"]]), be = ["accept", "multiple", "disabled"], ve = { class: "flex flex-col items-center justify-center gap-4 text-center" }, ye = { class: "w-32 h-32 flex items-center justify-center" }, me = ["src", "alt"], ke = {
248
248
  key: 1,
249
249
  class: "w-full h-full text-gray-400",
250
250
  fill: "none",
@@ -459,7 +459,7 @@ const se = { class: "flex items-center gap-4" }, le = {
459
459
  ])
460
460
  ], 4)) : p("", !0);
461
461
  }
462
- }), qt = /* @__PURE__ */ I(Le, [["__scopeId", "data-v-8df4ec38"]]), Se = ["for"], Ie = {
462
+ }), qt = /* @__PURE__ */ I(Le, [["__scopeId", "data-v-ce539e88"]]), Se = ["for"], Ie = {
463
463
  key: 0,
464
464
  class: "text-danger-600"
465
465
  }, Oe = { class: "relative" }, Fe = ["id", "disabled", "aria-expanded"], Ae = {
@@ -744,7 +744,7 @@ const se = { class: "flex items-center gap-4" }, le = {
744
744
  })) : p("", !0)
745
745
  ], 2));
746
746
  }
747
- }), Et = /* @__PURE__ */ I(ft, [["__scopeId", "data-v-5644cc74"]]), pt = { class: "w-full overflow-x-auto" }, xt = { class: "w-full border-collapse" }, gt = { class: "w-full" }, ht = { class: "bg-white border-b border-gray-100 w-full" }, bt = ["onClick"], vt = { class: "flex items-center gap-2" }, yt = {
747
+ }), Et = /* @__PURE__ */ I(ft, [["__scopeId", "data-v-dc970e20"]]), pt = { class: "w-full overflow-x-auto" }, xt = { class: "w-full border-collapse" }, gt = { class: "w-full" }, ht = { class: "bg-white border-b border-gray-100 w-full" }, bt = ["onClick"], vt = { class: "flex items-center gap-2" }, yt = {
748
748
  key: 0,
749
749
  class: "text-xs text-gray-400"
750
750
  }, mt = { key: 0 }, kt = { key: 1 }, wt = { class: "w-full" }, $t = {
@@ -822,7 +822,7 @@ const se = { class: "flex items-center gap-4" }, le = {
822
822
  ])) : p("", !0)
823
823
  ]));
824
824
  }
825
- }), Ht = /* @__PURE__ */ I(_t, [["__scopeId", "data-v-6b3ff0a8"]]), Bt = { class: "w-full" }, Tt = {
825
+ }), Ht = /* @__PURE__ */ I(_t, [["__scopeId", "data-v-84096741"]]), Bt = { class: "w-full" }, Tt = {
826
826
  class: "flex border-b border-gray-100",
827
827
  role: "tablist"
828
828
  }, Vt = ["aria-selected", "onClick"], jt = { role: "tabpanel" }, zt = "relative px-6 py-3 text-base font-semibold tracking-wide transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary-500", Mt = "text-primary-700 border-b-4 border-primary-700", Dt = "text-gray-600 border-b-4 border-transparent hover:text-gray-800", Kt = /* @__PURE__ */ B({