nuxt-ui-tools 1.22.1 → 1.23.0

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/dist/module.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "configKey": "nuxtUiTools",
6
6
  "docs": "https://ui.nuxt.com/docs/getting-started/installation/nuxt",
7
7
  "name": "nuxt-ui-tools",
8
- "version": "1.22.1",
8
+ "version": "1.23.0",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "1.0.3",
11
11
  "unbuild": "unknown"
@@ -1 +1 @@
1
- @layer theme, base, components, utilities;@layer base{:root{--nut-scrollbar-size:11px;--nut-scrollbar-gap:3px;--nut-scrollbar-thumb:color-mix(in srgb,var(--ui-text,#1f1d1a) 18%,transparent);--nut-scrollbar-thumb-hover:color-mix(in srgb,var(--ui-text,#1f1d1a) 32%,transparent);--nut-scrollbar-thumb-active:color-mix(in srgb,var(--ui-text,#1f1d1a) 44%,transparent)}@supports (scrollbar-width:thin){*{scrollbar-color:transparent transparent;scrollbar-width:thin;transition:scrollbar-color .2s ease}:hover{scrollbar-color:var(--nut-scrollbar-thumb) transparent}}@supports not (scrollbar-width:thin){::-webkit-scrollbar{background:transparent;height:var(--nut-scrollbar-size);width:var(--nut-scrollbar-size)}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:var(--nut-scrollbar-gap) solid transparent;border-radius:999px}:hover::-webkit-scrollbar-thumb{background-color:var(--nut-scrollbar-thumb)}::-webkit-scrollbar-thumb:hover{background-color:var(--nut-scrollbar-thumb-hover)}::-webkit-scrollbar-thumb:active{background-color:var(--nut-scrollbar-thumb-active)}}}
1
+ @layer theme, base, components, utilities;@layer base{:root{--nut-scrollbar-size:11px;--nut-scrollbar-gap:3px;--nut-table-scrollbar-size:5px;--nut-table-scrollbar-idle-opacity:0;--nut-table-scrollbar-idle-pointer-events:none;--nut-scrollbar-thumb:color-mix(in srgb,var(--ui-text,#1f1d1a) 18%,transparent);--nut-scrollbar-thumb-hover:color-mix(in srgb,var(--ui-text,#1f1d1a) 32%,transparent);--nut-scrollbar-thumb-active:color-mix(in srgb,var(--ui-text,#1f1d1a) 44%,transparent)}@supports (scrollbar-width:thin){*{scrollbar-color:transparent transparent;scrollbar-width:thin;transition:scrollbar-color .2s ease}:hover{scrollbar-color:var(--nut-scrollbar-thumb) transparent}}@supports not (scrollbar-width:thin){::-webkit-scrollbar{background:transparent;height:var(--nut-scrollbar-size);width:var(--nut-scrollbar-size)}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:var(--nut-scrollbar-gap) solid transparent;border-radius:999px}:hover::-webkit-scrollbar-thumb{background-color:var(--nut-scrollbar-thumb)}::-webkit-scrollbar-thumb:hover{background-color:var(--nut-scrollbar-thumb-hover)}::-webkit-scrollbar-thumb:active{background-color:var(--nut-scrollbar-thumb-active)}}}
@@ -149,8 +149,8 @@ defineExpose({ measure: schedule });
149
149
  <template>
150
150
  <div
151
151
  v-if="hasVertical"
152
- class="nut-dl-sb pointer-events-none absolute top-1 right-[3px] bottom-2 z-[6] w-[5px] opacity-0 transition-opacity duration-200 ease-out motion-reduce:transition-none"
153
- :class="{ 'pointer-events-auto opacity-100': visible }"
152
+ class="nut-dl-sb [pointer-events:var(--nut-table-scrollbar-idle-pointer-events)] absolute top-1 right-[3px] bottom-2 z-[6] w-(--nut-table-scrollbar-size) opacity-(--nut-table-scrollbar-idle-opacity) transition-opacity duration-200 ease-out motion-reduce:transition-none"
153
+ :class="{ 'pointer-events-auto! opacity-100': visible }"
154
154
  >
155
155
  <span
156
156
  class="absolute top-0 left-0 w-full rounded-full bg-(--nut-scrollbar-thumb) transition-colors duration-150 will-change-transform hover:bg-(--nut-scrollbar-thumb-hover)"
@@ -164,8 +164,8 @@ defineExpose({ measure: schedule });
164
164
  </div>
165
165
  <div
166
166
  v-if="hasHorizontal"
167
- class="nut-dl-sb pointer-events-none absolute right-2 bottom-[3px] left-1 z-[6] h-[5px] opacity-0 transition-opacity duration-200 ease-out motion-reduce:transition-none"
168
- :class="{ 'pointer-events-auto opacity-100': visible }"
167
+ class="nut-dl-sb [pointer-events:var(--nut-table-scrollbar-idle-pointer-events)] absolute right-2 bottom-[3px] left-1 z-[6] h-(--nut-table-scrollbar-size) opacity-(--nut-table-scrollbar-idle-opacity) transition-opacity duration-200 ease-out motion-reduce:transition-none"
168
+ :class="{ 'pointer-events-auto! opacity-100': visible }"
169
169
  >
170
170
  <span
171
171
  class="absolute top-0 left-0 h-full rounded-full bg-(--nut-scrollbar-thumb) transition-colors duration-150 will-change-transform hover:bg-(--nut-scrollbar-thumb-hover)"
@@ -1,4 +1,10 @@
1
- import { keepPreviousData, useInfiniteQuery, useQueries, useQuery } from "@tanstack/vue-query";
1
+ import {
2
+ keepPreviousData,
3
+ useInfiniteQuery,
4
+ useQueries,
5
+ useQuery,
6
+ useQueryClient
7
+ } from "@tanstack/vue-query";
2
8
  import { computed, readonly, ref, shallowRef, watch } from "vue";
3
9
  import { isArray, isFunction, isNumber, isObject, isString } from "../../shared/utils/predicate.js";
4
10
  import { QUERY_DEFAULTS } from "../constants/query-state.js";
@@ -95,22 +101,35 @@ export function useTableData(params) {
95
101
  const searchParams = requestContext;
96
102
  const dataStaleTime = computed(() => QUERY_DEFAULTS.staleTime.data);
97
103
  const isCursorPagination = computed(() => requestPagination.value.mode === "cursor");
104
+ const sourceDefinition = computed(
105
+ () => resolveSourceDefinition({
106
+ context: contextData.value,
107
+ request: requestContext.value,
108
+ sourceRequest: sourceRequest.value,
109
+ source: params.schema.value.source
110
+ })
111
+ );
112
+ const cachedSourceKey = isCursorPagination.value ? createTableCursorQueryKey(
113
+ sourceDefinition.value.queryKey,
114
+ params.state.queryState.paginationRevision.value
115
+ ) : sourceDefinition.value.queryKey;
116
+ if (isQueryDefinitionEnabled(sourceDefinition.value) && useQueryClient().getQueryData(cachedSourceKey) !== void 0) {
117
+ params.startup.start();
118
+ }
98
119
  const query = useQuery(
99
120
  computed(() => {
100
- const definition = resolveSourceDefinition({
101
- context: contextData.value,
102
- request: requestContext.value,
103
- sourceRequest: sourceRequest.value,
104
- source: params.schema.value.source
105
- });
106
121
  if (isCursorPagination.value) {
107
122
  return disabledQueryDefinition("cursor");
108
123
  }
109
- return withEnabled(definition, params.startup.isActive.value && isContextReady.value, {
110
- placeholderData: keepPreviousData,
111
- refetchOnWindowFocus: QUERY_DEFAULTS.refetchOnWindowFocus,
112
- staleTime: dataStaleTime.value
113
- });
124
+ return withEnabled(
125
+ sourceDefinition.value,
126
+ params.startup.isActive.value && isContextReady.value,
127
+ {
128
+ placeholderData: keepPreviousData,
129
+ refetchOnWindowFocus: QUERY_DEFAULTS.refetchOnWindowFocus,
130
+ staleTime: dataStaleTime.value
131
+ }
132
+ );
114
133
  })
115
134
  );
116
135
  const infiniteQuery = useInfiniteQuery(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuxt-ui-tools",
3
- "version": "1.22.1",
3
+ "version": "1.23.0",
4
4
  "description": "Nuxt module and runtime toolkit for UI-heavy Nuxt applications",
5
5
  "homepage": "https://github.com/ChronicStone/nuxt-ui-tools#readme",
6
6
  "bugs": "https://github.com/ChronicStone/nuxt-ui-tools/issues",