@innertia-solutions/nuxt-theme-spark 0.1.110 → 0.1.112

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.
@@ -524,7 +524,7 @@ defineExpose({
524
524
  :checked="table.getIsAllRowsSelected()"
525
525
  :indeterminate="table.getIsSomeRowsSelected()"
526
526
  @change="table.getToggleAllRowsSelectedHandler()($event)"
527
- class="mx-2 shrink-0 border-card-line rounded-sm text-blue-900 focus:ring-0 focus:ring-offset-0 dark:bg-slate-800 border-card-line"
527
+ class="mx-2 shrink-0 border-card-line rounded-sm text-blue-900 focus:ring-0 focus:ring-offset-0 dark:bg-card"
528
528
  />
529
529
  </template>
530
530
  <!-- Regular column header -->
@@ -664,7 +664,7 @@ defineExpose({
664
664
  :checked="row.getIsSelected()"
665
665
  :disabled="!row.getCanSelect()"
666
666
  @change="row.getToggleSelectedHandler()($event)"
667
- class="rounded border-card-line focus:ring-0 focus:ring-offset-0 dark:bg-slate-800 border-card-line"
667
+ class="rounded border-card-line focus:ring-0 focus:ring-offset-0 dark:bg-card"
668
668
  />
669
669
  </div>
670
670
  </template>
@@ -699,7 +699,7 @@ defineExpose({
699
699
  class="absolute inset-0 z-10 pointer-events-none flex items-center justify-center backdrop-blur-sm bg-card/60 rounded-xl"
700
700
  >
701
701
  <slot name="empty">
702
- <p class="text-slate-400 dark:text-slate-500 text-lg font-medium italic">No hay registros</p>
702
+ <p class="text-muted-foreground text-lg font-medium italic">No hay registros</p>
703
703
  </slot>
704
704
  </div>
705
705
 
@@ -708,7 +708,7 @@ defineExpose({
708
708
  class="absolute inset-0 z-10 pointer-events-none flex items-center justify-center backdrop-blur-sm bg-card/60 rounded-xl"
709
709
  >
710
710
  <slot name="empty-search">
711
- <p class="text-slate-400 dark:text-slate-500 text-lg font-medium italic">No hay registros en la búsqueda</p>
711
+ <p class="text-muted-foreground text-lg font-medium italic">No hay registros en la búsqueda</p>
712
712
  </slot>
713
713
  </div>
714
714
  </div>
@@ -744,7 +744,7 @@ defineExpose({
744
744
  :class="{ 'ring-2 ring-indigo-400 dark:ring-indigo-600': row.getIsSelected() }">
745
745
  <div v-if="checkable" class="absolute top-2 left-2 z-10">
746
746
  <input type="checkbox" :checked="row.getIsSelected()" @change="row.toggleSelected()"
747
- class="rounded border-card-line dark:bg-slate-800 border-card-line" />
747
+ class="rounded border-card-line dark:bg-card" />
748
748
  </div>
749
749
  <div class="space-y-2" :class="{ 'pt-6': checkable }">
750
750
  <div v-for="cell in row.getVisibleCells().filter(c => c.column.id !== 'select')" :key="cell.id" class="flex justify-between">
@@ -776,7 +776,7 @@ defineExpose({
776
776
  <div v-if="showReloadButton" class="flex items-center gap-x-2">
777
777
  <IconReload
778
778
  v-if="!loading"
779
- class="size-4 cursor-pointer text-muted-foreground hover:text-gray-700 dark:hover:text-slate-300 transition-colors"
779
+ class="size-4 cursor-pointer text-muted-foreground hover:text-muted-foreground-1 transition-colors"
780
780
  @click="reloadTable"
781
781
  />
782
782
  <div v-else>
@@ -65,7 +65,7 @@ defineExpose({ open })
65
65
  <button
66
66
  type="button"
67
67
  @click="isOpen = true"
68
- class="py-1.5 sm:py-2 px-2.5 inline-flex items-center gap-x-1.5 text-sm font-medium rounded-lg border border-slate-200 bg-white text-slate-800 shadow-2xs hover:bg-slate-50 disabled:opacity-50 disabled:pointer-events-none focus:outline-hidden dark:bg-slate-800 dark:border-slate-700 dark:text-slate-300 dark:hover:bg-slate-700"
68
+ class="py-1.5 sm:py-2 px-2.5 inline-flex items-center gap-x-1.5 text-sm font-medium rounded-lg border border-card-line bg-card text-foreground shadow-2xs hover:bg-muted-hover disabled:opacity-50 disabled:pointer-events-none focus:outline-hidden"
69
69
  >
70
70
  <IconDownload class="shrink-0 size-4" stroke="1.5" />
71
71
  Exportar
@@ -93,16 +93,16 @@ defineExpose({ open })
93
93
  >
94
94
  <div
95
95
  v-if="isOpen"
96
- class="bg-white dark:bg-slate-800 rounded-2xl shadow-2xl w-full max-w-md border border-slate-200 dark:border-slate-700"
96
+ class="bg-card rounded-2xl shadow-2xl w-full max-w-md border border-card-line"
97
97
  >
98
- <div class="flex items-center justify-between px-6 py-4 border-b border-slate-100 dark:border-slate-700">
99
- <h3 class="font-semibold text-slate-800 dark:text-slate-100">Exportar tabla</h3>
98
+ <div class="flex items-center justify-between px-6 py-4 border-b border-card-line">
99
+ <h3 class="font-semibold text-foreground">Exportar tabla</h3>
100
100
  <button
101
101
  type="button"
102
102
  @click="isOpen = false"
103
- class="p-1.5 rounded-lg hover:bg-slate-100 dark:hover:bg-slate-700 transition-colors"
103
+ class="p-1.5 rounded-lg hover:bg-muted-hover transition-colors"
104
104
  >
105
- <svg class="size-4 text-slate-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
105
+ <svg class="size-4 text-muted-foreground" fill="none" stroke="currentColor" viewBox="0 0 24 24">
106
106
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
107
107
  </svg>
108
108
  </button>
@@ -111,7 +111,7 @@ defineExpose({ open })
111
111
  <div class="px-6 py-5 space-y-5">
112
112
  <!-- Format selector -->
113
113
  <div>
114
- <p class="text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wider mb-2">Formato</p>
114
+ <p class="text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2">Formato</p>
115
115
  <div class="grid grid-cols-4 gap-2">
116
116
  <button
117
117
  v-for="f in formats"
@@ -122,7 +122,7 @@ defineExpose({ open })
122
122
  'flex flex-col items-center gap-1.5 p-3 rounded-xl border text-sm font-medium transition-colors',
123
123
  format === f.value
124
124
  ? 'border-indigo-500 bg-indigo-50 text-indigo-700 dark:bg-indigo-900/30 dark:border-indigo-500 dark:text-indigo-300'
125
- : 'border-slate-200 dark:border-slate-700 text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-700'
125
+ : 'border-card-line text-muted-foreground-1 hover:bg-muted-hover'
126
126
  ]"
127
127
  >
128
128
  <IconFileTypeXls v-if="f.value === 'xlsx'" class="size-5" stroke="1.5" />
@@ -136,23 +136,23 @@ defineExpose({ open })
136
136
 
137
137
  <!-- Filename -->
138
138
  <div>
139
- <label class="text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wider block mb-2">
139
+ <label class="text-xs font-semibold text-muted-foreground uppercase tracking-wider block mb-2">
140
140
  Nombre de archivo
141
141
  </label>
142
142
  <div class="flex items-center gap-2">
143
143
  <input
144
144
  v-model="filename"
145
145
  type="text"
146
- class="flex-1 rounded-lg border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-900 text-slate-900 dark:text-white py-2 px-3 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500"
146
+ class="flex-1 rounded-lg border border-card-line bg-card text-foreground py-2 px-3 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500"
147
147
  />
148
- <span class="text-sm text-slate-400">.{{ format }}</span>
148
+ <span class="text-sm text-muted-foreground">.{{ format }}</span>
149
149
  </div>
150
150
  </div>
151
151
 
152
152
  <!-- Columns -->
153
153
  <div v-if="columns.length > 0">
154
154
  <div class="flex items-center justify-between mb-2">
155
- <p class="text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wider">Columnas</p>
155
+ <p class="text-xs font-semibold text-muted-foreground uppercase tracking-wider">Columnas</p>
156
156
  <button
157
157
  type="button"
158
158
  @click="toggleAll"
@@ -165,25 +165,25 @@ defineExpose({ open })
165
165
  <label
166
166
  v-for="col in columns"
167
167
  :key="col.key"
168
- class="flex items-center gap-2 py-1.5 px-2 rounded-lg hover:bg-slate-50 dark:hover:bg-slate-700 cursor-pointer"
168
+ class="flex items-center gap-2 py-1.5 px-2 rounded-lg hover:bg-muted-hover cursor-pointer"
169
169
  >
170
170
  <input
171
171
  type="checkbox"
172
172
  :checked="selectedColumns.includes(col.key)"
173
173
  @change="toggleColumn(col.key)"
174
- class="rounded border-gray-300 dark:bg-slate-700 dark:border-slate-600 text-indigo-600"
174
+ class="rounded border-card-line dark:bg-surface text-indigo-600"
175
175
  />
176
- <span class="text-sm text-slate-700 dark:text-slate-200 truncate">{{ col.label }}</span>
176
+ <span class="text-sm text-foreground truncate">{{ col.label }}</span>
177
177
  </label>
178
178
  </div>
179
179
  </div>
180
180
  </div>
181
181
 
182
- <div class="flex justify-end gap-2 px-6 py-4 border-t border-slate-100 dark:border-slate-700">
182
+ <div class="flex justify-end gap-2 px-6 py-4 border-t border-card-line">
183
183
  <button
184
184
  type="button"
185
185
  @click="isOpen = false"
186
- class="py-2 px-4 text-sm font-medium rounded-lg border border-slate-200 dark:border-slate-700 text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-700 transition-colors"
186
+ class="py-2 px-4 text-sm font-medium rounded-lg border border-card-line text-muted-foreground-1 hover:bg-muted-hover transition-colors"
187
187
  >
188
188
  Cancelar
189
189
  </button>
@@ -35,13 +35,13 @@ const activeCount = computed(() =>
35
35
 
36
36
  <!-- text -->
37
37
  <div v-if="col.filterType === 'text'">
38
- <label class="block text-xs font-medium text-slate-500 dark:text-slate-400 mb-1">{{ col.label }}</label>
38
+ <label class="block text-xs font-medium text-muted-foreground mb-1">{{ col.label }}</label>
39
39
  <input
40
40
  type="text"
41
41
  :value="localFilters[col.key] ?? ''"
42
42
  @input="updateFilter(col.key, $event.target.value)"
43
43
  :placeholder="`Filtrar ${col.label.toLowerCase()}...`"
44
- class="w-full rounded-lg border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 text-slate-900 dark:text-white py-1.5 px-3 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500"
44
+ class="w-full rounded-lg border border-card-line bg-card text-foreground py-1.5 px-3 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500"
45
45
  />
46
46
  </div>
47
47
 
@@ -57,27 +57,27 @@ const activeCount = computed(() =>
57
57
 
58
58
  <!-- daterange -->
59
59
  <div v-else-if="col.filterType === 'daterange'">
60
- <label class="block text-xs font-medium text-slate-500 dark:text-slate-400 mb-1">{{ col.label }}</label>
60
+ <label class="block text-xs font-medium text-muted-foreground mb-1">{{ col.label }}</label>
61
61
  <div class="flex items-center gap-1.5">
62
62
  <input
63
63
  type="date"
64
64
  :value="localFilters[col.key]?.from ?? ''"
65
65
  @change="updateFilter(col.key, { ...localFilters[col.key], from: $event.target.value || null })"
66
- class="flex-1 rounded-lg border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 text-slate-900 dark:text-white py-1.5 px-2 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500"
66
+ class="flex-1 rounded-lg border border-card-line bg-card text-foreground py-1.5 px-2 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500"
67
67
  />
68
68
  <span class="text-slate-400 text-xs shrink-0">—</span>
69
69
  <input
70
70
  type="date"
71
71
  :value="localFilters[col.key]?.to ?? ''"
72
72
  @change="updateFilter(col.key, { ...localFilters[col.key], to: $event.target.value || null })"
73
- class="flex-1 rounded-lg border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 text-slate-900 dark:text-white py-1.5 px-2 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500"
73
+ class="flex-1 rounded-lg border border-card-line bg-card text-foreground py-1.5 px-2 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500"
74
74
  />
75
75
  </div>
76
76
  </div>
77
77
 
78
78
  </template>
79
79
 
80
- <div class="pt-2 border-t border-slate-100 dark:border-slate-700/60">
80
+ <div class="pt-2 border-t border-card-line">
81
81
  <button
82
82
  v-if="activeCount > 0"
83
83
  type="button"
@@ -87,7 +87,7 @@ const activeCount = computed(() =>
87
87
  <svg class="size-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/></svg>
88
88
  Limpiar filtros
89
89
  </button>
90
- <p v-else class="text-xs text-center text-slate-400 dark:text-slate-500 py-0.5">Sin filtros activos</p>
90
+ <p v-else class="text-xs text-center text-muted-foreground py-0.5">Sin filtros activos</p>
91
91
  </div>
92
92
  </div>
93
93
  </template>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="max-w-xs relative bg-white dark:bg-slate-800 border border-gray-200 dark:border-slate-700 rounded-xl shadow-lg p-4 pr-10 flex items-start overflow-hidden"
3
+ class="max-w-xs relative bg-card border border-card-line rounded-xl shadow-lg p-4 pr-10 flex items-start overflow-hidden"
4
4
  :class="{
5
5
  'border-green-200': toast.severity === 'success',
6
6
  'border-red-200': toast.severity === 'danger',
@@ -40,7 +40,7 @@
40
40
  <!-- Barra de progreso temporal -->
41
41
  <div
42
42
  v-if="toast.duration && toast.duration > 0"
43
- class="absolute bottom-0 left-0 w-full h-1 bg-gray-200 dark:bg-gray-700"
43
+ class="absolute bottom-0 left-0 w-full h-1 bg-card-line"
44
44
  >
45
45
  <div
46
46
  class="h-full bg-gradient-to-r"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@innertia-solutions/nuxt-theme-spark",
3
- "version": "0.1.110",
3
+ "version": "0.1.112",
4
4
  "description": "Innertia Solutions — Spark theme: backoffice, landing and mobile components and layouts",
5
5
  "keywords": [
6
6
  "nuxt",