vuetify 3.7.2 → 3.7.3

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 (83) hide show
  1. package/dist/json/attributes.json +1 -1
  2. package/dist/json/importMap-labs.json +22 -22
  3. package/dist/json/importMap.json +160 -160
  4. package/dist/json/web-types.json +2 -2
  5. package/dist/vuetify-labs.css +3147 -3147
  6. package/dist/vuetify-labs.d.ts +194 -194
  7. package/dist/vuetify-labs.esm.js +45 -38
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +45 -38
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +2105 -2105
  12. package/dist/vuetify.d.ts +210 -210
  13. package/dist/vuetify.esm.js +15 -10
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +15 -10
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +12 -12
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAutocomplete/index.d.mts +22 -22
  21. package/lib/components/VBottomSheet/VBottomSheet.sass +2 -1
  22. package/lib/components/VBottomSheet/index.d.mts +4 -4
  23. package/lib/components/VCarousel/index.d.mts +2 -2
  24. package/lib/components/VCheckbox/index.d.mts +2 -2
  25. package/lib/components/VChip/VChip.mjs +2 -1
  26. package/lib/components/VChip/VChip.mjs.map +1 -1
  27. package/lib/components/VColorPicker/VColorPicker.mjs +2 -2
  28. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  29. package/lib/components/VCombobox/index.d.mts +22 -22
  30. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +87 -0
  31. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs.map +1 -0
  32. package/lib/components/VDataTable/composables/paginate.mjs +4 -2
  33. package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
  34. package/lib/components/VDataTable/index.d.mts +6 -6
  35. package/lib/components/VDatePicker/index.d.mts +2 -2
  36. package/lib/components/VDialog/index.d.mts +22 -22
  37. package/lib/components/VField/_variables.scss +2 -1
  38. package/lib/components/VFileInput/__tests__/text.txt +1 -0
  39. package/lib/components/VFileInput/index.d.mts +3 -3
  40. package/lib/components/VInput/index.d.mts +2 -2
  41. package/lib/components/VList/VListItem.mjs +1 -0
  42. package/lib/components/VList/VListItem.mjs.map +1 -1
  43. package/lib/components/VMenu/index.d.mts +20 -20
  44. package/lib/components/VMessages/index.d.mts +8 -8
  45. package/lib/components/VNavigationDrawer/index.d.mts +7 -7
  46. package/lib/components/VOverflowBtn/VOverflowBtn.sass +6 -5
  47. package/lib/components/VOverlay/index.d.mts +4 -4
  48. package/lib/components/VProgressLinear/_variables.scss +2 -1
  49. package/lib/components/VRadioGroup/index.d.mts +2 -2
  50. package/lib/components/VSelect/index.d.mts +22 -22
  51. package/lib/components/VSnackbar/index.d.mts +31 -31
  52. package/lib/components/VSpeedDial/index.d.mts +2 -2
  53. package/lib/components/VSwitch/index.d.mts +2 -2
  54. package/lib/components/VTable/_mixins.scss +2 -2
  55. package/lib/components/VTabs/VTabs.sass +1 -1
  56. package/lib/components/VTextField/index.d.mts +3 -3
  57. package/lib/components/VTextarea/index.d.mts +3 -3
  58. package/lib/components/VTooltip/index.d.mts +24 -24
  59. package/lib/components/VWindow/index.d.mts +2 -2
  60. package/lib/components/index.d.mts +157 -157
  61. package/lib/composables/directiveComponent.mjs +4 -3
  62. package/lib/composables/directiveComponent.mjs.map +1 -1
  63. package/lib/composables/nested/nested.mjs +2 -2
  64. package/lib/composables/nested/nested.mjs.map +1 -1
  65. package/lib/directives/ripple/index.mjs.map +1 -1
  66. package/lib/entry-bundler.mjs +1 -1
  67. package/lib/framework.mjs +1 -1
  68. package/lib/index.d.mts +53 -53
  69. package/lib/labs/VNumberInput/index.d.mts +9 -9
  70. package/lib/labs/VSnackbarQueue/index.d.mts +52 -52
  71. package/lib/labs/VTreeview/VTreeview.mjs +2 -1
  72. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  73. package/lib/labs/VTreeview/VTreeviewChildren.mjs +29 -28
  74. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  75. package/lib/labs/VTreeview/index.d.mts +7 -7
  76. package/lib/labs/components.d.mts +68 -68
  77. package/lib/styles/settings/_colors.scss +257 -256
  78. package/lib/styles/utilities/_display.sass +2 -1
  79. package/lib/styles/utilities/_elevation.scss +2 -1
  80. package/lib/styles/utilities/_screenreaders.sass +2 -1
  81. package/package.json +23 -16
  82. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs +0 -74
  83. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  // Utilities
2
2
  import { h, mergeProps, render, resolveComponent } from 'vue';
3
- import { isObject } from "../util/index.mjs"; // Types
3
+ import { consoleError, isObject } from "../util/index.mjs"; // Types
4
4
  export function useDirectiveComponent(component, props) {
5
5
  const concreteComponent = typeof component === 'string' ? resolveComponent(component) : component;
6
6
  const hook = mountComponent(concreteComponent, props);
@@ -37,7 +37,7 @@ function findComponentParent(vnode, root) {
37
37
  const walk = children => {
38
38
  for (const child of children) {
39
39
  if (!child) continue;
40
- if (child === vnode) {
40
+ if (child === vnode || child.el && vnode.el && child.el === vnode.el) {
41
41
  return true;
42
42
  }
43
43
  stack.add(child);
@@ -57,7 +57,8 @@ function findComponentParent(vnode, root) {
57
57
  return false;
58
58
  };
59
59
  if (!walk([root.subTree])) {
60
- throw new Error('Could not find original vnode');
60
+ consoleError('Could not find original vnode, component will not inherit provides');
61
+ return root;
61
62
  }
62
63
 
63
64
  // Return the first component parent
@@ -1 +1 @@
1
- {"version":3,"file":"directiveComponent.mjs","names":["h","mergeProps","render","resolveComponent","isObject","useDirectiveComponent","component","props","concreteComponent","hook","mountComponent","mounted","updated","unmounted","el","binding","vnode","_props","text","value","children","textContent","provides","ctx","instance","$","findComponentParent","node","appContext","Object","assign","create","root","stack","Set","walk","child","add","result","suspense","ssContent","Array","isArray","subTree","delete","Error","from","reverse"],"sources":["../../src/composables/directiveComponent.ts"],"sourcesContent":["// Utilities\nimport { h, mergeProps, render, resolveComponent } from 'vue'\nimport { isObject } from '@/util'\n\n// Types\nimport type {\n Component,\n ComponentInternalInstance,\n ComponentPublicInstance,\n ConcreteComponent,\n DirectiveBinding,\n ObjectDirective,\n VNode,\n} from 'vue'\nimport type { ComponentInstance } from '@/util'\n\ntype ExcludeProps =\n | 'v-slots'\n | `v-slot:${string}`\n | `on${Uppercase<string>}${string}`\n | 'key'\n | 'ref'\n | 'ref_for'\n | 'ref_key'\n | '$children'\n\ndeclare const CustomDirectiveSymbol: unique symbol\ntype DirectiveHook<B extends DirectiveBinding> = (el: any, binding: B, vnode: VNode<any, any>, prevVNode: VNode<any, any>) => void\nexport interface CustomDirective<B extends DirectiveBinding = DirectiveBinding> {\n created?: DirectiveHook<B>\n beforeMount?: DirectiveHook<B>\n mounted?: DirectiveHook<B>\n beforeUpdate?: DirectiveHook<B>\n updated?: DirectiveHook<B>\n beforeUnmount?: DirectiveHook<B>\n unmounted?: DirectiveHook<B>\n [CustomDirectiveSymbol]: true\n}\n\nexport function useDirectiveComponent <\n Binding extends DirectiveBinding,\n> (component: string | Component, props?: (binding: Binding) => Record<string, any>): CustomDirective<Binding>\nexport function useDirectiveComponent <\n C extends Component,\n Props = Omit<ComponentInstance<C>['$props'], ExcludeProps>\n> (component: string | C, props?: Record<string, any>): ObjectDirective<any, Props>\nexport function useDirectiveComponent (\n component: string | Component,\n props?: Record<string, any> | ((binding: DirectiveBinding) => Record<string, any>)\n): ObjectDirective | CustomDirective {\n const concreteComponent = (typeof component === 'string'\n ? resolveComponent(component)\n : component) as ConcreteComponent\n\n const hook = mountComponent(concreteComponent, props)\n\n return {\n mounted: hook,\n updated: hook,\n unmounted (el: HTMLElement) {\n render(null, el)\n },\n }\n}\n\nfunction mountComponent (component: ConcreteComponent, props?: Record<string, any> | ((binding: DirectiveBinding) => Record<string, any>)) {\n return function (el: HTMLElement, binding: DirectiveBinding, vnode: VNode) {\n const _props = typeof props === 'function' ? props(binding) : props\n const text = binding.value?.text ?? binding.value ?? _props?.text\n const value = isObject(binding.value) ? binding.value : {}\n\n // Get the children from the props or directive value, or the element's children\n const children = () => text ?? el.textContent\n\n // If vnode.ctx is the same as the instance, then we're bound to a plain element\n // and need to find the nearest parent component instance to inherit provides from\n const provides = (vnode.ctx === binding.instance!.$\n ? findComponentParent(vnode, binding.instance!.$)?.provides\n : vnode.ctx?.provides) ?? binding.instance!.$.provides\n\n const node = h(component, mergeProps(_props, value), children)\n node.appContext = Object.assign(\n Object.create(null),\n (binding.instance as ComponentPublicInstance).$.appContext,\n { provides }\n )\n\n render(node, el)\n }\n}\n\nfunction findComponentParent (vnode: VNode, root: ComponentInternalInstance): ComponentInternalInstance | null {\n // Walk the tree from root until we find the child vnode\n const stack = new Set<VNode>()\n const walk = (children: VNode[]): boolean => {\n for (const child of children) {\n if (!child) continue\n\n if (child === vnode) {\n return true\n }\n\n stack.add(child)\n let result\n if (child.suspense) {\n result = walk([child.ssContent!])\n } else if (Array.isArray(child.children)) {\n result = walk(child.children as VNode[])\n } else if (child.component?.vnode) {\n result = walk([child.component?.subTree])\n }\n if (result) {\n return result\n }\n stack.delete(child)\n }\n\n return false\n }\n if (!walk([root.subTree])) {\n throw new Error('Could not find original vnode')\n }\n\n // Return the first component parent\n const result = Array.from(stack).reverse()\n for (const child of result) {\n if (child.component) {\n return child.component\n }\n }\n return root\n}\n"],"mappings":"AAAA;AACA,SAASA,CAAC,EAAEC,UAAU,EAAEC,MAAM,EAAEC,gBAAgB,QAAQ,KAAK;AAAA,SACpDC,QAAQ,6BAEjB;AA0CA,OAAO,SAASC,qBAAqBA,CACnCC,SAA6B,EAC7BC,KAAkF,EAC/C;EACnC,MAAMC,iBAAiB,GAAI,OAAOF,SAAS,KAAK,QAAQ,GACpDH,gBAAgB,CAACG,SAAS,CAAC,GAC3BA,SAA+B;EAEnC,MAAMG,IAAI,GAAGC,cAAc,CAACF,iBAAiB,EAAED,KAAK,CAAC;EAErD,OAAO;IACLI,OAAO,EAAEF,IAAI;IACbG,OAAO,EAAEH,IAAI;IACbI,SAASA,CAAEC,EAAe,EAAE;MAC1BZ,MAAM,CAAC,IAAI,EAAEY,EAAE,CAAC;IAClB;EACF,CAAC;AACH;AAEA,SAASJ,cAAcA,CAAEJ,SAA4B,EAAEC,KAAkF,EAAE;EACzI,OAAO,UAAUO,EAAe,EAAEC,OAAyB,EAAEC,KAAY,EAAE;IACzE,MAAMC,MAAM,GAAG,OAAOV,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACQ,OAAO,CAAC,GAAGR,KAAK;IACnE,MAAMW,IAAI,GAAGH,OAAO,CAACI,KAAK,EAAED,IAAI,IAAIH,OAAO,CAACI,KAAK,IAAIF,MAAM,EAAEC,IAAI;IACjE,MAAMC,KAAK,GAAGf,QAAQ,CAACW,OAAO,CAACI,KAAK,CAAC,GAAGJ,OAAO,CAACI,KAAK,GAAG,CAAC,CAAC;;IAE1D;IACA,MAAMC,QAAQ,GAAGA,CAAA,KAAMF,IAAI,IAAIJ,EAAE,CAACO,WAAW;;IAE7C;IACA;IACA,MAAMC,QAAQ,GAAG,CAACN,KAAK,CAACO,GAAG,KAAKR,OAAO,CAACS,QAAQ,CAAEC,CAAC,GAC/CC,mBAAmB,CAACV,KAAK,EAAED,OAAO,CAACS,QAAQ,CAAEC,CAAC,CAAC,EAAEH,QAAQ,GACzDN,KAAK,CAACO,GAAG,EAAED,QAAQ,KAAKP,OAAO,CAACS,QAAQ,CAAEC,CAAC,CAACH,QAAQ;IAExD,MAAMK,IAAI,GAAG3B,CAAC,CAACM,SAAS,EAAEL,UAAU,CAACgB,MAAM,EAAEE,KAAK,CAAC,EAAEC,QAAQ,CAAC;IAC9DO,IAAI,CAACC,UAAU,GAAGC,MAAM,CAACC,MAAM,CAC7BD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAClBhB,OAAO,CAACS,QAAQ,CAA6BC,CAAC,CAACG,UAAU,EAC1D;MAAEN;IAAS,CACb,CAAC;IAEDpB,MAAM,CAACyB,IAAI,EAAEb,EAAE,CAAC;EAClB,CAAC;AACH;AAEA,SAASY,mBAAmBA,CAAEV,KAAY,EAAEgB,IAA+B,EAAoC;EAC7G;EACA,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAAQ,CAAC;EAC9B,MAAMC,IAAI,GAAIf,QAAiB,IAAc;IAC3C,KAAK,MAAMgB,KAAK,IAAIhB,QAAQ,EAAE;MAC5B,IAAI,CAACgB,KAAK,EAAE;MAEZ,IAAIA,KAAK,KAAKpB,KAAK,EAAE;QACnB,OAAO,IAAI;MACb;MAEAiB,KAAK,CAACI,GAAG,CAACD,KAAK,CAAC;MAChB,IAAIE,MAAM;MACV,IAAIF,KAAK,CAACG,QAAQ,EAAE;QAClBD,MAAM,GAAGH,IAAI,CAAC,CAACC,KAAK,CAACI,SAAS,CAAE,CAAC;MACnC,CAAC,MAAM,IAAIC,KAAK,CAACC,OAAO,CAACN,KAAK,CAAChB,QAAQ,CAAC,EAAE;QACxCkB,MAAM,GAAGH,IAAI,CAACC,KAAK,CAAChB,QAAmB,CAAC;MAC1C,CAAC,MAAM,IAAIgB,KAAK,CAAC9B,SAAS,EAAEU,KAAK,EAAE;QACjCsB,MAAM,GAAGH,IAAI,CAAC,CAACC,KAAK,CAAC9B,SAAS,EAAEqC,OAAO,CAAC,CAAC;MAC3C;MACA,IAAIL,MAAM,EAAE;QACV,OAAOA,MAAM;MACf;MACAL,KAAK,CAACW,MAAM,CAACR,KAAK,CAAC;IACrB;IAEA,OAAO,KAAK;EACd,CAAC;EACD,IAAI,CAACD,IAAI,CAAC,CAACH,IAAI,CAACW,OAAO,CAAC,CAAC,EAAE;IACzB,MAAM,IAAIE,KAAK,CAAC,+BAA+B,CAAC;EAClD;;EAEA;EACA,MAAMP,MAAM,GAAGG,KAAK,CAACK,IAAI,CAACb,KAAK,CAAC,CAACc,OAAO,CAAC,CAAC;EAC1C,KAAK,MAAMX,KAAK,IAAIE,MAAM,EAAE;IAC1B,IAAIF,KAAK,CAAC9B,SAAS,EAAE;MACnB,OAAO8B,KAAK,CAAC9B,SAAS;IACxB;EACF;EACA,OAAO0B,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"file":"directiveComponent.mjs","names":["h","mergeProps","render","resolveComponent","consoleError","isObject","useDirectiveComponent","component","props","concreteComponent","hook","mountComponent","mounted","updated","unmounted","el","binding","vnode","_props","text","value","children","textContent","provides","ctx","instance","$","findComponentParent","node","appContext","Object","assign","create","root","stack","Set","walk","child","add","result","suspense","ssContent","Array","isArray","subTree","delete","from","reverse"],"sources":["../../src/composables/directiveComponent.ts"],"sourcesContent":["// Utilities\nimport { h, mergeProps, render, resolveComponent } from 'vue'\nimport { consoleError, isObject } from '@/util'\n\n// Types\nimport type {\n Component,\n ComponentInternalInstance,\n ComponentPublicInstance,\n ConcreteComponent,\n DirectiveBinding,\n ObjectDirective,\n VNode,\n} from 'vue'\nimport type { ComponentInstance } from '@/util'\n\ntype ExcludeProps =\n | 'v-slots'\n | `v-slot:${string}`\n | `on${Uppercase<string>}${string}`\n | 'key'\n | 'ref'\n | 'ref_for'\n | 'ref_key'\n | '$children'\n\ndeclare const CustomDirectiveSymbol: unique symbol\ntype DirectiveHook<B extends DirectiveBinding> = (el: any, binding: B, vnode: VNode<any, any>, prevVNode: VNode<any, any>) => void\nexport interface CustomDirective<B extends DirectiveBinding = DirectiveBinding> {\n created?: DirectiveHook<B>\n beforeMount?: DirectiveHook<B>\n mounted?: DirectiveHook<B>\n beforeUpdate?: DirectiveHook<B>\n updated?: DirectiveHook<B>\n beforeUnmount?: DirectiveHook<B>\n unmounted?: DirectiveHook<B>\n [CustomDirectiveSymbol]: true\n}\n\nexport function useDirectiveComponent <\n Binding extends DirectiveBinding,\n> (component: string | Component, props?: (binding: Binding) => Record<string, any>): CustomDirective<Binding>\nexport function useDirectiveComponent <\n C extends Component,\n Props = Omit<ComponentInstance<C>['$props'], ExcludeProps>\n> (component: string | C, props?: Record<string, any>): ObjectDirective<any, Props>\nexport function useDirectiveComponent (\n component: string | Component,\n props?: Record<string, any> | ((binding: DirectiveBinding) => Record<string, any>)\n): ObjectDirective | CustomDirective {\n const concreteComponent = (typeof component === 'string'\n ? resolveComponent(component)\n : component) as ConcreteComponent\n\n const hook = mountComponent(concreteComponent, props)\n\n return {\n mounted: hook,\n updated: hook,\n unmounted (el: HTMLElement) {\n render(null, el)\n },\n }\n}\n\nfunction mountComponent (component: ConcreteComponent, props?: Record<string, any> | ((binding: DirectiveBinding) => Record<string, any>)) {\n return function (el: HTMLElement, binding: DirectiveBinding, vnode: VNode) {\n const _props = typeof props === 'function' ? props(binding) : props\n const text = binding.value?.text ?? binding.value ?? _props?.text\n const value = isObject(binding.value) ? binding.value : {}\n\n // Get the children from the props or directive value, or the element's children\n const children = () => text ?? el.textContent\n\n // If vnode.ctx is the same as the instance, then we're bound to a plain element\n // and need to find the nearest parent component instance to inherit provides from\n const provides = (vnode.ctx === binding.instance!.$\n ? findComponentParent(vnode, binding.instance!.$)?.provides\n : vnode.ctx?.provides) ?? binding.instance!.$.provides\n\n const node = h(component, mergeProps(_props, value), children)\n node.appContext = Object.assign(\n Object.create(null),\n (binding.instance as ComponentPublicInstance).$.appContext,\n { provides }\n )\n\n render(node, el)\n }\n}\n\nfunction findComponentParent (vnode: VNode, root: ComponentInternalInstance): ComponentInternalInstance | null {\n // Walk the tree from root until we find the child vnode\n const stack = new Set<VNode>()\n const walk = (children: VNode[]): boolean => {\n for (const child of children) {\n if (!child) continue\n\n if (child === vnode || (child.el && vnode.el && child.el === vnode.el)) {\n return true\n }\n\n stack.add(child)\n let result\n if (child.suspense) {\n result = walk([child.ssContent!])\n } else if (Array.isArray(child.children)) {\n result = walk(child.children as VNode[])\n } else if (child.component?.vnode) {\n result = walk([child.component?.subTree])\n }\n if (result) {\n return result\n }\n stack.delete(child)\n }\n\n return false\n }\n if (!walk([root.subTree])) {\n consoleError('Could not find original vnode, component will not inherit provides')\n return root\n }\n\n // Return the first component parent\n const result = Array.from(stack).reverse()\n for (const child of result) {\n if (child.component) {\n return child.component\n }\n }\n return root\n}\n"],"mappings":"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","ignoreList":[]}
@@ -119,8 +119,8 @@ export const useNested = props => {
119
119
  }),
120
120
  register: (id, parentId, isGroup) => {
121
121
  if (nodeIds.has(id)) {
122
- const path = getPath(id).join(' -> ');
123
- const newPath = getPath(parentId).concat(id).join(' -> ');
122
+ const path = getPath(id).map(String).join(' -> ');
123
+ const newPath = getPath(parentId).concat(id).map(String).join(' -> ');
124
124
  consoleError(`Multiple nodes with the same ID\n\t${path}\n\t${newPath}`);
125
125
  return;
126
126
  } else {
@@ -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","consoleError","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","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","values","value","in","out","path","parent","unshift","get","vm","nodeIds","nested","arr","key","entries","push","parentId","isGroup","has","join","newPath","concat","add","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","useNestedItem","uidSymbol","computedId","undefined","item","e","isOpen","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 { consoleError, 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 getPath: (id: unknown) => unknown[]\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 getPath: () => [],\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 nodeIds = new Set<unknown>()\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 if (nodeIds.has(id)) {\n const path = getPath(id).join(' -> ')\n const newPath = getPath(parentId).concat(id).join(' -> ')\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`)\n return\n } else {\n nodeIds.add(id)\n }\n\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 nodeIds.delete(id)\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 },\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 getPath,\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","consoleError","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","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","values","value","in","out","path","parent","unshift","get","vm","nodeIds","nested","arr","key","entries","push","parentId","isGroup","has","map","join","newPath","concat","add","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","useNestedItem","uidSymbol","computedId","undefined","item","e","isOpen","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 { consoleError, 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 getPath: (id: unknown) => unknown[]\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 getPath: () => [],\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 nodeIds = new Set<unknown>()\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 if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ')\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ')\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`)\n return\n } else {\n nodeIds.add(id)\n }\n\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 nodeIds.delete(id)\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 },\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 getPath,\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 +1 @@
1
- {"version":3,"file":"index.mjs","names":["isObject","keyCodes","stopSymbol","Symbol","DELAY_RIPPLE","transform","el","value","style","webkitTransform","isTouchEvent","e","constructor","name","isKeyboardEvent","calculate","arguments","length","undefined","localX","localY","offset","getBoundingClientRect","target","touches","clientX","left","clientY","top","radius","scale","_ripple","circle","clientWidth","center","Math","sqrt","clientHeight","centerX","centerY","x","y","ripples","show","enabled","container","document","createElement","animation","appendChild","className","class","size","width","height","computed","window","getComputedStyle","position","dataset","previousPosition","classList","add","activated","String","performance","now","setTimeout","remove","hide","getElementsByClassName","isHiding","diff","Number","delay","max","parentNode","removeChild","isRippleEnabled","rippleShow","element","currentTarget","touched","isTouch","centered","showTimerCommit","showTimer","rippleStop","rippleHide","clearTimeout","type","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyCode","enter","space","keyboardRippleHide","focusRippleHide","updateRipple","binding","wasEnabled","modifiers","stop","addEventListener","passive","removeListeners","removeEventListener","mounted","unmounted","updated","oldValue","Ripple"],"sources":["../../../src/directives/ripple/index.ts"],"sourcesContent":["// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { isObject, keyCodes } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n} from 'vue'\n\nconst stopSymbol = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [stopSymbol]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\ninterface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nexport interface RippleDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean | { class: string }\n modifiers: {\n center?: boolean\n circle?: boolean\n stop?: boolean\n }\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple?.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el?._ripple?.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el?._ripple?.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleStop (e: VuetifyRippleEvent) {\n e[stopSymbol] = true\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element?._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: RippleDirectiveBinding, wasEnabled: boolean) {\n const { value, modifiers } = binding\n const enabled = isRippleEnabled(value)\n if (!enabled) {\n ripples.hide(el)\n }\n\n el._ripple = el._ripple ?? {}\n el._ripple.enabled = enabled\n el._ripple.centered = modifiers.center\n el._ripple.circle = modifiers.circle\n if (isObject(value) && value.class) {\n el._ripple.class = value.class\n }\n\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, { passive: true })\n el.addEventListener('mousedown', rippleStop)\n return\n }\n\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction mounted (el: HTMLElement, binding: RippleDirectiveBinding) {\n updateRipple(el, binding, false)\n}\n\nfunction unmounted (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction updated (el: HTMLElement, binding: RippleDirectiveBinding) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Ripple\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.mjs","names":["isObject","keyCodes","stopSymbol","Symbol","DELAY_RIPPLE","transform","el","value","style","webkitTransform","isTouchEvent","e","constructor","name","isKeyboardEvent","calculate","arguments","length","undefined","localX","localY","offset","getBoundingClientRect","target","touches","clientX","left","clientY","top","radius","scale","_ripple","circle","clientWidth","center","Math","sqrt","clientHeight","centerX","centerY","x","y","ripples","show","enabled","container","document","createElement","animation","appendChild","className","class","size","width","height","computed","window","getComputedStyle","position","dataset","previousPosition","classList","add","activated","String","performance","now","setTimeout","remove","hide","getElementsByClassName","isHiding","diff","Number","delay","max","parentNode","removeChild","isRippleEnabled","rippleShow","element","currentTarget","touched","isTouch","centered","showTimerCommit","showTimer","rippleStop","rippleHide","clearTimeout","type","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyCode","enter","space","keyboardRippleHide","focusRippleHide","updateRipple","binding","wasEnabled","modifiers","stop","addEventListener","passive","removeListeners","removeEventListener","mounted","unmounted","updated","oldValue","Ripple"],"sources":["../../../src/directives/ripple/index.ts"],"sourcesContent":["// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { isObject, keyCodes } from '@/util'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\n\nconst stopSymbol = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [stopSymbol]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\ninterface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nexport interface RippleDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean | { class: string }\n modifiers: {\n center?: boolean\n circle?: boolean\n stop?: boolean\n }\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple?.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el?._ripple?.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el?._ripple?.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleStop (e: VuetifyRippleEvent) {\n e[stopSymbol] = true\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element?._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: RippleDirectiveBinding, wasEnabled: boolean) {\n const { value, modifiers } = binding\n const enabled = isRippleEnabled(value)\n if (!enabled) {\n ripples.hide(el)\n }\n\n el._ripple = el._ripple ?? {}\n el._ripple.enabled = enabled\n el._ripple.centered = modifiers.center\n el._ripple.circle = modifiers.circle\n if (isObject(value) && value.class) {\n el._ripple.class = value.class\n }\n\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, { passive: true })\n el.addEventListener('mousedown', rippleStop)\n return\n }\n\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction mounted (el: HTMLElement, binding: RippleDirectiveBinding) {\n updateRipple(el, binding, false)\n}\n\nfunction unmounted (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction updated (el: HTMLElement, binding: RippleDirectiveBinding) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Ripple\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.7.2";
19
+ export const version = "3.7.3";
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.7.2";
100
+ export const version = "3.7.3";
101
101
  createVuetify.version = version;
102
102
 
103
103
  // Vue's inject() can only be used in setup
package/lib/index.d.mts CHANGED
@@ -489,77 +489,76 @@ declare module 'vue' {
489
489
  VAppBar: typeof import('vuetify/components')['VAppBar']
490
490
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
491
491
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
492
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
493
492
  VAlert: typeof import('vuetify/components')['VAlert']
494
493
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
495
494
  VAvatar: typeof import('vuetify/components')['VAvatar']
495
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
496
496
  VApp: typeof import('vuetify/components')['VApp']
497
497
  VBanner: typeof import('vuetify/components')['VBanner']
498
498
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
499
499
  VBannerText: typeof import('vuetify/components')['VBannerText']
500
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
501
- VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
502
- VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
503
- VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
504
500
  VBadge: typeof import('vuetify/components')['VBadge']
501
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
505
502
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
506
503
  VBtn: typeof import('vuetify/components')['VBtn']
504
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
507
505
  VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
506
+ VCarousel: typeof import('vuetify/components')['VCarousel']
507
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
508
+ VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
509
+ VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
510
+ VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
508
511
  VCard: typeof import('vuetify/components')['VCard']
509
512
  VCardActions: typeof import('vuetify/components')['VCardActions']
510
513
  VCardItem: typeof import('vuetify/components')['VCardItem']
511
514
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
512
515
  VCardText: typeof import('vuetify/components')['VCardText']
513
516
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
514
- VCarousel: typeof import('vuetify/components')['VCarousel']
515
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
516
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
517
+ VChip: typeof import('vuetify/components')['VChip']
518
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
517
519
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
518
520
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
519
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
520
- VCombobox: typeof import('vuetify/components')['VCombobox']
521
- VChip: typeof import('vuetify/components')['VChip']
522
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
523
521
  VCode: typeof import('vuetify/components')['VCode']
524
- VDataTable: typeof import('vuetify/components')['VDataTable']
525
- VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
526
- VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
527
- VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
528
- VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
529
- VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
530
- VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
531
522
  VCounter: typeof import('vuetify/components')['VCounter']
532
- VDialog: typeof import('vuetify/components')['VDialog']
523
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
524
+ VCombobox: typeof import('vuetify/components')['VCombobox']
533
525
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
534
526
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
535
527
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
536
528
  VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
537
529
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
538
530
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
539
- VDivider: typeof import('vuetify/components')['VDivider']
531
+ VDataTable: typeof import('vuetify/components')['VDataTable']
532
+ VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
533
+ VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
534
+ VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
535
+ VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
536
+ VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
537
+ VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
540
538
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
541
539
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
542
540
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
543
541
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
544
542
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
545
- VField: typeof import('vuetify/components')['VField']
546
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
547
- VFooter: typeof import('vuetify/components')['VFooter']
543
+ VDialog: typeof import('vuetify/components')['VDialog']
548
544
  VFab: typeof import('vuetify/components')['VFab']
549
545
  VFileInput: typeof import('vuetify/components')['VFileInput']
546
+ VDivider: typeof import('vuetify/components')['VDivider']
547
+ VField: typeof import('vuetify/components')['VField']
548
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
550
549
  VIcon: typeof import('vuetify/components')['VIcon']
551
550
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
552
551
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
553
552
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
554
553
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
555
- VInput: typeof import('vuetify/components')['VInput']
556
554
  VImg: typeof import('vuetify/components')['VImg']
557
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
555
+ VFooter: typeof import('vuetify/components')['VFooter']
558
556
  VLabel: typeof import('vuetify/components')['VLabel']
557
+ VInput: typeof import('vuetify/components')['VInput']
558
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
559
559
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
560
560
  VItem: typeof import('vuetify/components')['VItem']
561
- VKbd: typeof import('vuetify/components')['VKbd']
562
- VMain: typeof import('vuetify/components')['VMain']
561
+ VMenu: typeof import('vuetify/components')['VMenu']
563
562
  VList: typeof import('vuetify/components')['VList']
564
563
  VListGroup: typeof import('vuetify/components')['VListGroup']
565
564
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -569,71 +568,72 @@ declare module 'vue' {
569
568
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
570
569
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
571
570
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
572
- VMenu: typeof import('vuetify/components')['VMenu']
571
+ VKbd: typeof import('vuetify/components')['VKbd']
573
572
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
573
+ VMain: typeof import('vuetify/components')['VMain']
574
574
  VOverlay: typeof import('vuetify/components')['VOverlay']
575
- VMessages: typeof import('vuetify/components')['VMessages']
576
575
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
577
576
  VPagination: typeof import('vuetify/components')['VPagination']
578
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
579
577
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
578
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
579
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
580
+ VMessages: typeof import('vuetify/components')['VMessages']
581
+ VSheet: typeof import('vuetify/components')['VSheet']
580
582
  VRating: typeof import('vuetify/components')['VRating']
581
583
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
582
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
583
584
  VSelect: typeof import('vuetify/components')['VSelect']
584
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
585
- VSheet: typeof import('vuetify/components')['VSheet']
586
585
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
587
- VSlider: typeof import('vuetify/components')['VSlider']
586
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
588
587
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
589
588
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
590
589
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
591
- VSwitch: typeof import('vuetify/components')['VSwitch']
592
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
593
590
  VStepper: typeof import('vuetify/components')['VStepper']
594
591
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
595
592
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
596
593
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
597
594
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
598
595
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
599
- VTextarea: typeof import('vuetify/components')['VTextarea']
596
+ VSlider: typeof import('vuetify/components')['VSlider']
597
+ VTab: typeof import('vuetify/components')['VTab']
598
+ VTabs: typeof import('vuetify/components')['VTabs']
599
+ VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
600
+ VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
601
+ VSwitch: typeof import('vuetify/components')['VSwitch']
600
602
  VTable: typeof import('vuetify/components')['VTable']
603
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
604
+ VTextarea: typeof import('vuetify/components')['VTextarea']
601
605
  VToolbar: typeof import('vuetify/components')['VToolbar']
602
606
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
603
607
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
608
+ VTextField: typeof import('vuetify/components')['VTextField']
604
609
  VTimeline: typeof import('vuetify/components')['VTimeline']
605
610
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
606
- VTab: typeof import('vuetify/components')['VTab']
607
- VTabs: typeof import('vuetify/components')['VTabs']
608
- VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
609
- VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
610
611
  VTooltip: typeof import('vuetify/components')['VTooltip']
611
- VTextField: typeof import('vuetify/components')['VTextField']
612
612
  VWindow: typeof import('vuetify/components')['VWindow']
613
613
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
614
- VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
615
614
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
615
+ VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
616
616
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
617
617
  VForm: typeof import('vuetify/components')['VForm']
618
+ VHover: typeof import('vuetify/components')['VHover']
618
619
  VContainer: typeof import('vuetify/components')['VContainer']
619
620
  VCol: typeof import('vuetify/components')['VCol']
620
621
  VRow: typeof import('vuetify/components')['VRow']
621
622
  VSpacer: typeof import('vuetify/components')['VSpacer']
622
- VHover: typeof import('vuetify/components')['VHover']
623
623
  VLayout: typeof import('vuetify/components')['VLayout']
624
624
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
625
625
  VLazy: typeof import('vuetify/components')['VLazy']
626
626
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
627
627
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
628
628
  VParallax: typeof import('vuetify/components')['VParallax']
629
- VRadio: typeof import('vuetify/components')['VRadio']
630
629
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
631
630
  VResponsive: typeof import('vuetify/components')['VResponsive']
631
+ VRadio: typeof import('vuetify/components')['VRadio']
632
632
  VSparkline: typeof import('vuetify/components')['VSparkline']
633
633
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
634
634
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
635
- VValidation: typeof import('vuetify/components')['VValidation']
636
635
  VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
636
+ VValidation: typeof import('vuetify/components')['VValidation']
637
637
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
638
638
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
639
639
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -650,21 +650,21 @@ declare module 'vue' {
650
650
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
651
651
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
652
652
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
653
- VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
654
- VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
655
- VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
656
- VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
657
653
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
658
654
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
659
655
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
660
656
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
661
657
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
662
658
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
663
- VPicker: typeof import('vuetify/labs/components')['VPicker']
664
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
659
+ VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
665
660
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
666
661
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
667
662
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
663
+ VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
664
+ VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
665
+ VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
666
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
667
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
668
668
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
669
669
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
670
670
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']