@innertia-solutions/nuxt-theme-spark 0.1.28 → 0.1.30

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.
@@ -47,9 +47,9 @@ defineExpose({ getSelectedRows, reload, clearCache, exportTable, tableRef })
47
47
  </script>
48
48
 
49
49
  <template>
50
- <div class="flex flex-col gap-4">
50
+ <div class="bg-white dark:bg-slate-800 border border-slate-200 dark:border-slate-700 rounded-xl overflow-hidden">
51
51
  <!-- Toolbar -->
52
- <div class="flex flex-wrap items-center gap-3">
52
+ <div class="flex flex-wrap items-center gap-3 px-4 py-3 border-b border-slate-200 dark:border-slate-700">
53
53
  <!-- Search -->
54
54
  <div v-if="showSearch" class="relative flex-1 min-w-48">
55
55
  <div class="absolute inset-y-0 start-0 flex items-center ps-3 pointer-events-none">
@@ -59,7 +59,7 @@ defineExpose({ getSelectedRows, reload, clearCache, exportTable, tableRef })
59
59
  v-model="search"
60
60
  type="search"
61
61
  :placeholder="searchPlaceholder"
62
- class="block 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-2 ps-10 pe-4 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500"
62
+ class="block w-full rounded-lg border border-slate-200 dark:border-slate-700 bg-slate-50 dark:bg-slate-900 text-slate-900 dark:text-white py-1.5 ps-9 pe-4 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500 focus:border-indigo-500"
63
63
  />
64
64
  </div>
65
65
 
@@ -69,10 +69,10 @@ defineExpose({ getSelectedRows, reload, clearCache, exportTable, tableRef })
69
69
  type="button"
70
70
  @click="showFilterPanel = !showFilterPanel"
71
71
  :class="[
72
- 'py-2 px-3 inline-flex items-center gap-2 text-sm font-medium rounded-lg border transition-colors',
72
+ 'py-1.5 px-3 inline-flex items-center gap-2 text-sm font-medium rounded-lg border transition-colors',
73
73
  showFilterPanel || activeFilterCount > 0
74
74
  ? 'border-indigo-500 bg-indigo-50 text-indigo-700 dark:bg-indigo-900/20 dark:border-indigo-500 dark:text-indigo-300'
75
- : 'border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800 text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-700'
75
+ : 'border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-800 text-slate-600 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-700'
76
76
  ]"
77
77
  >
78
78
  <IconAdjustmentsHorizontal class="size-4" stroke="1.5" />
@@ -105,7 +105,7 @@ defineExpose({ getSelectedRows, reload, clearCache, exportTable, tableRef })
105
105
  >
106
106
  <div
107
107
  v-if="showFilterPanel && hasFilterableColumns"
108
- class="p-4 bg-slate-50 dark:bg-slate-800/50 rounded-xl border border-slate-200 dark:border-slate-700"
108
+ class="px-4 py-3 border-b border-slate-200 dark:border-slate-700 bg-slate-50 dark:bg-slate-900/50"
109
109
  >
110
110
  <TableFilter v-model="filters" :columns="columns" />
111
111
  </div>
@@ -440,11 +440,17 @@ const handleRowKeydown = (row, e) => {
440
440
  }
441
441
 
442
442
  // ─── Expose ───────────────────────────────────────────────────────────────────
443
+ const reloadTable = () => {
444
+ clearCache()
445
+ isDataFromCache.value = false
446
+ fetchData()
447
+ }
448
+
443
449
  defineExpose({
444
450
  getSelectedRows,
445
451
  loading,
446
452
  exportTable,
447
- reload: () => { clearCache(); fetchData() },
453
+ reload: reloadTable,
448
454
  clearCache,
449
455
  table,
450
456
  })
@@ -513,8 +519,7 @@ defineExpose({
513
519
  <template v-for="headerGroup in table.getHeaderGroups()" :key="headerGroup.id">
514
520
  <!-- Main header row -->
515
521
  <tr
516
- class="divide-x divide-gray-200 dark:border-slate-700 dark:divide-slate-700"
517
- :class="{ 'border-t border-gray-200': loading || tableData.length > 0 }"
522
+ class="divide-x divide-slate-200 dark:divide-slate-700"
518
523
  >
519
524
  <th
520
525
  v-for="header in headerGroup.headers"
@@ -756,7 +761,7 @@ defineExpose({
756
761
  </div>
757
762
 
758
763
  <!-- Pagination & controls bar -->
759
- <div class="flex flex-col sm:flex-row items-center justify-between gap-y-4 sm:gap-y-0 mt-4 px-6 pb-6">
764
+ <div class="flex flex-col sm:flex-row items-center justify-between gap-y-4 sm:gap-y-0 px-4 py-3 border-t border-slate-200 dark:border-slate-700">
760
765
  <!-- Left: reload, total, cache, columns button -->
761
766
  <div class="flex items-center gap-x-4 flex-wrap gap-y-2">
762
767
  <!-- Reload button -->
@@ -764,7 +769,7 @@ defineExpose({
764
769
  <IconReload
765
770
  v-if="!loading"
766
771
  class="size-4 cursor-pointer text-gray-500 dark:text-slate-400 hover:text-gray-700 dark:hover:text-slate-300 transition-colors"
767
- @click="() => { clearCache(); isDataFromCache.value = false; fetchData() }"
772
+ @click="reloadTable"
768
773
  />
769
774
  <div v-else>
770
775
  <svg class="animate-spin size-4 text-slate-400 dark:text-slate-600" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@innertia-solutions/nuxt-theme-spark",
3
- "version": "0.1.28",
3
+ "version": "0.1.30",
4
4
  "description": "Innertia Solutions — Spark theme: backoffice, landing and mobile components and layouts",
5
5
  "keywords": [
6
6
  "nuxt",