vuetify 3.6.6 → 3.6.8

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.
Files changed (134) hide show
  1. package/dist/json/attributes.json +86 -14
  2. package/dist/json/importMap-labs.json +16 -16
  3. package/dist/json/importMap.json +124 -124
  4. package/dist/json/tags.json +19 -1
  5. package/dist/json/web-types.json +239 -58
  6. package/dist/vuetify-labs.css +2274 -2182
  7. package/dist/vuetify-labs.d.ts +645 -1407
  8. package/dist/vuetify-labs.esm.js +271 -124
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +270 -123
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +2437 -2345
  13. package/dist/vuetify.d.ts +530 -1132
  14. package/dist/vuetify.esm.js +159 -91
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +158 -90
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +372 -369
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -2
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  23. package/lib/components/VAutocomplete/index.d.mts +102 -336
  24. package/lib/components/VBtn/VBtn.css +6 -0
  25. package/lib/components/VBtn/VBtn.sass +6 -0
  26. package/lib/components/VCombobox/VCombobox.mjs +4 -3
  27. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  28. package/lib/components/VCombobox/index.d.mts +102 -336
  29. package/lib/components/VConfirmEdit/VConfirmEdit.mjs +8 -0
  30. package/lib/components/VConfirmEdit/VConfirmEdit.mjs.map +1 -1
  31. package/lib/components/VConfirmEdit/index.d.mts +24 -3
  32. package/lib/components/VDataTable/VDataTable.css +4 -0
  33. package/lib/components/VDataTable/VDataTable.mjs +2 -1
  34. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  35. package/lib/components/VDataTable/VDataTable.sass +4 -0
  36. package/lib/components/VDataTable/VDataTableHeaders.mjs +4 -3
  37. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  38. package/lib/components/VDataTable/VDataTableServer.mjs +1 -1
  39. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  40. package/lib/components/VDataTable/VDataTableVirtual.mjs +1 -1
  41. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  42. package/lib/components/VDataTable/composables/sort.mjs +1 -1
  43. package/lib/components/VDataTable/composables/sort.mjs.map +1 -1
  44. package/lib/components/VDataTable/index.d.mts +63 -0
  45. package/lib/components/VDatePicker/VDatePicker.mjs +2 -1
  46. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  47. package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -0
  48. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  49. package/lib/components/VDatePicker/VDatePickerMonths.mjs +10 -1
  50. package/lib/components/VDatePicker/VDatePickerMonths.mjs.map +1 -1
  51. package/lib/components/VDatePicker/index.d.mts +24 -6
  52. package/lib/components/VDivider/VDivider.css +2 -1
  53. package/lib/components/VDivider/VDivider.mjs +1 -1
  54. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  55. package/lib/components/VDivider/VDivider.sass +2 -1
  56. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +1 -1
  57. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  58. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +1 -1
  59. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  60. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
  61. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  62. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +1 -1
  63. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  64. package/lib/components/VExpansionPanel/index.d.mts +36 -36
  65. package/lib/components/VExpansionPanel/shared.mjs +4 -0
  66. package/lib/components/VExpansionPanel/shared.mjs.map +1 -0
  67. package/lib/components/VField/VField.css +1 -0
  68. package/lib/components/VField/VField.sass +2 -0
  69. package/lib/components/VList/VList.mjs +3 -1
  70. package/lib/components/VList/VList.mjs.map +1 -1
  71. package/lib/components/VList/VListChildren.mjs +2 -1
  72. package/lib/components/VList/VListChildren.mjs.map +1 -1
  73. package/lib/components/VList/VListGroup.mjs +1 -0
  74. package/lib/components/VList/VListGroup.mjs.map +1 -1
  75. package/lib/components/VList/VListItem.css +2 -2
  76. package/lib/components/VList/VListItem.mjs +2 -0
  77. package/lib/components/VList/VListItem.mjs.map +1 -1
  78. package/lib/components/VList/VListItem.sass +1 -1
  79. package/lib/components/VList/index.d.mts +52 -66
  80. package/lib/components/VSelect/index.d.mts +102 -336
  81. package/lib/components/VSelectionControl/VSelectionControl.mjs +9 -1
  82. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  83. package/lib/components/VSlider/VSlider.mjs +2 -1
  84. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  85. package/lib/components/VSlider/VSliderThumb.mjs +2 -0
  86. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  87. package/lib/components/VSnackbar/VSnackbar.css +1 -1
  88. package/lib/components/VSnackbar/VSnackbar.sass +1 -1
  89. package/lib/components/VStepper/VStepper.mjs +19 -5
  90. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  91. package/lib/components/VStepper/VStepperItem.css +3 -0
  92. package/lib/components/VStepper/VStepperItem.mjs +1 -1
  93. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  94. package/lib/components/VStepper/VStepperItem.sass +3 -0
  95. package/lib/components/VStepper/VStepperWindow.mjs +2 -2
  96. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  97. package/lib/components/VStepper/index.d.mts +43 -9
  98. package/lib/components/VStepper/shared.mjs +4 -0
  99. package/lib/components/VStepper/shared.mjs.map +1 -0
  100. package/lib/components/VTabs/VTabs.mjs +2 -2
  101. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  102. package/lib/components/index.d.mts +490 -1092
  103. package/lib/composables/defaults.mjs +4 -2
  104. package/lib/composables/defaults.mjs.map +1 -1
  105. package/lib/composables/dimensions.mjs +16 -8
  106. package/lib/composables/dimensions.mjs.map +1 -1
  107. package/lib/composables/filter.mjs +1 -1
  108. package/lib/composables/filter.mjs.map +1 -1
  109. package/lib/entry-bundler.mjs +1 -1
  110. package/lib/framework.mjs +1 -1
  111. package/lib/index.d.mts +40 -40
  112. package/lib/labs/VCalendar/VCalendar.mjs +2 -2
  113. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  114. package/lib/labs/VDateInput/index.d.mts +6 -6
  115. package/lib/labs/VNumberInput/VNumberInput.mjs +7 -0
  116. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  117. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +1 -2
  118. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs.map +1 -1
  119. package/lib/labs/VStepperVertical/index.d.mts +43 -9
  120. package/lib/labs/VTreeview/VTreeview.mjs +1 -1
  121. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  122. package/lib/labs/VTreeview/VTreeviewChildren.mjs +30 -25
  123. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  124. package/lib/labs/VTreeview/VTreeviewItem.mjs +83 -12
  125. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  126. package/lib/labs/VTreeview/index.d.mts +110 -300
  127. package/lib/labs/components.d.mts +3408 -3564
  128. package/lib/locale/fa.mjs +10 -10
  129. package/lib/locale/fa.mjs.map +1 -1
  130. package/lib/styles/main.css +76 -0
  131. package/lib/styles/settings/_utilities.scss +5 -1
  132. package/lib/util/helpers.mjs +2 -0
  133. package/lib/util/helpers.mjs.map +1 -1
  134. package/package.json +2 -2
@@ -1,6 +1,8 @@
1
1
  // Utilities
2
2
  import { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue';
3
- import { getCurrentInstance, injectSelf, mergeDeep, toKebabCase } from "../util/index.mjs"; // Types
3
+ import { getCurrentInstance } from "../util/getCurrentInstance.mjs";
4
+ import { mergeDeep, toKebabCase } from "../util/helpers.mjs";
5
+ import { injectSelf } from "../util/injectSelf.mjs"; // Types
4
6
  export const DefaultsSymbol = Symbol.for('vuetify:defaults');
5
7
  export function createDefaults(options) {
6
8
  return ref(options);
@@ -63,7 +65,7 @@ export function internalUseDefaults() {
63
65
  if (prop === 'class' || prop === 'style') {
64
66
  return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
65
67
  } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
66
- return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue;
68
+ return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;
67
69
  }
68
70
  return propValue;
69
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.mjs","names":["computed","inject","provide","ref","shallowRef","unref","watchEffect","getCurrentInstance","injectSelf","mergeDeep","toKebabCase","DefaultsSymbol","Symbol","for","createDefaults","options","injectDefaults","defaults","Error","provideDefaults","injectedDefaults","providedDefaults","newDefaults","disabled","value","scoped","reset","root","properties","prev","len","Number","Infinity","i","propIsDefined","vnode","prop","props","internalUseDefaults","arguments","length","undefined","name","vm","type","__name","componentDefaults","_as","_props","Proxy","get","target","propValue","Reflect","filter","v","global","_subcomponentDefaults","subComponents","Object","entries","_ref","key","startsWith","toUpperCase","fromEntries","provideSubDefaults","injected","useDefaults"],"sources":["../../src/composables/defaults.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue'\nimport { getCurrentInstance, injectSelf, mergeDeep, toKebabCase } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, Ref, VNode } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type DefaultsInstance = undefined | {\n [key: string]: undefined | Record<string, unknown>\n global?: Record<string, unknown>\n}\n\nexport type DefaultsOptions = Partial<DefaultsInstance>\n\nexport const DefaultsSymbol: InjectionKey<Ref<DefaultsInstance>> = Symbol.for('vuetify:defaults')\n\nexport function createDefaults (options?: DefaultsInstance): Ref<DefaultsInstance> {\n return ref(options)\n}\n\nexport function injectDefaults () {\n const defaults = inject(DefaultsSymbol)\n\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance')\n\n return defaults\n}\n\nexport function provideDefaults (\n defaults?: MaybeRef<DefaultsInstance | undefined>,\n options?: {\n disabled?: MaybeRef<boolean | undefined>\n reset?: MaybeRef<number | string | undefined>\n root?: MaybeRef<boolean | string | undefined>\n scoped?: MaybeRef<boolean | undefined>\n }\n) {\n const injectedDefaults = injectDefaults()\n const providedDefaults = ref(defaults)\n\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled)\n\n if (disabled) return injectedDefaults.value\n\n const scoped = unref(options?.scoped)\n const reset = unref(options?.reset)\n const root = unref(options?.root)\n\n if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value\n\n let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value })\n\n if (scoped) return properties\n\n if (reset || root) {\n const len = Number(reset || Infinity)\n\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break\n }\n\n properties = properties.prev\n }\n\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, { prev: properties }), properties[root])\n }\n\n return properties\n }\n\n return properties.prev\n ? mergeDeep(properties.prev, properties)\n : properties\n }) as ComputedRef<DefaultsInstance>\n\n provide(DefaultsSymbol, newDefaults)\n\n return newDefaults\n}\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n}\n\nexport function internalUseDefaults (\n props: Record<string, any> = {},\n name?: string,\n defaults = injectDefaults()\n) {\n const vm = getCurrentInstance('useDefaults')\n\n name = name ?? vm.type.name ?? vm.type.__name\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name')\n }\n\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name])\n const _props = new Proxy(props, {\n get (target, prop) {\n const propValue = Reflect.get(target, prop)\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null)\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue\n }\n return propValue\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(([key]) => key.startsWith(key[0].toUpperCase()))\n _subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined\n } else {\n _subcomponentDefaults.value = undefined\n }\n })\n\n function provideSubDefaults () {\n const injected = injectSelf(DefaultsSymbol, vm)\n provide(DefaultsSymbol, computed(() => {\n return _subcomponentDefaults.value ? mergeDeep(\n injected?.value ?? {},\n _subcomponentDefaults.value\n ) : injected?.value\n }))\n }\n\n return { props: _props, provideSubDefaults }\n}\n\nexport function useDefaults<T extends Record<string, any>> (props: T, name?: string): T\nexport function useDefaults (props?: undefined, name?: string): Record<string, any>\nexport function useDefaults (\n props: Record<string, any> = {},\n name?: string,\n) {\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, name)\n provideSubDefaults()\n return _props\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"defaults.mjs","names":["computed","inject","provide","ref","shallowRef","unref","watchEffect","getCurrentInstance","mergeDeep","toKebabCase","injectSelf","DefaultsSymbol","Symbol","for","createDefaults","options","injectDefaults","defaults","Error","provideDefaults","injectedDefaults","providedDefaults","newDefaults","disabled","value","scoped","reset","root","properties","prev","len","Number","Infinity","i","propIsDefined","vnode","prop","props","internalUseDefaults","arguments","length","undefined","name","vm","type","__name","componentDefaults","_as","_props","Proxy","get","target","propValue","Reflect","filter","v","global","_subcomponentDefaults","subComponents","Object","entries","_ref","key","startsWith","toUpperCase","fromEntries","provideSubDefaults","injected","useDefaults"],"sources":["../../src/composables/defaults.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util/getCurrentInstance'\nimport { mergeDeep, toKebabCase } from '@/util/helpers'\nimport { injectSelf } from '@/util/injectSelf'\n\n// Types\nimport type { ComputedRef, InjectionKey, Ref, VNode } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type DefaultsInstance = undefined | {\n [key: string]: undefined | Record<string, unknown>\n global?: Record<string, unknown>\n}\n\nexport type DefaultsOptions = Partial<DefaultsInstance>\n\nexport const DefaultsSymbol: InjectionKey<Ref<DefaultsInstance>> = Symbol.for('vuetify:defaults')\n\nexport function createDefaults (options?: DefaultsInstance): Ref<DefaultsInstance> {\n return ref(options)\n}\n\nexport function injectDefaults () {\n const defaults = inject(DefaultsSymbol)\n\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance')\n\n return defaults\n}\n\nexport function provideDefaults (\n defaults?: MaybeRef<DefaultsInstance | undefined>,\n options?: {\n disabled?: MaybeRef<boolean | undefined>\n reset?: MaybeRef<number | string | undefined>\n root?: MaybeRef<boolean | string | undefined>\n scoped?: MaybeRef<boolean | undefined>\n }\n) {\n const injectedDefaults = injectDefaults()\n const providedDefaults = ref(defaults)\n\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled)\n\n if (disabled) return injectedDefaults.value\n\n const scoped = unref(options?.scoped)\n const reset = unref(options?.reset)\n const root = unref(options?.root)\n\n if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value\n\n let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value })\n\n if (scoped) return properties\n\n if (reset || root) {\n const len = Number(reset || Infinity)\n\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break\n }\n\n properties = properties.prev\n }\n\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, { prev: properties }), properties[root])\n }\n\n return properties\n }\n\n return properties.prev\n ? mergeDeep(properties.prev, properties)\n : properties\n }) as ComputedRef<DefaultsInstance>\n\n provide(DefaultsSymbol, newDefaults)\n\n return newDefaults\n}\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n}\n\nexport function internalUseDefaults (\n props: Record<string, any> = {},\n name?: string,\n defaults = injectDefaults()\n) {\n const vm = getCurrentInstance('useDefaults')\n\n name = name ?? vm.type.name ?? vm.type.__name\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name')\n }\n\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name])\n const _props = new Proxy(props, {\n get (target, prop) {\n const propValue = Reflect.get(target, prop)\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null)\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop]\n : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop]\n : propValue\n }\n return propValue\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(([key]) => key.startsWith(key[0].toUpperCase()))\n _subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined\n } else {\n _subcomponentDefaults.value = undefined\n }\n })\n\n function provideSubDefaults () {\n const injected = injectSelf(DefaultsSymbol, vm)\n provide(DefaultsSymbol, computed(() => {\n return _subcomponentDefaults.value ? mergeDeep(\n injected?.value ?? {},\n _subcomponentDefaults.value\n ) : injected?.value\n }))\n }\n\n return { props: _props, provideSubDefaults }\n}\n\nexport function useDefaults<T extends Record<string, any>> (props: T, name?: string): T\nexport function useDefaults (props?: undefined, name?: string): Record<string, any>\nexport function useDefaults (\n props: Record<string, any> = {},\n name?: string,\n) {\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, name)\n provideSubDefaults()\n return _props\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,14 +11,22 @@ export const makeDimensionProps = propsFactory({
11
11
  width: [Number, String]
12
12
  }, 'dimension');
13
13
  export function useDimension(props) {
14
- const dimensionStyles = computed(() => ({
15
- height: convertToUnit(props.height),
16
- maxHeight: convertToUnit(props.maxHeight),
17
- maxWidth: convertToUnit(props.maxWidth),
18
- minHeight: convertToUnit(props.minHeight),
19
- minWidth: convertToUnit(props.minWidth),
20
- width: convertToUnit(props.width)
21
- }));
14
+ const dimensionStyles = computed(() => {
15
+ const styles = {};
16
+ const height = convertToUnit(props.height);
17
+ const maxHeight = convertToUnit(props.maxHeight);
18
+ const maxWidth = convertToUnit(props.maxWidth);
19
+ const minHeight = convertToUnit(props.minHeight);
20
+ const minWidth = convertToUnit(props.minWidth);
21
+ const width = convertToUnit(props.width);
22
+ if (height != null) styles.height = height;
23
+ if (maxHeight != null) styles.maxHeight = maxHeight;
24
+ if (maxWidth != null) styles.maxWidth = maxWidth;
25
+ if (minHeight != null) styles.minHeight = minHeight;
26
+ if (minWidth != null) styles.minWidth = minWidth;
27
+ if (width != null) styles.width = width;
28
+ return styles;
29
+ });
22
30
  return {
23
31
  dimensionStyles
24
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dimensions.mjs","names":["computed","convertToUnit","propsFactory","makeDimensionProps","height","Number","String","maxHeight","maxWidth","minHeight","minWidth","width","useDimension","props","dimensionStyles"],"sources":["../../src/composables/dimensions.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nexport interface DimensionProps {\n height?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n width?: number | string\n}\n\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String],\n}, 'dimension')\n\nexport function useDimension (props: DimensionProps) {\n const dimensionStyles = computed(() => ({\n height: convertToUnit(props.height),\n maxHeight: convertToUnit(props.maxHeight),\n maxWidth: convertToUnit(props.maxWidth),\n minHeight: convertToUnit(props.minHeight),\n minWidth: convertToUnit(props.minWidth),\n width: convertToUnit(props.width),\n }))\n\n return { dimensionStyles }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,aAAa,EAAEC,YAAY,6BAEpC;AAUA;AACA,OAAO,MAAMC,kBAAkB,GAAGD,YAAY,CAAC;EAC7CE,MAAM,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;EACxBC,SAAS,EAAE,CAACF,MAAM,EAAEC,MAAM,CAAC;EAC3BE,QAAQ,EAAE,CAACH,MAAM,EAAEC,MAAM,CAAC;EAC1BG,SAAS,EAAE,CAACJ,MAAM,EAAEC,MAAM,CAAC;EAC3BI,QAAQ,EAAE,CAACL,MAAM,EAAEC,MAAM,CAAC;EAC1BK,KAAK,EAAE,CAACN,MAAM,EAAEC,MAAM;AACxB,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,SAASM,YAAYA,CAAEC,KAAqB,EAAE;EACnD,MAAMC,eAAe,GAAGd,QAAQ,CAAC,OAAO;IACtCI,MAAM,EAAEH,aAAa,CAACY,KAAK,CAACT,MAAM,CAAC;IACnCG,SAAS,EAAEN,aAAa,CAACY,KAAK,CAACN,SAAS,CAAC;IACzCC,QAAQ,EAAEP,aAAa,CAACY,KAAK,CAACL,QAAQ,CAAC;IACvCC,SAAS,EAAER,aAAa,CAACY,KAAK,CAACJ,SAAS,CAAC;IACzCC,QAAQ,EAAET,aAAa,CAACY,KAAK,CAACH,QAAQ,CAAC;IACvCC,KAAK,EAAEV,aAAa,CAACY,KAAK,CAACF,KAAK;EAClC,CAAC,CAAC,CAAC;EAEH,OAAO;IAAEG;EAAgB,CAAC;AAC5B","ignoreList":[]}
1
+ {"version":3,"file":"dimensions.mjs","names":["computed","convertToUnit","propsFactory","makeDimensionProps","height","Number","String","maxHeight","maxWidth","minHeight","minWidth","width","useDimension","props","dimensionStyles","styles"],"sources":["../../src/composables/dimensions.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nexport interface DimensionProps {\n height?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n width?: number | string\n}\n\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String],\n}, 'dimension')\n\nexport function useDimension (props: DimensionProps) {\n const dimensionStyles = computed(() => {\n const styles: Record<string, any> = {}\n\n const height = convertToUnit(props.height)\n const maxHeight = convertToUnit(props.maxHeight)\n const maxWidth = convertToUnit(props.maxWidth)\n const minHeight = convertToUnit(props.minHeight)\n const minWidth = convertToUnit(props.minWidth)\n const width = convertToUnit(props.width)\n\n if (height != null) styles.height = height\n if (maxHeight != null) styles.maxHeight = maxHeight\n if (maxWidth != null) styles.maxWidth = maxWidth\n if (minHeight != null) styles.minHeight = minHeight\n if (minWidth != null) styles.minWidth = minWidth\n if (width != null) styles.width = width\n\n return styles\n })\n\n return { dimensionStyles }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,aAAa,EAAEC,YAAY,6BAEpC;AAUA;AACA,OAAO,MAAMC,kBAAkB,GAAGD,YAAY,CAAC;EAC7CE,MAAM,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;EACxBC,SAAS,EAAE,CAACF,MAAM,EAAEC,MAAM,CAAC;EAC3BE,QAAQ,EAAE,CAACH,MAAM,EAAEC,MAAM,CAAC;EAC1BG,SAAS,EAAE,CAACJ,MAAM,EAAEC,MAAM,CAAC;EAC3BI,QAAQ,EAAE,CAACL,MAAM,EAAEC,MAAM,CAAC;EAC1BK,KAAK,EAAE,CAACN,MAAM,EAAEC,MAAM;AACxB,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,SAASM,YAAYA,CAAEC,KAAqB,EAAE;EACnD,MAAMC,eAAe,GAAGd,QAAQ,CAAC,MAAM;IACrC,MAAMe,MAA2B,GAAG,CAAC,CAAC;IAEtC,MAAMX,MAAM,GAAGH,aAAa,CAACY,KAAK,CAACT,MAAM,CAAC;IAC1C,MAAMG,SAAS,GAAGN,aAAa,CAACY,KAAK,CAACN,SAAS,CAAC;IAChD,MAAMC,QAAQ,GAAGP,aAAa,CAACY,KAAK,CAACL,QAAQ,CAAC;IAC9C,MAAMC,SAAS,GAAGR,aAAa,CAACY,KAAK,CAACJ,SAAS,CAAC;IAChD,MAAMC,QAAQ,GAAGT,aAAa,CAACY,KAAK,CAACH,QAAQ,CAAC;IAC9C,MAAMC,KAAK,GAAGV,aAAa,CAACY,KAAK,CAACF,KAAK,CAAC;IAExC,IAAIP,MAAM,IAAI,IAAI,EAAEW,MAAM,CAACX,MAAM,GAAGA,MAAM;IAC1C,IAAIG,SAAS,IAAI,IAAI,EAAEQ,MAAM,CAACR,SAAS,GAAGA,SAAS;IACnD,IAAIC,QAAQ,IAAI,IAAI,EAAEO,MAAM,CAACP,QAAQ,GAAGA,QAAQ;IAChD,IAAIC,SAAS,IAAI,IAAI,EAAEM,MAAM,CAACN,SAAS,GAAGA,SAAS;IACnD,IAAIC,QAAQ,IAAI,IAAI,EAAEK,MAAM,CAACL,QAAQ,GAAGA,QAAQ;IAChD,IAAIC,KAAK,IAAI,IAAI,EAAEI,MAAM,CAACJ,KAAK,GAAGA,KAAK;IAEvC,OAAOI,MAAM;EACf,CAAC,CAAC;EAEF,OAAO;IAAED;EAAgB,CAAC;AAC5B","ignoreList":[]}
@@ -37,7 +37,7 @@ export function filterItems(items, query, options) {
37
37
  const customMatches = {};
38
38
  const defaultMatches = {};
39
39
  let match = -1;
40
- if (query && !options?.noFilter) {
40
+ if ((query || customFiltersLength > 0) && !options?.noFilter) {
41
41
  if (typeof item === 'object') {
42
42
  const filterKeys = keys || Object.keys(transformed);
43
43
  for (const key of filterKeys) {
@@ -1 +1 @@
1
- {"version":3,"file":"filter.mjs","names":["computed","ref","unref","watchEffect","getPropertyFromItem","propsFactory","wrapInArray","defaultFilter","value","query","item","toString","toLocaleLowerCase","indexOf","makeFilterProps","customFilter","Function","customKeyFilter","Object","filterKeys","Array","String","filterMode","type","default","noFilter","Boolean","filterItems","items","options","array","filter","keys","customFiltersLength","length","loop","i","transformed","customMatches","defaultMatches","match","key","keyFilter","title","defaultMatchesLength","customMatchesLength","push","index","matches","useFilter","props","filteredItems","filteredMatches","Map","transformedItems","transform","map","_query","strQuery","results","originalItems","_filteredItems","_filteredMatches","forEach","_ref","set","getMatches","get"],"sources":["../../src/composables/filter.ts"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, ref, unref, watchEffect } from 'vue'\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\nexport type FilterMatch = boolean | number | [number, number] | [number, number][]\nexport type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\nexport interface InternalItem<T = any> {\n value: any\n raw: T\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase())\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: readonly (readonly [item: InternalItem, transformed: {}])[] | readonly InternalItem[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record<string, FilterMatch> }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]) as readonly [InternalItem, {}]\n const customMatches: Record<string, FilterMatch> = {}\n const defaultMatches: Record<string, FilterMatch> = {}\n let match: FilterMatch = -1\n\n if (query && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match\n else defaultMatches[key] = match\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = match\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter <T extends InternalItem> (\n props: FilterProps,\n items: MaybeRef<T[]>,\n query: Ref<string | undefined> | (() => string | undefined),\n options?: {\n transform?: (item: T) => {}\n customKeyFilter?: MaybeRef<FilterKeyFunctions | undefined>\n }\n) {\n const filteredItems: Ref<T[]> = ref([])\n const filteredMatches: Ref<Map<unknown, Record<string, FilterMatch>>> = ref(new Map())\n const transformedItems = computed(() => (\n options?.transform\n ? unref(items).map(item => ([item, options.transform!(item)] as const))\n : unref(items)\n ))\n\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query)\n const strQuery = (\n typeof _query !== 'string' &&\n typeof _query !== 'number'\n ) ? '' : String(_query)\n\n const results = filterItems(\n transformedItems.value,\n strQuery,\n {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter),\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n const originalItems = unref(items)\n\n const _filteredItems: typeof filteredItems['value'] = []\n const _filteredMatches: typeof filteredMatches['value'] = new Map()\n results.forEach(({ index, matches }) => {\n const item = originalItems[index]\n _filteredItems.push(item)\n _filteredMatches.set(item.value, matches)\n })\n filteredItems.value = _filteredItems\n filteredMatches.value = _filteredMatches\n })\n\n function getMatches (item: T) {\n return filteredMatches.value.get(item.value)\n }\n\n return { filteredItems, filteredMatches, getMatches }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"filter.mjs","names":["computed","ref","unref","watchEffect","getPropertyFromItem","propsFactory","wrapInArray","defaultFilter","value","query","item","toString","toLocaleLowerCase","indexOf","makeFilterProps","customFilter","Function","customKeyFilter","Object","filterKeys","Array","String","filterMode","type","default","noFilter","Boolean","filterItems","items","options","array","filter","keys","customFiltersLength","length","loop","i","transformed","customMatches","defaultMatches","match","key","keyFilter","title","defaultMatchesLength","customMatchesLength","push","index","matches","useFilter","props","filteredItems","filteredMatches","Map","transformedItems","transform","map","_query","strQuery","results","originalItems","_filteredItems","_filteredMatches","forEach","_ref","set","getMatches","get"],"sources":["../../src/composables/filter.ts"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, ref, unref, watchEffect } from 'vue'\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\nexport type FilterMatch = boolean | number | [number, number] | [number, number][]\nexport type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\nexport interface InternalItem<T = any> {\n value: any\n raw: T\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase())\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: readonly (readonly [item: InternalItem, transformed: {}])[] | readonly InternalItem[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record<string, FilterMatch> }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]) as readonly [InternalItem, {}]\n const customMatches: Record<string, FilterMatch> = {}\n const defaultMatches: Record<string, FilterMatch> = {}\n let match: FilterMatch = -1\n\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match\n else defaultMatches[key] = match\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = match\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter <T extends InternalItem> (\n props: FilterProps,\n items: MaybeRef<T[]>,\n query: Ref<string | undefined> | (() => string | undefined),\n options?: {\n transform?: (item: T) => {}\n customKeyFilter?: MaybeRef<FilterKeyFunctions | undefined>\n }\n) {\n const filteredItems: Ref<T[]> = ref([])\n const filteredMatches: Ref<Map<unknown, Record<string, FilterMatch>>> = ref(new Map())\n const transformedItems = computed(() => (\n options?.transform\n ? unref(items).map(item => ([item, options.transform!(item)] as const))\n : unref(items)\n ))\n\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query)\n const strQuery = (\n typeof _query !== 'string' &&\n typeof _query !== 'number'\n ) ? '' : String(_query)\n\n const results = filterItems(\n transformedItems.value,\n strQuery,\n {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter),\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n const originalItems = unref(items)\n\n const _filteredItems: typeof filteredItems['value'] = []\n const _filteredMatches: typeof filteredMatches['value'] = new Map()\n results.forEach(({ index, matches }) => {\n const item = originalItems[index]\n _filteredItems.push(item)\n _filteredMatches.set(item.value, matches)\n })\n filteredItems.value = _filteredItems\n filteredMatches.value = _filteredMatches\n })\n\n function getMatches (item: T) {\n return filteredMatches.value.get(item.value)\n }\n\n return { filteredItems, filteredMatches, getMatches }\n}\n"],"mappings":"AAAA;AACA;;AAEA;AACA,SAASA,QAAQ,EAAEC,GAAG,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SAC9CC,mBAAmB,EAAEC,YAAY,EAAEC,WAAW,6BAEvD;AAIA;AACA;AACA;AACA;AACA;AACA;AAoBA;AACA,OAAO,MAAMC,aAA6B,GAAGA,CAACC,KAAK,EAAEC,KAAK,EAAEC,IAAI,KAAK;EACnE,IAAIF,KAAK,IAAI,IAAI,IAAIC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;EAE7C,OAAOD,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACC,iBAAiB,CAAC,CAAC,CAACC,OAAO,CAACJ,KAAK,CAACE,QAAQ,CAAC,CAAC,CAACC,iBAAiB,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,OAAO,MAAME,eAAe,GAAGT,YAAY,CAAC;EAC1CU,YAAY,EAAEC,QAAoC;EAClDC,eAAe,EAAEC,MAAsC;EACvDC,UAAU,EAAE,CAACC,KAAK,EAAEC,MAAM,CAAyB;EACnDC,UAAU,EAAE;IACVC,IAAI,EAAEF,MAA8B;IACpCG,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAEC;AACZ,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,SAASC,WAAWA,CACzBC,KAA4F,EAC5FnB,KAAa,EACboB,OAMC,EACD;EACA,MAAMC,KAAgE,GAAG,EAAE;EAC3E;EACA,MAAMC,MAAM,GAAGF,OAAO,EAAEL,OAAO,IAAIjB,aAAa;EAChD,MAAMyB,IAAI,GAAGH,OAAO,EAAEV,UAAU,GAAGb,WAAW,CAACuB,OAAO,CAACV,UAAU,CAAC,GAAG,KAAK;EAC1E,MAAMc,mBAAmB,GAAGf,MAAM,CAACc,IAAI,CAACH,OAAO,EAAEZ,eAAe,IAAI,CAAC,CAAC,CAAC,CAACiB,MAAM;EAE9E,IAAI,CAACN,KAAK,EAAEM,MAAM,EAAE,OAAOJ,KAAK;EAEhCK,IAAI,EACJ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,KAAK,CAACM,MAAM,EAAEE,CAAC,EAAE,EAAE;IACrC,MAAM,CAAC1B,IAAI,EAAE2B,WAAW,GAAG3B,IAAI,CAAC,GAAGJ,WAAW,CAACsB,KAAK,CAACQ,CAAC,CAAC,CAAgC;IACvF,MAAME,aAA0C,GAAG,CAAC,CAAC;IACrD,MAAMC,cAA2C,GAAG,CAAC,CAAC;IACtD,IAAIC,KAAkB,GAAG,CAAC,CAAC;IAE3B,IAAI,CAAC/B,KAAK,IAAIwB,mBAAmB,GAAG,CAAC,KAAK,CAACJ,OAAO,EAAEJ,QAAQ,EAAE;MAC5D,IAAI,OAAOf,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAMS,UAAU,GAAGa,IAAI,IAAId,MAAM,CAACc,IAAI,CAACK,WAAW,CAAC;QAEnD,KAAK,MAAMI,GAAG,IAAItB,UAAU,EAAE;UAC5B,MAAMX,KAAK,GAAGJ,mBAAmB,CAACiC,WAAW,EAAEI,GAAG,CAAC;UACnD,MAAMC,SAAS,GAAGb,OAAO,EAAEZ,eAAe,GAAGwB,GAAG,CAAC;UAEjDD,KAAK,GAAGE,SAAS,GACbA,SAAS,CAAClC,KAAK,EAAEC,KAAK,EAAEC,IAAI,CAAC,GAC7BqB,MAAM,CAACvB,KAAK,EAAEC,KAAK,EAAEC,IAAI,CAAC;UAE9B,IAAI8B,KAAK,KAAK,CAAC,CAAC,IAAIA,KAAK,KAAK,KAAK,EAAE;YACnC,IAAIE,SAAS,EAAEJ,aAAa,CAACG,GAAG,CAAC,GAAGD,KAAK,MACpCD,cAAc,CAACE,GAAG,CAAC,GAAGD,KAAK;UAClC,CAAC,MAAM,IAAIX,OAAO,EAAEP,UAAU,KAAK,OAAO,EAAE;YAC1C,SAASa,IAAI;UACf;QACF;MACF,CAAC,MAAM;QACLK,KAAK,GAAGT,MAAM,CAACrB,IAAI,EAAED,KAAK,EAAEC,IAAI,CAAC;QACjC,IAAI8B,KAAK,KAAK,CAAC,CAAC,IAAIA,KAAK,KAAK,KAAK,EAAE;UACnCD,cAAc,CAACI,KAAK,GAAGH,KAAK;QAC9B;MACF;MAEA,MAAMI,oBAAoB,GAAG1B,MAAM,CAACc,IAAI,CAACO,cAAc,CAAC,CAACL,MAAM;MAC/D,MAAMW,mBAAmB,GAAG3B,MAAM,CAACc,IAAI,CAACM,aAAa,CAAC,CAACJ,MAAM;MAE7D,IAAI,CAACU,oBAAoB,IAAI,CAACC,mBAAmB,EAAE;MAEnD,IACEhB,OAAO,EAAEP,UAAU,KAAK,OAAO,IAC/BuB,mBAAmB,KAAKZ,mBAAmB,IAC3C,CAACW,oBAAoB,EACrB;MAEF,IACEf,OAAO,EAAEP,UAAU,KAAK,cAAc,KAEpCuB,mBAAmB,KAAKZ,mBAAmB,IAC3C,CAACW,oBAAoB,CACtB,EACD;IACJ;IAEAd,KAAK,CAACgB,IAAI,CAAC;MAAEC,KAAK,EAAEX,CAAC;MAAEY,OAAO,EAAE;QAAE,GAAGT,cAAc;QAAE,GAAGD;MAAc;IAAE,CAAC,CAAC;EAC5E;EAEA,OAAOR,KAAK;AACd;AAEA,OAAO,SAASmB,SAASA,CACvBC,KAAkB,EAClBtB,KAAoB,EACpBnB,KAA2D,EAC3DoB,OAGC,EACD;EACA,MAAMsB,aAAuB,GAAGlD,GAAG,CAAC,EAAE,CAAC;EACvC,MAAMmD,eAA+D,GAAGnD,GAAG,CAAC,IAAIoD,GAAG,CAAC,CAAC,CAAC;EACtF,MAAMC,gBAAgB,GAAGtD,QAAQ,CAAC,MAChC6B,OAAO,EAAE0B,SAAS,GACdrD,KAAK,CAAC0B,KAAK,CAAC,CAAC4B,GAAG,CAAC9C,IAAI,IAAK,CAACA,IAAI,EAAEmB,OAAO,CAAC0B,SAAS,CAAE7C,IAAI,CAAC,CAAW,CAAC,GACrER,KAAK,CAAC0B,KAAK,CAChB,CAAC;EAEFzB,WAAW,CAAC,MAAM;IAChB,MAAMsD,MAAM,GAAG,OAAOhD,KAAK,KAAK,UAAU,GAAGA,KAAK,CAAC,CAAC,GAAGP,KAAK,CAACO,KAAK,CAAC;IACnE,MAAMiD,QAAQ,GACZ,OAAOD,MAAM,KAAK,QAAQ,IAC1B,OAAOA,MAAM,KAAK,QAAQ,GACxB,EAAE,GAAGpC,MAAM,CAACoC,MAAM,CAAC;IAEvB,MAAME,OAAO,GAAGhC,WAAW,CACzB2B,gBAAgB,CAAC9C,KAAK,EACtBkD,QAAQ,EACR;MACEzC,eAAe,EAAE;QACf,GAAGiC,KAAK,CAACjC,eAAe;QACxB,GAAGf,KAAK,CAAC2B,OAAO,EAAEZ,eAAe;MACnC,CAAC;MACDO,OAAO,EAAE0B,KAAK,CAACnC,YAAY;MAC3BI,UAAU,EAAE+B,KAAK,CAAC/B,UAAU;MAC5BG,UAAU,EAAE4B,KAAK,CAAC5B,UAAU;MAC5BG,QAAQ,EAAEyB,KAAK,CAACzB;IAClB,CACF,CAAC;IAED,MAAMmC,aAAa,GAAG1D,KAAK,CAAC0B,KAAK,CAAC;IAElC,MAAMiC,cAA6C,GAAG,EAAE;IACxD,MAAMC,gBAAiD,GAAG,IAAIT,GAAG,CAAC,CAAC;IACnEM,OAAO,CAACI,OAAO,CAACC,IAAA,IAAwB;MAAA,IAAvB;QAAEjB,KAAK;QAAEC;MAAQ,CAAC,GAAAgB,IAAA;MACjC,MAAMtD,IAAI,GAAGkD,aAAa,CAACb,KAAK,CAAC;MACjCc,cAAc,CAACf,IAAI,CAACpC,IAAI,CAAC;MACzBoD,gBAAgB,CAACG,GAAG,CAACvD,IAAI,CAACF,KAAK,EAAEwC,OAAO,CAAC;IAC3C,CAAC,CAAC;IACFG,aAAa,CAAC3C,KAAK,GAAGqD,cAAc;IACpCT,eAAe,CAAC5C,KAAK,GAAGsD,gBAAgB;EAC1C,CAAC,CAAC;EAEF,SAASI,UAAUA,CAAExD,IAAO,EAAE;IAC5B,OAAO0C,eAAe,CAAC5C,KAAK,CAAC2D,GAAG,CAACzD,IAAI,CAACF,KAAK,CAAC;EAC9C;EAEA,OAAO;IAAE2C,aAAa;IAAEC,eAAe;IAAEc;EAAW,CAAC;AACvD","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.6.6";
19
+ export const version = "3.6.8";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -97,7 +97,7 @@ export function createVuetify() {
97
97
  goTo
98
98
  };
99
99
  }
100
- export const version = "3.6.6";
100
+ export const version = "3.6.8";
101
101
  createVuetify.version = version;
102
102
 
103
103
  // Vue's inject() can only be used in setup
package/lib/index.d.mts CHANGED
@@ -494,25 +494,24 @@ declare module '@vue/runtime-core' {
494
494
 
495
495
  export interface GlobalComponents {
496
496
  VApp: typeof import('vuetify/components')['VApp']
497
+ VAvatar: typeof import('vuetify/components')['VAvatar']
498
+ VAlert: typeof import('vuetify/components')['VAlert']
499
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
497
500
  VAppBar: typeof import('vuetify/components')['VAppBar']
498
501
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
499
502
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
500
- VAlert: typeof import('vuetify/components')['VAlert']
501
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
502
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
503
- VAvatar: typeof import('vuetify/components')['VAvatar']
504
- VBadge: typeof import('vuetify/components')['VBadge']
505
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
506
503
  VBanner: typeof import('vuetify/components')['VBanner']
507
504
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
508
505
  VBannerText: typeof import('vuetify/components')['VBannerText']
506
+ VBadge: typeof import('vuetify/components')['VBadge']
507
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
508
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
509
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
509
510
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
510
511
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
511
512
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
512
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
513
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
513
514
  VBtn: typeof import('vuetify/components')['VBtn']
514
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
515
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
516
515
  VCarousel: typeof import('vuetify/components')['VCarousel']
517
516
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
518
517
  VCard: typeof import('vuetify/components')['VCard']
@@ -521,21 +520,22 @@ declare module '@vue/runtime-core' {
521
520
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
522
521
  VCardText: typeof import('vuetify/components')['VCardText']
523
522
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
523
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
524
524
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
525
525
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
526
+ VCombobox: typeof import('vuetify/components')['VCombobox']
526
527
  VChip: typeof import('vuetify/components')['VChip']
527
- VCode: typeof import('vuetify/components')['VCode']
528
528
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
529
529
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
530
+ VCode: typeof import('vuetify/components')['VCode']
531
+ VDialog: typeof import('vuetify/components')['VDialog']
530
532
  VCounter: typeof import('vuetify/components')['VCounter']
531
- VCombobox: typeof import('vuetify/components')['VCombobox']
532
533
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
533
534
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
534
535
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
535
536
  VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
536
537
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
537
538
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
538
- VDialog: typeof import('vuetify/components')['VDialog']
539
539
  VDataTable: typeof import('vuetify/components')['VDataTable']
540
540
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
541
541
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -543,28 +543,28 @@ declare module '@vue/runtime-core' {
543
543
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
544
544
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
545
545
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
546
- VDivider: typeof import('vuetify/components')['VDivider']
547
546
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
548
547
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
549
548
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
550
549
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
550
+ VDivider: typeof import('vuetify/components')['VDivider']
551
551
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
552
- VField: typeof import('vuetify/components')['VField']
553
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
554
552
  VFileInput: typeof import('vuetify/components')['VFileInput']
553
+ VFab: typeof import('vuetify/components')['VFab']
555
554
  VFooter: typeof import('vuetify/components')['VFooter']
556
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
555
+ VField: typeof import('vuetify/components')['VField']
556
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
557
+ VImg: typeof import('vuetify/components')['VImg']
557
558
  VIcon: typeof import('vuetify/components')['VIcon']
558
559
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
559
560
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
560
561
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
561
562
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
562
- VFab: typeof import('vuetify/components')['VFab']
563
- VInput: typeof import('vuetify/components')['VInput']
564
- VImg: typeof import('vuetify/components')['VImg']
563
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
565
564
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
566
565
  VItem: typeof import('vuetify/components')['VItem']
567
566
  VLabel: typeof import('vuetify/components')['VLabel']
567
+ VInput: typeof import('vuetify/components')['VInput']
568
568
  VKbd: typeof import('vuetify/components')['VKbd']
569
569
  VList: typeof import('vuetify/components')['VList']
570
570
  VListGroup: typeof import('vuetify/components')['VListGroup']
@@ -575,26 +575,26 @@ declare module '@vue/runtime-core' {
575
575
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
576
576
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
577
577
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
578
- VMenu: typeof import('vuetify/components')['VMenu']
579
578
  VMain: typeof import('vuetify/components')['VMain']
580
- VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
579
+ VMenu: typeof import('vuetify/components')['VMenu']
581
580
  VMessages: typeof import('vuetify/components')['VMessages']
581
+ VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
582
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
582
583
  VPagination: typeof import('vuetify/components')['VPagination']
583
584
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
584
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
585
- VOverlay: typeof import('vuetify/components')['VOverlay']
586
585
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
587
586
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
587
+ VOverlay: typeof import('vuetify/components')['VOverlay']
588
588
  VRating: typeof import('vuetify/components')['VRating']
589
- VSelect: typeof import('vuetify/components')['VSelect']
590
589
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
590
+ VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
591
+ VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
591
592
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
593
+ VSelect: typeof import('vuetify/components')['VSelect']
592
594
  VSheet: typeof import('vuetify/components')['VSheet']
593
595
  VSlider: typeof import('vuetify/components')['VSlider']
594
- VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
595
- VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
596
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
597
596
  VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
597
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
598
598
  VStepper: typeof import('vuetify/components')['VStepper']
599
599
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
600
600
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
@@ -602,44 +602,44 @@ declare module '@vue/runtime-core' {
602
602
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
603
603
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
604
604
  VSwitch: typeof import('vuetify/components')['VSwitch']
605
- VTextField: typeof import('vuetify/components')['VTextField']
606
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
607
- VTextarea: typeof import('vuetify/components')['VTextarea']
608
605
  VTab: typeof import('vuetify/components')['VTab']
609
606
  VTabs: typeof import('vuetify/components')['VTabs']
610
607
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
611
608
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
609
+ VTextField: typeof import('vuetify/components')['VTextField']
610
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
611
+ VTextarea: typeof import('vuetify/components')['VTextarea']
612
612
  VTable: typeof import('vuetify/components')['VTable']
613
613
  VToolbar: typeof import('vuetify/components')['VToolbar']
614
614
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
615
615
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
616
616
  VTimeline: typeof import('vuetify/components')['VTimeline']
617
617
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
618
+ VTooltip: typeof import('vuetify/components')['VTooltip']
618
619
  VWindow: typeof import('vuetify/components')['VWindow']
619
620
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
620
- VTooltip: typeof import('vuetify/components')['VTooltip']
621
621
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
622
622
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
623
623
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
624
- VHover: typeof import('vuetify/components')['VHover']
625
- VForm: typeof import('vuetify/components')['VForm']
626
624
  VContainer: typeof import('vuetify/components')['VContainer']
627
625
  VCol: typeof import('vuetify/components')['VCol']
628
626
  VRow: typeof import('vuetify/components')['VRow']
629
627
  VSpacer: typeof import('vuetify/components')['VSpacer']
628
+ VForm: typeof import('vuetify/components')['VForm']
629
+ VHover: typeof import('vuetify/components')['VHover']
630
630
  VLayout: typeof import('vuetify/components')['VLayout']
631
631
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
632
632
  VLazy: typeof import('vuetify/components')['VLazy']
633
633
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
634
634
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
635
+ VRadio: typeof import('vuetify/components')['VRadio']
635
636
  VParallax: typeof import('vuetify/components')['VParallax']
636
637
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
637
- VRadio: typeof import('vuetify/components')['VRadio']
638
638
  VResponsive: typeof import('vuetify/components')['VResponsive']
639
639
  VSparkline: typeof import('vuetify/components')['VSparkline']
640
640
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
641
641
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
642
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
642
+ VValidation: typeof import('vuetify/components')['VValidation']
643
643
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
644
644
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
645
645
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -656,27 +656,27 @@ declare module '@vue/runtime-core' {
656
656
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
657
657
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
658
658
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
659
- VValidation: typeof import('vuetify/components')['VValidation']
659
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
660
660
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
661
661
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
662
662
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
663
663
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
664
664
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
665
665
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
666
- VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
667
- VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
668
- VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
669
666
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
670
667
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
671
668
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
672
669
  VPicker: typeof import('vuetify/labs/components')['VPicker']
673
670
  VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
674
671
  VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
672
+ VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
673
+ VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
674
+ VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
675
675
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
676
676
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
677
677
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
678
+ VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
678
679
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
679
680
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
680
- VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
681
681
  }
682
682
  }
@@ -63,7 +63,7 @@ export const VCalendar = genericComponent()({
63
63
  }
64
64
  }
65
65
  function onClickToday() {
66
- model.value = [new Date()];
66
+ model.value = [adapter.date()];
67
67
  }
68
68
  const title = computed(() => {
69
69
  return adapter.format(displayValue.value, 'monthAndYear');
@@ -102,7 +102,7 @@ export const VCalendar = genericComponent()({
102
102
  }, [chunkArray(daysInMonth.value, props.weekdays.length).map((week, wi) => [!props.hideWeekNumber ? _createVNode("div", {
103
103
  "class": "v-calendar-month__weeknumber"
104
104
  }, [weekNumbers.value[wi]]) : '', week.map(day => _createVNode(VCalendarMonthDay, {
105
- "color": adapter.isSameDay(new Date(), day.date) ? 'primary' : undefined,
105
+ "color": adapter.isSameDay(adapter.date(), day.date) ? 'primary' : undefined,
106
106
  "day": day,
107
107
  "title": day ? adapter.format(day.date, 'dayOfMonth') : 'NaN',
108
108
  "events": props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end))
@@ -1 +1 @@
1
- {"version":3,"file":"VCalendar.mjs","names":["makeVCalendarDayProps","VCalendarDay","makeVCalendarHeaderProps","VCalendarHeader","VCalendarMonthDay","makeCalendarProps","useCalendar","useDate","computed","chunkArray","genericComponent","propsFactory","useRender","makeVCalendarProps","hideHeader","Boolean","hideWeekNumber","VCalendar","name","props","emits","next","prev","setup","_ref","emit","slots","adapter","daysInMonth","daysInWeek","genDays","model","displayValue","weekNumbers","dayNames","getWeekdays","onClickNext","viewMode","value","addMonths","addDays","onClickPrev","onClickToday","Date","title","format","calendarDayProps","filterProps","calendarHeaderProps","_createVNode","header","_mergeProps","weekdays","length","hideDayHeader","map","weekday","week","wi","day","isSameDay","date","undefined","events","filter","e","start","end","event","i"],"sources":["../../../src/labs/VCalendar/VCalendar.tsx"],"sourcesContent":["// Styles\nimport './VCalendar.sass'\n\n// Components\nimport { makeVCalendarDayProps, VCalendarDay } from './VCalendarDay'\nimport { makeVCalendarHeaderProps, VCalendarHeader } from './VCalendarHeader'\nimport { VCalendarMonthDay } from './VCalendarMonthDay'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\n\n// Utilities\nimport { computed } from 'vue'\nimport { chunkArray, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCalendarProps = propsFactory({\n hideHeader: Boolean,\n hideWeekNumber: Boolean,\n\n ...makeCalendarProps(),\n ...makeVCalendarDayProps(),\n ...makeVCalendarHeaderProps(),\n}, 'VCalender')\n\nexport type VCalendarSlots = {\n header: { title: string }\n event: { day?: Object, allDay: boolean, event: Record<string, unknown> }\n}\n\nexport const VCalendar = genericComponent<VCalendarSlots>()({\n name: 'VCalendar',\n\n props: makeVCalendarProps(),\n\n emits: {\n next: null,\n prev: null,\n 'update:modelValue': null,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n\n const { daysInMonth, daysInWeek, genDays, model, displayValue, weekNumbers } = useCalendar(props as any)\n\n const dayNames = adapter.getWeekdays()\n\n function onClickNext () {\n if (props.viewMode === 'month') {\n model.value = [adapter.addMonths(displayValue.value, 1)]\n }\n if (props.viewMode === 'week') {\n model.value = [adapter.addDays(displayValue.value, 7)]\n }\n if (props.viewMode === 'day') {\n model.value = [adapter.addDays(displayValue.value, 1)]\n }\n }\n\n function onClickPrev () {\n if (props.viewMode === 'month') {\n model.value = [adapter.addMonths(displayValue.value, -1)]\n }\n if (props.viewMode === 'week') {\n model.value = [adapter.addDays(displayValue.value, -7)]\n }\n if (props.viewMode === 'day') {\n model.value = [adapter.addDays(displayValue.value, -1)]\n }\n }\n\n function onClickToday () {\n model.value = [new Date()]\n }\n\n const title = computed(() => {\n return adapter.format(displayValue.value, 'monthAndYear')\n })\n\n useRender(() => {\n const calendarDayProps = VCalendarDay.filterProps(props)\n const calendarHeaderProps = VCalendarHeader.filterProps(props)\n\n return (\n <div class={[\n 'v-calendar',\n {\n 'v-calendar-monthly': props.viewMode === 'month',\n 'v-calendar-weekly': props.viewMode === 'week',\n 'v-calendar-day': props.viewMode === 'day',\n },\n ]}\n >\n <div>\n { !props.hideHeader && (\n !slots.header ? (\n <VCalendarHeader\n key=\"calendar-header\"\n { ...calendarHeaderProps }\n title={ title.value }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:toToday={ onClickToday }\n />\n ) : (\n slots.header({ title: title.value })\n )\n )}\n </div>\n\n <div class={['v-calendar__container', `days__${props.weekdays.length}`]}>\n { props.viewMode === 'month' && !props.hideDayHeader && (\n <div\n class={\n [\n 'v-calendar-weekly__head',\n `days__${props.weekdays.length}`,\n ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : []),\n ]\n }\n key=\"calenderWeeklyHead\"\n >\n { !props.hideWeekNumber ? <div key=\"weekNumber0\" class=\"v-calendar-weekly__head-weeknumber\"></div> : '' }\n {\n props.weekdays.map(weekday => (\n <div class={ `v-calendar-weekly__head-weekday${!props.hideWeekNumber ? '-with-weeknumber' : ''}` }>\n { dayNames[weekday] }\n </div>\n ))\n }\n </div>\n )}\n\n { props.viewMode === 'month' && (\n <div\n key=\"VCalendarMonth\"\n class={\n [\n 'v-calendar-month__days',\n `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${props.weekdays.length}`,\n ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : []),\n ]\n }\n >\n { chunkArray(daysInMonth.value, props.weekdays.length)\n .map((week, wi) => (\n [\n !props.hideWeekNumber ? <div class=\"v-calendar-month__weeknumber\">{ weekNumbers.value[wi] }</div> : '',\n week.map(day => (\n <VCalendarMonthDay\n color={ adapter.isSameDay(new Date(), day.date) ? 'primary' : undefined }\n day={ day }\n title={ day ? adapter.format(day.date, 'dayOfMonth') : 'NaN' }\n events={ props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end)) }\n v-slots={{\n event: slots.event,\n }}\n ></VCalendarMonthDay>\n )),\n ]\n ))}\n </div>\n )}\n\n { props.viewMode === 'week' && (\n daysInWeek.value.map((day, i) => (\n <VCalendarDay\n { ...calendarDayProps }\n day={ day }\n dayIndex={ i }\n events={ props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date)) }\n ></VCalendarDay>\n ))\n )}\n\n { props.viewMode === 'day' && (\n <VCalendarDay\n { ...calendarDayProps }\n day={ genDays([displayValue.value as Date], adapter.date() as Date)[0] }\n dayIndex={ 0 }\n events={\n props.events?.filter(e =>\n adapter.isSameDay(e.start, genDays([displayValue.value as Date], adapter.date() as Date)[0].date) ||\n adapter.isSameDay(e.end, genDays([displayValue.value as Date], adapter.date() as Date)[0].date)\n )\n }\n ></VCalendarDay>\n )}\n </div>\n </div>\n )\n })\n\n return { daysInMonth, daysInWeek, genDays }\n },\n})\n\nexport type VCalendar = InstanceType<typeof VCalendar>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VCalendar.mjs","names":["makeVCalendarDayProps","VCalendarDay","makeVCalendarHeaderProps","VCalendarHeader","VCalendarMonthDay","makeCalendarProps","useCalendar","useDate","computed","chunkArray","genericComponent","propsFactory","useRender","makeVCalendarProps","hideHeader","Boolean","hideWeekNumber","VCalendar","name","props","emits","next","prev","setup","_ref","emit","slots","adapter","daysInMonth","daysInWeek","genDays","model","displayValue","weekNumbers","dayNames","getWeekdays","onClickNext","viewMode","value","addMonths","addDays","onClickPrev","onClickToday","date","title","format","calendarDayProps","filterProps","calendarHeaderProps","_createVNode","header","_mergeProps","weekdays","length","hideDayHeader","map","weekday","week","wi","day","isSameDay","undefined","events","filter","e","start","end","event","i"],"sources":["../../../src/labs/VCalendar/VCalendar.tsx"],"sourcesContent":["// Styles\nimport './VCalendar.sass'\n\n// Components\nimport { makeVCalendarDayProps, VCalendarDay } from './VCalendarDay'\nimport { makeVCalendarHeaderProps, VCalendarHeader } from './VCalendarHeader'\nimport { VCalendarMonthDay } from './VCalendarMonthDay'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\n\n// Utilities\nimport { computed } from 'vue'\nimport { chunkArray, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCalendarProps = propsFactory({\n hideHeader: Boolean,\n hideWeekNumber: Boolean,\n\n ...makeCalendarProps(),\n ...makeVCalendarDayProps(),\n ...makeVCalendarHeaderProps(),\n}, 'VCalender')\n\nexport type VCalendarSlots = {\n header: { title: string }\n event: { day?: Object, allDay: boolean, event: Record<string, unknown> }\n}\n\nexport const VCalendar = genericComponent<VCalendarSlots>()({\n name: 'VCalendar',\n\n props: makeVCalendarProps(),\n\n emits: {\n next: null,\n prev: null,\n 'update:modelValue': null,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n\n const { daysInMonth, daysInWeek, genDays, model, displayValue, weekNumbers } = useCalendar(props as any)\n\n const dayNames = adapter.getWeekdays()\n\n function onClickNext () {\n if (props.viewMode === 'month') {\n model.value = [adapter.addMonths(displayValue.value, 1)]\n }\n if (props.viewMode === 'week') {\n model.value = [adapter.addDays(displayValue.value, 7)]\n }\n if (props.viewMode === 'day') {\n model.value = [adapter.addDays(displayValue.value, 1)]\n }\n }\n\n function onClickPrev () {\n if (props.viewMode === 'month') {\n model.value = [adapter.addMonths(displayValue.value, -1)]\n }\n if (props.viewMode === 'week') {\n model.value = [adapter.addDays(displayValue.value, -7)]\n }\n if (props.viewMode === 'day') {\n model.value = [adapter.addDays(displayValue.value, -1)]\n }\n }\n\n function onClickToday () {\n model.value = [adapter.date()]\n }\n\n const title = computed(() => {\n return adapter.format(displayValue.value, 'monthAndYear')\n })\n\n useRender(() => {\n const calendarDayProps = VCalendarDay.filterProps(props)\n const calendarHeaderProps = VCalendarHeader.filterProps(props)\n\n return (\n <div class={[\n 'v-calendar',\n {\n 'v-calendar-monthly': props.viewMode === 'month',\n 'v-calendar-weekly': props.viewMode === 'week',\n 'v-calendar-day': props.viewMode === 'day',\n },\n ]}\n >\n <div>\n { !props.hideHeader && (\n !slots.header ? (\n <VCalendarHeader\n key=\"calendar-header\"\n { ...calendarHeaderProps }\n title={ title.value }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:toToday={ onClickToday }\n />\n ) : (\n slots.header({ title: title.value })\n )\n )}\n </div>\n\n <div class={['v-calendar__container', `days__${props.weekdays.length}`]}>\n { props.viewMode === 'month' && !props.hideDayHeader && (\n <div\n class={\n [\n 'v-calendar-weekly__head',\n `days__${props.weekdays.length}`,\n ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : []),\n ]\n }\n key=\"calenderWeeklyHead\"\n >\n { !props.hideWeekNumber ? <div key=\"weekNumber0\" class=\"v-calendar-weekly__head-weeknumber\"></div> : '' }\n {\n props.weekdays.map(weekday => (\n <div class={ `v-calendar-weekly__head-weekday${!props.hideWeekNumber ? '-with-weeknumber' : ''}` }>\n { dayNames[weekday] }\n </div>\n ))\n }\n </div>\n )}\n\n { props.viewMode === 'month' && (\n <div\n key=\"VCalendarMonth\"\n class={\n [\n 'v-calendar-month__days',\n `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${props.weekdays.length}`,\n ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : []),\n ]\n }\n >\n { chunkArray(daysInMonth.value, props.weekdays.length)\n .map((week, wi) => (\n [\n !props.hideWeekNumber ? <div class=\"v-calendar-month__weeknumber\">{ weekNumbers.value[wi] }</div> : '',\n week.map(day => (\n <VCalendarMonthDay\n color={ adapter.isSameDay(adapter.date(), day.date) ? 'primary' : undefined }\n day={ day }\n title={ day ? adapter.format(day.date, 'dayOfMonth') : 'NaN' }\n events={ props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end)) }\n v-slots={{\n event: slots.event,\n }}\n ></VCalendarMonthDay>\n )),\n ]\n ))}\n </div>\n )}\n\n { props.viewMode === 'week' && (\n daysInWeek.value.map((day, i) => (\n <VCalendarDay\n { ...calendarDayProps }\n day={ day }\n dayIndex={ i }\n events={ props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date)) }\n ></VCalendarDay>\n ))\n )}\n\n { props.viewMode === 'day' && (\n <VCalendarDay\n { ...calendarDayProps }\n day={ genDays([displayValue.value as Date], adapter.date() as Date)[0] }\n dayIndex={ 0 }\n events={\n props.events?.filter(e =>\n adapter.isSameDay(e.start, genDays([displayValue.value as Date], adapter.date() as Date)[0].date) ||\n adapter.isSameDay(e.end, genDays([displayValue.value as Date], adapter.date() as Date)[0].date)\n )\n }\n ></VCalendarDay>\n )}\n </div>\n </div>\n )\n })\n\n return { daysInMonth, daysInWeek, genDays }\n },\n})\n\nexport type VCalendar = InstanceType<typeof VCalendar>\n"],"mappings":"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","ignoreList":[]}
@@ -83,7 +83,7 @@ declare const VDateInput: {
83
83
  loading?: string | boolean | undefined;
84
84
  counter?: string | number | boolean | undefined;
85
85
  month?: string | number | undefined;
86
- year?: string | number | undefined;
86
+ year?: number | undefined;
87
87
  border?: string | number | boolean | undefined;
88
88
  position?: "fixed" | "absolute" | "relative" | "static" | "sticky" | undefined;
89
89
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
@@ -195,7 +195,7 @@ declare const VDateInput: {
195
195
  loading?: string | boolean | undefined;
196
196
  counter?: string | number | boolean | undefined;
197
197
  month?: string | number | undefined;
198
- year?: string | number | undefined;
198
+ year?: number | undefined;
199
199
  border?: string | number | boolean | undefined;
200
200
  position?: "fixed" | "absolute" | "relative" | "static" | "sticky" | undefined;
201
201
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
@@ -367,7 +367,7 @@ declare const VDateInput: {
367
367
  loading?: string | boolean | undefined;
368
368
  counter?: string | number | boolean | undefined;
369
369
  month?: string | number | undefined;
370
- year?: string | number | undefined;
370
+ year?: number | undefined;
371
371
  border?: string | number | boolean | undefined;
372
372
  position?: "fixed" | "absolute" | "relative" | "static" | "sticky" | undefined;
373
373
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
@@ -532,7 +532,7 @@ declare const VDateInput: {
532
532
  loading?: string | boolean | undefined;
533
533
  counter?: string | number | boolean | undefined;
534
534
  month?: string | number | undefined;
535
- year?: string | number | undefined;
535
+ year?: number | undefined;
536
536
  border?: string | number | boolean | undefined;
537
537
  position?: "fixed" | "absolute" | "relative" | "static" | "sticky" | undefined;
538
538
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
@@ -661,7 +661,7 @@ declare const VDateInput: {
661
661
  default: string;
662
662
  };
663
663
  month: (StringConstructor | NumberConstructor)[];
664
- year: (StringConstructor | NumberConstructor)[];
664
+ year: NumberConstructor;
665
665
  border: (StringConstructor | NumberConstructor | BooleanConstructor)[];
666
666
  transition: {
667
667
  type: StringConstructor;
@@ -874,7 +874,7 @@ declare const VDateInput: {
874
874
  default: string;
875
875
  };
876
876
  month: (StringConstructor | NumberConstructor)[];
877
- year: (StringConstructor | NumberConstructor)[];
877
+ year: NumberConstructor;
878
878
  border: (StringConstructor | NumberConstructor | BooleanConstructor)[];
879
879
  transition: {
880
880
  type: StringConstructor;