vuetify 3.11.7 → 3.11.8

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.
@@ -82,8 +82,8 @@ export const VColorPickerCanvas = defineComponent({
82
82
  width,
83
83
  height
84
84
  } = entries[0].contentRect;
85
- canvasWidth.value = width;
86
- canvasHeight.value = height;
85
+ canvasWidth.value = Math.round(width);
86
+ canvasHeight.value = Math.round(height);
87
87
  });
88
88
  function updateDotPosition(x, y, rect) {
89
89
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPickerCanvas.js","names":["makeComponentProps","useResizeObserver","computed","onMounted","ref","shallowRef","watch","clamp","convertToUnit","defineComponent","getEventCoordinates","propsFactory","useRender","makeVColorPickerCanvasProps","color","type","Object","disabled","Boolean","dotSize","Number","String","default","height","width","VColorPickerCanvas","name","props","emits","hue","setup","_ref","emit","isInteracting","canvasRef","canvasWidth","parseFloat","canvasHeight","_dotPosition","x","y","dotPosition","get","value","set","val","h","s","v","a","dotStyles","radius","parseInt","transform","resizeRef","entries","el","offsetParent","contentRect","updateDotPosition","rect","left","top","handleMouseDown","e","preventDefault","handleMouseMove","window","addEventListener","handleMouseUp","coords","clientX","clientY","getBoundingClientRect","removeEventListener","updateCanvas","canvas","ctx","getContext","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","immediate","newVal","oldVal","flush","deep","_createElementVNode","_normalizeClass","class","_normalizeStyle","style"],"sources":["../../../src/components/VColorPicker/VColorPickerCanvas.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerCanvas.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const makeVColorPickerCanvasProps = propsFactory({\n color: {\n type: Object as PropType<HSV | null>,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeComponentProps(),\n}, 'VColorPickerCanvas')\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: makeVColorPickerCanvasProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = shallowRef(false)\n const canvasRef = ref<HTMLCanvasElement | null>()\n const canvasWidth = shallowRef(parseFloat(props.width))\n const canvasHeight = shallowRef(parseFloat(props.height))\n\n const _dotPosition = ref({ x: 0, y: 0 })\n const dotPosition = computed({\n get: () => _dotPosition.value,\n set (val) {\n if (!canvasRef.value) return\n\n const { x, y } = val\n _dotPosition.value = val\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,\n v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,\n a: props.color?.a ?? 1,\n })\n },\n })\n\n const dotStyles = computed(() => {\n const { x, y } = dotPosition.value\n const radius = parseInt(props.dotSize, 10) / 2\n\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`,\n }\n })\n\n const { resizeRef } = useResizeObserver(entries => {\n if (!resizeRef.el?.offsetParent) return\n\n const { width, height } = entries[0].contentRect\n\n canvasWidth.value = width\n canvasHeight.value = height\n })\n\n function updateDotPosition (x: number, y: number, rect: DOMRect) {\n const { left, top, width, height } = rect\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height),\n }\n }\n\n function handleMouseDown (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousedown') {\n // Prevent text selection while dragging\n e.preventDefault()\n }\n\n if (props.disabled) return\n\n handleMouseMove(e)\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n window.addEventListener('touchmove', handleMouseMove)\n window.addEventListener('touchend', handleMouseUp)\n }\n\n function handleMouseMove (e: MouseEvent | TouchEvent) {\n if (props.disabled || !canvasRef.value) return\n\n isInteracting.value = true\n\n const coords = getEventCoordinates(e)\n\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseUp () {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n window.removeEventListener('touchmove', handleMouseMove)\n window.removeEventListener('touchend', handleMouseUp)\n }\n\n function updateCanvas () {\n if (!canvasRef.value) return\n\n const canvas = canvasRef.value\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 0%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n watch(() => props.color?.h, updateCanvas, { immediate: true })\n watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {\n updateCanvas()\n _dotPosition.value = {\n x: dotPosition.value.x * newVal[0] / oldVal[0],\n y: dotPosition.value.y * newVal[1] / oldVal[1],\n }\n }, { flush: 'post' })\n\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n _dotPosition.value = props.color ? {\n x: props.color.s * canvasWidth.value,\n y: (1 - props.color.v) * canvasHeight.value,\n } : { x: 0, y: 0 }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n useRender(() => (\n <div\n ref={ resizeRef }\n class={[\n 'v-color-picker-canvas',\n props.class,\n ]}\n style={ props.style }\n onMousedown={ handleMouseDown }\n onTouchstartPassive={ handleMouseDown }\n >\n <canvas\n ref={ canvasRef }\n width={ canvasWidth.value }\n height={ canvasHeight.value }\n />\n { props.color && (\n <div\n class={[\n 'v-color-picker-canvas__dot',\n {\n 'v-color-picker-canvas__dot--disabled': props.disabled,\n },\n ]}\n style={ dotStyles.value }\n />\n )}\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerCanvas = InstanceType<typeof VColorPickerCanvas>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VColorPickerCanvas.js","names":["makeComponentProps","useResizeObserver","computed","onMounted","ref","shallowRef","watch","clamp","convertToUnit","defineComponent","getEventCoordinates","propsFactory","useRender","makeVColorPickerCanvasProps","color","type","Object","disabled","Boolean","dotSize","Number","String","default","height","width","VColorPickerCanvas","name","props","emits","hue","setup","_ref","emit","isInteracting","canvasRef","canvasWidth","parseFloat","canvasHeight","_dotPosition","x","y","dotPosition","get","value","set","val","h","s","v","a","dotStyles","radius","parseInt","transform","resizeRef","entries","el","offsetParent","contentRect","Math","round","updateDotPosition","rect","left","top","handleMouseDown","e","preventDefault","handleMouseMove","window","addEventListener","handleMouseUp","coords","clientX","clientY","getBoundingClientRect","removeEventListener","updateCanvas","canvas","ctx","getContext","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","immediate","newVal","oldVal","flush","deep","_createElementVNode","_normalizeClass","class","_normalizeStyle","style"],"sources":["../../../src/components/VColorPicker/VColorPickerCanvas.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerCanvas.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const makeVColorPickerCanvasProps = propsFactory({\n color: {\n type: Object as PropType<HSV | null>,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeComponentProps(),\n}, 'VColorPickerCanvas')\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: makeVColorPickerCanvasProps(),\n\n emits: {\n 'update:color': (color: HSV) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = shallowRef(false)\n const canvasRef = ref<HTMLCanvasElement | null>()\n const canvasWidth = shallowRef(parseFloat(props.width))\n const canvasHeight = shallowRef(parseFloat(props.height))\n\n const _dotPosition = ref({ x: 0, y: 0 })\n const dotPosition = computed({\n get: () => _dotPosition.value,\n set (val) {\n if (!canvasRef.value) return\n\n const { x, y } = val\n _dotPosition.value = val\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,\n v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,\n a: props.color?.a ?? 1,\n })\n },\n })\n\n const dotStyles = computed(() => {\n const { x, y } = dotPosition.value\n const radius = parseInt(props.dotSize, 10) / 2\n\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`,\n }\n })\n\n const { resizeRef } = useResizeObserver(entries => {\n if (!resizeRef.el?.offsetParent) return\n\n const { width, height } = entries[0].contentRect\n\n canvasWidth.value = Math.round(width)\n canvasHeight.value = Math.round(height)\n })\n\n function updateDotPosition (x: number, y: number, rect: DOMRect) {\n const { left, top, width, height } = rect\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height),\n }\n }\n\n function handleMouseDown (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousedown') {\n // Prevent text selection while dragging\n e.preventDefault()\n }\n\n if (props.disabled) return\n\n handleMouseMove(e)\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n window.addEventListener('touchmove', handleMouseMove)\n window.addEventListener('touchend', handleMouseUp)\n }\n\n function handleMouseMove (e: MouseEvent | TouchEvent) {\n if (props.disabled || !canvasRef.value) return\n\n isInteracting.value = true\n\n const coords = getEventCoordinates(e)\n\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseUp () {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n window.removeEventListener('touchmove', handleMouseMove)\n window.removeEventListener('touchend', handleMouseUp)\n }\n\n function updateCanvas () {\n if (!canvasRef.value) return\n\n const canvas = canvasRef.value\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 0%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n watch(() => props.color?.h, updateCanvas, { immediate: true })\n watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {\n updateCanvas()\n _dotPosition.value = {\n x: dotPosition.value.x * newVal[0] / oldVal[0],\n y: dotPosition.value.y * newVal[1] / oldVal[1],\n }\n }, { flush: 'post' })\n\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n _dotPosition.value = props.color ? {\n x: props.color.s * canvasWidth.value,\n y: (1 - props.color.v) * canvasHeight.value,\n } : { x: 0, y: 0 }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n useRender(() => (\n <div\n ref={ resizeRef }\n class={[\n 'v-color-picker-canvas',\n props.class,\n ]}\n style={ props.style }\n onMousedown={ handleMouseDown }\n onTouchstartPassive={ handleMouseDown }\n >\n <canvas\n ref={ canvasRef }\n width={ canvasWidth.value }\n height={ canvasHeight.value }\n />\n { props.color && (\n <div\n class={[\n 'v-color-picker-canvas__dot',\n {\n 'v-color-picker-canvas__dot--disabled': props.disabled,\n },\n ]}\n style={ dotStyles.value }\n />\n )}\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VColorPickerCanvas = InstanceType<typeof VColorPickerCanvas>\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { createElementVNode as _createElementVNode, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment, mergeProps as _mergeProps } from "vue";
1
+ import { createElementVNode as _createElementVNode, createVNode as _createVNode, mergeProps as _mergeProps, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
2
2
  // Styles
3
3
  import "./VField.css";
4
4
 
@@ -171,6 +171,20 @@ export const VField = genericComponent()({
171
171
  blur,
172
172
  focus
173
173
  }));
174
+ const floatingLabelProps = toRef(() => {
175
+ const ariaHidden = !isActive.value;
176
+ return {
177
+ 'aria-hidden': ariaHidden,
178
+ for: ariaHidden ? undefined : id.value
179
+ };
180
+ });
181
+ const mainLabelProps = toRef(() => {
182
+ const ariaHidden = hasFloatingLabel.value && isActive.value;
183
+ return {
184
+ 'aria-hidden': ariaHidden,
185
+ for: ariaHidden ? undefined : id.value
186
+ };
187
+ });
174
188
  function onClick(e) {
175
189
  if (e.target !== document.activeElement) {
176
190
  e.preventDefault();
@@ -226,23 +240,20 @@ export const VField = genericComponent()({
226
240
  }, null)]), _createElementVNode("div", {
227
241
  "class": "v-field__field",
228
242
  "data-no-activator": ""
229
- }, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasFloatingLabel.value && _createVNode(VFieldLabel, {
243
+ }, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasFloatingLabel.value && _createVNode(VFieldLabel, _mergeProps({
230
244
  "key": "floating-label",
231
245
  "ref": floatingLabelRef,
232
- "class": _normalizeClass([textColorClasses.value]),
233
- "floating": true,
234
- "for": id.value,
235
- "aria-hidden": !isActive.value,
236
- "style": _normalizeStyle(textColorStyles.value)
237
- }, {
246
+ "class": [textColorClasses.value],
247
+ "floating": true
248
+ }, floatingLabelProps.value, {
249
+ "style": textColorStyles.value
250
+ }), {
238
251
  default: () => [label()]
239
- }), hasLabel.value && _createVNode(VFieldLabel, {
252
+ }), hasLabel.value && _createVNode(VFieldLabel, _mergeProps({
240
253
  "key": "label",
241
254
  "ref": labelRef,
242
- "id": props.labelId,
243
- "for": id.value,
244
- "aria-hidden": hasFloatingLabel.value && isActive.value
245
- }, {
255
+ "id": props.labelId
256
+ }, mainLabelProps.value), {
246
257
  default: () => [label()]
247
258
  }), slots.default?.({
248
259
  ...slotProps.value,
@@ -302,21 +313,17 @@ export const VField = genericComponent()({
302
313
  "class": "v-field__outline__start"
303
314
  }, null), hasFloatingLabel.value && _createElementVNode("div", {
304
315
  "class": "v-field__outline__notch"
305
- }, [_createVNode(VFieldLabel, {
316
+ }, [_createVNode(VFieldLabel, _mergeProps({
306
317
  "ref": floatingLabelRef,
307
- "floating": true,
308
- "for": id.value,
309
- "aria-hidden": !isActive.value
310
- }, {
318
+ "floating": true
319
+ }, floatingLabelProps.value), {
311
320
  default: () => [label()]
312
321
  })]), _createElementVNode("div", {
313
322
  "class": "v-field__outline__end"
314
- }, null)]), isPlainOrUnderlined.value && hasFloatingLabel.value && _createVNode(VFieldLabel, {
323
+ }, null)]), isPlainOrUnderlined.value && hasFloatingLabel.value && _createVNode(VFieldLabel, _mergeProps({
315
324
  "ref": floatingLabelRef,
316
- "floating": true,
317
- "for": id.value,
318
- "aria-hidden": !isActive.value
319
- }, {
325
+ "floating": true
326
+ }, floatingLabelProps.value), {
320
327
  default: () => [label()]
321
328
  })])]);
322
329
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VField.js","names":["VFieldLabel","VExpandXTransition","VDefaultsProvider","useInputIcon","useBackgroundColor","useTextColor","makeComponentProps","makeFocusProps","useFocus","IconValue","LoaderSlot","makeLoaderProps","useLoader","useRtl","makeRoundedProps","useRounded","makeThemeProps","provideTheme","computed","ref","toRef","useId","watch","animate","convertToUnit","EventProp","genericComponent","nullifyTransforms","PREFERS_REDUCED_MOTION","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","centerAffix","undefined","color","baseColor","dirty","disabled","glow","error","flat","iconColor","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","details","labelId","emits","focused","value","setup","_ref","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","InputIcon","roundedClasses","rtlClasses","isActive","hasLabel","hasFloatingLabel","uid","messagesId","labelRef","floatingLabelRef","controlRef","isPlainOrUnderlined","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","val","el","$el","targetEl","requestAnimationFrame","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","style","getComputedStyle","targetStyle","duration","parseFloat","transitionDuration","scale","getPropertyValue","visibility","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","e","target","document","activeElement","preventDefault","isOutlined","hasPrepend","hasClear","clear","hasAppend","for","_createElementVNode","_mergeProps","class","_createVNode","loading","loader","_normalizeClass","_normalizeStyle","_withDirectives","stopPropagation","VIcon","icon","onFocus","onBlur","tabindex","_vShow","_Fragment","fieldIconColor"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VFieldLabel } from './VFieldLabel'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, useId, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n nullifyTransforms,\n PREFERS_REDUCED_MOTION,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n iconColor: ComputedRef<string | undefined>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined,\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null,\n },\n glow: Boolean,\n error: Boolean,\n flat: Boolean,\n iconColor: [Boolean, String],\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp<[MouseEvent]>(),\n 'onClick:appendInner': EventProp<[MouseEvent]>(),\n 'onClick:prependInner': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n}, 'VField')\n\nexport type VFieldSlots = {\n clear: DefaultInputSlot & { props: Record<string, any> }\n 'prepend-inner': DefaultInputSlot\n 'append-inner': DefaultInputSlot\n label: DefaultInputSlot & { label: string | undefined, props: Record<string, any> }\n loader: LoaderSlotProps\n default: VFieldSlot\n}\n\nexport const VField = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VFieldSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n details: Boolean,\n labelId: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n const { roundedClasses } = useRounded(props)\n const { rtlClasses } = useRtl()\n\n const isActive = toRef(() => props.dirty || props.active)\n const hasLabel = toRef(() => !!(props.label || slots.label))\n const hasFloatingLabel = toRef(() => !props.singleLine && hasLabel.value)\n\n const uid = useId()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = toRef(() => !props.details ? undefined : `${id.value}-messages`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n const color = computed(() => {\n return props.error || props.disabled ? undefined\n : isActive.value && isFocused.value ? props.color\n : props.baseColor\n })\n const iconColor = computed(() => {\n if (!props.iconColor || (props.glow && !isFocused.value)) return undefined\n\n return props.iconColor === true ? color.value : props.iconColor\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor)\n const { textColorClasses, textColorStyles } = useTextColor(color)\n\n watch(isActive, val => {\n if (hasFloatingLabel.value && !PREFERS_REDUCED_MOTION()) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n iconColor,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear) && !props.disabled\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = () => (\n slots.label\n ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n )\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--glow': props.glow,\n 'v-field--flat': props.flat,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label(),\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n roundedClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n props.style,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ !!props.loading }\n color={ props.error ? 'error' : (typeof props.loading === 'string' ? props.loading : props.color) }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-field__prepend-inner\">\n { slots['prepend-inner']\n ? slots['prepend-inner'](slotProps.value)\n : (props.prependInnerIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prependInner\"\n color={ iconColor.value }\n />\n ))\n }\n </div>\n )}\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n {['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasFloatingLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n for={ id.value }\n aria-hidden={ !isActive.value }\n style={ textColorStyles.value }\n >\n { label() }\n </VFieldLabel>\n )}\n\n { hasLabel.value && (\n <VFieldLabel\n key=\"label\"\n ref={ labelRef }\n id={ props.labelId }\n for={ id.value }\n aria-hidden={ hasFloatingLabel.value && isActive.value }\n >\n { label() }\n </VFieldLabel>\n )}\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot) ?? (\n <div\n id={ id.value }\n class=\"v-field__input\"\n aria-describedby={ messagesId.value }\n />\n )}\n </div>\n\n { hasClear && (\n <VExpandXTransition key=\"clear\">\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <VDefaultsProvider\n defaults={{\n VIcon: {\n icon: props.clearIcon,\n },\n }}\n >\n { slots.clear\n ? slots.clear({\n ...slotProps.value,\n props: {\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear'],\n tabindex: -1,\n },\n })\n : (\n <InputIcon\n name=\"clear\"\n onFocus={ focus }\n onBlur={ blur }\n tabindex={ -1 }\n />\n )}\n </VDefaultsProvider>\n </div>\n </VExpandXTransition>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-field__append-inner\">\n { slots['append-inner']\n ? slots['append-inner'](slotProps.value)\n : (props.appendInnerIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"appendInner\"\n color={ iconColor.value }\n />\n ))\n }\n </div>\n )}\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasFloatingLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value } aria-hidden={ !isActive.value }>\n { label() }\n </VFieldLabel>\n </div>\n )}\n\n <div class=\"v-field__outline__end\" />\n </>\n )}\n\n { isPlainOrUnderlined.value && hasFloatingLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value } aria-hidden={ !isActive.value }>\n { label() }\n </VFieldLabel>\n )}\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n fieldIconColor: iconColor,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VField.js","names":["VFieldLabel","VExpandXTransition","VDefaultsProvider","useInputIcon","useBackgroundColor","useTextColor","makeComponentProps","makeFocusProps","useFocus","IconValue","LoaderSlot","makeLoaderProps","useLoader","useRtl","makeRoundedProps","useRounded","makeThemeProps","provideTheme","computed","ref","toRef","useId","watch","animate","convertToUnit","EventProp","genericComponent","nullifyTransforms","PREFERS_REDUCED_MOTION","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","centerAffix","undefined","color","baseColor","dirty","disabled","glow","error","flat","iconColor","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","details","labelId","emits","focused","value","setup","_ref","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","InputIcon","roundedClasses","rtlClasses","isActive","hasLabel","hasFloatingLabel","uid","messagesId","labelRef","floatingLabelRef","controlRef","isPlainOrUnderlined","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","val","el","$el","targetEl","requestAnimationFrame","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","style","getComputedStyle","targetStyle","duration","parseFloat","transitionDuration","scale","getPropertyValue","visibility","transform","easing","direction","finished","then","removeProperty","flush","slotProps","floatingLabelProps","ariaHidden","for","mainLabelProps","onClick","e","target","document","activeElement","preventDefault","isOutlined","hasPrepend","hasClear","clear","hasAppend","_createElementVNode","_mergeProps","class","_createVNode","loading","loader","_withDirectives","stopPropagation","VIcon","icon","onFocus","onBlur","tabindex","_vShow","_normalizeClass","_normalizeStyle","_Fragment","fieldIconColor"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VFieldLabel } from './VFieldLabel'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, useId, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n nullifyTransforms,\n PREFERS_REDUCED_MOTION,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n iconColor: ComputedRef<string | undefined>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined,\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null,\n },\n glow: Boolean,\n error: Boolean,\n flat: Boolean,\n iconColor: [Boolean, String],\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp<[MouseEvent]>(),\n 'onClick:appendInner': EventProp<[MouseEvent]>(),\n 'onClick:prependInner': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n}, 'VField')\n\nexport type VFieldSlots = {\n clear: DefaultInputSlot & { props: Record<string, any> }\n 'prepend-inner': DefaultInputSlot\n 'append-inner': DefaultInputSlot\n label: DefaultInputSlot & { label: string | undefined, props: Record<string, any> }\n loader: LoaderSlotProps\n default: VFieldSlot\n}\n\nexport const VField = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VFieldSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n details: Boolean,\n labelId: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n const { roundedClasses } = useRounded(props)\n const { rtlClasses } = useRtl()\n\n const isActive = toRef(() => props.dirty || props.active)\n const hasLabel = toRef(() => !!(props.label || slots.label))\n const hasFloatingLabel = toRef(() => !props.singleLine && hasLabel.value)\n\n const uid = useId()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = toRef(() => !props.details ? undefined : `${id.value}-messages`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n const color = computed(() => {\n return props.error || props.disabled ? undefined\n : isActive.value && isFocused.value ? props.color\n : props.baseColor\n })\n const iconColor = computed(() => {\n if (!props.iconColor || (props.glow && !isFocused.value)) return undefined\n\n return props.iconColor === true ? color.value : props.iconColor\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor)\n const { textColorClasses, textColorStyles } = useTextColor(color)\n\n watch(isActive, val => {\n if (hasFloatingLabel.value && !PREFERS_REDUCED_MOTION()) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n iconColor,\n blur,\n focus,\n }))\n\n const floatingLabelProps = toRef(() => {\n const ariaHidden = !isActive.value\n return {\n 'aria-hidden': ariaHidden,\n for: ariaHidden ? undefined : id.value,\n }\n })\n\n const mainLabelProps = toRef(() => {\n const ariaHidden = hasFloatingLabel.value && isActive.value\n return {\n 'aria-hidden': ariaHidden,\n for: ariaHidden ? undefined : id.value,\n }\n })\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear) && !props.disabled\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = () => (\n slots.label\n ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n )\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--glow': props.glow,\n 'v-field--flat': props.flat,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label(),\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n roundedClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n props.style,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ !!props.loading }\n color={ props.error ? 'error' : (typeof props.loading === 'string' ? props.loading : props.color) }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-field__prepend-inner\">\n { slots['prepend-inner']\n ? slots['prepend-inner'](slotProps.value)\n : (props.prependInnerIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prependInner\"\n color={ iconColor.value }\n />\n ))\n }\n </div>\n )}\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n {['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasFloatingLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n { ...floatingLabelProps.value }\n style={ textColorStyles.value }\n >\n { label() }\n </VFieldLabel>\n )}\n\n { hasLabel.value && (\n <VFieldLabel\n key=\"label\"\n ref={ labelRef }\n id={ props.labelId }\n { ...mainLabelProps.value }\n >\n { label() }\n </VFieldLabel>\n )}\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot) ?? (\n <div\n id={ id.value }\n class=\"v-field__input\"\n aria-describedby={ messagesId.value }\n />\n )}\n </div>\n\n { hasClear && (\n <VExpandXTransition key=\"clear\">\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n <VDefaultsProvider\n defaults={{\n VIcon: {\n icon: props.clearIcon,\n },\n }}\n >\n { slots.clear\n ? slots.clear({\n ...slotProps.value,\n props: {\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear'],\n tabindex: -1,\n },\n })\n : (\n <InputIcon\n name=\"clear\"\n onFocus={ focus }\n onBlur={ blur }\n tabindex={ -1 }\n />\n )}\n </VDefaultsProvider>\n </div>\n </VExpandXTransition>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-field__append-inner\">\n { slots['append-inner']\n ? slots['append-inner'](slotProps.value)\n : (props.appendInnerIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"appendInner\"\n color={ iconColor.value }\n />\n ))\n }\n </div>\n )}\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasFloatingLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel\n ref={ floatingLabelRef }\n floating\n { ...floatingLabelProps.value }\n >\n { label() }\n </VFieldLabel>\n </div>\n )}\n\n <div class=\"v-field__outline__end\" />\n </>\n )}\n\n { isPlainOrUnderlined.value && hasFloatingLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating { ...floatingLabelProps.value }>\n { label() }\n </VFieldLabel>\n )}\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n fieldIconColor: iconColor,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n"],"mappings":"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","ignoreList":[]}
@@ -417,7 +417,8 @@
417
417
  position: absolute;
418
418
  right: 0;
419
419
  top: 0;
420
- transition: opacity 0.2s ease-in-out;
420
+ transition: 0.2s ease-in-out;
421
+ transition-property: opacity, color;
421
422
  }
422
423
  .v-list-item--active.v-list-item--variant-elevated .v-list-item__overlay {
423
424
  --v-theme-overlay-multiplier: 0;
@@ -287,7 +287,8 @@
287
287
  position: absolute
288
288
  right: 0
289
289
  top: 0
290
- transition: opacity 0.2s ease-in-out
290
+ transition: 0.2s ease-in-out
291
+ transition-property: opacity, color
291
292
 
292
293
  .v-list-item--active.v-list-item--variant-elevated &
293
294
  --v-theme-overlay-multiplier: 0
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.11.7";
19
+ export const version = "3.11.8";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";
@@ -2781,41 +2781,41 @@ declare module 'vue' {
2781
2781
  export interface GlobalComponents {
2782
2782
  VApp: typeof import('vuetify/components')['VApp']
2783
2783
  VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2784
+ VBadge: typeof import('vuetify/components')['VBadge']
2784
2785
  VAppBar: typeof import('vuetify/components')['VAppBar']
2785
2786
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2786
2787
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2787
2788
  VAlert: typeof import('vuetify/components')['VAlert']
2788
2789
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2789
- VAvatar: typeof import('vuetify/components')['VAvatar']
2790
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2791
- VBadge: typeof import('vuetify/components')['VBadge']
2792
2790
  VBanner: typeof import('vuetify/components')['VBanner']
2793
2791
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
2794
2792
  VBannerText: typeof import('vuetify/components')['VBannerText']
2793
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2794
+ VAvatar: typeof import('vuetify/components')['VAvatar']
2795
2795
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2796
2796
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2797
2797
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2798
- VBtn: typeof import('vuetify/components')['VBtn']
2799
2798
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2800
- VCalendar: typeof import('vuetify/components')['VCalendar']
2801
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2802
- VCarousel: typeof import('vuetify/components')['VCarousel']
2803
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2799
+ VBtn: typeof import('vuetify/components')['VBtn']
2800
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
2801
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2802
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2803
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2804
2804
  VCard: typeof import('vuetify/components')['VCard']
2805
2805
  VCardActions: typeof import('vuetify/components')['VCardActions']
2806
2806
  VCardItem: typeof import('vuetify/components')['VCardItem']
2807
2807
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
2808
2808
  VCardText: typeof import('vuetify/components')['VCardText']
2809
2809
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2810
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
2811
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2812
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2810
+ VCalendar: typeof import('vuetify/components')['VCalendar']
2811
+ VChip: typeof import('vuetify/components')['VChip']
2812
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
2813
2813
  VCombobox: typeof import('vuetify/components')['VCombobox']
2814
2814
  VCounter: typeof import('vuetify/components')['VCounter']
2815
+ VCarousel: typeof import('vuetify/components')['VCarousel']
2816
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2815
2817
  VCode: typeof import('vuetify/components')['VCode']
2816
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
2817
- VChip: typeof import('vuetify/components')['VChip']
2818
- VDialog: typeof import('vuetify/components')['VDialog']
2818
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
2819
2819
  VDivider: typeof import('vuetify/components')['VDivider']
2820
2820
  VDataTable: typeof import('vuetify/components')['VDataTable']
2821
2821
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
@@ -2824,6 +2824,7 @@ declare module 'vue' {
2824
2824
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2825
2825
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2826
2826
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2827
+ VDialog: typeof import('vuetify/components')['VDialog']
2827
2828
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
2828
2829
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2829
2830
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
@@ -2831,28 +2832,28 @@ declare module 'vue' {
2831
2832
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2832
2833
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2833
2834
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
2834
- VField: typeof import('vuetify/components')['VField']
2835
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2836
- VFooter: typeof import('vuetify/components')['VFooter']
2835
+ VFileInput: typeof import('vuetify/components')['VFileInput']
2837
2836
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2838
2837
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2839
2838
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2840
2839
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2841
- VFileInput: typeof import('vuetify/components')['VFileInput']
2842
- VLabel: typeof import('vuetify/components')['VLabel']
2840
+ VFab: typeof import('vuetify/components')['VFab']
2841
+ VFooter: typeof import('vuetify/components')['VFooter']
2843
2842
  VHotkey: typeof import('vuetify/components')['VHotkey']
2844
- VImg: typeof import('vuetify/components')['VImg']
2845
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2846
2843
  VIcon: typeof import('vuetify/components')['VIcon']
2847
2844
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2848
2845
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2849
2846
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2850
2847
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
2851
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
2852
- VInput: typeof import('vuetify/components')['VInput']
2853
- VKbd: typeof import('vuetify/components')['VKbd']
2848
+ VField: typeof import('vuetify/components')['VField']
2849
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2850
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2854
2851
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
2855
2852
  VItem: typeof import('vuetify/components')['VItem']
2853
+ VInput: typeof import('vuetify/components')['VInput']
2854
+ VKbd: typeof import('vuetify/components')['VKbd']
2855
+ VImg: typeof import('vuetify/components')['VImg']
2856
+ VLabel: typeof import('vuetify/components')['VLabel']
2856
2857
  VList: typeof import('vuetify/components')['VList']
2857
2858
  VListGroup: typeof import('vuetify/components')['VListGroup']
2858
2859
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -2863,27 +2864,25 @@ declare module 'vue' {
2863
2864
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2864
2865
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
2865
2866
  VMain: typeof import('vuetify/components')['VMain']
2866
- VMenu: typeof import('vuetify/components')['VMenu']
2867
2867
  VMessages: typeof import('vuetify/components')['VMessages']
2868
+ VMenu: typeof import('vuetify/components')['VMenu']
2868
2869
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2869
- VNumberInput: typeof import('vuetify/components')['VNumberInput']
2870
2870
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
2871
+ VOverlay: typeof import('vuetify/components')['VOverlay']
2871
2872
  VPagination: typeof import('vuetify/components')['VPagination']
2873
+ VNumberInput: typeof import('vuetify/components')['VNumberInput']
2874
+ VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2872
2875
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2873
- VFab: typeof import('vuetify/components')['VFab']
2874
- VOverlay: typeof import('vuetify/components')['VOverlay']
2875
2876
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2876
- VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2877
2877
  VSelect: typeof import('vuetify/components')['VSelect']
2878
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2878
2879
  VRating: typeof import('vuetify/components')['VRating']
2879
- VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2880
- VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2881
2880
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2882
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2883
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2884
2881
  VSheet: typeof import('vuetify/components')['VSheet']
2882
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2885
2883
  VSlider: typeof import('vuetify/components')['VSlider']
2886
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
2884
+ VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2885
+ VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2887
2886
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
2888
2887
  VStepper: typeof import('vuetify/components')['VStepper']
2889
2888
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
@@ -2896,23 +2895,24 @@ declare module 'vue' {
2896
2895
  VTabs: typeof import('vuetify/components')['VTabs']
2897
2896
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
2898
2897
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2899
- VTextField: typeof import('vuetify/components')['VTextField']
2898
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
2900
2899
  VTable: typeof import('vuetify/components')['VTable']
2900
+ VTimeline: typeof import('vuetify/components')['VTimeline']
2901
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2902
+ VTextField: typeof import('vuetify/components')['VTextField']
2903
+ VTextarea: typeof import('vuetify/components')['VTextarea']
2901
2904
  VToolbar: typeof import('vuetify/components')['VToolbar']
2902
2905
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2903
2906
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2904
- VTextarea: typeof import('vuetify/components')['VTextarea']
2905
2907
  VTooltip: typeof import('vuetify/components')['VTooltip']
2906
- VTimePicker: typeof import('vuetify/components')['VTimePicker']
2907
- VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
2908
- VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
2909
- VTimeline: typeof import('vuetify/components')['VTimeline']
2910
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2911
2908
  VTreeview: typeof import('vuetify/components')['VTreeview']
2912
2909
  VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
2913
2910
  VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
2914
2911
  VWindow: typeof import('vuetify/components')['VWindow']
2915
2912
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
2913
+ VTimePicker: typeof import('vuetify/components')['VTimePicker']
2914
+ VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
2915
+ VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
2916
2916
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2917
2917
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
2918
2918
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
@@ -2922,21 +2922,21 @@ declare module 'vue' {
2922
2922
  VRow: typeof import('vuetify/components')['VRow']
2923
2923
  VSpacer: typeof import('vuetify/components')['VSpacer']
2924
2924
  VHover: typeof import('vuetify/components')['VHover']
2925
- VLazy: typeof import('vuetify/components')['VLazy']
2926
- VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
2927
2925
  VLayout: typeof import('vuetify/components')['VLayout']
2928
2926
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
2927
+ VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
2928
+ VLazy: typeof import('vuetify/components')['VLazy']
2929
2929
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
2930
- VRadio: typeof import('vuetify/components')['VRadio']
2931
2930
  VParallax: typeof import('vuetify/components')['VParallax']
2931
+ VRadio: typeof import('vuetify/components')['VRadio']
2932
2932
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2933
2933
  VResponsive: typeof import('vuetify/components')['VResponsive']
2934
+ VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
2934
2935
  VSparkline: typeof import('vuetify/components')['VSparkline']
2935
2936
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
2936
- VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
2937
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2937
2938
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
2938
2939
  VValidation: typeof import('vuetify/components')['VValidation']
2939
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2940
2940
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
2941
2941
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
2942
2942
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -2959,15 +2959,15 @@ declare module 'vue' {
2959
2959
  VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2960
2960
  VPicker: typeof import('vuetify/labs/components')['VPicker']
2961
2961
  VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2962
- VVideo: typeof import('vuetify/labs/components')['VVideo']
2963
- VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
2964
- VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
2965
2962
  VPie: typeof import('vuetify/labs/components')['VPie']
2966
2963
  VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
2967
2964
  VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
2968
2965
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2969
2966
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2970
2967
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2968
+ VVideo: typeof import('vuetify/labs/components')['VVideo']
2969
+ VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
2970
+ VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
2971
2971
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2972
2972
  VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
2973
2973
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
package/lib/framework.js CHANGED
@@ -110,7 +110,7 @@ export function createVuetify() {
110
110
  };
111
111
  });
112
112
  }
113
- export const version = "3.11.7";
113
+ export const version = "3.11.8";
114
114
  createVuetify.version = version;
115
115
 
116
116
  // Vue's inject() can only be used in setup
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vuetify",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.11.7",
4
+ "version": "3.11.8",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"