@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="
|
|
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-
|
|
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-
|
|
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-
|
|
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="
|
|
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>
|
package/components/Table.vue
CHANGED
|
@@ -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:
|
|
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-
|
|
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
|
|
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="
|
|
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">
|