@vuetify/nightly 3.2.0-dev-20230405.0 → 3.2.0-dev-20230415.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 (110) hide show
  1. package/CHANGELOG.md +3 -2
  2. package/dist/json/attributes.json +24 -8
  3. package/dist/json/importMap-labs.json +0 -4
  4. package/dist/json/importMap.json +56 -52
  5. package/dist/json/tags.json +5 -1
  6. package/dist/json/web-types.json +83 -47
  7. package/dist/vuetify-labs.css +2296 -2277
  8. package/dist/vuetify-labs.d.ts +712 -662
  9. package/dist/vuetify-labs.esm.js +269 -227
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +268 -226
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +32 -4
  14. package/dist/vuetify.d.ts +593 -417
  15. package/dist/vuetify.esm.js +247 -34
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +246 -33
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +319 -293
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -2
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  24. package/lib/components/VAutocomplete/index.d.ts +38 -32
  25. package/lib/components/VCheckbox/index.d.ts +14 -14
  26. package/lib/components/VChip/VChip.mjs +2 -2
  27. package/lib/components/VChip/VChip.mjs.map +1 -1
  28. package/lib/components/VChip/index.d.ts +14 -14
  29. package/lib/components/VCombobox/VCombobox.mjs +6 -3
  30. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  31. package/lib/components/VCombobox/index.d.ts +38 -32
  32. package/lib/components/VField/VField.mjs +3 -3
  33. package/lib/components/VField/VField.mjs.map +1 -1
  34. package/lib/components/VField/index.d.ts +20 -20
  35. package/lib/components/VFileInput/VFileInput.mjs +0 -1
  36. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  37. package/lib/components/VFileInput/index.d.ts +50 -56
  38. package/lib/components/VImg/VImg.mjs +3 -3
  39. package/lib/components/VImg/VImg.mjs.map +1 -1
  40. package/lib/components/VImg/index.d.ts +19 -19
  41. package/lib/components/VInput/VInput.mjs +2 -2
  42. package/lib/components/VInput/VInput.mjs.map +1 -1
  43. package/lib/components/VInput/index.d.ts +14 -14
  44. package/lib/components/VList/VList.mjs +2 -1
  45. package/lib/components/VList/VList.mjs.map +1 -1
  46. package/lib/components/VList/VListItem.css +12 -0
  47. package/lib/components/VList/VListItem.mjs +2 -2
  48. package/lib/components/VList/VListItem.mjs.map +1 -1
  49. package/lib/components/VList/VListItem.sass +5 -0
  50. package/lib/components/VList/index.d.ts +14 -14
  51. package/lib/components/VOverlay/useActivator.mjs +1 -0
  52. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  53. package/lib/components/VProgressCircular/VProgressCircular.css +3 -1
  54. package/lib/components/VProgressCircular/VProgressCircular.sass +3 -1
  55. package/lib/components/VProgressCircular/_variables.scss +1 -0
  56. package/lib/components/VProgressLinear/VProgressLinear.css +5 -2
  57. package/lib/components/VProgressLinear/VProgressLinear.sass +3 -0
  58. package/lib/components/VProgressLinear/_variables.scss +1 -1
  59. package/lib/components/VRadioGroup/index.d.ts +14 -14
  60. package/lib/components/VRangeSlider/index.d.ts +14 -14
  61. package/lib/components/VSelect/VSelect.mjs +31 -2
  62. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  63. package/lib/components/VSelect/index.d.ts +38 -32
  64. package/lib/components/VSlider/index.d.ts +14 -14
  65. package/lib/components/VSwitch/index.d.ts +14 -14
  66. package/lib/components/VTextField/VTextField.mjs +2 -2
  67. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  68. package/lib/components/VTextField/index.d.ts +83 -77
  69. package/lib/components/VTextarea/VTextarea.mjs +8 -5
  70. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  71. package/lib/components/VTextarea/index.d.ts +56 -50
  72. package/lib/components/VToolbar/VToolbar.css +2 -0
  73. package/lib/components/VToolbar/VToolbar.sass +2 -0
  74. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -0
  75. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -0
  76. package/lib/components/VVirtualScroll/index.mjs.map +1 -0
  77. package/lib/components/index.d.ts +576 -403
  78. package/lib/components/index.mjs +2 -1
  79. package/lib/components/index.mjs.map +1 -1
  80. package/lib/composables/proxiedModel.mjs +2 -1
  81. package/lib/composables/proxiedModel.mjs.map +1 -1
  82. package/lib/composables/theme.mjs +1 -1
  83. package/lib/composables/theme.mjs.map +1 -1
  84. package/lib/entry-bundler.mjs +1 -1
  85. package/lib/framework.mjs +1 -1
  86. package/lib/index.d.ts +16 -15
  87. package/lib/labs/VDataTable/VDataTable.mjs +4 -4
  88. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  89. package/lib/labs/VDataTable/VDataTableRows.mjs +5 -7
  90. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  91. package/lib/labs/VDataTable/VDataTableServer.mjs +4 -3
  92. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  93. package/lib/labs/VDataTable/VDataTableVirtual.mjs +5 -3
  94. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  95. package/lib/labs/VDataTable/index.d.ts +137 -111
  96. package/lib/labs/components.d.ts +138 -261
  97. package/lib/labs/components.mjs +0 -1
  98. package/lib/labs/components.mjs.map +1 -1
  99. package/lib/util/helpers.mjs +1 -1
  100. package/lib/util/helpers.mjs.map +1 -1
  101. package/package.json +2 -2
  102. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +0 -1
  103. package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +0 -1
  104. package/lib/labs/VVirtualScroll/index.mjs.map +0 -1
  105. /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.css +0 -0
  106. /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.mjs +0 -0
  107. /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.sass +0 -0
  108. /package/lib/{labs → components}/VVirtualScroll/VVirtualScrollItem.mjs +0 -0
  109. /package/lib/{labs → components}/VVirtualScroll/index.d.ts +0 -0
  110. /package/lib/{labs → components}/VVirtualScroll/index.mjs +0 -0
@@ -6,8 +6,8 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
6
6
  }
7
7
 
8
8
  declare function deepEqual(a: any, b: any): boolean;
9
- type EventProp<T = (...args: any[]) => any> = T | T[];
10
- declare const EventProp: PropType<EventProp<(...args: any[]) => any>>;
9
+ type EventProp<T extends any[] = any[], F = (...args: T) => any> = F | F[];
10
+ declare const EventProp: <T extends any[] = any[]>() => PropType<EventProp<T, (...args: T) => any>>;
11
11
 
12
12
  type Density = null | 'default' | 'comfortable' | 'compact';
13
13
 
@@ -95,8 +95,8 @@ declare const VSwitch: {
95
95
  modelValue?: any;
96
96
  prependIcon?: IconValue | undefined;
97
97
  appendIcon?: IconValue | undefined;
98
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
99
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
98
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
99
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
100
100
  validateOn?: "input" | "blur" | "submit" | undefined;
101
101
  validationValue?: any;
102
102
  hideDetails?: boolean | "auto" | undefined;
@@ -196,8 +196,8 @@ declare const VSwitch: {
196
196
  modelValue?: any;
197
197
  prependIcon?: IconValue | undefined;
198
198
  appendIcon?: IconValue | undefined;
199
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
200
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
199
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
200
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
201
201
  validateOn?: "input" | "blur" | "submit" | undefined;
202
202
  validationValue?: any;
203
203
  hideDetails?: boolean | "auto" | undefined;
@@ -326,8 +326,8 @@ declare const VSwitch: {
326
326
  modelValue?: any;
327
327
  prependIcon?: IconValue | undefined;
328
328
  appendIcon?: IconValue | undefined;
329
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
330
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
329
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
330
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
331
331
  validateOn?: "input" | "blur" | "submit" | undefined;
332
332
  validationValue?: any;
333
333
  hideDetails?: boolean | "auto" | undefined;
@@ -417,8 +417,8 @@ declare const VSwitch: {
417
417
  modelValue?: any;
418
418
  prependIcon?: IconValue | undefined;
419
419
  appendIcon?: IconValue | undefined;
420
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
421
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
420
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
421
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
422
422
  validateOn?: "input" | "blur" | "submit" | undefined;
423
423
  validationValue?: any;
424
424
  hideDetails?: boolean | "auto" | undefined;
@@ -558,8 +558,8 @@ declare const VSwitch: {
558
558
  default: string;
559
559
  validator: (v: any) => boolean;
560
560
  };
561
- 'onClick:prepend': vue.PropType<EventProp<(...args: any[]) => any>>;
562
- 'onClick:append': vue.PropType<EventProp<(...args: any[]) => any>>;
561
+ 'onClick:prepend': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
562
+ 'onClick:append': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
563
563
  indeterminate: BooleanConstructor;
564
564
  inset: BooleanConstructor;
565
565
  flat: BooleanConstructor;
@@ -628,8 +628,8 @@ declare const VSwitch: {
628
628
  default: string;
629
629
  validator: (v: any) => boolean;
630
630
  };
631
- 'onClick:prepend': vue.PropType<EventProp<(...args: any[]) => any>>;
632
- 'onClick:append': vue.PropType<EventProp<(...args: any[]) => any>>;
631
+ 'onClick:prepend': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
632
+ 'onClick:append': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
633
633
  indeterminate: BooleanConstructor;
634
634
  inset: BooleanConstructor;
635
635
  flat: BooleanConstructor;
@@ -13,7 +13,6 @@ import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utiliti
13
13
  import { cloneVNode, computed, nextTick, ref } from 'vue';
14
14
  import { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
15
15
  const activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
16
- const EventProp = [Function, Array];
17
16
  export const makeVTextFieldProps = propsFactory({
18
17
  autofocus: Boolean,
19
18
  counter: [Boolean, Number, String],
@@ -29,6 +28,7 @@ export const makeVTextFieldProps = propsFactory({
29
28
  type: String,
30
29
  default: 'text'
31
30
  },
31
+ modelModifiers: Object,
32
32
  ...makeVInputProps(),
33
33
  ...makeVFieldProps()
34
34
  }, 'v-text-field');
@@ -103,7 +103,7 @@ export const VTextField = genericComponent()({
103
103
  function onInput(e) {
104
104
  const el = e.target;
105
105
  model.value = el.value;
106
- if (['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {
106
+ if (props.modelModifiers?.trim && ['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {
107
107
  const caretPosition = [el.selectionStart, el.selectionEnd];
108
108
  nextTick(() => {
109
109
  el.selectionStart = caretPosition[0];
@@ -1 +1 @@
1
- {"version":3,"file":"VTextField.mjs","names":["filterFieldProps","makeVFieldProps","VField","filterInputProps","makeVInputProps","VInput","VCounter","Intersect","forwardRefs","useFocus","useProxiedModel","cloneVNode","computed","nextTick","ref","callEvent","filterInputAttrs","genericComponent","propsFactory","useRender","activeTypes","EventProp","Function","Array","makeVTextFieldProps","autofocus","Boolean","counter","Number","String","counterValue","hint","persistentHint","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","type","default","VTextField","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","vInputRef","vFieldRef","inputRef","isActive","includes","messages","onFocus","document","activeElement","onControlMousedown","preventDefault","onControlClick","onClear","stopPropagation","onInput","el","caretPosition","selectionStart","selectionEnd","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","fieldProps","_createVNode","_mergeProps","$event","variant","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","class","fieldClass","slotProps","inputNode","_withDirectives","_resolveDirective","handler","once","_Fragment"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\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 { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\ntype EventProp<T = (...args: any[]) => any> = T | T[]\nconst EventProp = [Function, Array] as PropType<EventProp>\n\nexport const makeVTextFieldProps = propsFactory({\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 suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'v-text-field')\n\nexport const VTextField = genericComponent<Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n default: []\n}>>()({\n name: 'VTextField',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\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 unknown 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<VField>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value\n ))\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isFocused.value || props.persistentHint) ? props.hint : ''\n })\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\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 = null\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\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-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\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 id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n const inputNode = (\n <input\n ref={ inputRef }\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 name={ props.name }\n placeholder={ props.placeholder }\n size={ 1 }\n type={ props.type }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n )}\n\n { slots.default ? (\n <div\n class={ fieldClass }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n )}\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:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VTextField.mjs","names":["filterFieldProps","makeVFieldProps","VField","filterInputProps","makeVInputProps","VInput","VCounter","Intersect","forwardRefs","useFocus","useProxiedModel","cloneVNode","computed","nextTick","ref","callEvent","filterInputAttrs","genericComponent","propsFactory","useRender","activeTypes","makeVTextFieldProps","autofocus","Boolean","counter","Number","String","counterValue","Function","hint","persistentHint","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","type","default","modelModifiers","Object","VTextField","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","value","toString","length","max","maxlength","undefined","onIntersect","isIntersecting","entries","target","vInputRef","vFieldRef","inputRef","isActive","includes","messages","onFocus","document","activeElement","onControlMousedown","preventDefault","onControlClick","onClear","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","fieldProps","_createVNode","_mergeProps","$event","variant","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","class","fieldClass","slotProps","inputNode","_withDirectives","_resolveDirective","handler","once","_Fragment"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\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 { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\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 suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'v-text-field')\n\nexport const VTextField = genericComponent<Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n default: []\n}>>()({\n name: 'VTextField',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\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 unknown 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<VField>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value\n ))\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isFocused.value || props.persistentHint) ? props.hint : ''\n })\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\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 = null\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n ) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\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-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\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 id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n role=\"textbox\"\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n const inputNode = (\n <input\n ref={ inputRef }\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 name={ props.name }\n placeholder={ props.placeholder }\n size={ 1 }\n type={ props.type }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n )}\n\n { slots.default ? (\n <div\n class={ fieldClass }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n )}\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:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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"}
@@ -5,8 +5,8 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
5
5
  filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
6
6
  }
7
7
 
8
- type EventProp<T = (...args: any[]) => any> = T | T[];
9
- declare const EventProp: PropType<EventProp<(...args: any[]) => any>>;
8
+ type EventProp<T extends any[] = any[], F = (...args: T) => any> = F | F[];
9
+ declare const EventProp: <T extends any[] = any[]>() => PropType<EventProp<T, (...args: T) => any>>;
10
10
 
11
11
  interface LoaderSlotProps {
12
12
  color: string | undefined;
@@ -114,17 +114,18 @@ declare const VTextField: {
114
114
  appendIcon?: IconValue | undefined;
115
115
  appendInnerIcon?: IconValue | undefined;
116
116
  prependInnerIcon?: IconValue | undefined;
117
- 'onClick:clear'?: EventProp<(...args: any[]) => any> | undefined;
118
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
119
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
120
- 'onClick:appendInner'?: EventProp<(...args: any[]) => any> | undefined;
121
- 'onClick:prependInner'?: EventProp<(...args: any[]) => any> | undefined;
117
+ 'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
118
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
119
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
120
+ 'onClick:appendInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
121
+ 'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
122
122
  validateOn?: "input" | "blur" | "submit" | undefined;
123
123
  validationValue?: any;
124
124
  hideDetails?: boolean | "auto" | undefined;
125
125
  hint?: string | undefined;
126
126
  suffix?: string | undefined;
127
127
  counterValue?: ((value: any) => number) | undefined;
128
+ modelModifiers?: Record<string, boolean> | undefined;
128
129
  } & {
129
130
  $children?: {} | vue.VNodeChild | {
130
131
  clear?: (() => vue.VNodeChild) | undefined;
@@ -228,17 +229,18 @@ declare const VTextField: {
228
229
  appendIcon?: IconValue | undefined;
229
230
  appendInnerIcon?: IconValue | undefined;
230
231
  prependInnerIcon?: IconValue | undefined;
231
- 'onClick:clear'?: EventProp<(...args: any[]) => any> | undefined;
232
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
233
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
234
- 'onClick:appendInner'?: EventProp<(...args: any[]) => any> | undefined;
235
- 'onClick:prependInner'?: EventProp<(...args: any[]) => any> | undefined;
232
+ 'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
233
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
234
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
235
+ 'onClick:appendInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
236
+ 'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
236
237
  validateOn?: "input" | "blur" | "submit" | undefined;
237
238
  validationValue?: any;
238
239
  hideDetails?: boolean | "auto" | undefined;
239
240
  hint?: string | undefined;
240
241
  suffix?: string | undefined;
241
242
  counterValue?: ((value: any) => number) | undefined;
243
+ modelModifiers?: Record<string, boolean> | undefined;
242
244
  } & {
243
245
  $children?: {} | vue.VNodeChild | {
244
246
  clear?: (() => vue.VNodeChild) | undefined;
@@ -320,8 +322,8 @@ declare const VTextField: {
320
322
  modelValue?: any;
321
323
  prependIcon?: IconValue | undefined;
322
324
  appendIcon?: IconValue | undefined;
323
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
324
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
325
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
326
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
325
327
  validateOn?: "input" | "blur" | "submit" | undefined;
326
328
  validationValue?: any;
327
329
  hideDetails?: boolean | "auto" | undefined;
@@ -383,8 +385,8 @@ declare const VTextField: {
383
385
  modelValue?: any;
384
386
  prependIcon?: IconValue | undefined;
385
387
  appendIcon?: IconValue | undefined;
386
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
387
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
388
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
389
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
388
390
  validateOn?: "input" | "blur" | "submit" | undefined;
389
391
  validationValue?: any;
390
392
  hideDetails?: boolean | "auto" | undefined;
@@ -469,8 +471,8 @@ declare const VTextField: {
469
471
  modelValue?: any;
470
472
  prependIcon?: IconValue | undefined;
471
473
  appendIcon?: IconValue | undefined;
472
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
473
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
474
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
475
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
474
476
  validateOn?: "input" | "blur" | "submit" | undefined;
475
477
  validationValue?: any;
476
478
  hideDetails?: boolean | "auto" | undefined;
@@ -544,9 +546,9 @@ declare const VTextField: {
544
546
  default: string;
545
547
  validator: (v: any) => boolean;
546
548
  };
547
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
548
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
549
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
549
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
550
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
551
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
550
552
  focused: BooleanConstructor;
551
553
  id: StringConstructor;
552
554
  }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner">>> & {
@@ -590,9 +592,9 @@ declare const VTextField: {
590
592
  default: string;
591
593
  validator: (v: any) => boolean;
592
594
  };
593
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
594
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
595
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
595
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
596
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
597
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
596
598
  focused: BooleanConstructor;
597
599
  id: StringConstructor;
598
600
  }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner">>> & {
@@ -659,9 +661,9 @@ declare const VTextField: {
659
661
  default: string;
660
662
  validator: (v: any) => boolean;
661
663
  };
662
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
663
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
664
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
664
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
665
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
666
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
665
667
  focused: BooleanConstructor;
666
668
  id: StringConstructor;
667
669
  }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner">>> & {
@@ -794,17 +796,18 @@ declare const VTextField: {
794
796
  appendIcon?: IconValue | undefined;
795
797
  appendInnerIcon?: IconValue | undefined;
796
798
  prependInnerIcon?: IconValue | undefined;
797
- 'onClick:clear'?: EventProp<(...args: any[]) => any> | undefined;
798
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
799
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
800
- 'onClick:appendInner'?: EventProp<(...args: any[]) => any> | undefined;
801
- 'onClick:prependInner'?: EventProp<(...args: any[]) => any> | undefined;
799
+ 'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
800
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
801
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
802
+ 'onClick:appendInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
803
+ 'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
802
804
  validateOn?: "input" | "blur" | "submit" | undefined;
803
805
  validationValue?: any;
804
806
  hideDetails?: boolean | "auto" | undefined;
805
807
  hint?: string | undefined;
806
808
  suffix?: string | undefined;
807
809
  counterValue?: ((value: any) => number) | undefined;
810
+ modelModifiers?: Record<string, boolean> | undefined;
808
811
  } & {
809
812
  $children?: {} | vue.VNodeChild | {
810
813
  clear?: (() => vue.VNodeChild) | undefined;
@@ -886,8 +889,8 @@ declare const VTextField: {
886
889
  modelValue?: any;
887
890
  prependIcon?: IconValue | undefined;
888
891
  appendIcon?: IconValue | undefined;
889
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
890
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
892
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
893
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
891
894
  validateOn?: "input" | "blur" | "submit" | undefined;
892
895
  validationValue?: any;
893
896
  hideDetails?: boolean | "auto" | undefined;
@@ -949,8 +952,8 @@ declare const VTextField: {
949
952
  modelValue?: any;
950
953
  prependIcon?: IconValue | undefined;
951
954
  appendIcon?: IconValue | undefined;
952
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
953
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
955
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
956
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
954
957
  validateOn?: "input" | "blur" | "submit" | undefined;
955
958
  validationValue?: any;
956
959
  hideDetails?: boolean | "auto" | undefined;
@@ -1035,8 +1038,8 @@ declare const VTextField: {
1035
1038
  modelValue?: any;
1036
1039
  prependIcon?: IconValue | undefined;
1037
1040
  appendIcon?: IconValue | undefined;
1038
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
1039
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
1041
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1042
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1040
1043
  validateOn?: "input" | "blur" | "submit" | undefined;
1041
1044
  validationValue?: any;
1042
1045
  hideDetails?: boolean | "auto" | undefined;
@@ -1110,9 +1113,9 @@ declare const VTextField: {
1110
1113
  default: string;
1111
1114
  validator: (v: any) => boolean;
1112
1115
  };
1113
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
1114
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
1115
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
1116
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1117
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1118
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1116
1119
  focused: BooleanConstructor;
1117
1120
  id: StringConstructor;
1118
1121
  }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner">>> & {
@@ -1156,9 +1159,9 @@ declare const VTextField: {
1156
1159
  default: string;
1157
1160
  validator: (v: any) => boolean;
1158
1161
  };
1159
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
1160
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
1161
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
1162
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1163
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1164
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1162
1165
  focused: BooleanConstructor;
1163
1166
  id: StringConstructor;
1164
1167
  }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner">>> & {
@@ -1225,9 +1228,9 @@ declare const VTextField: {
1225
1228
  default: string;
1226
1229
  validator: (v: any) => boolean;
1227
1230
  };
1228
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
1229
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
1230
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
1231
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1232
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1233
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1231
1234
  focused: BooleanConstructor;
1232
1235
  id: StringConstructor;
1233
1236
  }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner">>> & {
@@ -1315,17 +1318,18 @@ declare const VTextField: {
1315
1318
  appendIcon?: IconValue | undefined;
1316
1319
  appendInnerIcon?: IconValue | undefined;
1317
1320
  prependInnerIcon?: IconValue | undefined;
1318
- 'onClick:clear'?: EventProp<(...args: any[]) => any> | undefined;
1319
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
1320
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
1321
- 'onClick:appendInner'?: EventProp<(...args: any[]) => any> | undefined;
1322
- 'onClick:prependInner'?: EventProp<(...args: any[]) => any> | undefined;
1321
+ 'onClick:clear'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1322
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1323
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1324
+ 'onClick:appendInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1325
+ 'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1323
1326
  validateOn?: "input" | "blur" | "submit" | undefined;
1324
1327
  validationValue?: any;
1325
1328
  hideDetails?: boolean | "auto" | undefined;
1326
1329
  hint?: string | undefined;
1327
1330
  suffix?: string | undefined;
1328
1331
  counterValue?: ((value: any) => number) | undefined;
1332
+ modelModifiers?: Record<string, boolean> | undefined;
1329
1333
  } & {
1330
1334
  $children?: {} | vue.VNodeChild | {
1331
1335
  clear?: (() => vue.VNodeChild) | undefined;
@@ -1407,8 +1411,8 @@ declare const VTextField: {
1407
1411
  modelValue?: any;
1408
1412
  prependIcon?: IconValue | undefined;
1409
1413
  appendIcon?: IconValue | undefined;
1410
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
1411
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
1414
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1415
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1412
1416
  validateOn?: "input" | "blur" | "submit" | undefined;
1413
1417
  validationValue?: any;
1414
1418
  hideDetails?: boolean | "auto" | undefined;
@@ -1470,8 +1474,8 @@ declare const VTextField: {
1470
1474
  modelValue?: any;
1471
1475
  prependIcon?: IconValue | undefined;
1472
1476
  appendIcon?: IconValue | undefined;
1473
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
1474
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
1477
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1478
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1475
1479
  validateOn?: "input" | "blur" | "submit" | undefined;
1476
1480
  validationValue?: any;
1477
1481
  hideDetails?: boolean | "auto" | undefined;
@@ -1556,8 +1560,8 @@ declare const VTextField: {
1556
1560
  modelValue?: any;
1557
1561
  prependIcon?: IconValue | undefined;
1558
1562
  appendIcon?: IconValue | undefined;
1559
- 'onClick:append'?: EventProp<(...args: any[]) => any> | undefined;
1560
- 'onClick:prepend'?: EventProp<(...args: any[]) => any> | undefined;
1563
+ 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1564
+ 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1561
1565
  validateOn?: "input" | "blur" | "submit" | undefined;
1562
1566
  validationValue?: any;
1563
1567
  hideDetails?: boolean | "auto" | undefined;
@@ -1631,9 +1635,9 @@ declare const VTextField: {
1631
1635
  default: string;
1632
1636
  validator: (v: any) => boolean;
1633
1637
  };
1634
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
1635
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
1636
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
1638
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1639
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1640
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1637
1641
  focused: BooleanConstructor;
1638
1642
  id: StringConstructor;
1639
1643
  }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner">>> & {
@@ -1677,9 +1681,9 @@ declare const VTextField: {
1677
1681
  default: string;
1678
1682
  validator: (v: any) => boolean;
1679
1683
  };
1680
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
1681
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
1682
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
1684
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1685
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1686
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1683
1687
  focused: BooleanConstructor;
1684
1688
  id: StringConstructor;
1685
1689
  }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner">>> & {
@@ -1746,9 +1750,9 @@ declare const VTextField: {
1746
1750
  default: string;
1747
1751
  validator: (v: any) => boolean;
1748
1752
  };
1749
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
1750
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
1751
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
1753
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1754
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1755
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1752
1756
  focused: BooleanConstructor;
1753
1757
  id: StringConstructor;
1754
1758
  }, "$children" | "v-slot:default" | "$slots" | "v-slots" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner">>> & {
@@ -1846,9 +1850,9 @@ declare const VTextField: {
1846
1850
  default: string;
1847
1851
  validator: (v: any) => boolean;
1848
1852
  };
1849
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
1850
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
1851
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
1853
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1854
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1855
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1852
1856
  focused: BooleanConstructor;
1853
1857
  errorMessages: {
1854
1858
  type: PropType<string | string[]>;
@@ -1885,8 +1889,8 @@ declare const VTextField: {
1885
1889
  default: string;
1886
1890
  validator: (v: any) => boolean;
1887
1891
  };
1888
- 'onClick:prepend': PropType<EventProp<(...args: any[]) => any>>;
1889
- 'onClick:append': PropType<EventProp<(...args: any[]) => any>>;
1892
+ 'onClick:prepend': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1893
+ 'onClick:append': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1890
1894
  autofocus: BooleanConstructor;
1891
1895
  counter: PropType<string | number | true>;
1892
1896
  counterValue: PropType<(value: any) => number>;
@@ -1901,6 +1905,7 @@ declare const VTextField: {
1901
1905
  type: StringConstructor;
1902
1906
  default: string;
1903
1907
  };
1908
+ modelModifiers: PropType<Record<string, boolean>>;
1904
1909
  }, vue.ExtractPropTypes<{
1905
1910
  loading: (StringConstructor | BooleanConstructor)[];
1906
1911
  theme: StringConstructor;
@@ -1926,9 +1931,9 @@ declare const VTextField: {
1926
1931
  default: string;
1927
1932
  validator: (v: any) => boolean;
1928
1933
  };
1929
- 'onClick:clear': PropType<EventProp<(...args: any[]) => any>>;
1930
- 'onClick:appendInner': PropType<EventProp<(...args: any[]) => any>>;
1931
- 'onClick:prependInner': PropType<EventProp<(...args: any[]) => any>>;
1934
+ 'onClick:clear': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1935
+ 'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1936
+ 'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1932
1937
  focused: BooleanConstructor;
1933
1938
  errorMessages: {
1934
1939
  type: PropType<string | string[]>;
@@ -1965,8 +1970,8 @@ declare const VTextField: {
1965
1970
  default: string;
1966
1971
  validator: (v: any) => boolean;
1967
1972
  };
1968
- 'onClick:prepend': PropType<EventProp<(...args: any[]) => any>>;
1969
- 'onClick:append': PropType<EventProp<(...args: any[]) => any>>;
1973
+ 'onClick:prepend': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1974
+ 'onClick:append': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1970
1975
  autofocus: BooleanConstructor;
1971
1976
  counter: PropType<string | number | true>;
1972
1977
  counterValue: PropType<(value: any) => number>;
@@ -1981,6 +1986,7 @@ declare const VTextField: {
1981
1986
  type: StringConstructor;
1982
1987
  default: string;
1983
1988
  };
1989
+ modelModifiers: PropType<Record<string, boolean>>;
1984
1990
  }>>;
1985
1991
  type VTextField = InstanceType<typeof VTextField>;
1986
1992
 
@@ -42,6 +42,7 @@ export const VTextarea = genericComponent()({
42
42
  validator: v => !isNaN(parseFloat(v))
43
43
  },
44
44
  suffix: String,
45
+ modelModifiers: Object,
45
46
  ...makeVInputProps(),
46
47
  ...makeVFieldProps()
47
48
  },
@@ -106,12 +107,14 @@ export const VTextarea = genericComponent()({
106
107
  }
107
108
  function onInput(e) {
108
109
  const el = e.target;
109
- const caretPosition = [el.selectionStart, el.selectionEnd];
110
110
  model.value = el.value;
111
- nextTick(() => {
112
- el.selectionStart = caretPosition[0];
113
- el.selectionEnd = caretPosition[1];
114
- });
111
+ if (props.modelModifiers?.trim) {
112
+ const caretPosition = [el.selectionStart, el.selectionEnd];
113
+ nextTick(() => {
114
+ el.selectionStart = caretPosition[0];
115
+ el.selectionEnd = caretPosition[1];
116
+ });
117
+ }
115
118
  }
116
119
  const sizerRef = ref();
117
120
  function calculateInputHeight() {