@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 +389 -0
- package/dist/iaclinical-components.cjs +1 -1
- package/dist/iaclinical-components.js +5 -5
- package/dist/style.css +1 -1
- package/package.json +54 -54
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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({
|