vuetify 3.6.2 → 3.6.4

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 (127) hide show
  1. package/dist/json/attributes.json +197 -57
  2. package/dist/json/importMap-labs.json +12 -12
  3. package/dist/json/importMap.json +106 -106
  4. package/dist/json/tags.json +36 -1
  5. package/dist/json/web-types.json +527 -117
  6. package/dist/vuetify-labs.css +2933 -2635
  7. package/dist/vuetify-labs.d.ts +1891 -1542
  8. package/dist/vuetify-labs.esm.js +167 -159
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +166 -158
  11. package/dist/vuetify-labs.min.css +3 -3
  12. package/dist/vuetify.css +1157 -863
  13. package/dist/vuetify.d.ts +1328 -1335
  14. package/dist/vuetify.esm.js +114 -84
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +113 -83
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +3 -3
  19. package/dist/vuetify.min.js +990 -987
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/VAlert.css +3 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  24. package/lib/components/VAutocomplete/index.d.mts +187 -158
  25. package/lib/components/VAvatar/VAvatar.css +3 -1
  26. package/lib/components/VBanner/index.d.mts +11 -11
  27. package/lib/components/VBottomSheet/index.d.mts +42 -42
  28. package/lib/components/VBtn/VBtn.css +3 -1
  29. package/lib/components/VCard/VCard.css +3 -1
  30. package/lib/components/VCarousel/index.d.mts +6 -6
  31. package/lib/components/VChip/VChip.css +3 -1
  32. package/lib/components/VChipGroup/index.d.mts +11 -11
  33. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  34. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  35. package/lib/components/VCombobox/index.d.mts +187 -158
  36. package/lib/components/VDataIterator/index.d.mts +1 -1
  37. package/lib/components/VDataTable/VDataTable.css +1 -1
  38. package/lib/components/VDataTable/VDataTable.sass +2 -1
  39. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  40. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  41. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  42. package/lib/components/VDataTable/composables/select.mjs +9 -9
  43. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  44. package/lib/components/VDataTable/index.d.mts +76 -71
  45. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
  46. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  47. package/lib/components/VDialog/index.d.mts +126 -126
  48. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  49. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  50. package/lib/components/VFileInput/index.d.mts +9 -9
  51. package/lib/components/VImg/index.d.mts +6 -6
  52. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  53. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  54. package/lib/components/VList/VList.mjs.map +1 -1
  55. package/lib/components/VList/VListItem.css +3 -1
  56. package/lib/components/VList/VListItem.mjs +3 -2
  57. package/lib/components/VList/VListItem.mjs.map +1 -1
  58. package/lib/components/VList/index.d.mts +76 -52
  59. package/lib/components/VMenu/index.d.mts +126 -126
  60. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -1
  61. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  62. package/lib/components/VNavigationDrawer/index.d.mts +19 -13
  63. package/lib/components/VOverlay/VOverlay.mjs +2 -5
  64. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  65. package/lib/components/VOverlay/index.d.mts +42 -42
  66. package/lib/components/VOverlay/useActivator.mjs +5 -5
  67. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  68. package/lib/components/VResponsive/VResponsive.mjs +1 -1
  69. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  70. package/lib/components/VResponsive/index.d.mts +6 -6
  71. package/lib/components/VSelect/index.d.mts +187 -158
  72. package/lib/components/VSheet/VSheet.css +1 -1
  73. package/lib/components/VSheet/_variables.scss +1 -1
  74. package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
  75. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  76. package/lib/components/VSlideGroup/index.d.mts +11 -11
  77. package/lib/components/VSlider/VSliderThumb.css +5 -0
  78. package/lib/components/VSlider/VSliderThumb.sass +3 -0
  79. package/lib/components/VSlider/VSliderTrack.css +15 -0
  80. package/lib/components/VSlider/VSliderTrack.sass +9 -0
  81. package/lib/components/VSnackbar/VSnackbar.css +3 -1
  82. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  83. package/lib/components/VSnackbar/index.d.mts +126 -126
  84. package/lib/components/VSpeedDial/index.d.mts +42 -42
  85. package/lib/components/VStepper/VStepperWindow.mjs +2 -1
  86. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  87. package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
  88. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  89. package/lib/components/VTabs/VTabs.mjs +8 -3
  90. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  91. package/lib/components/VTabs/VTabsWindow.mjs +2 -1
  92. package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
  93. package/lib/components/VTabs/index.d.mts +11 -11
  94. package/lib/components/VToolbar/VToolbar.css +5 -5
  95. package/lib/components/VToolbar/_variables.scss +3 -3
  96. package/lib/components/VTooltip/index.d.mts +126 -126
  97. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  98. package/lib/components/index.d.mts +1291 -1298
  99. package/lib/composables/component.mjs +1 -1
  100. package/lib/composables/component.mjs.map +1 -1
  101. package/lib/composables/display.mjs +1 -1
  102. package/lib/composables/display.mjs.map +1 -1
  103. package/lib/composables/nested/activeStrategies.mjs +16 -10
  104. package/lib/composables/nested/activeStrategies.mjs.map +1 -1
  105. package/lib/composables/nested/nested.mjs +7 -5
  106. package/lib/composables/nested/nested.mjs.map +1 -1
  107. package/lib/composables/resizeObserver.mjs +5 -5
  108. package/lib/composables/resizeObserver.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 +37 -37
  112. package/lib/labs/VCalendar/VCalendar.css +5 -1
  113. package/lib/labs/VCalendar/VCalendar.sass +3 -2
  114. package/lib/labs/VCalendar/_variables.scss +8 -0
  115. package/lib/labs/VNumberInput/VNumberInput.mjs +57 -81
  116. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  117. package/lib/labs/VNumberInput/index.d.mts +402 -34
  118. package/lib/labs/VSnackbarQueue/index.d.mts +138 -138
  119. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  120. package/lib/labs/VTreeview/index.d.mts +88 -64
  121. package/lib/labs/components.d.mts +620 -235
  122. package/lib/styles/generic/_colors.scss +1 -0
  123. package/lib/styles/main.css +260 -0
  124. package/lib/styles/tools/_variant.sass +3 -1
  125. package/lib/util/helpers.mjs +16 -0
  126. package/lib/util/helpers.mjs.map +1 -1
  127. package/package.json +3 -3
@@ -2,7 +2,7 @@
2
2
  import { propsFactory } from "../util/propsFactory.mjs"; // Types
3
3
  // Composables
4
4
  export const makeComponentProps = propsFactory({
5
- class: [String, Array],
5
+ class: [String, Array, Object],
6
6
  style: {
7
7
  type: [String, Array, Object],
8
8
  default: null
@@ -1 +1 @@
1
- {"version":3,"file":"component.mjs","names":["propsFactory","makeComponentProps","class","String","Array","style","type","Object","default"],"sources":["../../src/composables/component.ts"],"sourcesContent":["// Utilities\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type { PropType, StyleValue } from 'vue'\n\nexport type ClassValue = any\n\nexport interface ComponentProps {\n class?: ClassValue\n style: StyleValue | undefined\n}\n\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array] as PropType<ClassValue>,\n style: {\n type: [String, Array, Object] as PropType<StyleValue>,\n default: null,\n },\n}, 'component')\n"],"mappings":"AAAA;AAAA,SACSA,YAAY,oCAErB;AAUA;AACA,OAAO,MAAMC,kBAAkB,GAAGD,YAAY,CAAC;EAC7CE,KAAK,EAAE,CAACC,MAAM,EAAEC,KAAK,CAAyB;EAC9CC,KAAK,EAAE;IACLC,IAAI,EAAE,CAACH,MAAM,EAAEC,KAAK,EAAEG,MAAM,CAAyB;IACrDC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,WAAW,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"component.mjs","names":["propsFactory","makeComponentProps","class","String","Array","Object","style","type","default"],"sources":["../../src/composables/component.ts"],"sourcesContent":["// Utilities\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type { PropType, StyleValue } from 'vue'\n\nexport type ClassValue = any\n\nexport interface ComponentProps {\n class: ClassValue\n style: StyleValue | undefined\n}\n\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array, Object] as PropType<ClassValue>,\n style: {\n type: [String, Array, Object] as PropType<StyleValue>,\n default: null,\n },\n}, 'component')\n"],"mappings":"AAAA;AAAA,SACSA,YAAY,oCAErB;AAUA;AACA,OAAO,MAAMC,kBAAkB,GAAGD,YAAY,CAAC;EAC7CE,KAAK,EAAE,CAACC,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAyB;EACtDC,KAAK,EAAE;IACLC,IAAI,EAAE,CAACJ,MAAM,EAAEC,KAAK,EAAEC,MAAM,CAAyB;IACrDG,OAAO,EAAE;EACX;AACF,CAAC,EAAE,WAAW,CAAC","ignoreList":[]}
@@ -123,7 +123,7 @@ export function createDisplay(options, ssr) {
123
123
  export const makeDisplayProps = propsFactory({
124
124
  mobile: {
125
125
  type: Boolean,
126
- default: null
126
+ default: false
127
127
  },
128
128
  mobileBreakpoint: [Number, String]
129
129
  }, 'display');
@@ -1 +1 @@
1
- {"version":3,"file":"display.mjs","names":["computed","inject","reactive","shallowRef","toRefs","watchEffect","getCurrentInstanceName","mergeDeep","propsFactory","IN_BROWSER","SUPPORTS_TOUCH","breakpoints","DisplaySymbol","Symbol","for","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","sm","md","lg","xl","xxl","parseDisplayOptions","options","arguments","length","undefined","getClientWidth","ssr","window","innerWidth","clientWidth","getClientHeight","innerHeight","clientHeight","getPlatform","userAgent","navigator","match","regexp","Boolean","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","touch","createDisplay","height","platform","state","width","updateSize","value","update","name","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","addEventListener","passive","makeDisplayProps","type","default","Number","String","useDisplay","props","display","Error","displayClasses"],"sources":["../../src/composables/display.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, reactive, shallowRef, toRefs, watchEffect } from 'vue'\nimport { getCurrentInstanceName, mergeDeep, propsFactory } from '@/util'\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nexport type Breakpoint = typeof breakpoints[number]\n\nexport type DisplayBreakpoint = 'xs' | Breakpoint\n\nexport type DisplayThresholds = {\n [key in DisplayBreakpoint]: number\n}\n\nexport interface DisplayProps {\n mobile?: boolean | null\n mobileBreakpoint?: number | DisplayBreakpoint\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial<DisplayThresholds>\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport type SSROptions = boolean | {\n clientWidth: number\n clientHeight?: number\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: Ref<boolean>\n sm: Ref<boolean>\n md: Ref<boolean>\n lg: Ref<boolean>\n xl: Ref<boolean>\n xxl: Ref<boolean>\n smAndUp: Ref<boolean>\n mdAndUp: Ref<boolean>\n lgAndUp: Ref<boolean>\n xlAndUp: Ref<boolean>\n smAndDown: Ref<boolean>\n mdAndDown: Ref<boolean>\n lgAndDown: Ref<boolean>\n xlAndDown: Ref<boolean>\n name: Ref<DisplayBreakpoint>\n height: Ref<number>\n width: Ref<number>\n mobile: Ref<boolean>\n mobileBreakpoint: Ref<number | DisplayBreakpoint>\n platform: Ref<DisplayPlatform>\n thresholds: Ref<DisplayThresholds>\n\n /** @internal */\n ssr: boolean\n\n update (): void\n}\n\nexport const DisplaySymbol: InjectionKey<DisplayInstance> = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\nfunction getClientWidth (ssr?: SSROptions) {\n return IN_BROWSER && !ssr\n ? window.innerWidth\n : (typeof ssr === 'object' && ssr.clientWidth) || 0\n}\n\nfunction getClientHeight (ssr?: SSROptions) {\n return IN_BROWSER && !ssr\n ? window.innerHeight\n : (typeof ssr === 'object' && ssr.clientHeight) || 0\n}\n\nfunction getPlatform (ssr?: SSROptions): DisplayPlatform {\n const userAgent = IN_BROWSER && !ssr\n ? window.navigator.userAgent\n : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr',\n }\n}\n\nexport function createDisplay (options?: DisplayOptions, ssr?: SSROptions): DisplayInstance {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = shallowRef(getClientHeight(ssr))\n const platform = shallowRef(getPlatform(ssr))\n const state = reactive({} as DisplayInstance)\n const width = shallowRef(getClientWidth(ssr))\n\n function updateSize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n function update () {\n updateSize()\n platform.value = getPlatform()\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = width.value < breakpointValue\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform.value\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, { passive: true })\n }\n\n return { ...toRefs(state), update, ssr: !!ssr }\n}\n\nexport const makeDisplayProps = propsFactory({\n mobile: {\n type: Boolean,\n default: null,\n },\n mobileBreakpoint: [Number, String] as PropType<number | DisplayBreakpoint>,\n}, 'display')\n\nexport function useDisplay (\n props: DisplayProps = {},\n name = getCurrentInstanceName(),\n) {\n const display = inject(DisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n const mobile = computed(() => {\n if (props.mobile != null) return props.mobile\n if (!props.mobileBreakpoint) return display.mobile.value\n\n const breakpointValue = typeof props.mobileBreakpoint === 'number'\n ? props.mobileBreakpoint\n : display.thresholds.value[props.mobileBreakpoint]\n\n return display.width.value < breakpointValue\n })\n\n const displayClasses = computed(() => {\n if (!name) return {}\n\n return { [`${name}--mobile`]: mobile.value }\n })\n\n return { ...display, displayClasses, mobile }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"display.mjs","names":["computed","inject","reactive","shallowRef","toRefs","watchEffect","getCurrentInstanceName","mergeDeep","propsFactory","IN_BROWSER","SUPPORTS_TOUCH","breakpoints","DisplaySymbol","Symbol","for","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","sm","md","lg","xl","xxl","parseDisplayOptions","options","arguments","length","undefined","getClientWidth","ssr","window","innerWidth","clientWidth","getClientHeight","innerHeight","clientHeight","getPlatform","userAgent","navigator","match","regexp","Boolean","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","touch","createDisplay","height","platform","state","width","updateSize","value","update","name","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","addEventListener","passive","makeDisplayProps","type","default","Number","String","useDisplay","props","display","Error","displayClasses"],"sources":["../../src/composables/display.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, reactive, shallowRef, toRefs, watchEffect } from 'vue'\nimport { getCurrentInstanceName, mergeDeep, propsFactory } from '@/util'\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nexport type Breakpoint = typeof breakpoints[number]\n\nexport type DisplayBreakpoint = 'xs' | Breakpoint\n\nexport type DisplayThresholds = {\n [key in DisplayBreakpoint]: number\n}\n\nexport interface DisplayProps {\n mobile?: boolean | null\n mobileBreakpoint?: number | DisplayBreakpoint\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial<DisplayThresholds>\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport type SSROptions = boolean | {\n clientWidth: number\n clientHeight?: number\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: Ref<boolean>\n sm: Ref<boolean>\n md: Ref<boolean>\n lg: Ref<boolean>\n xl: Ref<boolean>\n xxl: Ref<boolean>\n smAndUp: Ref<boolean>\n mdAndUp: Ref<boolean>\n lgAndUp: Ref<boolean>\n xlAndUp: Ref<boolean>\n smAndDown: Ref<boolean>\n mdAndDown: Ref<boolean>\n lgAndDown: Ref<boolean>\n xlAndDown: Ref<boolean>\n name: Ref<DisplayBreakpoint>\n height: Ref<number>\n width: Ref<number>\n mobile: Ref<boolean>\n mobileBreakpoint: Ref<number | DisplayBreakpoint>\n platform: Ref<DisplayPlatform>\n thresholds: Ref<DisplayThresholds>\n\n /** @internal */\n ssr: boolean\n\n update (): void\n}\n\nexport const DisplaySymbol: InjectionKey<DisplayInstance> = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\nfunction getClientWidth (ssr?: SSROptions) {\n return IN_BROWSER && !ssr\n ? window.innerWidth\n : (typeof ssr === 'object' && ssr.clientWidth) || 0\n}\n\nfunction getClientHeight (ssr?: SSROptions) {\n return IN_BROWSER && !ssr\n ? window.innerHeight\n : (typeof ssr === 'object' && ssr.clientHeight) || 0\n}\n\nfunction getPlatform (ssr?: SSROptions): DisplayPlatform {\n const userAgent = IN_BROWSER && !ssr\n ? window.navigator.userAgent\n : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr',\n }\n}\n\nexport function createDisplay (options?: DisplayOptions, ssr?: SSROptions): DisplayInstance {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = shallowRef(getClientHeight(ssr))\n const platform = shallowRef(getPlatform(ssr))\n const state = reactive({} as DisplayInstance)\n const width = shallowRef(getClientWidth(ssr))\n\n function updateSize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n function update () {\n updateSize()\n platform.value = getPlatform()\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = width.value < breakpointValue\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform.value\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, { passive: true })\n }\n\n return { ...toRefs(state), update, ssr: !!ssr }\n}\n\nexport const makeDisplayProps = propsFactory({\n mobile: {\n type: Boolean as PropType<boolean | null>,\n default: false,\n },\n mobileBreakpoint: [Number, String] as PropType<number | DisplayBreakpoint>,\n}, 'display')\n\nexport function useDisplay (\n props: DisplayProps = {},\n name = getCurrentInstanceName(),\n) {\n const display = inject(DisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n const mobile = computed(() => {\n if (props.mobile != null) return props.mobile\n if (!props.mobileBreakpoint) return display.mobile.value\n\n const breakpointValue = typeof props.mobileBreakpoint === 'number'\n ? props.mobileBreakpoint\n : display.thresholds.value[props.mobileBreakpoint]\n\n return display.width.value < breakpointValue\n })\n\n const displayClasses = computed(() => {\n if (!name) return {}\n\n return { [`${name}--mobile`]: mobile.value }\n })\n\n return { ...display, displayClasses, mobile }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable sonarjs/no-identical-functions */
2
2
  // Utilities
3
3
  import { toRaw } from 'vue';
4
+ import { wrapInArray } from "../../util/index.mjs";
4
5
  export const independentActiveStrategy = mandatory => {
5
6
  const strategy = {
6
7
  activate: _ref => {
@@ -23,14 +24,16 @@ export const independentActiveStrategy = mandatory => {
23
24
  },
24
25
  in: (v, children, parents) => {
25
26
  let set = new Set();
26
- for (const id of v || []) {
27
- set = strategy.activate({
28
- id,
29
- value: true,
30
- activated: new Set(set),
31
- children,
32
- parents
33
- });
27
+ if (v != null) {
28
+ for (const id of wrapInArray(v)) {
29
+ set = strategy.activate({
30
+ id,
31
+ value: true,
32
+ activated: new Set(set),
33
+ children,
34
+ parents
35
+ });
36
+ }
34
37
  }
35
38
  return set;
36
39
  },
@@ -59,8 +62,11 @@ export const independentSingleActiveStrategy = mandatory => {
59
62
  },
60
63
  in: (v, children, parents) => {
61
64
  let set = new Set();
62
- if (v?.length) {
63
- set = parentStrategy.in(v.slice(0, 1), children, parents);
65
+ if (v != null) {
66
+ const arr = wrapInArray(v);
67
+ if (arr.length) {
68
+ set = parentStrategy.in(arr.slice(0, 1), children, parents);
69
+ }
64
70
  }
65
71
  return set;
66
72
  },
@@ -1 +1 @@
1
- {"version":3,"file":"activeStrategies.mjs","names":["toRaw","independentActiveStrategy","mandatory","strategy","activate","_ref","id","value","activated","size","has","add","delete","in","v","children","parents","set","Set","out","Array","from","independentSingleActiveStrategy","parentStrategy","_ref2","rest","singleSelected","length","slice","leafActiveStrategy","_ref3","leafSingleActiveStrategy","_ref4"],"sources":["../../../src/composables/nested/activeStrategies.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\n\nexport type ActiveStrategyFn = (data: {\n id: unknown\n value: boolean\n activated: Set<unknown>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Set<unknown>\n\nexport type ActiveStrategyTransformInFn = (\n v: readonly unknown[] | undefined,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => Set<unknown>\n\nexport type ActiveStrategyTransformOutFn = (\n v: Set<unknown>,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => unknown[]\n\nexport type ActiveStrategy = {\n activate: ActiveStrategyFn\n in: ActiveStrategyTransformInFn\n out: ActiveStrategyTransformOutFn\n}\n\nexport const independentActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const strategy: ActiveStrategy = {\n activate: ({ id, value, activated }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated\n\n if (value) {\n activated.add(id)\n } else {\n activated.delete(id)\n }\n\n return activated\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n for (const id of (v || [])) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents,\n })\n }\n\n return set\n },\n out: v => {\n return Array.from(v)\n },\n }\n\n return strategy\n}\n\nexport const independentSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ activated, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = activated.has(id) ? new Set([id]) : new Set()\n return parentStrategy.activate({ ...rest, id, activated: singleSelected })\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v?.length) {\n set = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return set\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentSingleActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"activeStrategies.mjs","names":["toRaw","wrapInArray","independentActiveStrategy","mandatory","strategy","activate","_ref","id","value","activated","size","has","add","delete","in","v","children","parents","set","Set","out","Array","from","independentSingleActiveStrategy","parentStrategy","_ref2","rest","singleSelected","arr","length","slice","leafActiveStrategy","_ref3","leafSingleActiveStrategy","_ref4"],"sources":["../../../src/composables/nested/activeStrategies.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\nimport { wrapInArray } from '@/util'\n\nexport type ActiveStrategyFn = (data: {\n id: unknown\n value: boolean\n activated: Set<unknown>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Set<unknown>\n\nexport type ActiveStrategyTransformInFn = (\n v: unknown | undefined,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => Set<unknown>\n\nexport type ActiveStrategyTransformOutFn = (\n v: Set<unknown>,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => unknown\n\nexport type ActiveStrategy = {\n activate: ActiveStrategyFn\n in: ActiveStrategyTransformInFn\n out: ActiveStrategyTransformOutFn\n}\n\nexport const independentActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const strategy: ActiveStrategy = {\n activate: ({ id, value, activated }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated\n\n if (value) {\n activated.add(id)\n } else {\n activated.delete(id)\n }\n\n return activated\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v != null) {\n for (const id of wrapInArray(v)) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents,\n })\n }\n }\n\n return set\n },\n out: v => {\n return Array.from(v)\n },\n }\n\n return strategy\n}\n\nexport const independentSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ activated, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = activated.has(id) ? new Set([id]) : new Set()\n return parentStrategy.activate({ ...rest, id, activated: singleSelected })\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v != null) {\n const arr = wrapInArray(v)\n if (arr.length) {\n set = parentStrategy.in(arr.slice(0, 1), children, parents)\n }\n }\n\n return set\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentSingleActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n"],"mappings":"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","ignoreList":[]}
@@ -28,12 +28,12 @@ export const emptyNested = {
28
28
  export const makeNestedProps = propsFactory({
29
29
  activatable: Boolean,
30
30
  selectable: Boolean,
31
- activeStrategy: [String, Function],
32
- selectStrategy: [String, Function],
31
+ activeStrategy: [String, Function, Object],
32
+ selectStrategy: [String, Function, Object],
33
33
  openStrategy: [String, Object],
34
- opened: Array,
35
- activated: Array,
36
- selected: Array,
34
+ opened: null,
35
+ activated: null,
36
+ selected: null,
37
37
  mandatory: Boolean
38
38
  }, 'nested');
39
39
  export const useNested = props => {
@@ -43,6 +43,7 @@ export const useNested = props => {
43
43
  const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
44
44
  const activeStrategy = computed(() => {
45
45
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
46
+ if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
46
47
  switch (props.activeStrategy) {
47
48
  case 'leaf':
48
49
  return leafActiveStrategy(props.mandatory);
@@ -57,6 +58,7 @@ export const useNested = props => {
57
58
  });
58
59
  const selectStrategy = computed(() => {
59
60
  if (typeof props.selectStrategy === 'object') return props.selectStrategy;
61
+ if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory);
60
62
  switch (props.selectStrategy) {
61
63
  case 'single-leaf':
62
64
  return leafSingleSelectStrategy(props.mandatory);
@@ -1 +1 @@
1
- {"version":3,"file":"nested.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","getCurrentInstance","getUid","propsFactory","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","openOnSelect","activate","select","activatable","selectable","opened","Set","activated","selected","selectedValues","makeNestedProps","Boolean","activeStrategy","String","Function","selectStrategy","openStrategy","Object","Array","mandatory","useNested","props","isUnmounted","v","values","value","in","out","getPath","path","parent","unshift","get","vm","nested","arr","key","entries","push","parentId","isGroup","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","useNestedItem","uidSymbol","computedId","undefined","item","e","isOpen","has","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy, leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategyFn } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: SelectStrategy | undefined\n selectStrategy: SelectStrategy | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: readonly unknown[] | undefined\n selected: readonly unknown[] | undefined\n opened: readonly unknown[] | undefined\n mandatory: boolean\n 'onUpdate:activated': EventProp<[unknown[]]> | undefined\n 'onUpdate:selected': EventProp<[unknown[]]> | undefined\n 'onUpdate:opened': EventProp<[unknown[]]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n activatable: Ref<boolean>\n selectable: Ref<boolean>\n opened: Ref<Set<unknown>>\n activated: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function] as PropType<SelectStrategy>,\n selectStrategy: [String, Function] as PropType<SelectStrategy>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: Array as PropType<readonly unknown[]>,\n activated: Array as PropType<readonly unknown[]>,\n selected: Array as PropType<readonly unknown[]>,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<unknown, unknown[]>())\n const parents = ref(new Map<unknown, unknown>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(props, 'activatable'),\n selectable: toRef(props, 'selectable'),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n opened.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newActivated && (activated.value = newActivated)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"nested.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","getCurrentInstance","getUid","propsFactory","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","openOnSelect","activate","select","activatable","selectable","opened","Set","activated","selected","selectedValues","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","values","value","in","out","getPath","path","parent","unshift","get","vm","nested","arr","key","entries","push","parentId","isGroup","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","useNestedItem","uidSymbol","computedId","undefined","item","e","isOpen","has","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n activatable: Ref<boolean>\n selectable: Ref<boolean>\n opened: Ref<Set<unknown>>\n activated: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<unknown, unknown[]>())\n const parents = ref(new Map<unknown, unknown>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory)\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory)\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(props, 'activatable'),\n selectable: toRef(props, 'selectable'),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n opened.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newActivated && (activated.value = newActivated)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  // Utilities
2
2
  import { onBeforeUnmount, readonly, ref, watch } from 'vue';
3
- import { refElement } from "../util/index.mjs";
3
+ import { templateRef } from "../util/index.mjs";
4
4
  import { IN_BROWSER } from "../util/globals.mjs"; // Types
5
5
  export function useResizeObserver(callback) {
6
6
  let box = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'content';
7
- const resizeRef = ref();
7
+ const resizeRef = templateRef();
8
8
  const contentRect = ref();
9
9
  if (IN_BROWSER) {
10
10
  const observer = new ResizeObserver(entries => {
@@ -19,12 +19,12 @@ export function useResizeObserver(callback) {
19
19
  onBeforeUnmount(() => {
20
20
  observer.disconnect();
21
21
  });
22
- watch(resizeRef, (newValue, oldValue) => {
22
+ watch(() => resizeRef.el, (newValue, oldValue) => {
23
23
  if (oldValue) {
24
- observer.unobserve(refElement(oldValue));
24
+ observer.unobserve(oldValue);
25
25
  contentRect.value = undefined;
26
26
  }
27
- if (newValue) observer.observe(refElement(newValue));
27
+ if (newValue) observer.observe(newValue);
28
28
  }, {
29
29
  flush: 'post'
30
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"resizeObserver.mjs","names":["onBeforeUnmount","readonly","ref","watch","refElement","IN_BROWSER","useResizeObserver","callback","box","arguments","length","undefined","resizeRef","contentRect","observer","ResizeObserver","entries","value","target","getBoundingClientRect","disconnect","newValue","oldValue","unobserve","observe","flush"],"sources":["../../src/composables/resizeObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport { refElement } from '@/util'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type { DeepReadonly, Ref } from 'vue'\n\ninterface ResizeState {\n resizeRef: Ref<HTMLElement | undefined>\n contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback, box: 'content' | 'border' = 'content'): ResizeState {\n const resizeRef = ref<HTMLElement>()\n const contentRect = ref<DOMRectReadOnly>()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n if (box === 'content') {\n contentRect.value = entries[0].contentRect\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect()\n }\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(resizeRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(refElement(oldValue) as Element)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(refElement(newValue) as Element)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAClDC,UAAU;AAAA,SACVC,UAAU,+BAEnB;AAQA,OAAO,SAASC,iBAAiBA,CAAEC,QAAiC,EAAsD;EAAA,IAApDC,GAAyB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EACzG,MAAMG,SAAS,GAAGV,GAAG,CAAc,CAAC;EACpC,MAAMW,WAAW,GAAGX,GAAG,CAAkB,CAAC;EAE1C,IAAIG,UAAU,EAAE;IACd,MAAMS,QAAQ,GAAG,IAAIC,cAAc,CAAEC,OAA8B,IAAK;MACtET,QAAQ,GAAGS,OAAO,EAAEF,QAAQ,CAAC;MAE7B,IAAI,CAACE,OAAO,CAACN,MAAM,EAAE;MAErB,IAAIF,GAAG,KAAK,SAAS,EAAE;QACrBK,WAAW,CAACI,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACH,WAAW;MAC5C,CAAC,MAAM;QACLA,WAAW,CAACI,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACE,MAAM,CAACC,qBAAqB,CAAC,CAAC;MAC/D;IACF,CAAC,CAAC;IAEFnB,eAAe,CAAC,MAAM;MACpBc,QAAQ,CAACM,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFjB,KAAK,CAACS,SAAS,EAAE,CAACS,QAAQ,EAAEC,QAAQ,KAAK;MACvC,IAAIA,QAAQ,EAAE;QACZR,QAAQ,CAACS,SAAS,CAACnB,UAAU,CAACkB,QAAQ,CAAY,CAAC;QACnDT,WAAW,CAACI,KAAK,GAAGN,SAAS;MAC/B;MAEA,IAAIU,QAAQ,EAAEP,QAAQ,CAACU,OAAO,CAACpB,UAAU,CAACiB,QAAQ,CAAY,CAAC;IACjE,CAAC,EAAE;MACDI,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEA,OAAO;IACLb,SAAS;IACTC,WAAW,EAAEZ,QAAQ,CAACY,WAAW;EACnC,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"resizeObserver.mjs","names":["onBeforeUnmount","readonly","ref","watch","templateRef","IN_BROWSER","useResizeObserver","callback","box","arguments","length","undefined","resizeRef","contentRect","observer","ResizeObserver","entries","value","target","getBoundingClientRect","disconnect","el","newValue","oldValue","unobserve","observe","flush"],"sources":["../../src/composables/resizeObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport { templateRef } from '@/util'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type { DeepReadonly, Ref } from 'vue'\nimport type { TemplateRef } from '@/util'\n\ninterface ResizeState {\n resizeRef: TemplateRef\n contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback, box: 'content' | 'border' = 'content'): ResizeState {\n const resizeRef = templateRef()\n const contentRect = ref<DOMRectReadOnly>()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n if (box === 'content') {\n contentRect.value = entries[0].contentRect\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect()\n }\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAClDC,WAAW;AAAA,SACXC,UAAU,+BAEnB;AASA,OAAO,SAASC,iBAAiBA,CAAEC,QAAiC,EAAsD;EAAA,IAApDC,GAAyB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EACzG,MAAMG,SAAS,GAAGR,WAAW,CAAC,CAAC;EAC/B,MAAMS,WAAW,GAAGX,GAAG,CAAkB,CAAC;EAE1C,IAAIG,UAAU,EAAE;IACd,MAAMS,QAAQ,GAAG,IAAIC,cAAc,CAAEC,OAA8B,IAAK;MACtET,QAAQ,GAAGS,OAAO,EAAEF,QAAQ,CAAC;MAE7B,IAAI,CAACE,OAAO,CAACN,MAAM,EAAE;MAErB,IAAIF,GAAG,KAAK,SAAS,EAAE;QACrBK,WAAW,CAACI,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACH,WAAW;MAC5C,CAAC,MAAM;QACLA,WAAW,CAACI,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACE,MAAM,CAACC,qBAAqB,CAAC,CAAC;MAC/D;IACF,CAAC,CAAC;IAEFnB,eAAe,CAAC,MAAM;MACpBc,QAAQ,CAACM,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFjB,KAAK,CAAC,MAAMS,SAAS,CAACS,EAAE,EAAE,CAACC,QAAQ,EAAEC,QAAQ,KAAK;MAChD,IAAIA,QAAQ,EAAE;QACZT,QAAQ,CAACU,SAAS,CAACD,QAAQ,CAAC;QAC5BV,WAAW,CAACI,KAAK,GAAGN,SAAS;MAC/B;MAEA,IAAIW,QAAQ,EAAER,QAAQ,CAACW,OAAO,CAACH,QAAQ,CAAC;IAC1C,CAAC,EAAE;MACDI,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEA,OAAO;IACLd,SAAS;IACTC,WAAW,EAAEZ,QAAQ,CAACY,WAAW;EACnC,CAAC;AACH","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.6.2";
19
+ export const version = "3.6.4";
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.2";
100
+ export const version = "3.6.4";
101
101
  createVuetify.version = version;
102
102
 
103
103
  // Vue's inject() can only be used in setup
package/lib/index.d.mts CHANGED
@@ -493,42 +493,42 @@ declare module '@vue/runtime-core' {
493
493
  }
494
494
 
495
495
  export interface GlobalComponents {
496
- VApp: typeof import('vuetify/components')['VApp']
497
496
  VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
498
- VBadge: typeof import('vuetify/components')['VBadge']
499
- VAlert: typeof import('vuetify/components')['VAlert']
500
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
497
+ VApp: typeof import('vuetify/components')['VApp']
501
498
  VAppBar: typeof import('vuetify/components')['VAppBar']
502
499
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
503
500
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
504
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
505
501
  VAvatar: typeof import('vuetify/components')['VAvatar']
506
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
502
+ VAlert: typeof import('vuetify/components')['VAlert']
503
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
507
504
  VBanner: typeof import('vuetify/components')['VBanner']
508
505
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
509
506
  VBannerText: typeof import('vuetify/components')['VBannerText']
507
+ VBadge: typeof import('vuetify/components')['VBadge']
508
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
509
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
510
+ VBtn: typeof import('vuetify/components')['VBtn']
511
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
510
512
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
511
513
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
512
514
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
513
- VBtn: typeof import('vuetify/components')['VBtn']
514
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
515
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
515
+ VCarousel: typeof import('vuetify/components')['VCarousel']
516
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
516
517
  VCard: typeof import('vuetify/components')['VCard']
517
518
  VCardActions: typeof import('vuetify/components')['VCardActions']
518
519
  VCardItem: typeof import('vuetify/components')['VCardItem']
519
520
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
520
521
  VCardText: typeof import('vuetify/components')['VCardText']
521
522
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
522
- VCarousel: typeof import('vuetify/components')['VCarousel']
523
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
523
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
524
524
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
525
525
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
526
- VCode: typeof import('vuetify/components')['VCode']
527
526
  VChip: typeof import('vuetify/components')['VChip']
528
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
529
527
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
528
+ VCode: typeof import('vuetify/components')['VCode']
530
529
  VCombobox: typeof import('vuetify/components')['VCombobox']
531
530
  VCounter: typeof import('vuetify/components')['VCounter']
531
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
532
532
  VDataTable: typeof import('vuetify/components')['VDataTable']
533
533
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
534
534
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -542,30 +542,30 @@ declare module '@vue/runtime-core' {
542
542
  VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
543
543
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
544
544
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
545
- VFab: typeof import('vuetify/components')['VFab']
546
545
  VDialog: typeof import('vuetify/components')['VDialog']
547
- VDivider: typeof import('vuetify/components')['VDivider']
548
546
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
549
- VField: typeof import('vuetify/components')['VField']
550
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
551
- VFooter: typeof import('vuetify/components')['VFooter']
547
+ VDivider: typeof import('vuetify/components')['VDivider']
552
548
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
553
549
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
554
550
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
555
551
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
552
+ VField: typeof import('vuetify/components')['VField']
553
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
554
+ VFooter: typeof import('vuetify/components')['VFooter']
555
+ VFab: typeof import('vuetify/components')['VFab']
556
556
  VFileInput: typeof import('vuetify/components')['VFileInput']
557
- VImg: typeof import('vuetify/components')['VImg']
558
557
  VIcon: typeof import('vuetify/components')['VIcon']
559
558
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
560
559
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
561
560
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
562
561
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
563
- VInput: typeof import('vuetify/components')['VInput']
562
+ VImg: typeof import('vuetify/components')['VImg']
564
563
  VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
564
+ VInput: typeof import('vuetify/components')['VInput']
565
+ VKbd: typeof import('vuetify/components')['VKbd']
565
566
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
566
567
  VItem: typeof import('vuetify/components')['VItem']
567
568
  VLabel: typeof import('vuetify/components')['VLabel']
568
- VKbd: typeof import('vuetify/components')['VKbd']
569
569
  VList: typeof import('vuetify/components')['VList']
570
570
  VListGroup: typeof import('vuetify/components')['VListGroup']
571
571
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -575,47 +575,47 @@ 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']
579
+ VMenu: typeof import('vuetify/components')['VMenu']
580
+ VOverlay: typeof import('vuetify/components')['VOverlay']
580
581
  VMessages: typeof import('vuetify/components')['VMessages']
581
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
582
582
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
583
- VOverlay: typeof import('vuetify/components')['VOverlay']
583
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
584
584
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
585
585
  VPagination: typeof import('vuetify/components')['VPagination']
586
586
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
587
587
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
588
+ VRating: typeof import('vuetify/components')['VRating']
588
589
  VSelect: typeof import('vuetify/components')['VSelect']
589
590
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
590
- VRating: typeof import('vuetify/components')['VRating']
591
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
592
- VSheet: typeof import('vuetify/components')['VSheet']
593
591
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
594
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
592
+ VSheet: typeof import('vuetify/components')['VSheet']
593
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
595
594
  VSlider: typeof import('vuetify/components')['VSlider']
595
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
596
+ VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
597
+ VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
598
+ VSwitch: typeof import('vuetify/components')['VSwitch']
596
599
  VStepper: typeof import('vuetify/components')['VStepper']
597
600
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
598
601
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
599
602
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
600
603
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
601
604
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
602
- VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
603
- VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
605
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
606
+ VTable: typeof import('vuetify/components')['VTable']
604
607
  VTab: typeof import('vuetify/components')['VTab']
605
608
  VTabs: typeof import('vuetify/components')['VTabs']
606
609
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
607
610
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
608
- VTable: typeof import('vuetify/components')['VTable']
609
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
611
+ VTextarea: typeof import('vuetify/components')['VTextarea']
610
612
  VTextField: typeof import('vuetify/components')['VTextField']
611
- VSwitch: typeof import('vuetify/components')['VSwitch']
612
613
  VToolbar: typeof import('vuetify/components')['VToolbar']
613
614
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
614
615
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
615
616
  VTimeline: typeof import('vuetify/components')['VTimeline']
616
617
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
617
618
  VTooltip: typeof import('vuetify/components')['VTooltip']
618
- VTextarea: typeof import('vuetify/components')['VTextarea']
619
619
  VWindow: typeof import('vuetify/components')['VWindow']
620
620
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
621
621
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
@@ -666,12 +666,12 @@ declare module '@vue/runtime-core' {
666
666
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
667
667
  VPicker: typeof import('vuetify/labs/components')['VPicker']
668
668
  VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
669
- VTreeview: typeof import('vuetify/labs/components')['VTreeview']
670
- VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
671
- VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
672
669
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
673
670
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
674
671
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
672
+ VTreeview: typeof import('vuetify/labs/components')['VTreeview']
673
+ VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
674
+ VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
675
675
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
676
676
  VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
677
677
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
@@ -1,10 +1,14 @@
1
+ .v-calendar {
2
+ background: rgb(var(--v-theme-background));
3
+ color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
4
+ }
5
+
1
6
  .v-calendar-weekly {
2
7
  width: 100%;
3
8
  height: 100%;
4
9
  display: flex;
5
10
  flex-direction: column;
6
11
  min-height: 0;
7
- background-color: #fff;
8
12
  }
9
13
 
10
14
  .v-calendar__container {