@vuetify/nightly 3.1.4 → 3.1.5-master-20230210.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +4 -210
  2. package/dist/json/attributes.json +24 -24
  3. package/dist/json/importMap.json +68 -68
  4. package/dist/json/web-types.json +49 -38
  5. package/dist/vuetify-labs.css +194 -194
  6. package/dist/vuetify-labs.d.ts +18 -32
  7. package/dist/vuetify-labs.esm.js +36 -27
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +35 -26
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +106 -106
  12. package/dist/vuetify.d.ts +37 -51
  13. package/dist/vuetify.esm.js +36 -27
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +35 -26
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +32 -31
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.mjs +2 -3
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  22. package/lib/components/VCombobox/VCombobox.mjs +2 -3
  23. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  24. package/lib/components/VField/VField.mjs +0 -2
  25. package/lib/components/VField/VField.mjs.map +1 -1
  26. package/lib/components/VField/index.d.ts +1 -7
  27. package/lib/components/VFileInput/VFileInput.mjs +6 -1
  28. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  29. package/lib/components/VFileInput/index.d.ts +2 -0
  30. package/lib/components/VSelect/VSelect.mjs +2 -2
  31. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  32. package/lib/components/VTextField/VTextField.mjs +9 -7
  33. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  34. package/lib/components/VTextField/index.d.ts +13 -25
  35. package/lib/components/VTextarea/VTextarea.mjs +6 -1
  36. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  37. package/lib/components/VTextarea/index.d.ts +2 -0
  38. package/lib/components/index.d.ts +18 -32
  39. package/lib/composables/proxiedModel.mjs +6 -5
  40. package/lib/composables/proxiedModel.mjs.map +1 -1
  41. package/lib/entry-bundler.mjs +1 -1
  42. package/lib/entry-bundler.mjs.map +1 -1
  43. package/lib/framework.mjs +1 -1
  44. package/lib/framework.mjs.map +1 -1
  45. package/lib/index.d.ts +19 -19
  46. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VTextarea.mjs","names":["filterFieldProps","makeVFieldProps","filterInputProps","makeVInputProps","VInput","VCounter","VField","Intersect","forwardRefs","useFocus","useProxiedModel","computed","nextTick","onBeforeUnmount","onMounted","ref","watch","callEvent","clamp","convertToUnit","defineComponent","filterInputAttrs","useRender","VTextarea","name","directives","inheritAttrs","props","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","hint","persistentHint","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","emits","e","focused","val","setup","attrs","emit","slots","model","isFocused","focus","blur","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","vInputRef","vFieldRef","controlHeight","textareaRef","isActive","messages","onFocus","document","activeElement","onControlClick","onClear","stopPropagation","onInput","sizerRef","calculateInputHeight","style","getComputedStyle","fieldStyle","$el","padding","getPropertyValue","height","scrollHeight","lineHeight","minHeight","Math","maxHeight","Infinity","density","observer","ResizeObserver","observe","disconnect","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","fieldProps","includes","variant","isDisabled","isDirty","isReadonly","isValid","dirty","class","fieldClass","slotProps","handler"],"sources":["../../../src/components/VTextarea/VTextarea.tsx"],"sourcesContent":["// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { callEvent, clamp, convertToUnit, defineComponent, filterInputAttrs, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VTextarea = defineComponent({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const controlHeight = ref('')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.persistentPlaceholder\n ))\n\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isActive.value || props.persistentHint) ? props.hint : ''\n })\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n model.value = (e.target as HTMLTextAreaElement).value\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n\n controlHeight.value = convertToUnit(clamp(height ?? 0, minHeight, maxHeight))\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant),\n },\n ]}\n onClick:prepend={ props['onClick:prepend'] }\n onClick:append={ props['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) }\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VTextarea.mjs","names":["filterFieldProps","makeVFieldProps","filterInputProps","makeVInputProps","VInput","VCounter","VField","Intersect","forwardRefs","useFocus","useProxiedModel","computed","nextTick","onBeforeUnmount","onMounted","ref","watch","callEvent","clamp","convertToUnit","defineComponent","filterInputAttrs","useRender","VTextarea","name","directives","inheritAttrs","props","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","hint","persistentHint","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","emits","e","focused","val","setup","attrs","emit","slots","model","isFocused","focus","blur","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","vInputRef","vFieldRef","controlHeight","textareaRef","isActive","messages","onFocus","document","activeElement","onControlClick","onControlMousedown","onClear","stopPropagation","onInput","sizerRef","calculateInputHeight","style","getComputedStyle","fieldStyle","$el","padding","getPropertyValue","height","scrollHeight","lineHeight","minHeight","Math","maxHeight","Infinity","density","observer","ResizeObserver","observe","disconnect","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","fieldProps","includes","variant","isDisabled","isDirty","isReadonly","isValid","dirty","class","fieldClass","slotProps","handler"],"sources":["../../../src/components/VTextarea/VTextarea.tsx"],"sourcesContent":["// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { callEvent, clamp, convertToUnit, defineComponent, filterInputAttrs, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VTextarea = defineComponent({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const controlHeight = ref('')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.persistentPlaceholder\n ))\n\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isActive.value || props.persistentHint) ? props.hint : ''\n })\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n model.value = (e.target as HTMLTextAreaElement).value\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n\n controlHeight.value = convertToUnit(clamp(height ?? 0, minHeight, maxHeight))\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant),\n },\n ]}\n onClick:prepend={ props['onClick:prepend'] }\n onClick:append={ props['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick={ onControlClick }\n onMousedown={ onControlMousedown }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) }\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n"],"mappings":"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"}
@@ -336,6 +336,7 @@ declare const VTextarea: vue.DefineComponent<{
336
336
  };
337
337
  }, "id" | "name" | "label" | "$children" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "v-slot:prepend" | "v-slot:append" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "validateOn" | "validationValue" | "hideDetails" | "v-slot:details" | ("error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
338
338
  'click:control': (e: MouseEvent) => true;
339
+ 'mousedown:control': (e: MouseEvent) => true;
339
340
  'update:focused': (focused: boolean) => true;
340
341
  'update:modelValue': (val: string) => true;
341
342
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
@@ -429,6 +430,7 @@ declare const VTextarea: vue.DefineComponent<{
429
430
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
430
431
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
431
432
  "onClick:control"?: ((e: MouseEvent) => any) | undefined;
433
+ "onMousedown:control"?: ((e: MouseEvent) => any) | undefined;
432
434
  }, {
433
435
  reverse: boolean;
434
436
  error: boolean;
@@ -1351,7 +1351,6 @@ declare const VField: {
1351
1351
  id: StringConstructor;
1352
1352
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
1353
1353
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
1354
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
1355
1354
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "error" | "active" | "disabled" | "variant" | "clearIcon" | "focused" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
1356
1355
  $attrs: {
1357
1356
  [x: string]: unknown;
@@ -1364,7 +1363,7 @@ declare const VField: {
1364
1363
  }>;
1365
1364
  $root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
1366
1365
  $parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
1367
- $emit: ((event: "click:control", e: MouseEvent) => void) & ((event: "update:focused", focused: boolean) => void);
1366
+ $emit: (event: "update:focused", focused: boolean) => void;
1368
1367
  $el: any;
1369
1368
  $options: vue.ComponentOptionsBase<Readonly<vue.ExtractPropTypes<Omit<{
1370
1369
  loading: (StringConstructor | BooleanConstructor)[];
@@ -1398,11 +1397,9 @@ declare const VField: {
1398
1397
  id: StringConstructor;
1399
1398
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
1400
1399
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
1401
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
1402
1400
  }, {
1403
1401
  controlRef: Ref<HTMLElement | undefined>;
1404
1402
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
1405
- 'click:control': (e: MouseEvent) => boolean;
1406
1403
  'update:focused': (focused: boolean) => boolean;
1407
1404
  'update:modelValue': (val: any) => boolean;
1408
1405
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">, string, {
@@ -1469,7 +1466,6 @@ declare const VField: {
1469
1466
  id: StringConstructor;
1470
1467
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
1471
1468
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
1472
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
1473
1469
  } & vue.ShallowUnwrapRef<{
1474
1470
  controlRef: Ref<HTMLElement | undefined>;
1475
1471
  }> & {} & vue.ComponentCustomProperties;
@@ -1508,11 +1504,9 @@ declare const VField: {
1508
1504
  id: StringConstructor;
1509
1505
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
1510
1506
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
1511
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
1512
1507
  }, {
1513
1508
  controlRef: Ref<HTMLElement | undefined>;
1514
1509
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
1515
- 'click:control': (e: MouseEvent) => boolean;
1516
1510
  'update:focused': (focused: boolean) => boolean;
1517
1511
  'update:modelValue': (val: any) => boolean;
1518
1512
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">, string, {
@@ -10181,6 +10175,7 @@ declare const VFileInput: vue.DefineComponent<{
10181
10175
  };
10182
10176
  }, "id" | "name" | "label" | "$children" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "v-slot:prepend" | "v-slot:append" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "validateOn" | "validationValue" | "hideDetails" | "v-slot:details" | ("error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
10183
10177
  'click:control': (e: MouseEvent) => true;
10178
+ 'mousedown:control': (e: MouseEvent) => true;
10184
10179
  'update:modelValue': (files: File[]) => true;
10185
10180
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
10186
10181
  loading: (StringConstructor | BooleanConstructor)[];
@@ -10280,6 +10275,7 @@ declare const VFileInput: vue.DefineComponent<{
10280
10275
  }>> & {
10281
10276
  "onUpdate:modelValue"?: ((files: File[]) => any) | undefined;
10282
10277
  "onClick:control"?: ((e: MouseEvent) => any) | undefined;
10278
+ "onMousedown:control"?: ((e: MouseEvent) => any) | undefined;
10283
10279
  }, {
10284
10280
  reverse: boolean;
10285
10281
  error: boolean;
@@ -20803,6 +20799,7 @@ declare const VTextarea: vue.DefineComponent<{
20803
20799
  };
20804
20800
  }, "id" | "name" | "label" | "$children" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "v-slot:prepend" | "v-slot:append" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "validateOn" | "validationValue" | "hideDetails" | "v-slot:details" | ("error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
20805
20801
  'click:control': (e: MouseEvent) => true;
20802
+ 'mousedown:control': (e: MouseEvent) => true;
20806
20803
  'update:focused': (focused: boolean) => true;
20807
20804
  'update:modelValue': (val: string) => true;
20808
20805
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
@@ -20896,6 +20893,7 @@ declare const VTextarea: vue.DefineComponent<{
20896
20893
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
20897
20894
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
20898
20895
  "onClick:control"?: ((e: MouseEvent) => any) | undefined;
20896
+ "onMousedown:control"?: ((e: MouseEvent) => any) | undefined;
20899
20897
  }, {
20900
20898
  reverse: boolean;
20901
20899
  error: boolean;
@@ -21037,7 +21035,7 @@ declare const VTextField: {
21037
21035
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
21038
21036
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
21039
21037
  "onClick:control"?: ((e: MouseEvent) => any) | undefined;
21040
- "onClick:input"?: ((e: MouseEvent) => any) | undefined;
21038
+ "onMousedown:control"?: ((e: MouseEvent) => any) | undefined;
21041
21039
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "type" | "error" | "active" | "direction" | "autofocus" | "disabled" | "readonly" | "messages" | "density" | "variant" | "clearIcon" | "focused" | "errorMessages" | "maxErrors" | "rules" | "clearable" | "dirty" | "persistentClear" | "singleLine" | "persistentHint" | "persistentPlaceholder" | "persistentCounter">;
21042
21040
  $attrs: {
21043
21041
  [x: string]: unknown;
@@ -21050,7 +21048,7 @@ declare const VTextField: {
21050
21048
  }>;
21051
21049
  $root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
21052
21050
  $parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
21053
- $emit: ((event: "update:modelValue", val: string) => void) & ((event: "click:control", e: MouseEvent) => void) & ((event: "update:focused", focused: boolean) => void) & ((event: "click:input", e: MouseEvent) => void);
21051
+ $emit: ((event: "update:modelValue", val: string) => void) & ((event: "update:focused", focused: boolean) => void) & ((event: "click:control", e: MouseEvent) => void) & ((event: "mousedown:control", e: MouseEvent) => void);
21054
21052
  $el: any;
21055
21053
  $options: vue.ComponentOptionsBase<Readonly<ExtractPropTypes<Omit<{
21056
21054
  loading: (StringConstructor | BooleanConstructor)[];
@@ -21136,7 +21134,7 @@ declare const VTextField: {
21136
21134
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
21137
21135
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
21138
21136
  "onClick:control"?: ((e: MouseEvent) => any) | undefined;
21139
- "onClick:input"?: ((e: MouseEvent) => any) | undefined;
21137
+ "onMousedown:control"?: ((e: MouseEvent) => any) | undefined;
21140
21138
  }, Omit<Omit<{
21141
21139
  $: vue.ComponentInternalInstance;
21142
21140
  $data: {};
@@ -21405,7 +21403,6 @@ declare const VTextField: {
21405
21403
  id: StringConstructor;
21406
21404
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
21407
21405
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
21408
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
21409
21406
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "error" | "active" | "disabled" | "variant" | "clearIcon" | "focused" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
21410
21407
  $attrs: {
21411
21408
  [x: string]: unknown;
@@ -21418,7 +21415,7 @@ declare const VTextField: {
21418
21415
  }>;
21419
21416
  $root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
21420
21417
  $parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
21421
- $emit: ((event: "click:control", e: MouseEvent) => void) & ((event: "update:focused", focused: boolean) => void);
21418
+ $emit: (event: "update:focused", focused: boolean) => void;
21422
21419
  $el: any;
21423
21420
  $options: vue.ComponentOptionsBase<Readonly<ExtractPropTypes<Omit<{
21424
21421
  loading: (StringConstructor | BooleanConstructor)[];
@@ -21452,11 +21449,9 @@ declare const VTextField: {
21452
21449
  id: StringConstructor;
21453
21450
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
21454
21451
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
21455
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
21456
21452
  }, {
21457
21453
  controlRef: vue.Ref<HTMLElement | undefined>;
21458
21454
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
21459
- 'click:control': (e: MouseEvent) => boolean;
21460
21455
  'update:focused': (focused: boolean) => boolean;
21461
21456
  'update:modelValue': (val: any) => boolean;
21462
21457
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">, string, {
@@ -21523,7 +21518,6 @@ declare const VTextField: {
21523
21518
  id: StringConstructor;
21524
21519
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
21525
21520
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
21526
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
21527
21521
  } & vue.ShallowUnwrapRef<{
21528
21522
  controlRef: vue.Ref<HTMLElement | undefined>;
21529
21523
  }> & {} & vue.ComponentCustomProperties & {
@@ -21555,9 +21549,9 @@ declare const VTextField: {
21555
21549
  "v-slot:loader"?: false | ((args_0: LoaderSlotProps) => vue.VNodeChild) | undefined;
21556
21550
  "v-slot:default"?: false | ((args_0: VFieldSlot) => vue.VNodeChild) | undefined;
21557
21551
  };
21558
- }, "id" | "color" | "loading" | "label" | "$children" | "theme" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "bgColor" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "onUpdate:focused" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader" | "onClick:control" | ("reverse" | "error" | "active" | "disabled" | "variant" | "clearIcon" | "focused" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
21552
+ }, "id" | "color" | "loading" | "label" | "$children" | "theme" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "bgColor" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "onUpdate:focused" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader" | ("reverse" | "error" | "active" | "disabled" | "variant" | "clearIcon" | "focused" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
21559
21553
  'click:control': (e: MouseEvent) => boolean;
21560
- 'click:input': (e: MouseEvent) => boolean;
21554
+ 'mousedown:control': (e: MouseEvent) => boolean;
21561
21555
  'update:focused': (focused: boolean) => boolean;
21562
21556
  'update:modelValue': (val: string) => boolean;
21563
21557
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:prepend" | "v-slot:append" | "v-slot:details" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">, string, {
@@ -21688,7 +21682,7 @@ declare const VTextField: {
21688
21682
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
21689
21683
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
21690
21684
  "onClick:control"?: ((e: MouseEvent) => any) | undefined;
21691
- "onClick:input"?: ((e: MouseEvent) => any) | undefined;
21685
+ "onMousedown:control"?: ((e: MouseEvent) => any) | undefined;
21692
21686
  } & vue.ShallowUnwrapRef<Omit<Omit<{
21693
21687
  $: vue.ComponentInternalInstance;
21694
21688
  $data: {};
@@ -21957,7 +21951,6 @@ declare const VTextField: {
21957
21951
  id: StringConstructor;
21958
21952
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
21959
21953
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
21960
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
21961
21954
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "error" | "active" | "disabled" | "variant" | "clearIcon" | "focused" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
21962
21955
  $attrs: {
21963
21956
  [x: string]: unknown;
@@ -21970,7 +21963,7 @@ declare const VTextField: {
21970
21963
  }>;
21971
21964
  $root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
21972
21965
  $parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
21973
- $emit: ((event: "click:control", e: MouseEvent) => void) & ((event: "update:focused", focused: boolean) => void);
21966
+ $emit: (event: "update:focused", focused: boolean) => void;
21974
21967
  $el: any;
21975
21968
  $options: vue.ComponentOptionsBase<Readonly<ExtractPropTypes<Omit<{
21976
21969
  loading: (StringConstructor | BooleanConstructor)[];
@@ -22004,11 +21997,9 @@ declare const VTextField: {
22004
21997
  id: StringConstructor;
22005
21998
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
22006
21999
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
22007
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
22008
22000
  }, {
22009
22001
  controlRef: vue.Ref<HTMLElement | undefined>;
22010
22002
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
22011
- 'click:control': (e: MouseEvent) => boolean;
22012
22003
  'update:focused': (focused: boolean) => boolean;
22013
22004
  'update:modelValue': (val: any) => boolean;
22014
22005
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">, string, {
@@ -22075,7 +22066,6 @@ declare const VTextField: {
22075
22066
  id: StringConstructor;
22076
22067
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
22077
22068
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
22078
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
22079
22069
  } & vue.ShallowUnwrapRef<{
22080
22070
  controlRef: vue.Ref<HTMLElement | undefined>;
22081
22071
  }> & {} & vue.ComponentCustomProperties & {
@@ -22107,7 +22097,7 @@ declare const VTextField: {
22107
22097
  "v-slot:loader"?: false | ((args_0: LoaderSlotProps) => vue.VNodeChild) | undefined;
22108
22098
  "v-slot:default"?: false | ((args_0: VFieldSlot) => vue.VNodeChild) | undefined;
22109
22099
  };
22110
- }, "id" | "color" | "loading" | "label" | "$children" | "theme" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "bgColor" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "onUpdate:focused" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader" | "onClick:control" | ("reverse" | "error" | "active" | "disabled" | "variant" | "clearIcon" | "focused" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`>> & {} & vue.ComponentCustomProperties;
22100
+ }, "id" | "color" | "loading" | "label" | "$children" | "theme" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "bgColor" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "onUpdate:focused" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader" | ("reverse" | "error" | "active" | "disabled" | "variant" | "clearIcon" | "focused" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`>> & {} & vue.ComponentCustomProperties;
22111
22101
  __isFragment?: undefined;
22112
22102
  __isTeleport?: undefined;
22113
22103
  __isSuspense?: undefined;
@@ -22195,7 +22185,7 @@ declare const VTextField: {
22195
22185
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
22196
22186
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
22197
22187
  "onClick:control"?: ((e: MouseEvent) => any) | undefined;
22198
- "onClick:input"?: ((e: MouseEvent) => any) | undefined;
22188
+ "onMousedown:control"?: ((e: MouseEvent) => any) | undefined;
22199
22189
  }, Omit<Omit<{
22200
22190
  $: vue.ComponentInternalInstance;
22201
22191
  $data: {};
@@ -22464,7 +22454,6 @@ declare const VTextField: {
22464
22454
  id: StringConstructor;
22465
22455
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
22466
22456
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
22467
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
22468
22457
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "error" | "active" | "disabled" | "variant" | "clearIcon" | "focused" | "clearable" | "dirty" | "persistentClear" | "singleLine">;
22469
22458
  $attrs: {
22470
22459
  [x: string]: unknown;
@@ -22477,7 +22466,7 @@ declare const VTextField: {
22477
22466
  }>;
22478
22467
  $root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
22479
22468
  $parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null;
22480
- $emit: ((event: "click:control", e: MouseEvent) => void) & ((event: "update:focused", focused: boolean) => void);
22469
+ $emit: (event: "update:focused", focused: boolean) => void;
22481
22470
  $el: any;
22482
22471
  $options: vue.ComponentOptionsBase<Readonly<ExtractPropTypes<Omit<{
22483
22472
  loading: (StringConstructor | BooleanConstructor)[];
@@ -22511,11 +22500,9 @@ declare const VTextField: {
22511
22500
  id: StringConstructor;
22512
22501
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
22513
22502
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
22514
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
22515
22503
  }, {
22516
22504
  controlRef: vue.Ref<HTMLElement | undefined>;
22517
22505
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
22518
- 'click:control': (e: MouseEvent) => boolean;
22519
22506
  'update:focused': (focused: boolean) => boolean;
22520
22507
  'update:modelValue': (val: any) => boolean;
22521
22508
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">, string, {
@@ -22582,7 +22569,6 @@ declare const VTextField: {
22582
22569
  id: StringConstructor;
22583
22570
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">>> & {
22584
22571
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
22585
- "onClick:control"?: ((e: MouseEvent) => any) | undefined;
22586
22572
  } & vue.ShallowUnwrapRef<{
22587
22573
  controlRef: vue.Ref<HTMLElement | undefined>;
22588
22574
  }> & {} & vue.ComponentCustomProperties & {
@@ -22614,9 +22600,9 @@ declare const VTextField: {
22614
22600
  "v-slot:loader"?: false | ((args_0: LoaderSlotProps) => vue.VNodeChild) | undefined;
22615
22601
  "v-slot:default"?: false | ((args_0: VFieldSlot) => vue.VNodeChild) | undefined;
22616
22602
  };
22617
- }, "id" | "color" | "loading" | "label" | "$children" | "theme" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "bgColor" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "onUpdate:focused" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader" | "onClick:control" | ("reverse" | "error" | "active" | "disabled" | "variant" | "clearIcon" | "focused" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
22603
+ }, "id" | "color" | "loading" | "label" | "$children" | "theme" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "modelValue" | "onUpdate:modelValue" | "bgColor" | "appendInnerIcon" | "prependInnerIcon" | "onClick:clear" | "onClick:appendInner" | "onClick:prependInner" | "onUpdate:focused" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader" | ("reverse" | "error" | "active" | "disabled" | "variant" | "clearIcon" | "focused" | "clearable" | "dirty" | "persistentClear" | "singleLine")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
22618
22604
  'click:control': (e: MouseEvent) => boolean;
22619
- 'click:input': (e: MouseEvent) => boolean;
22605
+ 'mousedown:control': (e: MouseEvent) => boolean;
22620
22606
  'update:focused': (focused: boolean) => boolean;
22621
22607
  'update:modelValue': (val: string) => boolean;
22622
22608
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:prepend" | "v-slot:append" | "v-slot:details" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader">, string, {
@@ -1,5 +1,5 @@
1
1
  // Utilities
2
- import { computed, ref, watch } from 'vue';
2
+ import { computed, ref, toRaw, watch } from 'vue';
3
3
  import { getCurrentInstance, toKebabCase } from "../util/index.mjs";
4
4
  import { useToggleScope } from "./toggleScope.mjs"; // Types
5
5
  // Composables
@@ -26,11 +26,12 @@ export function useProxiedModel(props, prop, defaultValue) {
26
26
  });
27
27
  const model = computed({
28
28
  get() {
29
- return transformIn(isControlled.value ? props[prop] : internal.value);
29
+ return transformIn(toRaw(isControlled.value ? props[prop] : internal.value));
30
30
  },
31
- set(value) {
32
- const newValue = transformOut(value);
33
- if ((isControlled.value ? props[prop] : internal.value) === newValue || transformIn(isControlled.value ? props[prop] : internal.value) === value) {
31
+ set(internalValue) {
32
+ const newValue = transformOut(internalValue);
33
+ const value = toRaw(isControlled.value ? props[prop] : internal.value);
34
+ if (value === newValue || transformIn(value) === internalValue) {
34
35
  return;
35
36
  }
36
37
  internal.value = newValue;
@@ -1 +1 @@
1
- {"version":3,"file":"proxiedModel.mjs","names":["computed","ref","watch","getCurrentInstance","toKebabCase","useToggleScope","useProxiedModel","props","prop","defaultValue","transformIn","v","transformOut","vm","internal","undefined","kebabProp","checkKebab","isControlled","vnode","hasOwnProperty","value","val","model","get","set","newValue","emit","Object","defineProperty"],"sources":["../../src/composables/proxiedModel.ts"],"sourcesContent":["// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype InnerVal<T> = T extends any[] ? Readonly<T> : T\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: ((val: any) => void) | undefined },\n Prop extends Extract<keyof Props, string>,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref<Props[Prop]>\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`))\n })\n\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val\n })\n })\n\n const model = computed({\n get (): any {\n return transformIn(isControlled.value ? props[prop] : internal.value)\n },\n set (value) {\n const newValue = transformOut(value)\n if (\n (isControlled.value ? props[prop] : internal.value) === newValue ||\n transformIn(isControlled.value ? props[prop] : internal.value) === value\n ) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, newValue)\n },\n }) as any as Ref<InnerVal<Inner>> & { readonly externalValue: Props[Prop] }\n\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value,\n })\n\n return model\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"proxiedModel.mjs","names":["computed","ref","toRaw","watch","getCurrentInstance","toKebabCase","useToggleScope","useProxiedModel","props","prop","defaultValue","transformIn","v","transformOut","vm","internal","undefined","kebabProp","checkKebab","isControlled","vnode","hasOwnProperty","value","val","model","get","set","internalValue","newValue","emit","Object","defineProperty"],"sources":["../../src/composables/proxiedModel.ts"],"sourcesContent":["// Utilities\nimport { computed, ref, toRaw, watch } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype InnerVal<T> = T extends any[] ? Readonly<T> : T\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: ((val: any) => void) | undefined },\n Prop extends Extract<keyof Props, string>,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref<Props[Prop]>\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`))\n })\n\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val\n })\n })\n\n const model = computed({\n get (): any {\n return transformIn(toRaw(isControlled.value ? props[prop] : internal.value))\n },\n set (internalValue) {\n const newValue = transformOut(internalValue)\n const value = toRaw(isControlled.value ? props[prop] : internal.value)\n if (value === newValue || transformIn(value) === internalValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, newValue)\n },\n }) as any as Ref<InnerVal<Inner>> & { readonly externalValue: Props[Prop] }\n\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value,\n })\n\n return model\n}\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ export const createVuetify = function () {
10
10
  ...options
11
11
  });
12
12
  };
13
- export const version = "3.1.4";
13
+ export const version = "3.1.5-master-20230210.0";
14
14
  createVuetify.version = version;
15
15
  export { components, directives };
16
16
  export * from "./composables/index.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"entry-bundler.mjs","names":["components","directives","createVuetify","_createVuetify","options","version"],"sources":["../src/entry-bundler.ts"],"sourcesContent":["import './styles/main.sass'\nimport * as components from './components'\nimport * as directives from './directives'\nimport { createVuetify as _createVuetify } from './framework'\nimport type { VuetifyOptions } from './framework'\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n return _createVuetify({ components, directives, ...options })\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\nexport {\n components,\n directives,\n}\nexport * from './composables'\n"],"mappings":"AAAA;AAA2B,OACpB,KAAKA,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,SACbC,aAAa,IAAIC,cAAc;AAGxC,OAAO,MAAMD,aAAa,GAAG,YAAkC;EAAA,IAAjCE,OAAuB,uEAAG,CAAC,CAAC;EACxD,OAAOD,cAAc,CAAC;IAAEH,UAAU;IAAEC,UAAU;IAAE,GAAGG;EAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,OAAO,MAAMC,OAAO,UAAsB;AAC1CH,aAAa,CAACG,OAAO,GAAGA,OAAO;AAE/B,SACEL,UAAU,EACVC,UAAU;AACX"}
1
+ {"version":3,"file":"entry-bundler.mjs","names":["components","directives","createVuetify","_createVuetify","options","version"],"sources":["../src/entry-bundler.ts"],"sourcesContent":["import './styles/main.sass'\nimport * as components from './components'\nimport * as directives from './directives'\nimport { createVuetify as _createVuetify } from './framework'\nimport type { VuetifyOptions } from './framework'\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n return _createVuetify({ components, directives, ...options })\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\nexport {\n components,\n directives,\n}\nexport * from './composables'\n"],"mappings":"AAAA;AAA2B,OACpB,KAAKA,UAAU;AAAA,OACf,KAAKC,UAAU;AAAA,SACbC,aAAa,IAAIC,cAAc;AAGxC,OAAO,MAAMD,aAAa,GAAG,YAAkC;EAAA,IAAjCE,OAAuB,uEAAG,CAAC,CAAC;EACxD,OAAOD,cAAc,CAAC;IAAEH,UAAU;IAAEC,UAAU;IAAE,GAAGG;EAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,OAAO,MAAMC,OAAO,4BAAsB;AAC1CH,aAAa,CAACG,OAAO,GAAGA,OAAO;AAE/B,SACEL,UAAU,EACVC,UAAU;AACX"}
package/lib/framework.mjs CHANGED
@@ -89,7 +89,7 @@ export function createVuetify() {
89
89
  locale
90
90
  };
91
91
  }
92
- export const version = "3.1.4";
92
+ export const version = "3.1.5-master-20230210.0";
93
93
  createVuetify.version = version;
94
94
 
95
95
  // Vue's inject() can only be used in setup
@@ -1 +1 @@
1
- {"version":3,"file":"framework.mjs","names":["createDefaults","DefaultsSymbol","createDisplay","DisplaySymbol","createIcons","IconSymbol","createLocale","LocaleSymbol","createTheme","ThemeSymbol","defineComponent","getUid","IN_BROWSER","mergeDeep","nextTick","reactive","createVuetify","vuetify","blueprint","rest","options","aliases","components","directives","defaults","display","ssr","theme","icons","locale","install","app","key","directive","component","name","aliasName","provide","$nuxt","hook","update","mount","vm","reset","__VUE_OPTIONS_API__","mixin","computed","$vuetify","inject","call","version","$","provides","parent","vnode","appContext"],"sources":["../src/framework.ts"],"sourcesContent":["// Composables\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\nimport { nextTick, reactive } from 'vue'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\n\nexport * from './composables'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: boolean\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n })\n },\n },\n })\n }\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"framework.mjs","names":["createDefaults","DefaultsSymbol","createDisplay","DisplaySymbol","createIcons","IconSymbol","createLocale","LocaleSymbol","createTheme","ThemeSymbol","defineComponent","getUid","IN_BROWSER","mergeDeep","nextTick","reactive","createVuetify","vuetify","blueprint","rest","options","aliases","components","directives","defaults","display","ssr","theme","icons","locale","install","app","key","directive","component","name","aliasName","provide","$nuxt","hook","update","mount","vm","reset","__VUE_OPTIONS_API__","mixin","computed","$vuetify","inject","call","version","$","provides","parent","vnode","appContext"],"sources":["../src/framework.ts"],"sourcesContent":["// Composables\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\nimport { nextTick, reactive } from 'vue'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\n\nexport * from './composables'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: boolean\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n })\n },\n },\n })\n }\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n"],"mappings":"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"}