@vuetify/nightly 4.0.0-dev-20230419.0 → 4.0.0-dev-20230422.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 (121) hide show
  1. package/CHANGELOG.md +7 -2
  2. package/dist/json/attributes.json +172 -108
  3. package/dist/json/importMap.json +58 -58
  4. package/dist/json/tags.json +16 -0
  5. package/dist/json/web-types.json +522 -220
  6. package/dist/vuetify-labs.css +335 -172
  7. package/dist/vuetify-labs.d.ts +620 -171
  8. package/dist/vuetify-labs.esm.js +864 -182
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +864 -181
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +166 -3
  13. package/dist/vuetify.d.ts +584 -167
  14. package/dist/vuetify.esm.js +806 -134
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +806 -133
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +748 -682
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/adapters/date-adapter.mjs +2 -0
  22. package/lib/adapters/date-adapter.mjs.map +1 -0
  23. package/lib/adapters/vuetify.mjs +399 -0
  24. package/lib/adapters/vuetify.mjs.map +1 -0
  25. package/lib/blueprints/index.d.ts +34 -0
  26. package/lib/blueprints/md1.d.ts +34 -0
  27. package/lib/blueprints/md2.d.ts +34 -0
  28. package/lib/blueprints/md3.d.ts +34 -0
  29. package/lib/components/VAppBar/VAppBar.mjs +62 -10
  30. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  31. package/lib/components/VAppBar/index.d.ts +26 -0
  32. package/lib/components/VAutocomplete/VAutocomplete.css +9 -0
  33. package/lib/components/VAutocomplete/VAutocomplete.mjs +50 -6
  34. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  35. package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
  36. package/lib/components/VAutocomplete/index.d.ts +29 -17
  37. package/lib/components/VBtn/_mixins.scss +1 -1
  38. package/lib/components/VCard/VCard.mjs.map +1 -1
  39. package/lib/components/VCard/index.d.ts +21 -16
  40. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  41. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  42. package/lib/components/VCheckbox/index.d.ts +22 -1
  43. package/lib/components/VCombobox/VCombobox.css +1 -1
  44. package/lib/components/VCombobox/VCombobox.mjs +6 -4
  45. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  46. package/lib/components/VCombobox/VCombobox.sass +1 -1
  47. package/lib/components/VCombobox/index.d.ts +29 -17
  48. package/lib/components/VField/index.d.ts +6 -0
  49. package/lib/components/VFileInput/VFileInput.mjs +13 -17
  50. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  51. package/lib/components/VFileInput/index.d.ts +68 -23
  52. package/lib/components/VInput/VInput.mjs +14 -7
  53. package/lib/components/VInput/VInput.mjs.map +1 -1
  54. package/lib/components/VInput/index.d.ts +22 -1
  55. package/lib/components/VOverlay/locationStrategies.mjs +9 -4
  56. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  57. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  58. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  59. package/lib/components/VRadioGroup/index.d.ts +22 -1
  60. package/lib/components/VRangeSlider/VRangeSlider.mjs +33 -22
  61. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  62. package/lib/components/VRangeSlider/index.d.ts +39 -6
  63. package/lib/components/VSelect/VSelect.mjs +6 -0
  64. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  65. package/lib/components/VSelect/index.d.ts +32 -17
  66. package/lib/components/VSlider/VSlider.mjs +33 -15
  67. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  68. package/lib/components/VSlider/index.d.ts +39 -6
  69. package/lib/components/VSlider/slider.mjs +43 -23
  70. package/lib/components/VSlider/slider.mjs.map +1 -1
  71. package/lib/components/VSwitch/VSwitch.mjs +5 -3
  72. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  73. package/lib/components/VSwitch/index.d.ts +43 -1
  74. package/lib/components/VTextField/VTextField.mjs +4 -12
  75. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  76. package/lib/components/VTextField/index.d.ts +70 -22
  77. package/lib/components/VTextarea/VTextarea.mjs +4 -12
  78. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  79. package/lib/components/VTextarea/index.d.ts +61 -22
  80. package/lib/components/VToolbar/VToolbar.css +3 -1
  81. package/lib/components/VToolbar/VToolbar.sass +3 -1
  82. package/lib/components/VValidation/index.d.ts +10 -1
  83. package/lib/components/index.d.ts +525 -150
  84. package/lib/composables/date.mjs +39 -0
  85. package/lib/composables/date.mjs.map +1 -0
  86. package/lib/composables/focus.mjs +3 -2
  87. package/lib/composables/focus.mjs.map +1 -1
  88. package/lib/composables/index.mjs +1 -0
  89. package/lib/composables/index.mjs.map +1 -1
  90. package/lib/composables/items.mjs +7 -2
  91. package/lib/composables/items.mjs.map +1 -1
  92. package/lib/composables/scroll.mjs +3 -0
  93. package/lib/composables/scroll.mjs.map +1 -1
  94. package/lib/entry-bundler.mjs +1 -1
  95. package/lib/framework.mjs +8 -3
  96. package/lib/framework.mjs.map +1 -1
  97. package/lib/iconsets/mdi-svg.mjs +2 -2
  98. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  99. package/lib/index.d.ts +59 -17
  100. package/lib/labs/VDataTable/VDataTable.mjs +2 -2
  101. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  102. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  103. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  104. package/lib/labs/VDataTable/VDataTableRows.mjs +52 -44
  105. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  106. package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
  107. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  108. package/lib/labs/VDataTable/VDataTableVirtual.mjs +0 -1
  109. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  110. package/lib/labs/VDataTable/composables/options.mjs +2 -1
  111. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  112. package/lib/labs/VDataTable/index.d.ts +44 -11
  113. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +1 -0
  114. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  115. package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
  116. package/lib/labs/components.d.ts +53 -20
  117. package/lib/styles/main.css +152 -0
  118. package/lib/styles/settings/_utilities.scss +11 -1
  119. package/lib/util/helpers.mjs +4 -0
  120. package/lib/util/helpers.mjs.map +1 -1
  121. package/package.json +2 -2
@@ -5,7 +5,7 @@ import "../VTextField/VTextField.css";
5
5
 
6
6
  // Components
7
7
  import { filterFieldProps, makeVFieldProps } from "../VField/VField.mjs";
8
- import { filterInputProps, makeVInputProps, VInput } from "../VInput/VInput.mjs";
8
+ import { makeVInputProps, VInput } from "../VInput/VInput.mjs";
9
9
  import { VCounter } from "../VCounter/index.mjs";
10
10
  import { VField } from "../VField/index.mjs"; // Directives
11
11
  import Intersect from "../../directives/intersect/index.mjs"; // Composables
@@ -25,8 +25,6 @@ export const VTextarea = genericComponent()({
25
25
  autofocus: Boolean,
26
26
  counter: [Boolean, Number, String],
27
27
  counterValue: Function,
28
- hint: String,
29
- persistentHint: Boolean,
30
28
  prefix: String,
31
29
  placeholder: String,
32
30
  persistentPlaceholder: Boolean,
@@ -81,9 +79,6 @@ export const VTextarea = genericComponent()({
81
79
  const controlHeight = ref('');
82
80
  const textareaRef = ref();
83
81
  const isActive = computed(() => isFocused.value || props.persistentPlaceholder);
84
- const messages = computed(() => {
85
- return props.messages.length ? props.messages : isFocused.value || props.persistentHint ? props.hint : '';
86
- });
87
82
  function onFocus() {
88
83
  if (textareaRef.value !== document.activeElement) {
89
84
  textareaRef.value?.focus();
@@ -155,7 +150,7 @@ export const VTextarea = genericComponent()({
155
150
  const [{
156
151
  modelValue: _,
157
152
  ...inputProps
158
- }] = filterInputProps(props);
153
+ }] = VInput.filterProps(props);
159
154
  const [fieldProps] = filterFieldProps(props);
160
155
  return _createVNode(VInput, _mergeProps({
161
156
  "ref": vInputRef,
@@ -169,12 +164,9 @@ export const VTextarea = genericComponent()({
169
164
  'v-textarea--auto-grow': props.autoGrow,
170
165
  'v-textarea--no-resize': props.noResize || props.autoGrow,
171
166
  'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
172
- }],
173
- "onClick:prepend": props['onClick:prepend'],
174
- "onClick:append": props['onClick:append']
167
+ }]
175
168
  }, rootAttrs, inputProps, {
176
- "focused": isFocused.value,
177
- "messages": messages.value
169
+ "focused": isFocused.value
178
170
  }), {
179
171
  ...slots,
180
172
  default: _ref2 => {
@@ -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","filterInputAttrs","genericComponent","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","modelModifiers","Object","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","controlHeight","textareaRef","isActive","messages","onFocus","document","activeElement","onControlClick","onControlMousedown","onClear","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","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","_createVNode","_mergeProps","$event","includes","variant","_ref2","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","class","fieldClass","slotProps","_Fragment","_withDirectives","_resolveDirective","handler","once","_vModelText"],"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, filterInputAttrs, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport const VTextarea = genericComponent<Omit<VInputSlots & VFieldSlots, 'default'>>()({\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 modelModifiers: Object as PropType<Record<string, boolean>>,\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 string | number\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 : (isFocused.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 const el = e.target as HTMLTextAreaElement\n model.value = el.value\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\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 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 <>\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:default={ 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":";AAAA;AACA;AACA;;AAEA;AAAA,SACSA,gBAAgB,EAAEC,eAAe;AAAA,SACjCC,gBAAgB,EAAEC,eAAe,EAAEC,MAAM;AAAA,SACzCC,QAAQ;AAAA,SACRC,MAAM,+BAEf;AAAA,OACOC,SAAS,8CAEhB;AAAA,SACSC,WAAW;AAAA,SACXC,QAAQ;AAAA,SACRC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,eAAe,EAAEC,SAAS,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACvEC,SAAS,EAAEC,KAAK,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEC,SAAS,gCAEvF;AAKA,OAAO,MAAMC,SAAS,GAAGF,gBAAgB,EAA8C,CAAC;EACtFG,IAAI,EAAE,WAAW;EAEjBC,UAAU,EAAE;IAAElB;EAAU,CAAC;EAEzBmB,YAAY,EAAE,KAAK;EAEnBC,KAAK,EAAE;IACLC,QAAQ,EAAEC,OAAO;IACjBC,SAAS,EAAED,OAAO;IAClBE,OAAO,EAAE,CAACF,OAAO,EAAEG,MAAM,EAAEC,MAAM,CAAqC;IACtEC,YAAY,EAAEC,QAA4C;IAC1DC,IAAI,EAAEH,MAAM;IACZI,cAAc,EAAER,OAAO;IACvBS,MAAM,EAAEL,MAAM;IACdM,WAAW,EAAEN,MAAM;IACnBO,qBAAqB,EAAEX,OAAO;IAC9BY,iBAAiB,EAAEZ,OAAO;IAC1Ba,QAAQ,EAAEb,OAAO;IACjBc,IAAI,EAAE;MACJC,IAAI,EAAE,CAACZ,MAAM,EAAEC,MAAM,CAAC;MACtBY,OAAO,EAAE,CAAC;MACVC,SAAS,EAAGC,CAAM,IAAK,CAACC,KAAK,CAACC,UAAU,CAACF,CAAC,CAAC;IAC7C,CAAC;IACDG,OAAO,EAAE;MACPN,IAAI,EAAE,CAACZ,MAAM,EAAEC,MAAM,CAAC;MACtBa,SAAS,EAAGC,CAAM,IAAK,CAACC,KAAK,CAACC,UAAU,CAACF,CAAC,CAAC;IAC7C,CAAC;IACDI,MAAM,EAAElB,MAAM;IACdmB,cAAc,EAAEC,MAA2C;IAE3D,GAAGlD,eAAe,EAAE;IACpB,GAAGF,eAAe;EACpB,CAAC;EAEDqD,KAAK,EAAE;IACL,eAAe,EAAGC,CAAa,IAAK,IAAI;IACxC,mBAAmB,EAAGA,CAAa,IAAK,IAAI;IAC5C,gBAAgB,EAAGC,OAAgB,IAAK,IAAI;IAC5C,mBAAmB,EAAGC,GAAW,IAAK;EACxC,CAAC;EAEDC,KAAKA,CAAE/B,KAAK,EAAAgC,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IAClC,MAAMI,KAAK,GAAGrD,eAAe,CAACiB,KAAK,EAAE,YAAY,CAAC;IAClD,MAAM;MAAEqC,SAAS;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGzD,QAAQ,CAACkB,KAAK,CAAC;IAClD,MAAMO,YAAY,GAAGvB,QAAQ,CAAC,MAAM;MAClC,OAAO,OAAOgB,KAAK,CAACO,YAAY,KAAK,UAAU,GAC3CP,KAAK,CAACO,YAAY,CAAC6B,KAAK,CAACI,KAAK,CAAC,GAC/B,CAACJ,KAAK,CAACI,KAAK,IAAI,EAAE,EAAEC,QAAQ,EAAE,CAACC,MAAM;IAC3C,CAAC,CAAC;IACF,MAAMC,GAAG,GAAG3D,QAAQ,CAAC,MAAM;MACzB,IAAIiD,KAAK,CAACW,SAAS,EAAE,OAAOX,KAAK,CAACW,SAAS;MAE3C,IACE,CAAC5C,KAAK,CAACI,OAAO,IACb,OAAOJ,KAAK,CAACI,OAAO,KAAK,QAAQ,IAClC,OAAOJ,KAAK,CAACI,OAAO,KAAK,QAAS,EAClC,OAAOyC,SAAS;MAElB,OAAO7C,KAAK,CAACI,OAAO;IACtB,CAAC,CAAC;IAEF,SAAS0C,WAAWA,CAClBC,cAAuB,EACvBC,OAAoC,EACpC;MACA,IAAI,CAAChD,KAAK,CAACG,SAAS,IAAI,CAAC4C,cAAc,EAAE;MAExCC,OAAO,CAAC,CAAC,CAAC,CAACC,MAAM,EAAuBX,KAAK,IAAI;IACpD;IAEA,MAAMY,SAAS,GAAG9D,GAAG,EAAU;IAC/B,MAAM+D,SAAS,GAAG/D,GAAG,EAAU;IAC/B,MAAMgE,aAAa,GAAGhE,GAAG,CAAC,EAAE,CAAC;IAC7B,MAAMiE,WAAW,GAAGjE,GAAG,EAAoB;IAC3C,MAAMkE,QAAQ,GAAGtE,QAAQ,CAAC,MACxBqD,SAAS,CAACG,KAAK,IACfxC,KAAK,CAACa,qBACP,CAAC;IAEF,MAAM0C,QAAQ,GAAGvE,QAAQ,CAAC,MAAM;MAC9B,OAAOgB,KAAK,CAACuD,QAAQ,CAACb,MAAM,GACxB1C,KAAK,CAACuD,QAAQ,GACblB,SAAS,CAACG,KAAK,IAAIxC,KAAK,CAACU,cAAc,GAAIV,KAAK,CAACS,IAAI,GAAG,EAAE;IACjE,CAAC,CAAC;IAEF,SAAS+C,OAAOA,CAAA,EAAI;MAClB,IAAIH,WAAW,CAACb,KAAK,KAAKiB,QAAQ,CAACC,aAAa,EAAE;QAChDL,WAAW,CAACb,KAAK,EAAEF,KAAK,EAAE;MAC5B;MAEA,IAAI,CAACD,SAAS,CAACG,KAAK,EAAEF,KAAK,EAAE;IAC/B;IACA,SAASqB,cAAcA,CAAE/B,CAAa,EAAE;MACtC4B,OAAO,EAAE;MAETtB,IAAI,CAAC,eAAe,EAAEN,CAAC,CAAC;IAC1B;IACA,SAASgC,kBAAkBA,CAAEhC,CAAa,EAAE;MAC1CM,IAAI,CAAC,mBAAmB,EAAEN,CAAC,CAAC;IAC9B;IACA,SAASiC,OAAOA,CAAEjC,CAAa,EAAE;MAC/BA,CAAC,CAACkC,eAAe,EAAE;MAEnBN,OAAO,EAAE;MAETvE,QAAQ,CAAC,MAAM;QACbmD,KAAK,CAACI,KAAK,GAAG,EAAE;QAEhBlD,SAAS,CAACU,KAAK,CAAC,eAAe,CAAC,EAAE4B,CAAC,CAAC;MACtC,CAAC,CAAC;IACJ;IACA,SAASmC,OAAOA,CAAEnC,CAAQ,EAAE;MAC1B,MAAMoC,EAAE,GAAGpC,CAAC,CAACqB,MAA6B;MAC1Cb,KAAK,CAACI,KAAK,GAAGwB,EAAE,CAACxB,KAAK;MACtB,IAAIxC,KAAK,CAACyB,cAAc,EAAEwC,IAAI,EAAE;QAC9B,MAAMC,aAAa,GAAG,CAACF,EAAE,CAACG,cAAc,EAAEH,EAAE,CAACI,YAAY,CAAC;QAC1DnF,QAAQ,CAAC,MAAM;UACb+E,EAAE,CAACG,cAAc,GAAGD,aAAa,CAAC,CAAC,CAAC;UACpCF,EAAE,CAACI,YAAY,GAAGF,aAAa,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC;MACJ;IACF;IAEA,MAAMG,QAAQ,GAAGjF,GAAG,EAAuB;IAC3C,SAASkF,oBAAoBA,CAAA,EAAI;MAC/B,IAAI,CAACtE,KAAK,CAACC,QAAQ,EAAE;MAErBhB,QAAQ,CAAC,MAAM;QACb,IAAI,CAACoF,QAAQ,CAAC7B,KAAK,IAAI,CAACW,SAAS,CAACX,KAAK,EAAE;QAEzC,MAAM+B,KAAK,GAAGC,gBAAgB,CAACH,QAAQ,CAAC7B,KAAK,CAAC;QAC9C,MAAMiC,UAAU,GAAGD,gBAAgB,CAACrB,SAAS,CAACX,KAAK,CAACkC,GAAG,CAAC;QAExD,MAAMC,OAAO,GAAGrD,UAAU,CAACiD,KAAK,CAACK,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,GACzEtD,UAAU,CAACiD,KAAK,CAACK,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,GAC3DtD,UAAU,CAACiD,KAAK,CAACK,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;QAEhE,MAAMC,MAAM,GAAGR,QAAQ,CAAC7B,KAAK,CAACsC,YAAY;QAC1C,MAAMC,UAAU,GAAGzD,UAAU,CAACiD,KAAK,CAACQ,UAAU,CAAC;QAC/C,MAAMC,SAAS,GAAGC,IAAI,CAACtC,GAAG,CACxBrB,UAAU,CAACtB,KAAK,CAACgB,IAAI,CAAC,GAAG+D,UAAU,GAAGJ,OAAO,EAC7CrD,UAAU,CAACmD,UAAU,CAACG,gBAAgB,CAAC,0BAA0B,CAAC,CAAC,CACpE;QACD,MAAMM,SAAS,GAAG5D,UAAU,CAACtB,KAAK,CAACuB,OAAO,CAAE,GAAGwD,UAAU,GAAGJ,OAAO,IAAIQ,QAAQ;QAE/E/B,aAAa,CAACZ,KAAK,GAAGhD,aAAa,CAACD,KAAK,CAACsF,MAAM,IAAI,CAAC,EAAEG,SAAS,EAAEE,SAAS,CAAC,CAAC;MAC/E,CAAC,CAAC;IACJ;IAEA/F,SAAS,CAACmF,oBAAoB,CAAC;IAC/BjF,KAAK,CAAC+C,KAAK,EAAEkC,oBAAoB,CAAC;IAClCjF,KAAK,CAAC,MAAMW,KAAK,CAACgB,IAAI,EAAEsD,oBAAoB,CAAC;IAC7CjF,KAAK,CAAC,MAAMW,KAAK,CAACuB,OAAO,EAAE+C,oBAAoB,CAAC;IAChDjF,KAAK,CAAC,MAAMW,KAAK,CAACoF,OAAO,EAAEd,oBAAoB,CAAC;IAEhD,IAAIe,QAAoC;IACxChG,KAAK,CAACgF,QAAQ,EAAEvC,GAAG,IAAI;MACrB,IAAIA,GAAG,EAAE;QACPuD,QAAQ,GAAG,IAAIC,cAAc,CAAChB,oBAAoB,CAAC;QACnDe,QAAQ,CAACE,OAAO,CAAClB,QAAQ,CAAC7B,KAAK,CAAE;MACnC,CAAC,MAAM;QACL6C,QAAQ,EAAEG,UAAU,EAAE;MACxB;IACF,CAAC,CAAC;IACFtG,eAAe,CAAC,MAAM;MACpBmG,QAAQ,EAAEG,UAAU,EAAE;IACxB,CAAC,CAAC;IAEF7F,SAAS,CAAC,MAAM;MACd,MAAM8F,UAAU,GAAG,CAAC,EAAEtD,KAAK,CAAC/B,OAAO,IAAIJ,KAAK,CAACI,OAAO,IAAIJ,KAAK,CAACO,YAAY,CAAC;MAC3E,MAAMmF,UAAU,GAAG,CAAC,EAAED,UAAU,IAAItD,KAAK,CAACwD,OAAO,CAAC;MAClD,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,GAAGpG,gBAAgB,CAACwC,KAAK,CAAC;MACvD,MAAM,CAAC;QAAE6D,UAAU,EAAEC,CAAC;QAAE,GAAGC;MAAW,CAAC,CAAC,GAAGzH,gBAAgB,CAACyB,KAAK,CAAC;MAClE,MAAM,CAACiG,UAAU,CAAC,GAAG5H,gBAAgB,CAAC2B,KAAK,CAAC;MAE5C,OAAAkG,YAAA,CAAAzH,MAAA,EAAA0H,WAAA;QAAA,OAEUjD,SAAS;QAAA,cACLd,KAAK,CAACI,KAAK;QAAA,uBAAA4D,MAAA,IAAXhE,KAAK,CAACI,KAAK,GAAA4D,MAAA;QAAA,SACd,CACL,yBAAyB,EACzB;UACE,sBAAsB,EAAEpG,KAAK,CAACW,MAAM;UACpC,sBAAsB,EAAEX,KAAK,CAACwB,MAAM;UACpC,wBAAwB,EAAExB,KAAK,CAACW,MAAM;UACtC,wBAAwB,EAAEX,KAAK,CAACwB,MAAM;UACtC,uBAAuB,EAAExB,KAAK,CAACC,QAAQ;UACvC,uBAAuB,EAAED,KAAK,CAACe,QAAQ,IAAIf,KAAK,CAACC,QAAQ;UACzD,6BAA6B,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAACoG,QAAQ,CAACrG,KAAK,CAACsG,OAAO;QAC/E,CAAC,CACF;QAAA,mBACiBtG,KAAK,CAAC,iBAAiB,CAAC;QAAA,kBACzBA,KAAK,CAAC,gBAAgB;MAAC,GACnC4F,SAAS,EACTI,UAAU;QAAA,WACL3D,SAAS,CAACG,KAAK;QAAA,YACde,QAAQ,CAACf;MAAK;QAGvB,GAAGL,KAAK;QACRjB,OAAO,EAAEqF,KAAA;UAAA,IAAC;YACRC,UAAU;YACVC,OAAO;YACPC,UAAU;YACVC;UACF,CAAC,GAAAJ,KAAA;UAAA,OAAAL,YAAA,CAAAvH,MAAA,EAAAwH,WAAA;YAAA,OAEShD,SAAS;YAAA,SACR;cACL,6BAA6B,EAAEC,aAAa,CAACZ;YAC/C,CAAC;YAAA,WACSmB,cAAc;YAAA,eACVC,kBAAkB;YAAA,iBAChBC,OAAO;YAAA,wBACA7D,KAAK,CAAC,sBAAsB,CAAC;YAAA,uBAC9BA,KAAK,CAAC,qBAAqB,CAAC;YAAA,QAC7C;UAAS,GACTiG,UAAU;YAAA,UACN3C,QAAQ,CAACd,KAAK,IAAIiE,OAAO,CAACjE,KAAK;YAAA,SAChCiE,OAAO,CAACjE,KAAK,IAAIxC,KAAK,CAAC4G,KAAK;YAAA,YACzBJ,UAAU,CAAChE,KAAK;YAAA,WACjBH,SAAS,CAACG,KAAK;YAAA,SACjBmE,OAAO,CAACnE,KAAK,KAAK;UAAK;YAG7B,GAAGL,KAAK;YACRjB,OAAO,EAAE2F,KAAA;cAAA,IAAC;gBACR7G,KAAK,EAAE;kBAAE8G,KAAK,EAAEC,UAAU;kBAAE,GAAGC;gBAAU;cAC3C,CAAC,GAAAH,KAAA;cAAA,OAAAX,YAAA,CAAAe,SAAA,SAEKjH,KAAK,CAACW,MAAM,IAAAuF,YAAA;gBAAA,SACA;cAAsB,IAC9BlG,KAAK,CAACW,MAAM,EAEjB,EAAAuG,eAAA,CAAAhB,YAAA,aAAAC,WAAA;gBAAA,OAGO9C,WAAW;gBAAA,SACT0D,UAAU;gBAAA,SACV3E,KAAK,CAACI,KAAK;gBAAA,WACTuB,OAAO;gBAAA,aAIL/D,KAAK,CAACG,SAAS;gBAAA,YAChBuG,UAAU,CAAClE,KAAK;gBAAA,YAChBgE,UAAU,CAAChE,KAAK;gBAAA,eACbxC,KAAK,CAACY,WAAW;gBAAA,QACxBZ,KAAK,CAACgB,IAAI;gBAAA,QACVhB,KAAK,CAACH,IAAI;gBAAA,WACP2D,OAAO;gBAAA,UACRjB;cAAI,GACRyE,SAAS,EACTnB,UAAU,YAAAsB,iBAAA,eAZD;gBACZC,OAAO,EAAEtE;cACX,CAAC,EAAE,IAAI;gBAAAuE,IAAA;cAAA,MAaPrH,KAAK,CAACC,QAAQ,IAAAiH,eAAA,CAAAhB,YAAA;gBAAA,SAEL,CACLa,UAAU,EACV,mBAAmB,CACpB;gBAAA,uBAAAX,MAAA,IACShE,KAAK,CAACI,KAAK,GAAA4D,MAAA;gBAAA,OACf/B,QAAQ;gBAAA;gBAAA,eAEF;cAAM,YAAAiD,WAAA,EAHRlF,KAAK,CAACI,KAAK,GAKxB,EAECxC,KAAK,CAACwB,MAAM,IAAA0E,YAAA;gBAAA,SACA;cAAsB,IAC9BlG,KAAK,CAACwB,MAAM,EAEjB;YAAA;UAEJ;QAAA,CAGN;QACDmE,OAAO,EAAED,UAAU,GAAGsB,SAAS,IAAAd,YAAA,CAAAe,SAAA,SAEzB9E,KAAK,CAACwD,OAAO,GAAGqB,SAAS,CAAC,EAE1BvB,UAAU,IAAAS,YAAA,CAAAe,SAAA,SAAAf,YAAA,sBAAAA,YAAA,CAAAxH,QAAA;UAAA,UAKGsB,KAAK,CAACc,iBAAiB,IAAIuB,SAAS,CAACG,KAAK;UAAA,SAC3CjC,YAAY,CAACiC,KAAK;UAAA,OACpBG,GAAG,CAACH;QAAK,GACGL,KAAK,CAAC/B,OAAO,GAGpC,EAEJ,GAAGyC;MAAS;IAIrB,CAAC,CAAC;IAEF,OAAOhE,WAAW,CAAC,CAAC,CAAC,EAAEqE,SAAS,EAAEC,SAAS,EAAEE,WAAW,CAAC;EAC3D;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VTextarea.mjs","names":["filterFieldProps","makeVFieldProps","makeVInputProps","VInput","VCounter","VField","Intersect","forwardRefs","useFocus","useProxiedModel","computed","nextTick","onBeforeUnmount","onMounted","ref","watch","callEvent","clamp","convertToUnit","filterInputAttrs","genericComponent","useRender","VTextarea","name","directives","inheritAttrs","props","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","modelModifiers","Object","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","controlHeight","textareaRef","isActive","onFocus","document","activeElement","onControlClick","onControlMousedown","onClear","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","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","filterProps","fieldProps","_createVNode","_mergeProps","$event","includes","variant","_ref2","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","class","fieldClass","slotProps","_Fragment","_withDirectives","_resolveDirective","handler","once","_vModelText"],"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 { 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, filterInputAttrs, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport const VTextarea = genericComponent<Omit<VInputSlots & VFieldSlots, 'default'>>()({\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 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 modelModifiers: Object as PropType<Record<string, boolean>>,\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 string | number\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 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 const el = e.target as HTMLTextAreaElement\n model.value = el.value\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\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 }] = VInput.filterProps(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 { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.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 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 <>\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:default={ 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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"}
@@ -65,11 +65,11 @@ declare const VTextarea: {
65
65
  errorMessages: string | string[];
66
66
  maxErrors: string | number;
67
67
  rules: ValidationRule[];
68
+ persistentHint: boolean;
68
69
  clearable: boolean;
69
70
  dirty: boolean;
70
71
  persistentClear: boolean;
71
72
  singleLine: boolean;
72
- persistentHint: boolean;
73
73
  persistentPlaceholder: boolean;
74
74
  persistentCounter: boolean;
75
75
  autoGrow: boolean;
@@ -92,11 +92,11 @@ declare const VTextarea: {
92
92
  errorMessages: string | string[];
93
93
  maxErrors: string | number;
94
94
  rules: ValidationRule[];
95
+ persistentHint: boolean;
95
96
  clearable: boolean;
96
97
  dirty: boolean;
97
98
  persistentClear: boolean;
98
99
  singleLine: boolean;
99
- persistentHint: boolean;
100
100
  persistentPlaceholder: boolean;
101
101
  persistentCounter: boolean;
102
102
  autoGrow: boolean;
@@ -124,10 +124,11 @@ declare const VTextarea: {
124
124
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
125
125
  'onClick:appendInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
126
126
  'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
127
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
127
128
  validateOn?: "input" | "blur" | "submit" | undefined;
128
129
  validationValue?: any;
129
- hideDetails?: boolean | "auto" | undefined;
130
130
  hint?: string | undefined;
131
+ hideDetails?: boolean | "auto" | undefined;
131
132
  suffix?: string | undefined;
132
133
  counterValue?: ((value: any) => number) | undefined;
133
134
  modelModifiers?: Record<string, boolean> | undefined;
@@ -177,7 +178,7 @@ declare const VTextarea: {
177
178
  "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
178
179
  "onClick:control"?: ((e: MouseEvent) => any) | undefined;
179
180
  "onMousedown:control"?: ((e: MouseEvent) => any) | undefined;
180
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "flat" | "reverse" | "error" | "active" | "direction" | "autofocus" | "disabled" | "readonly" | "messages" | "rounded" | "density" | "variant" | "clearIcon" | "focused" | "errorMessages" | "maxErrors" | "rules" | "clearable" | "dirty" | "persistentClear" | "singleLine" | "persistentHint" | "persistentPlaceholder" | "persistentCounter" | "autoGrow" | "noResize" | "rows">;
181
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "flat" | "reverse" | "error" | "active" | "direction" | "autofocus" | "disabled" | "readonly" | "messages" | "rounded" | "density" | "variant" | "clearIcon" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint" | "clearable" | "dirty" | "persistentClear" | "singleLine" | "persistentPlaceholder" | "persistentCounter" | "autoGrow" | "noResize" | "rows">;
181
182
  $attrs: {
182
183
  [x: string]: unknown;
183
184
  };
@@ -208,11 +209,11 @@ declare const VTextarea: {
208
209
  errorMessages: string | string[];
209
210
  maxErrors: string | number;
210
211
  rules: ValidationRule[];
212
+ persistentHint: boolean;
211
213
  clearable: boolean;
212
214
  dirty: boolean;
213
215
  persistentClear: boolean;
214
216
  singleLine: boolean;
215
- persistentHint: boolean;
216
217
  persistentPlaceholder: boolean;
217
218
  persistentCounter: boolean;
218
219
  autoGrow: boolean;
@@ -240,10 +241,11 @@ declare const VTextarea: {
240
241
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
241
242
  'onClick:appendInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
242
243
  'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
244
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
243
245
  validateOn?: "input" | "blur" | "submit" | undefined;
244
246
  validationValue?: any;
245
- hideDetails?: boolean | "auto" | undefined;
246
247
  hint?: string | undefined;
248
+ hideDetails?: boolean | "auto" | undefined;
247
249
  suffix?: string | undefined;
248
250
  counterValue?: ((value: any) => number) | undefined;
249
251
  modelModifiers?: Record<string, boolean> | undefined;
@@ -307,6 +309,7 @@ declare const VTextarea: {
307
309
  errorMessages: string | string[];
308
310
  maxErrors: string | number;
309
311
  rules: ValidationRule[];
312
+ persistentHint: boolean;
310
313
  }> & Omit<{
311
314
  error: boolean;
312
315
  direction: "horizontal" | "vertical";
@@ -318,6 +321,7 @@ declare const VTextarea: {
318
321
  errorMessages: string | string[];
319
322
  maxErrors: string | number;
320
323
  rules: ValidationRule[];
324
+ persistentHint: boolean;
321
325
  } & {
322
326
  id?: string | undefined;
323
327
  name?: string | undefined;
@@ -327,8 +331,10 @@ declare const VTextarea: {
327
331
  appendIcon?: IconValue | undefined;
328
332
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
329
333
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
334
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
330
335
  validateOn?: "input" | "blur" | "submit" | undefined;
331
336
  validationValue?: any;
337
+ hint?: string | undefined;
332
338
  hideDetails?: boolean | "auto" | undefined;
333
339
  } & {
334
340
  $children?: {} | vue.VNodeChild | {
@@ -356,7 +362,7 @@ declare const VTextarea: {
356
362
  "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
357
363
  } & {
358
364
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
359
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules">;
365
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint">;
360
366
  $attrs: {
361
367
  [x: string]: unknown;
362
368
  };
@@ -381,6 +387,7 @@ declare const VTextarea: {
381
387
  errorMessages: string | string[];
382
388
  maxErrors: string | number;
383
389
  rules: ValidationRule[];
390
+ persistentHint: boolean;
384
391
  } & {
385
392
  id?: string | undefined;
386
393
  name?: string | undefined;
@@ -390,8 +397,10 @@ declare const VTextarea: {
390
397
  appendIcon?: IconValue | undefined;
391
398
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
392
399
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
400
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
393
401
  validateOn?: "input" | "blur" | "submit" | undefined;
394
402
  validationValue?: any;
403
+ hint?: string | undefined;
395
404
  hideDetails?: boolean | "auto" | undefined;
396
405
  } & {
397
406
  $children?: {} | vue.VNodeChild | {
@@ -436,6 +445,7 @@ declare const VTextarea: {
436
445
  errorMessages: string | string[];
437
446
  maxErrors: string | number;
438
447
  rules: ValidationRule[];
448
+ persistentHint: boolean;
439
449
  }, {}, string> & {
440
450
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
441
451
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -467,6 +477,7 @@ declare const VTextarea: {
467
477
  errorMessages: string | string[];
468
478
  maxErrors: string | number;
469
479
  rules: ValidationRule[];
480
+ persistentHint: boolean;
470
481
  } & {
471
482
  id?: string | undefined;
472
483
  name?: string | undefined;
@@ -476,8 +487,10 @@ declare const VTextarea: {
476
487
  appendIcon?: IconValue | undefined;
477
488
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
478
489
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
490
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
479
491
  validateOn?: "input" | "blur" | "submit" | undefined;
480
492
  validationValue?: any;
493
+ hint?: string | undefined;
481
494
  hideDetails?: boolean | "auto" | undefined;
482
495
  } & {
483
496
  $children?: {} | vue.VNodeChild | {
@@ -509,7 +522,7 @@ declare const VTextarea: {
509
522
  reset: () => void;
510
523
  resetValidation: () => void;
511
524
  validate: () => Promise<string[]>;
512
- }> & {} & vue.ComponentCustomProperties & {}, "id" | "name" | "label" | "$children" | "v-slot:default" | "$slots" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "validateOn" | "validationValue" | "hideDetails" | ("error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules") | "v-slot:details">, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
525
+ }> & {} & vue.ComponentCustomProperties & {}, "id" | "name" | "label" | "$children" | "v-slot:default" | "$slots" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "onUpdate:focused" | "validateOn" | "validationValue" | "hint" | "hideDetails" | ("error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint") | "v-slot:details">, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
513
526
  'click:control': (e: MouseEvent) => true;
514
527
  'mousedown:control': (e: MouseEvent) => true;
515
528
  'update:focused': (focused: boolean) => true;
@@ -532,11 +545,11 @@ declare const VTextarea: {
532
545
  errorMessages: string | string[];
533
546
  maxErrors: string | number;
534
547
  rules: ValidationRule[];
548
+ persistentHint: boolean;
535
549
  clearable: boolean;
536
550
  dirty: boolean;
537
551
  persistentClear: boolean;
538
552
  singleLine: boolean;
539
- persistentHint: boolean;
540
553
  persistentPlaceholder: boolean;
541
554
  persistentCounter: boolean;
542
555
  autoGrow: boolean;
@@ -579,11 +592,11 @@ declare const VTextarea: {
579
592
  errorMessages: string | string[];
580
593
  maxErrors: string | number;
581
594
  rules: ValidationRule[];
595
+ persistentHint: boolean;
582
596
  clearable: boolean;
583
597
  dirty: boolean;
584
598
  persistentClear: boolean;
585
599
  singleLine: boolean;
586
- persistentHint: boolean;
587
600
  persistentPlaceholder: boolean;
588
601
  persistentCounter: boolean;
589
602
  autoGrow: boolean;
@@ -611,10 +624,11 @@ declare const VTextarea: {
611
624
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
612
625
  'onClick:appendInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
613
626
  'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
627
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
614
628
  validateOn?: "input" | "blur" | "submit" | undefined;
615
629
  validationValue?: any;
616
- hideDetails?: boolean | "auto" | undefined;
617
630
  hint?: string | undefined;
631
+ hideDetails?: boolean | "auto" | undefined;
618
632
  suffix?: string | undefined;
619
633
  counterValue?: ((value: any) => number) | undefined;
620
634
  modelModifiers?: Record<string, boolean> | undefined;
@@ -678,6 +692,7 @@ declare const VTextarea: {
678
692
  errorMessages: string | string[];
679
693
  maxErrors: string | number;
680
694
  rules: ValidationRule[];
695
+ persistentHint: boolean;
681
696
  }> & Omit<{
682
697
  error: boolean;
683
698
  direction: "horizontal" | "vertical";
@@ -689,6 +704,7 @@ declare const VTextarea: {
689
704
  errorMessages: string | string[];
690
705
  maxErrors: string | number;
691
706
  rules: ValidationRule[];
707
+ persistentHint: boolean;
692
708
  } & {
693
709
  id?: string | undefined;
694
710
  name?: string | undefined;
@@ -698,8 +714,10 @@ declare const VTextarea: {
698
714
  appendIcon?: IconValue | undefined;
699
715
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
700
716
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
717
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
701
718
  validateOn?: "input" | "blur" | "submit" | undefined;
702
719
  validationValue?: any;
720
+ hint?: string | undefined;
703
721
  hideDetails?: boolean | "auto" | undefined;
704
722
  } & {
705
723
  $children?: {} | vue.VNodeChild | {
@@ -727,7 +745,7 @@ declare const VTextarea: {
727
745
  "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
728
746
  } & {
729
747
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
730
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules">;
748
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint">;
731
749
  $attrs: {
732
750
  [x: string]: unknown;
733
751
  };
@@ -752,6 +770,7 @@ declare const VTextarea: {
752
770
  errorMessages: string | string[];
753
771
  maxErrors: string | number;
754
772
  rules: ValidationRule[];
773
+ persistentHint: boolean;
755
774
  } & {
756
775
  id?: string | undefined;
757
776
  name?: string | undefined;
@@ -761,8 +780,10 @@ declare const VTextarea: {
761
780
  appendIcon?: IconValue | undefined;
762
781
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
763
782
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
783
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
764
784
  validateOn?: "input" | "blur" | "submit" | undefined;
765
785
  validationValue?: any;
786
+ hint?: string | undefined;
766
787
  hideDetails?: boolean | "auto" | undefined;
767
788
  } & {
768
789
  $children?: {} | vue.VNodeChild | {
@@ -807,6 +828,7 @@ declare const VTextarea: {
807
828
  errorMessages: string | string[];
808
829
  maxErrors: string | number;
809
830
  rules: ValidationRule[];
831
+ persistentHint: boolean;
810
832
  }, {}, string> & {
811
833
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
812
834
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -838,6 +860,7 @@ declare const VTextarea: {
838
860
  errorMessages: string | string[];
839
861
  maxErrors: string | number;
840
862
  rules: ValidationRule[];
863
+ persistentHint: boolean;
841
864
  } & {
842
865
  id?: string | undefined;
843
866
  name?: string | undefined;
@@ -847,8 +870,10 @@ declare const VTextarea: {
847
870
  appendIcon?: IconValue | undefined;
848
871
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
849
872
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
873
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
850
874
  validateOn?: "input" | "blur" | "submit" | undefined;
851
875
  validationValue?: any;
876
+ hint?: string | undefined;
852
877
  hideDetails?: boolean | "auto" | undefined;
853
878
  } & {
854
879
  $children?: {} | vue.VNodeChild | {
@@ -880,7 +905,7 @@ declare const VTextarea: {
880
905
  reset: () => void;
881
906
  resetValidation: () => void;
882
907
  validate: () => Promise<string[]>;
883
- }> & {} & vue.ComponentCustomProperties & {}, "id" | "name" | "label" | "$children" | "v-slot:default" | "$slots" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "validateOn" | "validationValue" | "hideDetails" | ("error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules") | "v-slot:details">, `$${any}`>> & {} & vue.ComponentCustomProperties & {};
908
+ }> & {} & vue.ComponentCustomProperties & {}, "id" | "name" | "label" | "$children" | "v-slot:default" | "$slots" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "onUpdate:focused" | "validateOn" | "validationValue" | "hint" | "hideDetails" | ("error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint") | "v-slot:details">, `$${any}`>> & {} & vue.ComponentCustomProperties & {};
884
909
  __isFragment?: undefined;
885
910
  __isTeleport?: undefined;
886
911
  __isSuspense?: undefined;
@@ -901,11 +926,11 @@ declare const VTextarea: {
901
926
  errorMessages: string | string[];
902
927
  maxErrors: string | number;
903
928
  rules: ValidationRule[];
929
+ persistentHint: boolean;
904
930
  clearable: boolean;
905
931
  dirty: boolean;
906
932
  persistentClear: boolean;
907
933
  singleLine: boolean;
908
- persistentHint: boolean;
909
934
  persistentPlaceholder: boolean;
910
935
  persistentCounter: boolean;
911
936
  autoGrow: boolean;
@@ -933,10 +958,11 @@ declare const VTextarea: {
933
958
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
934
959
  'onClick:appendInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
935
960
  'onClick:prependInner'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
961
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
936
962
  validateOn?: "input" | "blur" | "submit" | undefined;
937
963
  validationValue?: any;
938
- hideDetails?: boolean | "auto" | undefined;
939
964
  hint?: string | undefined;
965
+ hideDetails?: boolean | "auto" | undefined;
940
966
  suffix?: string | undefined;
941
967
  counterValue?: ((value: any) => number) | undefined;
942
968
  modelModifiers?: Record<string, boolean> | undefined;
@@ -1000,6 +1026,7 @@ declare const VTextarea: {
1000
1026
  errorMessages: string | string[];
1001
1027
  maxErrors: string | number;
1002
1028
  rules: ValidationRule[];
1029
+ persistentHint: boolean;
1003
1030
  }> & Omit<{
1004
1031
  error: boolean;
1005
1032
  direction: "horizontal" | "vertical";
@@ -1011,6 +1038,7 @@ declare const VTextarea: {
1011
1038
  errorMessages: string | string[];
1012
1039
  maxErrors: string | number;
1013
1040
  rules: ValidationRule[];
1041
+ persistentHint: boolean;
1014
1042
  } & {
1015
1043
  id?: string | undefined;
1016
1044
  name?: string | undefined;
@@ -1020,8 +1048,10 @@ declare const VTextarea: {
1020
1048
  appendIcon?: IconValue | undefined;
1021
1049
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1022
1050
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1051
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
1023
1052
  validateOn?: "input" | "blur" | "submit" | undefined;
1024
1053
  validationValue?: any;
1054
+ hint?: string | undefined;
1025
1055
  hideDetails?: boolean | "auto" | undefined;
1026
1056
  } & {
1027
1057
  $children?: {} | vue.VNodeChild | {
@@ -1049,7 +1079,7 @@ declare const VTextarea: {
1049
1079
  "v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
1050
1080
  } & {
1051
1081
  "onUpdate:modelValue"?: ((val: any) => any) | undefined;
1052
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules">;
1082
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint">;
1053
1083
  $attrs: {
1054
1084
  [x: string]: unknown;
1055
1085
  };
@@ -1074,6 +1104,7 @@ declare const VTextarea: {
1074
1104
  errorMessages: string | string[];
1075
1105
  maxErrors: string | number;
1076
1106
  rules: ValidationRule[];
1107
+ persistentHint: boolean;
1077
1108
  } & {
1078
1109
  id?: string | undefined;
1079
1110
  name?: string | undefined;
@@ -1083,8 +1114,10 @@ declare const VTextarea: {
1083
1114
  appendIcon?: IconValue | undefined;
1084
1115
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1085
1116
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1117
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
1086
1118
  validateOn?: "input" | "blur" | "submit" | undefined;
1087
1119
  validationValue?: any;
1120
+ hint?: string | undefined;
1088
1121
  hideDetails?: boolean | "auto" | undefined;
1089
1122
  } & {
1090
1123
  $children?: {} | vue.VNodeChild | {
@@ -1129,6 +1162,7 @@ declare const VTextarea: {
1129
1162
  errorMessages: string | string[];
1130
1163
  maxErrors: string | number;
1131
1164
  rules: ValidationRule[];
1165
+ persistentHint: boolean;
1132
1166
  }, {}, string> & {
1133
1167
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
1134
1168
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -1160,6 +1194,7 @@ declare const VTextarea: {
1160
1194
  errorMessages: string | string[];
1161
1195
  maxErrors: string | number;
1162
1196
  rules: ValidationRule[];
1197
+ persistentHint: boolean;
1163
1198
  } & {
1164
1199
  id?: string | undefined;
1165
1200
  name?: string | undefined;
@@ -1169,8 +1204,10 @@ declare const VTextarea: {
1169
1204
  appendIcon?: IconValue | undefined;
1170
1205
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1171
1206
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
1207
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
1172
1208
  validateOn?: "input" | "blur" | "submit" | undefined;
1173
1209
  validationValue?: any;
1210
+ hint?: string | undefined;
1174
1211
  hideDetails?: boolean | "auto" | undefined;
1175
1212
  } & {
1176
1213
  $children?: {} | vue.VNodeChild | {
@@ -1202,7 +1239,7 @@ declare const VTextarea: {
1202
1239
  reset: () => void;
1203
1240
  resetValidation: () => void;
1204
1241
  validate: () => Promise<string[]>;
1205
- }> & {} & vue.ComponentCustomProperties & {}, "id" | "name" | "label" | "$children" | "v-slot:default" | "$slots" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "validateOn" | "validationValue" | "hideDetails" | ("error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules") | "v-slot:details">, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1242
+ }> & {} & vue.ComponentCustomProperties & {}, "id" | "name" | "label" | "$children" | "v-slot:default" | "$slots" | "v-slots" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "prependIcon" | "appendIcon" | "onClick:append" | "onClick:prepend" | "onUpdate:focused" | "validateOn" | "validationValue" | "hint" | "hideDetails" | ("error" | "direction" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint") | "v-slot:details">, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1206
1243
  'click:control': (e: MouseEvent) => true;
1207
1244
  'mousedown:control': (e: MouseEvent) => true;
1208
1245
  'update:focused': (focused: boolean) => true;
@@ -1225,11 +1262,11 @@ declare const VTextarea: {
1225
1262
  errorMessages: string | string[];
1226
1263
  maxErrors: string | number;
1227
1264
  rules: ValidationRule[];
1265
+ persistentHint: boolean;
1228
1266
  clearable: boolean;
1229
1267
  dirty: boolean;
1230
1268
  persistentClear: boolean;
1231
1269
  singleLine: boolean;
1232
- persistentHint: boolean;
1233
1270
  persistentPlaceholder: boolean;
1234
1271
  persistentCounter: boolean;
1235
1272
  autoGrow: boolean;
@@ -1269,6 +1306,7 @@ declare const VTextarea: {
1269
1306
  'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1270
1307
  'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1271
1308
  focused: BooleanConstructor;
1309
+ 'onUpdate:focused': PropType<EventProp<[FocusEvent], (args_0: FocusEvent) => any>>;
1272
1310
  errorMessages: {
1273
1311
  type: PropType<string | string[]>;
1274
1312
  default: () => never[];
@@ -1295,6 +1333,8 @@ declare const VTextarea: {
1295
1333
  appendIcon: PropType<IconValue>;
1296
1334
  prependIcon: PropType<IconValue>;
1297
1335
  hideDetails: PropType<boolean | "auto">;
1336
+ hint: StringConstructor;
1337
+ persistentHint: BooleanConstructor;
1298
1338
  messages: {
1299
1339
  type: PropType<string | string[]>;
1300
1340
  default: () => never[];
@@ -1310,8 +1350,6 @@ declare const VTextarea: {
1310
1350
  autofocus: BooleanConstructor;
1311
1351
  counter: PropType<string | number | true>;
1312
1352
  counterValue: PropType<(value: any) => number>;
1313
- hint: StringConstructor;
1314
- persistentHint: BooleanConstructor;
1315
1353
  prefix: StringConstructor;
1316
1354
  placeholder: StringConstructor;
1317
1355
  persistentPlaceholder: BooleanConstructor;
@@ -1362,6 +1400,7 @@ declare const VTextarea: {
1362
1400
  'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1363
1401
  'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1364
1402
  focused: BooleanConstructor;
1403
+ 'onUpdate:focused': PropType<EventProp<[FocusEvent], (args_0: FocusEvent) => any>>;
1365
1404
  errorMessages: {
1366
1405
  type: PropType<string | string[]>;
1367
1406
  default: () => never[];
@@ -1388,6 +1427,8 @@ declare const VTextarea: {
1388
1427
  appendIcon: PropType<IconValue>;
1389
1428
  prependIcon: PropType<IconValue>;
1390
1429
  hideDetails: PropType<boolean | "auto">;
1430
+ hint: StringConstructor;
1431
+ persistentHint: BooleanConstructor;
1391
1432
  messages: {
1392
1433
  type: PropType<string | string[]>;
1393
1434
  default: () => never[];
@@ -1403,8 +1444,6 @@ declare const VTextarea: {
1403
1444
  autofocus: BooleanConstructor;
1404
1445
  counter: PropType<string | number | true>;
1405
1446
  counterValue: PropType<(value: any) => number>;
1406
- hint: StringConstructor;
1407
- persistentHint: BooleanConstructor;
1408
1447
  prefix: StringConstructor;
1409
1448
  placeholder: StringConstructor;
1410
1449
  persistentPlaceholder: BooleanConstructor;
@@ -8,7 +8,7 @@
8
8
  overflow: hidden;
9
9
  position: relative;
10
10
  transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
11
- transition-property: height, width, transform, max-width, left, right, top, bottom;
11
+ transition-property: height, width, transform, max-width, left, right, top, bottom, box-shadow;
12
12
  width: 100%;
13
13
  border-color: rgba(var(--v-border-color), var(--v-border-opacity));
14
14
  border-style: solid;
@@ -78,6 +78,8 @@
78
78
  width: 100%;
79
79
  height: 100%;
80
80
  display: flex;
81
+ opacity: var(--v-toolbar-image-opacity, 1);
82
+ transition-property: opacity;
81
83
  }
82
84
 
83
85
  .v-toolbar__prepend,