@vuetify/nightly 3.11.4-dev.2025-12-22 → 3.11.4-dev.2025-12-23

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.
@@ -70,6 +70,7 @@ export declare const makeVDataIteratorProps: <Defaults extends {
70
70
  returnObject?: unknown;
71
71
  search?: unknown;
72
72
  loading?: unknown;
73
+ itemsLength?: unknown;
73
74
  } = {}>(defaults?: Defaults | undefined) => {
74
75
  class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
75
76
  type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
@@ -335,6 +336,10 @@ export declare const makeVDataIteratorProps: <Defaults extends {
335
336
  type: import("vue").PropType<unknown extends Defaults["loading"] ? boolean : boolean | Defaults["loading"]>;
336
337
  default: unknown extends Defaults["loading"] ? boolean : boolean | Defaults["loading"];
337
338
  };
339
+ itemsLength: unknown extends Defaults["itemsLength"] ? (NumberConstructor | StringConstructor)[] : {
340
+ type: import("vue").PropType<unknown extends Defaults["itemsLength"] ? string | number : string | number | Defaults["itemsLength"]>;
341
+ default: unknown extends Defaults["itemsLength"] ? string | number : Defaults["itemsLength"] | NonNullable<string | number>;
342
+ };
338
343
  };
339
344
  export declare const VDataIterator: {
340
345
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
@@ -373,6 +378,7 @@ export declare const VDataIterator: {
373
378
  customKeySort?: Record<string, import("../../types.js").DataTableCompareFunction> | undefined;
374
379
  valueComparator?: typeof import("../../util/index.js").deepEqual | undefined;
375
380
  search?: string | undefined;
381
+ itemsLength?: string | number | undefined;
376
382
  } & {
377
383
  "onUpdate:currentItems"?: ((value: any) => any) | undefined;
378
384
  "onUpdate:expanded"?: ((value: any) => any) | undefined;
@@ -478,6 +484,7 @@ export declare const VDataIterator: {
478
484
  customKeySort?: Record<string, import("../../types.js").DataTableCompareFunction> | undefined;
479
485
  valueComparator?: typeof import("../../util/index.js").deepEqual | undefined;
480
486
  search?: string | undefined;
487
+ itemsLength?: string | number | undefined;
481
488
  } & {
482
489
  "onUpdate:currentItems"?: ((value: any) => any) | undefined;
483
490
  "onUpdate:expanded"?: ((value: any) => any) | undefined;
@@ -555,6 +562,7 @@ export declare const VDataIterator: {
555
562
  customKeySort?: Record<string, import("../../types.js").DataTableCompareFunction> | undefined;
556
563
  valueComparator?: typeof import("../../util/index.js").deepEqual | undefined;
557
564
  search?: string | undefined;
565
+ itemsLength?: string | number | undefined;
558
566
  } & {
559
567
  "onUpdate:currentItems"?: ((value: any) => any) | undefined;
560
568
  "onUpdate:expanded"?: ((value: any) => any) | undefined;
@@ -714,6 +722,7 @@ export declare const VDataIterator: {
714
722
  returnObject: BooleanConstructor;
715
723
  search: StringConstructor;
716
724
  loading: BooleanConstructor;
725
+ itemsLength: (NumberConstructor | StringConstructor)[];
717
726
  }, import("vue").ExtractPropTypes<{
718
727
  class: import("vue").PropType<any>;
719
728
  style: {
@@ -807,6 +816,7 @@ export declare const VDataIterator: {
807
816
  returnObject: BooleanConstructor;
808
817
  search: StringConstructor;
809
818
  loading: BooleanConstructor;
819
+ itemsLength: (NumberConstructor | StringConstructor)[];
810
820
  }>>;
811
821
  export type VDataIterator = InstanceType<typeof VDataIterator>;
812
822
 
@@ -13,12 +13,14 @@ import { makeFilterProps, useFilter } from "../../composables/filter.js";
13
13
  import { LoaderSlot } from "../../composables/loader.js";
14
14
  import { useProxiedModel } from "../../composables/proxiedModel.js";
15
15
  import { makeTagProps } from "../../composables/tag.js";
16
+ import { useToggleScope } from "../../composables/toggleScope.js";
16
17
  import { makeTransitionProps, MaybeTransition } from "../../composables/transition.js"; // Utilities
17
- import { computed, toRef } from 'vue';
18
- import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
18
+ import { computed, shallowRef, toRef, watchEffect } from 'vue';
19
+ import { genericComponent, isEmpty, propsFactory, useRender } from "../../util/index.js"; // Types
19
20
  export const makeVDataIteratorProps = propsFactory({
20
21
  search: String,
21
22
  loading: Boolean,
23
+ itemsLength: [Number, String],
22
24
  ...makeComponentProps(),
23
25
  ...makeDataIteratorItemsProps(),
24
26
  ...makeDataTableSelectProps(),
@@ -101,7 +103,8 @@ export const VDataIterator = genericComponent()({
101
103
  const {
102
104
  flatItems
103
105
  } = useGroupedItems(sortedItems, groupBy, opened, false);
104
- const itemsLength = toRef(() => flatItems.value.length);
106
+ const manualPagination = toRef(() => !isEmpty(props.itemsLength));
107
+ const itemsLength = toRef(() => manualPagination.value ? Number(props.itemsLength) : flatItems.value.length);
105
108
  const {
106
109
  startIndex,
107
110
  stopIndex,
@@ -115,15 +118,22 @@ export const VDataIterator = genericComponent()({
115
118
  itemsPerPage,
116
119
  itemsLength
117
120
  });
118
- const {
119
- paginatedItems
120
- } = usePaginatedItems({
121
- items: flatItems,
122
- startIndex,
123
- stopIndex,
124
- itemsPerPage
121
+ const paginatedItems = shallowRef([]);
122
+ const currentItems = computed(() => manualPagination.value ? flatItems.value : paginatedItems.value);
123
+ useToggleScope(() => !manualPagination.value, () => {
124
+ const {
125
+ paginatedItems: items
126
+ } = usePaginatedItems({
127
+ items: flatItems,
128
+ startIndex,
129
+ stopIndex,
130
+ itemsPerPage
131
+ });
132
+ watchEffect(() => {
133
+ paginatedItems.value = items.value;
134
+ });
125
135
  });
126
- const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value));
136
+ const currentItemsWithoutGroups = computed(() => extractRows(currentItems.value));
127
137
  const {
128
138
  isSelected,
129
139
  select,
@@ -131,7 +141,7 @@ export const VDataIterator = genericComponent()({
131
141
  toggleSelect
132
142
  } = provideSelection(props, {
133
143
  allItems: items,
134
- currentPage: paginatedItemsWithoutGroups
144
+ currentPage: currentItemsWithoutGroups
135
145
  });
136
146
  const {
137
147
  isExpanded,
@@ -162,9 +172,9 @@ export const VDataIterator = genericComponent()({
162
172
  toggleExpand,
163
173
  isGroupOpen,
164
174
  toggleGroup,
165
- items: paginatedItemsWithoutGroups.value,
175
+ items: currentItemsWithoutGroups.value,
166
176
  itemsCount: filteredItems.value.length,
167
- groupedItems: paginatedItems.value
177
+ groupedItems: currentItems.value
168
178
  }));
169
179
  useRender(() => _createVNode(props.tag, {
170
180
  "class": _normalizeClass(['v-data-iterator', {
@@ -183,7 +193,7 @@ export const VDataIterator = genericComponent()({
183
193
  default: slotProps => slots.loader?.(slotProps)
184
194
  }) : _createElementVNode("div", {
185
195
  "key": "items"
186
- }, [!paginatedItems.value.length ? slots['no-data']?.() : slots.default?.(slotProps.value)])]
196
+ }, [!currentItems.value.length ? slots['no-data']?.() : slots.default?.(slotProps.value)])]
187
197
  }), slots.footer?.(slotProps.value)]
188
198
  }));
189
199
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"VDataIterator.js","names":["VFadeTransition","makeDataTableExpandProps","provideExpanded","makeDataTableGroupProps","provideGroupBy","useGroupedItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","createSort","makeDataTableSortProps","provideSort","useSortedItems","makeDataIteratorItemsProps","useDataIteratorItems","makeComponentProps","makeFilterProps","useFilter","LoaderSlot","useProxiedModel","makeTagProps","makeTransitionProps","MaybeTransition","computed","toRef","genericComponent","propsFactory","useRender","makeVDataIteratorProps","search","String","loading","Boolean","itemsPerPage","transition","component","hideOnLeave","VDataIterator","name","props","emits","value","setup","_ref","slots","groupBy","items","filteredItems","transform","item","raw","initialSortOrder","sortBy","multiSort","mustSort","page","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","pageCount","prevPage","nextPage","setItemsPerPage","setPage","paginatedItems","paginatedItemsWithoutGroups","isSelected","select","selectAll","toggleSelect","allItems","currentPage","isExpanded","toggleExpand","slotProps","itemsCount","groupedItems","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style","default","header","loader","_createElementVNode","footer"],"sources":["../../../src/components/VDataIterator/VDataIterator.tsx"],"sourcesContent":["// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { makeDataTableExpandProps, provideExpanded } from '@/components/VDataTable/composables/expand'\nimport { makeDataTableGroupProps, provideGroupBy, useGroupedItems } from '@/components/VDataTable/composables/group'\nimport { useOptions } from '@/components/VDataTable/composables/options'\nimport {\n createPagination,\n makeDataTablePaginateProps,\n providePagination,\n usePaginatedItems,\n} from '@/components/VDataTable/composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from '@/components/VDataTable/composables/select'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from '@/components/VDataTable/composables/sort'\n\n// Composables\nimport { makeDataIteratorItemsProps, useDataIteratorItems } from './composables/items'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { LoaderSlot } from '@/composables/loader'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { DataIteratorItem } from './composables/items'\nimport type { Group, GroupSummary } from '@/components/VDataTable/composables/group'\nimport type { SortItem } from '@/components/VDataTable/composables/sort'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\ntype VDataIteratorSlotProps<T> = {\n page: number\n itemsPerPage: number\n sortBy: readonly SortItem[]\n pageCount: number\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n prevPage: ReturnType<typeof providePagination>['prevPage']\n nextPage: ReturnType<typeof providePagination>['nextPage']\n setPage: ReturnType<typeof providePagination>['setPage']\n setItemsPerPage: ReturnType<typeof providePagination>['setItemsPerPage']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n select: ReturnType<typeof provideSelection>['select']\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n items: readonly DataIteratorItem<T>[]\n itemsCount: number\n groupedItems: readonly (DataIteratorItem<T> | Group<DataIteratorItem<T>> | GroupSummary<DataIteratorItem<T>>)[]\n}\n\nexport type VDataIteratorSlots<T> = {\n default: VDataIteratorSlotProps<T>\n header: VDataIteratorSlotProps<T>\n footer: VDataIteratorSlotProps<T>\n loader: LoaderSlotProps\n 'no-data': never\n}\n\nexport const makeVDataIteratorProps = propsFactory({\n search: String,\n loading: Boolean,\n\n ...makeComponentProps(),\n ...makeDataIteratorItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps({ itemsPerPage: 5 }),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeFilterProps(),\n ...makeTagProps(),\n ...makeTransitionProps({\n transition: {\n component: VFadeTransition as Component,\n hideOnLeave: true,\n },\n }),\n}, 'VDataIterator')\n\nexport const VDataIterator = genericComponent<new <T> (\n props: {\n items?: readonly T[]\n },\n slots: VDataIteratorSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataIterator',\n\n props: makeVDataIteratorProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:groupBy': (value: any) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'update:currentItems': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n const search = toRef(() => props.search)\n\n const { items } = useDataIteratorItems(props)\n const { filteredItems } = useFilter(props, items, search, { transform: item => item.raw })\n\n const { initialSortOrder, sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { toggleSort } = provideSort({ initialSortOrder, sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, { transform: item => item.raw })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened, false)\n\n const itemsLength = toRef(() => flatItems.value.length)\n\n const {\n startIndex,\n stopIndex,\n pageCount,\n prevPage,\n nextPage,\n setItemsPerPage,\n setPage,\n } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n } = provideSelection(props, { allItems: items, currentPage: paginatedItemsWithoutGroups })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n prevPage,\n nextPage,\n setPage,\n setItemsPerPage,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value,\n itemsCount: filteredItems.value.length,\n groupedItems: paginatedItems.value,\n }))\n\n useRender(() => (\n <props.tag\n class={[\n 'v-data-iterator',\n {\n 'v-data-iterator--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n >\n { slots.header?.(slotProps.value) }\n\n <MaybeTransition transition={ props.transition }>\n { props.loading ? (\n <LoaderSlot key=\"loader\" name=\"v-data-iterator\" active>\n { slotProps => slots.loader?.(slotProps) }\n </LoaderSlot>\n ) : (\n <div key=\"items\">\n { !paginatedItems.value.length\n ? slots['no-data']?.()\n : slots.default?.(slotProps.value)\n }\n </div>\n )}\n </MaybeTransition>\n\n { slots.footer?.(slotProps.value) }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VDataIterator = InstanceType<typeof VDataIterator>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDataIterator.js","names":["VFadeTransition","makeDataTableExpandProps","provideExpanded","makeDataTableGroupProps","provideGroupBy","useGroupedItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","createSort","makeDataTableSortProps","provideSort","useSortedItems","makeDataIteratorItemsProps","useDataIteratorItems","makeComponentProps","makeFilterProps","useFilter","LoaderSlot","useProxiedModel","makeTagProps","useToggleScope","makeTransitionProps","MaybeTransition","computed","shallowRef","toRef","watchEffect","genericComponent","isEmpty","propsFactory","useRender","makeVDataIteratorProps","search","String","loading","Boolean","itemsLength","Number","itemsPerPage","transition","component","hideOnLeave","VDataIterator","name","props","emits","value","setup","_ref","slots","groupBy","items","filteredItems","transform","item","raw","initialSortOrder","sortBy","multiSort","mustSort","page","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","flatItems","manualPagination","length","startIndex","stopIndex","pageCount","prevPage","nextPage","setItemsPerPage","setPage","paginatedItems","currentItems","currentItemsWithoutGroups","isSelected","select","selectAll","toggleSelect","allItems","currentPage","isExpanded","toggleExpand","slotProps","itemsCount","groupedItems","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style","default","header","loader","_createElementVNode","footer"],"sources":["../../../src/components/VDataIterator/VDataIterator.tsx"],"sourcesContent":["// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { makeDataTableExpandProps, provideExpanded } from '@/components/VDataTable/composables/expand'\nimport { makeDataTableGroupProps, provideGroupBy, useGroupedItems } from '@/components/VDataTable/composables/group'\nimport { useOptions } from '@/components/VDataTable/composables/options'\nimport {\n createPagination,\n makeDataTablePaginateProps,\n providePagination,\n usePaginatedItems,\n} from '@/components/VDataTable/composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from '@/components/VDataTable/composables/select'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from '@/components/VDataTable/composables/sort'\n\n// Composables\nimport { makeDataIteratorItemsProps, useDataIteratorItems } from './composables/items'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { LoaderSlot } from '@/composables/loader'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTagProps } from '@/composables/tag'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, shallowRef, toRef, watchEffect } from 'vue'\nimport { genericComponent, isEmpty, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { DataIteratorItem } from './composables/items'\nimport type { Group, GroupSummary } from '@/components/VDataTable/composables/group'\nimport type { SortItem } from '@/components/VDataTable/composables/sort'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\ntype VDataIteratorSlotProps<T> = {\n page: number\n itemsPerPage: number\n sortBy: readonly SortItem[]\n pageCount: number\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n prevPage: ReturnType<typeof providePagination>['prevPage']\n nextPage: ReturnType<typeof providePagination>['nextPage']\n setPage: ReturnType<typeof providePagination>['setPage']\n setItemsPerPage: ReturnType<typeof providePagination>['setItemsPerPage']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n select: ReturnType<typeof provideSelection>['select']\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n items: readonly DataIteratorItem<T>[]\n itemsCount: number\n groupedItems: readonly (DataIteratorItem<T> | Group<DataIteratorItem<T>> | GroupSummary<DataIteratorItem<T>>)[]\n}\n\nexport type VDataIteratorSlots<T> = {\n default: VDataIteratorSlotProps<T>\n header: VDataIteratorSlotProps<T>\n footer: VDataIteratorSlotProps<T>\n loader: LoaderSlotProps\n 'no-data': never\n}\n\nexport const makeVDataIteratorProps = propsFactory({\n search: String,\n loading: Boolean,\n itemsLength: [Number, String],\n\n ...makeComponentProps(),\n ...makeDataIteratorItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps({ itemsPerPage: 5 }),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeFilterProps(),\n ...makeTagProps(),\n ...makeTransitionProps({\n transition: {\n component: VFadeTransition as Component,\n hideOnLeave: true,\n },\n }),\n}, 'VDataIterator')\n\nexport const VDataIterator = genericComponent<new <T> (\n props: {\n items?: readonly T[]\n },\n slots: VDataIteratorSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataIterator',\n\n props: makeVDataIteratorProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:groupBy': (value: any) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'update:currentItems': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n const search = toRef(() => props.search)\n\n const { items } = useDataIteratorItems(props)\n const { filteredItems } = useFilter(props, items, search, { transform: item => item.raw })\n\n const { initialSortOrder, sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { toggleSort } = provideSort({ initialSortOrder, sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, { transform: item => item.raw })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened, false)\n\n const manualPagination = toRef(() => !isEmpty(props.itemsLength))\n const itemsLength = toRef(() => manualPagination.value ? Number(props.itemsLength) : flatItems.value.length)\n\n const {\n startIndex,\n stopIndex,\n pageCount,\n prevPage,\n nextPage,\n setItemsPerPage,\n setPage,\n } = providePagination({ page, itemsPerPage, itemsLength })\n\n const paginatedItems = shallowRef<typeof flatItems.value>([])\n const currentItems = computed(() => manualPagination.value ? flatItems.value : paginatedItems.value)\n\n useToggleScope(() => !manualPagination.value, () => {\n const { paginatedItems: items } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n watchEffect(() => {\n paginatedItems.value = items.value\n })\n })\n\n const currentItemsWithoutGroups = computed(() => extractRows(currentItems.value))\n\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n } = provideSelection(props, { allItems: items, currentPage: currentItemsWithoutGroups })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n prevPage,\n nextPage,\n setPage,\n setItemsPerPage,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: currentItemsWithoutGroups.value,\n itemsCount: filteredItems.value.length,\n groupedItems: currentItems.value,\n }))\n\n useRender(() => (\n <props.tag\n class={[\n 'v-data-iterator',\n {\n 'v-data-iterator--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n >\n { slots.header?.(slotProps.value) }\n\n <MaybeTransition transition={ props.transition }>\n { props.loading ? (\n <LoaderSlot key=\"loader\" name=\"v-data-iterator\" active>\n { slotProps => slots.loader?.(slotProps) }\n </LoaderSlot>\n ) : (\n <div key=\"items\">\n { !currentItems.value.length\n ? slots['no-data']?.()\n : slots.default?.(slotProps.value)\n }\n </div>\n )}\n </MaybeTransition>\n\n { slots.footer?.(slotProps.value) }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VDataIterator = InstanceType<typeof VDataIterator>\n"],"mappings":";AAAA;AAAA,SACSA,eAAe;AAAA,SACfC,wBAAwB,EAAEC,eAAe;AAAA,SACzCC,uBAAuB,EAAEC,cAAc,EAAEC,eAAe;AAAA,SACxDC,UAAU;AAAA,SAEjBC,gBAAgB,EAChBC,0BAA0B,EAC1BC,iBAAiB,EACjBC,iBAAiB;AAAA,SAEVC,wBAAwB,EAAEC,gBAAgB;AAAA,SAC1CC,UAAU,EAAEC,sBAAsB,EAAEC,WAAW,EAAEC,cAAc,6CAExE;AAAA,SACSC,0BAA0B,EAAEC,oBAAoB;AAAA,SAChDC,kBAAkB;AAAA,SAClBC,eAAe,EAAEC,SAAS;AAAA,SAC1BC,UAAU;AAAA,SACVC,eAAe;AAAA,SACfC,YAAY;AAAA,SACZC,cAAc;AAAA,SACdC,mBAAmB,EAAEC,eAAe,2CAE7C;AACA,SAASC,QAAQ,EAAEC,UAAU,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SACrDC,gBAAgB,EAAEC,OAAO,EAAEC,YAAY,EAAEC,SAAS,+BAE3D;AAuCA,OAAO,MAAMC,sBAAsB,GAAGF,YAAY,CAAC;EACjDG,MAAM,EAAEC,MAAM;EACdC,OAAO,EAAEC,OAAO;EAChBC,WAAW,EAAE,CAACC,MAAM,EAAEJ,MAAM,CAAC;EAE7B,GAAGnB,kBAAkB,CAAC,CAAC;EACvB,GAAGF,0BAA0B,CAAC,CAAC;EAC/B,GAAGN,wBAAwB,CAAC,CAAC;EAC7B,GAAGG,sBAAsB,CAAC,CAAC;EAC3B,GAAGN,0BAA0B,CAAC;IAAEmC,YAAY,EAAE;EAAE,CAAC,CAAC;EAClD,GAAG1C,wBAAwB,CAAC,CAAC;EAC7B,GAAGE,uBAAuB,CAAC,CAAC;EAC5B,GAAGiB,eAAe,CAAC,CAAC;EACpB,GAAGI,YAAY,CAAC,CAAC;EACjB,GAAGE,mBAAmB,CAAC;IACrBkB,UAAU,EAAE;MACVC,SAAS,EAAE7C,eAA4B;MACvC8C,WAAW,EAAE;IACf;EACF,CAAC;AACH,CAAC,EAAE,eAAe,CAAC;AAEnB,OAAO,MAAMC,aAAa,GAAGf,gBAAgB,CAKE,CAAC,CAAC;EAC/CgB,IAAI,EAAE,eAAe;EAErBC,KAAK,EAAEb,sBAAsB,CAAC,CAAC;EAE/Bc,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAY,IAAK,IAAI;IAC3C,gBAAgB,EAAGA,KAAU,IAAK,IAAI;IACtC,aAAa,EAAGA,KAAa,IAAK,IAAI;IACtC,qBAAqB,EAAGA,KAAa,IAAK,IAAI;IAC9C,eAAe,EAAGA,KAAU,IAAK,IAAI;IACrC,gBAAgB,EAAGA,KAAU,IAAK,IAAI;IACtC,iBAAiB,EAAGA,KAAU,IAAK,IAAI;IACvC,qBAAqB,EAAGA,KAAU,IAAK;EACzC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,OAAO,GAAGhC,eAAe,CAAC0B,KAAK,EAAE,SAAS,CAAC;IACjD,MAAMZ,MAAM,GAAGP,KAAK,CAAC,MAAMmB,KAAK,CAACZ,MAAM,CAAC;IAExC,MAAM;MAAEmB;IAAM,CAAC,GAAGtC,oBAAoB,CAAC+B,KAAK,CAAC;IAC7C,MAAM;MAAEQ;IAAc,CAAC,GAAGpC,SAAS,CAAC4B,KAAK,EAAEO,KAAK,EAAEnB,MAAM,EAAE;MAAEqB,SAAS,EAAEC,IAAI,IAAIA,IAAI,CAACC;IAAI,CAAC,CAAC;IAE1F,MAAM;MAAEC,gBAAgB;MAAEC,MAAM;MAAEC,SAAS;MAAEC;IAAS,CAAC,GAAGnD,UAAU,CAACoC,KAAK,CAAC;IAC3E,MAAM;MAAEgB,IAAI;MAAEtB;IAAa,CAAC,GAAGpC,gBAAgB,CAAC0C,KAAK,CAAC;IAEtD,MAAM;MAAEiB;IAAW,CAAC,GAAGnD,WAAW,CAAC;MAAE8C,gBAAgB;MAAEC,MAAM;MAAEC,SAAS;MAAEC,QAAQ;MAAEC;IAAK,CAAC,CAAC;IAC3F,MAAM;MAAEE,gBAAgB;MAAEC,MAAM;MAAEC,WAAW;MAAEC,WAAW;MAAEC;IAAY,CAAC,GAAGnE,cAAc,CAAC;MAAEmD,OAAO;MAAEO;IAAO,CAAC,CAAC;IAE/G,MAAM;MAAEU;IAAY,CAAC,GAAGxD,cAAc,CAACiC,KAAK,EAAEQ,aAAa,EAAEU,gBAAgB,EAAE;MAAET,SAAS,EAAEC,IAAI,IAAIA,IAAI,CAACC;IAAI,CAAC,CAAC;IAC/G,MAAM;MAAEa;IAAU,CAAC,GAAGpE,eAAe,CAACmE,WAAW,EAAEjB,OAAO,EAAEa,MAAM,EAAE,KAAK,CAAC;IAE1E,MAAMM,gBAAgB,GAAG5C,KAAK,CAAC,MAAM,CAACG,OAAO,CAACgB,KAAK,CAACR,WAAW,CAAC,CAAC;IACjE,MAAMA,WAAW,GAAGX,KAAK,CAAC,MAAM4C,gBAAgB,CAACvB,KAAK,GAAGT,MAAM,CAACO,KAAK,CAACR,WAAW,CAAC,GAAGgC,SAAS,CAACtB,KAAK,CAACwB,MAAM,CAAC;IAE5G,MAAM;MACJC,UAAU;MACVC,SAAS;MACTC,SAAS;MACTC,QAAQ;MACRC,QAAQ;MACRC,eAAe;MACfC;IACF,CAAC,GAAGzE,iBAAiB,CAAC;MAAEwD,IAAI;MAAEtB,YAAY;MAAEF;IAAY,CAAC,CAAC;IAE1D,MAAM0C,cAAc,GAAGtD,UAAU,CAAyB,EAAE,CAAC;IAC7D,MAAMuD,YAAY,GAAGxD,QAAQ,CAAC,MAAM8C,gBAAgB,CAACvB,KAAK,GAAGsB,SAAS,CAACtB,KAAK,GAAGgC,cAAc,CAAChC,KAAK,CAAC;IAEpG1B,cAAc,CAAC,MAAM,CAACiD,gBAAgB,CAACvB,KAAK,EAAE,MAAM;MAClD,MAAM;QAAEgC,cAAc,EAAE3B;MAAM,CAAC,GAAG9C,iBAAiB,CAAC;QAAE8C,KAAK,EAAEiB,SAAS;QAAEG,UAAU;QAAEC,SAAS;QAAElC;MAAa,CAAC,CAAC;MAE9GZ,WAAW,CAAC,MAAM;QAChBoD,cAAc,CAAChC,KAAK,GAAGK,KAAK,CAACL,KAAK;MACpC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAMkC,yBAAyB,GAAGzD,QAAQ,CAAC,MAAMyC,WAAW,CAACe,YAAY,CAACjC,KAAK,CAAC,CAAC;IAEjF,MAAM;MACJmC,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC;IACF,CAAC,GAAG7E,gBAAgB,CAACqC,KAAK,EAAE;MAAEyC,QAAQ,EAAElC,KAAK;MAAEmC,WAAW,EAAEN;IAA0B,CAAC,CAAC;IACxF,MAAM;MAAEO,UAAU;MAAEC;IAAa,CAAC,GAAG3F,eAAe,CAAC+C,KAAK,CAAC;IAE3D3C,UAAU,CAAC;MACT2D,IAAI;MACJtB,YAAY;MACZmB,MAAM;MACNP,OAAO;MACPlB;IACF,CAAC,CAAC;IAEF,MAAMyD,SAAS,GAAGlE,QAAQ,CAAC,OAAO;MAChCqC,IAAI,EAAEA,IAAI,CAACd,KAAK;MAChBR,YAAY,EAAEA,YAAY,CAACQ,KAAK;MAChCW,MAAM,EAAEA,MAAM,CAACX,KAAK;MACpB2B,SAAS,EAAEA,SAAS,CAAC3B,KAAK;MAC1Be,UAAU;MACVa,QAAQ;MACRC,QAAQ;MACRE,OAAO;MACPD,eAAe;MACfK,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC,YAAY;MACZG,UAAU;MACVC,YAAY;MACZvB,WAAW;MACXC,WAAW;MACXf,KAAK,EAAE6B,yBAAyB,CAAClC,KAAK;MACtC4C,UAAU,EAAEtC,aAAa,CAACN,KAAK,CAACwB,MAAM;MACtCqB,YAAY,EAAEZ,YAAY,CAACjC;IAC7B,CAAC,CAAC,CAAC;IAEHhB,SAAS,CAAC,MAAA8D,YAAA,CAAAhD,KAAA,CAAAiD,GAAA;MAAA,SAAAC,eAAA,CAEC,CACL,iBAAiB,EACjB;QACE,0BAA0B,EAAElD,KAAK,CAACV;MACpC,CAAC,EACDU,KAAK,CAACmD,KAAK,CACZ;MAAA,SAAAC,eAAA,CACOpD,KAAK,CAACqD,KAAK;IAAA;MAAAC,OAAA,EAAAA,CAAA,MAEjBjD,KAAK,CAACkD,MAAM,GAAGV,SAAS,CAAC3C,KAAK,CAAC,EAAA8C,YAAA,CAAAtE,eAAA;QAAA,cAEHsB,KAAK,CAACL;MAAU;QAAA2D,OAAA,EAAAA,CAAA,MAC1CtD,KAAK,CAACV,OAAO,GAAA0D,YAAA,CAAA3E,UAAA;UAAA;UAAA;UAAA;QAAA;UAAAiF,OAAA,EAETT,SAAS,IAAIxC,KAAK,CAACmD,MAAM,GAAGX,SAAS;QAAC,KAAAY,mBAAA;UAAA;QAAA,IAItC,CAACtB,YAAY,CAACjC,KAAK,CAACwB,MAAM,GACxBrB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GACpBA,KAAK,CAACiD,OAAO,GAAGT,SAAS,CAAC3C,KAAK,CAAC,EAGvC;MAAA,IAGDG,KAAK,CAACqD,MAAM,GAAGb,SAAS,CAAC3C,KAAK,CAAC;IAAA,EAEpC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.11.4-dev.2025-12-22";
19
+ export const version = "3.11.4-dev.2025-12-23";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";
@@ -2779,54 +2779,44 @@ declare module 'vue' {
2779
2779
  $children?: VNodeChild
2780
2780
  }
2781
2781
  export interface GlobalComponents {
2782
- VAlert: typeof import('vuetify/components')['VAlert']
2783
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2784
- VApp: typeof import('vuetify/components')['VApp']
2785
2782
  VAppBar: typeof import('vuetify/components')['VAppBar']
2786
2783
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2787
2784
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2788
- VAvatar: typeof import('vuetify/components')['VAvatar']
2785
+ VApp: typeof import('vuetify/components')['VApp']
2789
2786
  VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2790
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2787
+ VAlert: typeof import('vuetify/components')['VAlert']
2788
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2791
2789
  VBanner: typeof import('vuetify/components')['VBanner']
2792
2790
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
2793
2791
  VBannerText: typeof import('vuetify/components')['VBannerText']
2794
- VBtn: typeof import('vuetify/components')['VBtn']
2792
+ VAvatar: typeof import('vuetify/components')['VAvatar']
2795
2793
  VBadge: typeof import('vuetify/components')['VBadge']
2794
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2795
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2796
+ VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2797
+ VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2798
+ VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2799
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2796
2800
  VCard: typeof import('vuetify/components')['VCard']
2797
2801
  VCardActions: typeof import('vuetify/components')['VCardActions']
2798
2802
  VCardItem: typeof import('vuetify/components')['VCardItem']
2799
2803
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
2800
2804
  VCardText: typeof import('vuetify/components')['VCardText']
2801
2805
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2802
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2806
+ VCalendar: typeof import('vuetify/components')['VCalendar']
2803
2807
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2804
- VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2805
- VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2806
- VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2807
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2808
+ VBtn: typeof import('vuetify/components')['VBtn']
2809
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
2810
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2808
2811
  VChip: typeof import('vuetify/components')['VChip']
2809
- VCalendar: typeof import('vuetify/components')['VCalendar']
2810
- VCode: typeof import('vuetify/components')['VCode']
2811
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
2812
2812
  VCarousel: typeof import('vuetify/components')['VCarousel']
2813
2813
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2814
- VCounter: typeof import('vuetify/components')['VCounter']
2815
- VCombobox: typeof import('vuetify/components')['VCombobox']
2814
+ VCode: typeof import('vuetify/components')['VCode']
2816
2815
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
2817
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
2818
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2819
- VDatePicker: typeof import('vuetify/components')['VDatePicker']
2820
- VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2821
- VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2822
- VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2823
- VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2824
- VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2825
- VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2826
- VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2827
- VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2828
- VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2829
- VDivider: typeof import('vuetify/components')['VDivider']
2816
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
2817
+ VCombobox: typeof import('vuetify/components')['VCombobox']
2818
+ VDialog: typeof import('vuetify/components')['VDialog']
2819
+ VCounter: typeof import('vuetify/components')['VCounter']
2830
2820
  VDataTable: typeof import('vuetify/components')['VDataTable']
2831
2821
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
2832
2822
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -2834,27 +2824,36 @@ declare module 'vue' {
2834
2824
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2835
2825
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2836
2826
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2837
- VDialog: typeof import('vuetify/components')['VDialog']
2838
- VFab: typeof import('vuetify/components')['VFab']
2827
+ VDivider: typeof import('vuetify/components')['VDivider']
2828
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
2829
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2830
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2831
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2832
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2833
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2839
2834
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
2840
- VFileInput: typeof import('vuetify/components')['VFileInput']
2841
- VFooter: typeof import('vuetify/components')['VFooter']
2842
2835
  VField: typeof import('vuetify/components')['VField']
2843
2836
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2837
+ VFab: typeof import('vuetify/components')['VFab']
2838
+ VFooter: typeof import('vuetify/components')['VFooter']
2844
2839
  VHotkey: typeof import('vuetify/components')['VHotkey']
2840
+ VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2841
+ VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2842
+ VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2843
+ VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2844
+ VImg: typeof import('vuetify/components')['VImg']
2845
2845
  VIcon: typeof import('vuetify/components')['VIcon']
2846
2846
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2847
2847
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2848
2848
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2849
2849
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
2850
- VImg: typeof import('vuetify/components')['VImg']
2851
2850
  VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2851
+ VFileInput: typeof import('vuetify/components')['VFileInput']
2852
2852
  VLabel: typeof import('vuetify/components')['VLabel']
2853
2853
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
2854
2854
  VItem: typeof import('vuetify/components')['VItem']
2855
- VInput: typeof import('vuetify/components')['VInput']
2856
2855
  VKbd: typeof import('vuetify/components')['VKbd']
2857
- VMain: typeof import('vuetify/components')['VMain']
2856
+ VInput: typeof import('vuetify/components')['VInput']
2858
2857
  VList: typeof import('vuetify/components')['VList']
2859
2858
  VListGroup: typeof import('vuetify/components')['VListGroup']
2860
2859
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -2864,26 +2863,27 @@ declare module 'vue' {
2864
2863
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
2865
2864
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2866
2865
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
2867
- VNumberInput: typeof import('vuetify/components')['VNumberInput']
2868
- VMessages: typeof import('vuetify/components')['VMessages']
2866
+ VMain: typeof import('vuetify/components')['VMain']
2869
2867
  VMenu: typeof import('vuetify/components')['VMenu']
2868
+ VMessages: typeof import('vuetify/components')['VMessages']
2869
+ VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2870
+ VOverlay: typeof import('vuetify/components')['VOverlay']
2870
2871
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
2871
- VPagination: typeof import('vuetify/components')['VPagination']
2872
- VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2872
+ VNumberInput: typeof import('vuetify/components')['VNumberInput']
2873
+ VSheet: typeof import('vuetify/components')['VSheet']
2874
+ VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2873
2875
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2874
- VOverlay: typeof import('vuetify/components')['VOverlay']
2875
- VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2876
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2876
+ VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2877
2877
  VSelect: typeof import('vuetify/components')['VSelect']
2878
- VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2879
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2878
+ VPagination: typeof import('vuetify/components')['VPagination']
2880
2879
  VRating: typeof import('vuetify/components')['VRating']
2881
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2880
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2881
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2882
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
2882
2883
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2883
2884
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2884
- VSheet: typeof import('vuetify/components')['VSheet']
2885
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
2886
2885
  VSlider: typeof import('vuetify/components')['VSlider']
2886
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2887
2887
  VStepper: typeof import('vuetify/components')['VStepper']
2888
2888
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
2889
2889
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
@@ -2891,37 +2891,37 @@ declare module 'vue' {
2891
2891
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
2892
2892
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
2893
2893
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
2894
+ VSwitch: typeof import('vuetify/components')['VSwitch']
2895
+ VTextField: typeof import('vuetify/components')['VTextField']
2894
2896
  VTab: typeof import('vuetify/components')['VTab']
2895
2897
  VTabs: typeof import('vuetify/components')['VTabs']
2896
2898
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
2897
2899
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2898
- VSwitch: typeof import('vuetify/components')['VSwitch']
2899
- VTable: typeof import('vuetify/components')['VTable']
2900
2900
  VTextarea: typeof import('vuetify/components')['VTextarea']
2901
+ VTimeline: typeof import('vuetify/components')['VTimeline']
2902
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2903
+ VTable: typeof import('vuetify/components')['VTable']
2904
+ VTreeview: typeof import('vuetify/components')['VTreeview']
2905
+ VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
2906
+ VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
2901
2907
  VTimePicker: typeof import('vuetify/components')['VTimePicker']
2902
2908
  VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
2903
2909
  VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
2904
2910
  VToolbar: typeof import('vuetify/components')['VToolbar']
2905
2911
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2906
2912
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2907
- VTextField: typeof import('vuetify/components')['VTextField']
2908
- VTimeline: typeof import('vuetify/components')['VTimeline']
2909
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2910
2913
  VWindow: typeof import('vuetify/components')['VWindow']
2911
2914
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
2912
- VTreeview: typeof import('vuetify/components')['VTreeview']
2913
- VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
2914
- VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
2915
2915
  VTooltip: typeof import('vuetify/components')['VTooltip']
2916
2916
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
2917
2917
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2918
2918
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
2919
- VHover: typeof import('vuetify/components')['VHover']
2920
2919
  VForm: typeof import('vuetify/components')['VForm']
2921
2920
  VContainer: typeof import('vuetify/components')['VContainer']
2922
2921
  VCol: typeof import('vuetify/components')['VCol']
2923
2922
  VRow: typeof import('vuetify/components')['VRow']
2924
2923
  VSpacer: typeof import('vuetify/components')['VSpacer']
2924
+ VHover: typeof import('vuetify/components')['VHover']
2925
2925
  VLazy: typeof import('vuetify/components')['VLazy']
2926
2926
  VLayout: typeof import('vuetify/components')['VLayout']
2927
2927
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
@@ -2929,8 +2929,8 @@ declare module 'vue' {
2929
2929
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
2930
2930
  VParallax: typeof import('vuetify/components')['VParallax']
2931
2931
  VRadio: typeof import('vuetify/components')['VRadio']
2932
- VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2933
2932
  VResponsive: typeof import('vuetify/components')['VResponsive']
2933
+ VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2934
2934
  VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
2935
2935
  VSparkline: typeof import('vuetify/components')['VSparkline']
2936
2936
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
@@ -2953,23 +2953,23 @@ declare module 'vue' {
2953
2953
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
2954
2954
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
2955
2955
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
2956
+ VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2957
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
2958
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2956
2959
  VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2960
+ VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2961
+ VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2957
2962
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2958
2963
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2959
2964
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2960
2965
  VPie: typeof import('vuetify/labs/components')['VPie']
2961
2966
  VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
2962
2967
  VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
2963
- VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2964
2968
  VVideo: typeof import('vuetify/labs/components')['VVideo']
2965
2969
  VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
2966
2970
  VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
2967
- VPicker: typeof import('vuetify/labs/components')['VPicker']
2968
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2969
- VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2970
- VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2971
- VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2972
2971
  VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
2972
+ VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2973
2973
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
2974
2974
  }
2975
2975
  export interface GlobalDirectives {
package/lib/framework.js CHANGED
@@ -110,7 +110,7 @@ export function createVuetify() {
110
110
  };
111
111
  });
112
112
  }
113
- export const version = "3.11.4-dev.2025-12-22";
113
+ export const version = "3.11.4-dev.2025-12-23";
114
114
  createVuetify.version = version;
115
115
 
116
116
  // Vue's inject() can only be used in setup
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetify/nightly",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.11.4-dev.2025-12-22",
4
+ "version": "3.11.4-dev.2025-12-23",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"