vuetify 3.1.14 → 3.1.15

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 (97) hide show
  1. package/dist/json/attributes.json +149 -97
  2. package/dist/json/importMap.json +70 -70
  3. package/dist/json/tags.json +13 -0
  4. package/dist/json/web-types.json +440 -209
  5. package/dist/vuetify-labs.css +161 -152
  6. package/dist/vuetify-labs.d.ts +518 -160
  7. package/dist/vuetify-labs.esm.js +176 -116
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +176 -116
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +11 -2
  12. package/dist/vuetify.d.ts +486 -161
  13. package/dist/vuetify.esm.js +118 -68
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +118 -68
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +728 -717
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.css +9 -0
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs +50 -6
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  23. package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
  24. package/lib/components/VAutocomplete/index.d.ts +29 -17
  25. package/lib/components/VCard/VCard.mjs.map +1 -1
  26. package/lib/components/VCard/index.d.ts +21 -16
  27. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  28. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  29. package/lib/components/VCheckbox/index.d.ts +22 -1
  30. package/lib/components/VCombobox/VCombobox.css +1 -1
  31. package/lib/components/VCombobox/VCombobox.mjs +6 -4
  32. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  33. package/lib/components/VCombobox/VCombobox.sass +1 -1
  34. package/lib/components/VCombobox/index.d.ts +29 -17
  35. package/lib/components/VField/index.d.ts +6 -0
  36. package/lib/components/VFileInput/VFileInput.mjs +13 -17
  37. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  38. package/lib/components/VFileInput/index.d.ts +68 -23
  39. package/lib/components/VInput/VInput.mjs +14 -7
  40. package/lib/components/VInput/VInput.mjs.map +1 -1
  41. package/lib/components/VInput/index.d.ts +22 -1
  42. package/lib/components/VOverlay/locationStrategies.mjs +9 -4
  43. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  44. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  45. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  46. package/lib/components/VRadioGroup/index.d.ts +22 -1
  47. package/lib/components/VRangeSlider/VRangeSlider.mjs +2 -2
  48. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  49. package/lib/components/VRangeSlider/index.d.ts +22 -1
  50. package/lib/components/VSelect/VSelect.mjs +6 -0
  51. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  52. package/lib/components/VSelect/index.d.ts +32 -17
  53. package/lib/components/VSlider/VSlider.mjs +2 -2
  54. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  55. package/lib/components/VSlider/index.d.ts +22 -1
  56. package/lib/components/VSwitch/VSwitch.mjs +5 -3
  57. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  58. package/lib/components/VSwitch/index.d.ts +43 -1
  59. package/lib/components/VTextField/VTextField.mjs +4 -12
  60. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  61. package/lib/components/VTextField/index.d.ts +70 -22
  62. package/lib/components/VTextarea/VTextarea.mjs +4 -12
  63. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  64. package/lib/components/VTextarea/index.d.ts +61 -22
  65. package/lib/components/VTreeview/_mixins.sass +0 -0
  66. package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -0
  67. package/lib/components/VValidation/index.d.ts +10 -1
  68. package/lib/components/index.d.ts +465 -140
  69. package/lib/composables/focus.mjs +3 -2
  70. package/lib/composables/focus.mjs.map +1 -1
  71. package/lib/composables/items.mjs +7 -2
  72. package/lib/composables/items.mjs.map +1 -1
  73. package/lib/entry-bundler.mjs +1 -1
  74. package/lib/framework.mjs +1 -1
  75. package/lib/iconsets/mdi-svg.mjs +2 -2
  76. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  77. package/lib/index.d.ts +21 -21
  78. package/lib/labs/VDataTable/VDataTable.mjs +2 -2
  79. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  80. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  81. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  82. package/lib/labs/VDataTable/VDataTableRows.mjs +52 -44
  83. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  84. package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
  85. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  86. package/lib/labs/VDataTable/VDataTableVirtual.mjs +0 -1
  87. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  88. package/lib/labs/VDataTable/composables/options.mjs +2 -1
  89. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  90. package/lib/labs/VDataTable/index.d.ts +44 -11
  91. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +1 -0
  92. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  93. package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
  94. package/lib/labs/components.d.ts +53 -20
  95. package/lib/locale/el.mjs +0 -0
  96. package/lib/locale/index.mjs +0 -0
  97. package/package.json +2 -2
@@ -53,6 +53,7 @@ declare const VRangeSlider: {
53
53
  errorMessages: string | string[];
54
54
  maxErrors: string | number;
55
55
  rules: ValidationRule[];
56
+ persistentHint: boolean;
56
57
  showTicks: boolean | "always";
57
58
  tickSize: string | number;
58
59
  trackSize: string | number;
@@ -76,6 +77,7 @@ declare const VRangeSlider: {
76
77
  errorMessages: string | string[];
77
78
  maxErrors: string | number;
78
79
  rules: ValidationRule[];
80
+ persistentHint: boolean;
79
81
  showTicks: boolean | "always";
80
82
  tickSize: string | number;
81
83
  trackSize: string | number;
@@ -90,8 +92,10 @@ declare const VRangeSlider: {
90
92
  appendIcon?: IconValue | undefined;
91
93
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
92
94
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
95
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
93
96
  validateOn?: "input" | "blur" | "submit" | undefined;
94
97
  validationValue?: any;
98
+ hint?: string | undefined;
95
99
  hideDetails?: boolean | "auto" | undefined;
96
100
  trackColor?: string | undefined;
97
101
  trackFillColor?: string | undefined;
@@ -133,7 +137,7 @@ declare const VRangeSlider: {
133
137
  } & {
134
138
  "onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
135
139
  "onUpdate:focused"?: ((value: boolean) => any) | undefined;
136
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "max" | "error" | "strict" | "direction" | "disabled" | "readonly" | "step" | "min" | "elevation" | "messages" | "rounded" | "density" | "modelValue" | "focused" | "errorMessages" | "maxErrors" | "rules" | "showTicks" | "tickSize" | "trackSize" | "thumbLabel" | "thumbSize">;
140
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "max" | "error" | "strict" | "direction" | "disabled" | "readonly" | "step" | "min" | "elevation" | "messages" | "rounded" | "density" | "modelValue" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint" | "showTicks" | "tickSize" | "trackSize" | "thumbLabel" | "thumbSize">;
137
141
  $attrs: {
138
142
  [x: string]: unknown;
139
143
  };
@@ -165,6 +169,7 @@ declare const VRangeSlider: {
165
169
  errorMessages: string | string[];
166
170
  maxErrors: string | number;
167
171
  rules: ValidationRule[];
172
+ persistentHint: boolean;
168
173
  showTicks: boolean | "always";
169
174
  tickSize: string | number;
170
175
  trackSize: string | number;
@@ -179,8 +184,10 @@ declare const VRangeSlider: {
179
184
  appendIcon?: IconValue | undefined;
180
185
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
181
186
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
187
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
182
188
  validateOn?: "input" | "blur" | "submit" | undefined;
183
189
  validationValue?: any;
190
+ hint?: string | undefined;
184
191
  hideDetails?: boolean | "auto" | undefined;
185
192
  trackColor?: string | undefined;
186
193
  trackFillColor?: string | undefined;
@@ -244,6 +251,7 @@ declare const VRangeSlider: {
244
251
  errorMessages: string | string[];
245
252
  maxErrors: string | number;
246
253
  rules: ValidationRule[];
254
+ persistentHint: boolean;
247
255
  showTicks: boolean | "always";
248
256
  tickSize: string | number;
249
257
  trackSize: string | number;
@@ -287,6 +295,7 @@ declare const VRangeSlider: {
287
295
  errorMessages: string | string[];
288
296
  maxErrors: string | number;
289
297
  rules: ValidationRule[];
298
+ persistentHint: boolean;
290
299
  showTicks: boolean | "always";
291
300
  tickSize: string | number;
292
301
  trackSize: string | number;
@@ -301,8 +310,10 @@ declare const VRangeSlider: {
301
310
  appendIcon?: IconValue | undefined;
302
311
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
303
312
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
313
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
304
314
  validateOn?: "input" | "blur" | "submit" | undefined;
305
315
  validationValue?: any;
316
+ hint?: string | undefined;
306
317
  hideDetails?: boolean | "auto" | undefined;
307
318
  trackColor?: string | undefined;
308
319
  trackFillColor?: string | undefined;
@@ -366,6 +377,7 @@ declare const VRangeSlider: {
366
377
  errorMessages: string | string[];
367
378
  maxErrors: string | number;
368
379
  rules: ValidationRule[];
380
+ persistentHint: boolean;
369
381
  showTicks: boolean | "always";
370
382
  tickSize: string | number;
371
383
  trackSize: string | number;
@@ -380,8 +392,10 @@ declare const VRangeSlider: {
380
392
  appendIcon?: IconValue | undefined;
381
393
  'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
382
394
  'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
395
+ 'onUpdate:focused'?: EventProp<[FocusEvent], (args_0: FocusEvent) => any> | undefined;
383
396
  validateOn?: "input" | "blur" | "submit" | undefined;
384
397
  validationValue?: any;
398
+ hint?: string | undefined;
385
399
  hideDetails?: boolean | "auto" | undefined;
386
400
  trackColor?: string | undefined;
387
401
  trackFillColor?: string | undefined;
@@ -445,6 +459,7 @@ declare const VRangeSlider: {
445
459
  errorMessages: string | string[];
446
460
  maxErrors: string | number;
447
461
  rules: ValidationRule[];
462
+ persistentHint: boolean;
448
463
  showTicks: boolean | "always";
449
464
  tickSize: string | number;
450
465
  trackSize: string | number;
@@ -518,6 +533,7 @@ declare const VRangeSlider: {
518
533
  };
519
534
  reverse: BooleanConstructor;
520
535
  focused: BooleanConstructor;
536
+ 'onUpdate:focused': PropType<EventProp<[FocusEvent], (args_0: FocusEvent) => any>>;
521
537
  errorMessages: {
522
538
  type: PropType<string | string[]>;
523
539
  default: () => never[];
@@ -543,6 +559,8 @@ declare const VRangeSlider: {
543
559
  appendIcon: PropType<IconValue>;
544
560
  prependIcon: PropType<IconValue>;
545
561
  hideDetails: PropType<boolean | "auto">;
562
+ hint: StringConstructor;
563
+ persistentHint: BooleanConstructor;
546
564
  messages: {
547
565
  type: PropType<string | string[]>;
548
566
  default: () => never[];
@@ -617,6 +635,7 @@ declare const VRangeSlider: {
617
635
  };
618
636
  reverse: BooleanConstructor;
619
637
  focused: BooleanConstructor;
638
+ 'onUpdate:focused': PropType<EventProp<[FocusEvent], (args_0: FocusEvent) => any>>;
620
639
  errorMessages: {
621
640
  type: PropType<string | string[]>;
622
641
  default: () => never[];
@@ -642,6 +661,8 @@ declare const VRangeSlider: {
642
661
  appendIcon: PropType<IconValue>;
643
662
  prependIcon: PropType<IconValue>;
644
663
  hideDetails: PropType<boolean | "auto">;
664
+ hint: StringConstructor;
665
+ persistentHint: BooleanConstructor;
645
666
  messages: {
646
667
  type: PropType<string | string[]>;
647
668
  default: () => never[];
@@ -62,6 +62,7 @@ export const VSelect = genericComponent()({
62
62
  })
63
63
  },
64
64
  emits: {
65
+ 'update:focused': focused => true,
65
66
  'update:modelValue': val => true,
66
67
  'update:menu': val => true
67
68
  },
@@ -178,6 +179,9 @@ export const VSelect = genericComponent()({
178
179
  menu.value = false;
179
180
  }
180
181
  }
182
+ function onFocusin(e) {
183
+ isFocused.value = true;
184
+ }
181
185
  function onFocusout(e) {
182
186
  if (e.relatedTarget == null) {
183
187
  vTextFieldRef.value?.focus();
@@ -232,6 +236,7 @@ export const VSelect = genericComponent()({
232
236
  "selected": selected.value,
233
237
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
234
238
  "onMousedown": e => e.preventDefault(),
239
+ "onFocusin": onFocusin,
235
240
  "onFocusout": onFocusout
236
241
  }, {
237
242
  default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {
@@ -310,6 +315,7 @@ export const VSelect = genericComponent()({
310
315
  });
311
316
  });
312
317
  return forwardRefs({
318
+ isFocused,
313
319
  menu,
314
320
  select
315
321
  }, vTextFieldRef);
@@ -1 +1 @@
1
- {"version":3,"file":"VSelect.mjs","names":["makeVTextFieldProps","VCheckboxBtn","VChip","VDefaultsProvider","VDialogTransition","VList","VListItem","VMenu","VTextField","forwardRefs","IconValue","makeItemsProps","useItems","makeTransitionProps","useForm","useLocale","useProxiedModel","computed","mergeProps","ref","deepEqual","genericComponent","omit","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","multiple","noDataText","String","openOnClear","valueComparator","Function","itemChildren","VSelect","name","props","modelValue","transition","component","emits","val","setup","_ref","slots","t","vTextFieldRef","vMenuRef","_menu","get","value","set","v","ΨopenChildren","items","transformIn","transformOut","model","transformed","form","selections","map","find","item","selected","selection","isFocused","keyboardLookupPrefix","keyboardLookupLastTime","displayItems","filter","some","s","listRef","onClear","e","onMousedownControl","length","readonly","isReadonly","onKeydown","includes","key","preventDefault","focus","KEYBOARD_LOOKUP_THRESHOLD","checkPrintable","isPrintableChar","noModifier","ctrlKey","metaKey","altKey","now","performance","toLowerCase","title","startsWith","undefined","select","index","findIndex","splice","onBlur","$el","contains","relatedTarget","onFocusout","hasChips","chip","hasList","prepend","append","isDirty","textFieldProps","filterProps","placeholder","label","persistentPlaceholder","_createVNode","_mergeProps","join","$event","externalValue","_Fragment","onClick","_ref2","isSelected","onChipClose","stopPropagation","slotProps","closable","size","text","_createTextVNode"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialogTransition } from '@/components/transitions'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForm } from '@/composables/form'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'v-select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const vMenuRef = ref<VMenu>()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return\n _menu.value = v\n },\n })\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const form = useForm()\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const isFocused = ref(false)\n\n let keyboardLookupPrefix = ''\n let keyboardLookupLastTime: number\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !selections.value.some(s => s === item))\n }\n return items.value\n })\n\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly || form?.isReadonly.value\n ) return\n\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n listRef.value?.focus('prev')\n } else if (e.key === 'Home') {\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n listRef.value?.focus('last')\n }\n\n // html select hotkeys\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n\n function checkPrintable (e: KeyboardEvent) {\n const isPrintableChar = e.key.length === 1\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey\n return isPrintableChar && noModifier\n }\n\n if (props.multiple || !checkPrintable(e)) return\n\n const now = performance.now()\n if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n keyboardLookupPrefix = ''\n }\n keyboardLookupPrefix += e.key.toLowerCase()\n keyboardLookupLastTime = now\n\n const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix))\n if (item !== undefined) {\n model.value = [item]\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value))\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!((!props.hideNoData || displayItems.value.length) || slots.prepend || slots.append || slots['no-data'])\n const isDirty = model.value.length > 0\n const [textFieldProps] = VTextField.filterProps(props)\n\n const placeholder = isDirty || (\n !isFocused.value &&\n props.label &&\n !props.persistentPlaceholder\n ) ? undefined : props.placeholder\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n dirty={ isDirty }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n placeholder={ placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusout={ onFocusout }\n >\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n ))}\n\n { slots['prepend-item']?.() }\n\n { displayItems.value.map((item, index) => {\n if (slots.item) {\n return slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n })\n }\n\n return (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn\n modelValue={ isSelected }\n ripple={ false }\n tabindex=\"-1\"\n />\n ) : undefined,\n }}\n </VListItem>\n )\n })}\n\n { slots['append-item']?.() }\n </VList>\n )}\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n !slots.chip ? (\n <VChip\n key=\"chip\"\n closable={ props.closableChips }\n size=\"small\"\n text={ item.title }\n { ...slotProps }\n />\n ) : (\n <VDefaultsProvider\n key=\"chip-defaults\"\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip?.({ item, index, props: slotProps }) }\n </VDefaultsProvider>\n )\n ) : (\n slots.selection?.({ item, index }) ?? (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n )}\n </span>\n )\n )}\n </div>\n )\n })}\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSelect.mjs","names":["makeVTextFieldProps","VCheckboxBtn","VChip","VDefaultsProvider","VDialogTransition","VList","VListItem","VMenu","VTextField","forwardRefs","IconValue","makeItemsProps","useItems","makeTransitionProps","useForm","useLocale","useProxiedModel","computed","mergeProps","ref","deepEqual","genericComponent","omit","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","multiple","noDataText","String","openOnClear","valueComparator","Function","itemChildren","VSelect","name","props","modelValue","transition","component","emits","focused","val","setup","_ref","slots","t","vTextFieldRef","vMenuRef","_menu","get","value","set","v","ΨopenChildren","items","transformIn","transformOut","model","transformed","form","selections","map","find","item","selected","selection","isFocused","keyboardLookupPrefix","keyboardLookupLastTime","displayItems","filter","some","s","listRef","onClear","e","onMousedownControl","length","readonly","isReadonly","onKeydown","includes","key","preventDefault","focus","KEYBOARD_LOOKUP_THRESHOLD","checkPrintable","isPrintableChar","noModifier","ctrlKey","metaKey","altKey","now","performance","toLowerCase","title","startsWith","undefined","select","index","findIndex","splice","onBlur","$el","contains","relatedTarget","onFocusin","onFocusout","hasChips","chip","hasList","prepend","append","isDirty","textFieldProps","filterProps","placeholder","label","persistentPlaceholder","_createVNode","_mergeProps","join","$event","externalValue","_Fragment","onClick","_ref2","isSelected","onChipClose","stopPropagation","slotProps","closable","size","text","_createTextVNode"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialogTransition } from '@/components/transitions'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForm } from '@/composables/form'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'v-select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const vMenuRef = ref<VMenu>()\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return\n _menu.value = v\n },\n })\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const form = useForm()\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const isFocused = ref(false)\n\n let keyboardLookupPrefix = ''\n let keyboardLookupLastTime: number\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !selections.value.some(s => s === item))\n }\n return items.value\n })\n\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly || form?.isReadonly.value\n ) return\n\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n listRef.value?.focus('prev')\n } else if (e.key === 'Home') {\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n listRef.value?.focus('last')\n }\n\n // html select hotkeys\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n\n function checkPrintable (e: KeyboardEvent) {\n const isPrintableChar = e.key.length === 1\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey\n return isPrintableChar && noModifier\n }\n\n if (props.multiple || !checkPrintable(e)) return\n\n const now = performance.now()\n if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n keyboardLookupPrefix = ''\n }\n keyboardLookupPrefix += e.key.toLowerCase()\n keyboardLookupLastTime = now\n\n const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix))\n if (item !== undefined) {\n model.value = [item]\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value))\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!((!props.hideNoData || displayItems.value.length) || slots.prepend || slots.append || slots['no-data'])\n const isDirty = model.value.length > 0\n const [textFieldProps] = VTextField.filterProps(props)\n\n const placeholder = isDirty || (\n !isFocused.value &&\n props.label &&\n !props.persistentPlaceholder\n ) ? undefined : props.placeholder\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n dirty={ isDirty }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n placeholder={ placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n >\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n ))}\n\n { slots['prepend-item']?.() }\n\n { displayItems.value.map((item, index) => {\n if (slots.item) {\n return slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n })\n }\n\n return (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn\n modelValue={ isSelected }\n ripple={ false }\n tabindex=\"-1\"\n />\n ) : undefined,\n }}\n </VListItem>\n )\n })}\n\n { slots['append-item']?.() }\n </VList>\n )}\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n !slots.chip ? (\n <VChip\n key=\"chip\"\n closable={ props.closableChips }\n size=\"small\"\n text={ item.title }\n { ...slotProps }\n />\n ) : (\n <VDefaultsProvider\n key=\"chip-defaults\"\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip?.({ item, index, props: slotProps }) }\n </VDefaultsProvider>\n )\n ) : (\n slots.selection?.({ item, index }) ?? (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n )}\n </span>\n )\n )}\n </div>\n )\n })}\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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"}
@@ -270,10 +270,10 @@ declare const VSelect: {
270
270
  errorMessages: string | string[];
271
271
  maxErrors: string | number;
272
272
  rules: ValidationRule[];
273
+ persistentHint: boolean;
273
274
  clearable: boolean;
274
275
  persistentClear: boolean;
275
276
  singleLine: boolean;
276
- persistentHint: boolean;
277
277
  persistentPlaceholder: boolean;
278
278
  persistentCounter: boolean;
279
279
  valueComparator: typeof deepEqual;
@@ -566,6 +566,7 @@ declare const VSelect: {
566
566
  'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
567
567
  'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
568
568
  focused: BooleanConstructor;
569
+ 'onUpdate:focused': PropType<EventProp<[FocusEvent], (args_0: FocusEvent) => any>>;
569
570
  validateOn: PropType<"input" | "blur" | "submit" | undefined>;
570
571
  errorMessages: {
571
572
  type: PropType<string | string[]>;
@@ -579,12 +580,12 @@ declare const VSelect: {
579
580
  type: PropType<ValidationRule[]>;
580
581
  default: () => never[];
581
582
  };
583
+ hint: StringConstructor;
584
+ persistentHint: BooleanConstructor;
582
585
  hideDetails: PropType<boolean | "auto">;
583
586
  clearable: BooleanConstructor;
584
587
  persistentClear: BooleanConstructor;
585
588
  singleLine: BooleanConstructor;
586
- hint: StringConstructor;
587
- persistentHint: BooleanConstructor;
588
589
  persistentPlaceholder: BooleanConstructor;
589
590
  persistentCounter: BooleanConstructor;
590
591
  suffix: StringConstructor;
@@ -950,8 +951,9 @@ declare const VSelect: {
950
951
  default: typeof deepEqual;
951
952
  };
952
953
  }, "multiple" | "$children" | "$slots" | "v-slots" | "items" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:details" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:item" | "returnObject" | "v-slot:chip" | "v-slot:selection" | "v-slot:prepend-item" | "v-slot:append-item" | "v-slot:no-data">>> & {
954
+ "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
953
955
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
954
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "type" | "error" | "active" | "direction" | "transition" | "menu" | "autofocus" | "eager" | "disabled" | "readonly" | "noDataText" | "messages" | "density" | "variant" | "clearIcon" | "focused" | "errorMessages" | "maxErrors" | "rules" | "clearable" | "persistentClear" | "singleLine" | "persistentHint" | "persistentPlaceholder" | "persistentCounter" | "valueComparator" | "itemTitle" | "itemValue" | "itemChildren" | "itemProps" | "chips" | "closableChips" | "hideNoData" | "hideSelected" | "menuIcon" | "openOnClear">;
956
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "type" | "error" | "active" | "direction" | "transition" | "menu" | "autofocus" | "eager" | "disabled" | "readonly" | "noDataText" | "messages" | "density" | "variant" | "clearIcon" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint" | "clearable" | "persistentClear" | "singleLine" | "persistentPlaceholder" | "persistentCounter" | "valueComparator" | "itemTitle" | "itemValue" | "itemChildren" | "itemProps" | "chips" | "closableChips" | "hideNoData" | "hideSelected" | "menuIcon" | "openOnClear">;
955
957
  $attrs: {
956
958
  [x: string]: unknown;
957
959
  };
@@ -963,7 +965,7 @@ declare const VSelect: {
963
965
  }>;
964
966
  $root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
965
967
  $parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string>, {}> | null;
966
- $emit: (event: "update:menu", val: boolean) => void;
968
+ $emit: ((event: "update:focused", focused: boolean) => void) & ((event: "update:menu", val: boolean) => void);
967
969
  $el: any;
968
970
  $options: vue.ComponentOptionsBase<Readonly<vue.ExtractPropTypes<Omit<{
969
971
  transition: Omit<{
@@ -1244,6 +1246,7 @@ declare const VSelect: {
1244
1246
  'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1245
1247
  'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1246
1248
  focused: BooleanConstructor;
1249
+ 'onUpdate:focused': PropType<EventProp<[FocusEvent], (args_0: FocusEvent) => any>>;
1247
1250
  validateOn: PropType<"input" | "blur" | "submit" | undefined>;
1248
1251
  errorMessages: {
1249
1252
  type: PropType<string | string[]>;
@@ -1257,12 +1260,12 @@ declare const VSelect: {
1257
1260
  type: PropType<ValidationRule[]>;
1258
1261
  default: () => never[];
1259
1262
  };
1263
+ hint: StringConstructor;
1264
+ persistentHint: BooleanConstructor;
1260
1265
  hideDetails: PropType<boolean | "auto">;
1261
1266
  clearable: BooleanConstructor;
1262
1267
  persistentClear: BooleanConstructor;
1263
1268
  singleLine: BooleanConstructor;
1264
- hint: StringConstructor;
1265
- persistentHint: BooleanConstructor;
1266
1269
  persistentPlaceholder: BooleanConstructor;
1267
1270
  persistentCounter: BooleanConstructor;
1268
1271
  suffix: StringConstructor;
@@ -1628,11 +1631,14 @@ declare const VSelect: {
1628
1631
  default: typeof deepEqual;
1629
1632
  };
1630
1633
  }, "multiple" | "$children" | "$slots" | "v-slots" | "items" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:details" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:item" | "returnObject" | "v-slot:chip" | "v-slot:selection" | "v-slot:prepend-item" | "v-slot:append-item" | "v-slot:no-data">>> & {
1634
+ "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
1631
1635
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
1632
1636
  }, {
1637
+ isFocused: vue.Ref<boolean>;
1633
1638
  menu: vue.WritableComputedRef<boolean>;
1634
1639
  select: (item: InternalItem) => void;
1635
1640
  } & Omit<any, string | number | symbol>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
1641
+ 'update:focused': (focused: boolean) => boolean;
1636
1642
  'update:modelValue': (val: any) => boolean;
1637
1643
  'update:menu': (val: boolean) => true;
1638
1644
  }, "multiple" | "$children" | "$slots" | "v-slots" | "items" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "update:modelValue" | "v-slot:loader" | "v-slot:details" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:item" | "returnObject" | "v-slot:chip" | "v-slot:selection" | "v-slot:prepend-item" | "v-slot:append-item" | "v-slot:no-data">, string, {
@@ -1762,10 +1768,10 @@ declare const VSelect: {
1762
1768
  errorMessages: string | string[];
1763
1769
  maxErrors: string | number;
1764
1770
  rules: ValidationRule[];
1771
+ persistentHint: boolean;
1765
1772
  clearable: boolean;
1766
1773
  persistentClear: boolean;
1767
1774
  singleLine: boolean;
1768
- persistentHint: boolean;
1769
1775
  persistentPlaceholder: boolean;
1770
1776
  persistentCounter: boolean;
1771
1777
  valueComparator: typeof deepEqual;
@@ -2078,6 +2084,7 @@ declare const VSelect: {
2078
2084
  'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
2079
2085
  'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
2080
2086
  focused: BooleanConstructor;
2087
+ 'onUpdate:focused': PropType<EventProp<[FocusEvent], (args_0: FocusEvent) => any>>;
2081
2088
  validateOn: PropType<"input" | "blur" | "submit" | undefined>;
2082
2089
  errorMessages: {
2083
2090
  type: PropType<string | string[]>;
@@ -2091,12 +2098,12 @@ declare const VSelect: {
2091
2098
  type: PropType<ValidationRule[]>;
2092
2099
  default: () => never[];
2093
2100
  };
2101
+ hint: StringConstructor;
2102
+ persistentHint: BooleanConstructor;
2094
2103
  hideDetails: PropType<boolean | "auto">;
2095
2104
  clearable: BooleanConstructor;
2096
2105
  persistentClear: BooleanConstructor;
2097
2106
  singleLine: BooleanConstructor;
2098
- hint: StringConstructor;
2099
- persistentHint: BooleanConstructor;
2100
2107
  persistentPlaceholder: BooleanConstructor;
2101
2108
  persistentCounter: BooleanConstructor;
2102
2109
  suffix: StringConstructor;
@@ -2462,8 +2469,10 @@ declare const VSelect: {
2462
2469
  default: typeof deepEqual;
2463
2470
  };
2464
2471
  }, "multiple" | "$children" | "$slots" | "v-slots" | "items" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:details" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:item" | "returnObject" | "v-slot:chip" | "v-slot:selection" | "v-slot:prepend-item" | "v-slot:append-item" | "v-slot:no-data">>> & {
2472
+ "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
2465
2473
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
2466
2474
  } & vue.ShallowUnwrapRef<{
2475
+ isFocused: vue.Ref<boolean>;
2467
2476
  menu: vue.WritableComputedRef<boolean>;
2468
2477
  select: (item: InternalItem) => void;
2469
2478
  } & Omit<any, string | number | symbol>> & {} & vue.ComponentCustomProperties & {};
@@ -2749,6 +2758,7 @@ declare const VSelect: {
2749
2758
  'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
2750
2759
  'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
2751
2760
  focused: BooleanConstructor;
2761
+ 'onUpdate:focused': PropType<EventProp<[FocusEvent], (args_0: FocusEvent) => any>>;
2752
2762
  validateOn: PropType<"input" | "blur" | "submit" | undefined>;
2753
2763
  errorMessages: {
2754
2764
  type: PropType<string | string[]>;
@@ -2762,12 +2772,12 @@ declare const VSelect: {
2762
2772
  type: PropType<ValidationRule[]>;
2763
2773
  default: () => never[];
2764
2774
  };
2775
+ hint: StringConstructor;
2776
+ persistentHint: BooleanConstructor;
2765
2777
  hideDetails: PropType<boolean | "auto">;
2766
2778
  clearable: BooleanConstructor;
2767
2779
  persistentClear: BooleanConstructor;
2768
2780
  singleLine: BooleanConstructor;
2769
- hint: StringConstructor;
2770
- persistentHint: BooleanConstructor;
2771
2781
  persistentPlaceholder: BooleanConstructor;
2772
2782
  persistentCounter: BooleanConstructor;
2773
2783
  suffix: StringConstructor;
@@ -3133,11 +3143,14 @@ declare const VSelect: {
3133
3143
  default: typeof deepEqual;
3134
3144
  };
3135
3145
  }, "multiple" | "$children" | "$slots" | "v-slots" | "items" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "onUpdate:modelValue" | "v-slot:loader" | "v-slot:details" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:item" | "returnObject" | "v-slot:chip" | "v-slot:selection" | "v-slot:prepend-item" | "v-slot:append-item" | "v-slot:no-data">>> & {
3146
+ "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
3136
3147
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
3137
3148
  }, {
3149
+ isFocused: vue.Ref<boolean>;
3138
3150
  menu: vue.WritableComputedRef<boolean>;
3139
3151
  select: (item: InternalItem) => void;
3140
3152
  } & Omit<any, string | number | symbol>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
3153
+ 'update:focused': (focused: boolean) => boolean;
3141
3154
  'update:modelValue': (val: any) => boolean;
3142
3155
  'update:menu': (val: boolean) => true;
3143
3156
  }, "multiple" | "$children" | "$slots" | "v-slots" | "items" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "update:modelValue" | "v-slot:loader" | "v-slot:details" | "v-slot:clear" | "v-slot:label" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:item" | "returnObject" | "v-slot:chip" | "v-slot:selection" | "v-slot:prepend-item" | "v-slot:append-item" | "v-slot:no-data">, string, {
@@ -3267,10 +3280,10 @@ declare const VSelect: {
3267
3280
  errorMessages: string | string[];
3268
3281
  maxErrors: string | number;
3269
3282
  rules: ValidationRule[];
3283
+ persistentHint: boolean;
3270
3284
  clearable: boolean;
3271
3285
  persistentClear: boolean;
3272
3286
  singleLine: boolean;
3273
- persistentHint: boolean;
3274
3287
  persistentPlaceholder: boolean;
3275
3288
  persistentCounter: boolean;
3276
3289
  valueComparator: typeof deepEqual;
@@ -3679,6 +3692,7 @@ declare const VSelect: {
3679
3692
  'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
3680
3693
  'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
3681
3694
  focused: BooleanConstructor;
3695
+ 'onUpdate:focused': PropType<EventProp<[FocusEvent], (args_0: FocusEvent) => any>>;
3682
3696
  validateOn: PropType<"input" | "blur" | "submit" | undefined>;
3683
3697
  errorMessages: {
3684
3698
  type: PropType<string | string[]>;
@@ -3692,12 +3706,12 @@ declare const VSelect: {
3692
3706
  type: PropType<ValidationRule[]>;
3693
3707
  default: () => never[];
3694
3708
  };
3709
+ hint: StringConstructor;
3710
+ persistentHint: BooleanConstructor;
3695
3711
  hideDetails: PropType<boolean | "auto">;
3696
3712
  clearable: BooleanConstructor;
3697
3713
  persistentClear: BooleanConstructor;
3698
3714
  singleLine: BooleanConstructor;
3699
- hint: StringConstructor;
3700
- persistentHint: BooleanConstructor;
3701
3715
  persistentPlaceholder: BooleanConstructor;
3702
3716
  persistentCounter: BooleanConstructor;
3703
3717
  suffix: StringConstructor;
@@ -4341,6 +4355,7 @@ declare const VSelect: {
4341
4355
  'onClick:appendInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
4342
4356
  'onClick:prependInner': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
4343
4357
  focused: BooleanConstructor;
4358
+ 'onUpdate:focused': PropType<EventProp<[FocusEvent], (args_0: FocusEvent) => any>>;
4344
4359
  validateOn: PropType<"input" | "blur" | "submit" | undefined>;
4345
4360
  errorMessages: {
4346
4361
  type: PropType<string | string[]>;
@@ -4354,12 +4369,12 @@ declare const VSelect: {
4354
4369
  type: PropType<ValidationRule[]>;
4355
4370
  default: () => never[];
4356
4371
  };
4372
+ hint: StringConstructor;
4373
+ persistentHint: BooleanConstructor;
4357
4374
  hideDetails: PropType<boolean | "auto">;
4358
4375
  clearable: BooleanConstructor;
4359
4376
  persistentClear: BooleanConstructor;
4360
4377
  singleLine: BooleanConstructor;
4361
- hint: StringConstructor;
4362
- persistentHint: BooleanConstructor;
4363
4378
  persistentPlaceholder: BooleanConstructor;
4364
4379
  persistentCounter: BooleanConstructor;
4365
4380
  suffix: StringConstructor;
@@ -3,7 +3,7 @@ import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fr
3
3
  import "./VSlider.css";
4
4
 
5
5
  // Components
6
- import { filterInputProps, makeVInputProps, VInput } from "../VInput/VInput.mjs";
6
+ import { makeVInputProps, VInput } from "../VInput/VInput.mjs";
7
7
  import { VLabel } from "../VLabel/index.mjs";
8
8
  import { VSliderThumb } from "./VSliderThumb.mjs";
9
9
  import { VSliderTrack } from "./VSliderTrack.mjs"; // Composables
@@ -62,7 +62,7 @@ export const VSlider = genericComponent()({
62
62
  } = useFocus(props);
63
63
  const trackStop = computed(() => position(model.value));
64
64
  useRender(() => {
65
- const [inputProps, _] = filterInputProps(props);
65
+ const [inputProps, _] = VInput.filterProps(props);
66
66
  const hasPrepend = !!(props.label || slots.label || slots.prepend);
67
67
  return _createVNode(VInput, _mergeProps({
68
68
  "class": ['v-slider', {
@@ -1 +1 @@
1
- {"version":3,"file":"VSlider.mjs","names":["filterInputProps","makeVInputProps","VInput","VLabel","VSliderThumb","VSliderTrack","makeFocusProps","useFocus","makeSliderProps","useSlider","useProxiedModel","computed","ref","genericComponent","useRender","VSlider","name","props","modelValue","type","Number","String","default","emits","value","v","setup","_ref","slots","thumbContainerRef","min","max","mousePressed","roundValue","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","readonly","handleSliderMouseUp","newValue","model","handleMouseMove","getActiveThumb","$el","undefined","parseFloat","isFocused","focus","blur","trackStop","inputProps","_","hasPrepend","label","prepend","_createVNode","_mergeProps","disabled","slotProps","_Fragment","id","_ref2","messagesId","elevation"],"sources":["../../../src/components/VSlider/VSlider.tsx"],"sourcesContent":["// Styles\nimport './VSlider.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeSliderProps, useSlider } from './slider'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VSliderSlots = VInputSlots & MakeSlots<{\n 'tick-label': []\n 'thumb-label': []\n}>\n\nexport const VSlider = genericComponent<VSliderSlots>()({\n name: 'VSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots }) {\n const thumbContainerRef = ref()\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleSliderMouseUp: newValue => model.value = roundValue(newValue),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleMouseMove: newValue => model.value = roundValue(newValue),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v\n\n return roundValue(value)\n },\n )\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const [inputProps, _] = filterInputProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n <VInput\n class={[\n 'v-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? props.label\n ? (\n <VLabel\n id={ slotProps.id.value }\n class=\"v-slider__label\"\n text={ props.label }\n />\n ) : undefined\n }\n\n { slots.prepend?.(slotProps) }\n </>\n ) : undefined,\n default: ({ id, messagesId }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n aria-describedby={ messagesId.value }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSlider.mjs","names":["makeVInputProps","VInput","VLabel","VSliderThumb","VSliderTrack","makeFocusProps","useFocus","makeSliderProps","useSlider","useProxiedModel","computed","ref","genericComponent","useRender","VSlider","name","props","modelValue","type","Number","String","default","emits","value","v","setup","_ref","slots","thumbContainerRef","min","max","mousePressed","roundValue","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","readonly","handleSliderMouseUp","newValue","model","handleMouseMove","getActiveThumb","$el","undefined","parseFloat","isFocused","focus","blur","trackStop","inputProps","_","filterProps","hasPrepend","label","prepend","_createVNode","_mergeProps","disabled","slotProps","_Fragment","id","_ref2","messagesId","elevation"],"sources":["../../../src/components/VSlider/VSlider.tsx"],"sourcesContent":["// Styles\nimport './VSlider.sass'\n\n// Components\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeSliderProps, useSlider } from './slider'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VSliderSlots = VInputSlots & MakeSlots<{\n 'tick-label': []\n 'thumb-label': []\n}>\n\nexport const VSlider = genericComponent<VSliderSlots>()({\n name: 'VSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots }) {\n const thumbContainerRef = ref()\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleSliderMouseUp: newValue => model.value = roundValue(newValue),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleMouseMove: newValue => model.value = roundValue(newValue),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v\n\n return roundValue(value)\n },\n )\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const [inputProps, _] = VInput.filterProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n <VInput\n class={[\n 'v-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? props.label\n ? (\n <VLabel\n id={ slotProps.id.value }\n class=\"v-slider__label\"\n text={ props.label }\n />\n ) : undefined\n }\n\n { slots.prepend?.(slotProps) }\n </>\n ) : undefined,\n default: ({ id, messagesId }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n aria-describedby={ messagesId.value }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,eAAe,EAAEC,MAAM;AAAA,SACvBC,MAAM;AAAA,SACNC,YAAY;AAAA,SACZC,YAAY,8BAErB;AAAA,SACSC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,eAAe,EAAEC,SAAS;AAAA,SAC1BC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,GAAG,QAAQ,KAAK;AAAA,SAC1BC,gBAAgB,EAAEC,SAAS,gCAEpC;AASA,OAAO,MAAMC,OAAO,GAAGF,gBAAgB,EAAgB,CAAC;EACtDG,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAE;IACL,GAAGX,cAAc,EAAE;IACnB,GAAGE,eAAe,EAAE;IACpB,GAAGP,eAAe,EAAE;IAEpBiB,UAAU,EAAE;MACVC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;MACtBC,OAAO,EAAE;IACX;EACF,CAAC;EAEDC,KAAK,EAAE;IACL,gBAAgB,EAAGC,KAAc,IAAK,IAAI;IAC1C,mBAAmB,EAAGC,CAAS,IAAK;EACtC,CAAC;EAEDC,KAAKA,CAAET,KAAK,EAAAU,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,iBAAiB,GAAGjB,GAAG,EAAE;IAE/B,MAAM;MACJkB,GAAG;MACHC,GAAG;MACHC,YAAY;MACZC,UAAU;MACVC,iBAAiB;MACjBC,kBAAkB;MAClBC,iBAAiB;MACjBC,QAAQ;MACRC,SAAS;MACTC;IACF,CAAC,GAAG9B,SAAS,CAAC;MACZQ,KAAK;MACL;MACAuB,mBAAmB,EAAEC,QAAQ,IAAIC,KAAK,CAAClB,KAAK,GAAGS,UAAU,CAACQ,QAAQ,CAAC;MACnE;MACAE,eAAe,EAAEF,QAAQ,IAAIC,KAAK,CAAClB,KAAK,GAAGS,UAAU,CAACQ,QAAQ,CAAC;MAC/DG,cAAc,EAAEA,CAAA,KAAMf,iBAAiB,CAACL,KAAK,EAAEqB;IACjD,CAAC,CAAC;IAEF,MAAMH,KAAK,GAAGhC,eAAe,CAC3BO,KAAK,EACL,YAAY,EACZ6B,SAAS,EACTrB,CAAC,IAAI;MACH,MAAMD,KAAK,GAAG,OAAOC,CAAC,KAAK,QAAQ,GAAGsB,UAAU,CAACtB,CAAC,CAAC,GAAGA,CAAC,IAAI,IAAI,GAAGK,GAAG,CAACN,KAAK,GAAGC,CAAC;MAE/E,OAAOQ,UAAU,CAACT,KAAK,CAAC;IAC1B,CAAC,CACF;IAED,MAAM;MAAEwB,SAAS;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAG3C,QAAQ,CAACU,KAAK,CAAC;IAClD,MAAMkC,SAAS,GAAGxC,QAAQ,CAAC,MAAM0B,QAAQ,CAACK,KAAK,CAAClB,KAAK,CAAC,CAAC;IAEvDV,SAAS,CAAC,MAAM;MACd,MAAM,CAACsC,UAAU,EAAEC,CAAC,CAAC,GAAGnD,MAAM,CAACoD,WAAW,CAACrC,KAAK,CAAC;MACjD,MAAMsC,UAAU,GAAG,CAAC,EAAEtC,KAAK,CAACuC,KAAK,IAAI5B,KAAK,CAAC4B,KAAK,IAAI5B,KAAK,CAAC6B,OAAO,CAAC;MAElE,OAAAC,YAAA,CAAAxD,MAAA,EAAAyD,WAAA;QAAA,SAEW,CACL,UAAU,EACV;UACE,sBAAsB,EAAE,CAAC,CAAC/B,KAAK,CAAC,YAAY,CAAC,IAAIU,SAAS,CAACd,KAAK;UAChE,mBAAmB,EAAEwB,SAAS,CAACxB,KAAK;UACpC,mBAAmB,EAAEQ,YAAY,CAACR,KAAK;UACvC,oBAAoB,EAAEP,KAAK,CAAC2C;QAC9B,CAAC;MACF,GACIR,UAAU;QAAA,WACLJ,SAAS,CAACxB;MAAK;QAGvB,GAAGI,KAAK;QACR6B,OAAO,EAAEF,UAAU,GAAGM,SAAS,IAAAH,YAAA,CAAAI,SAAA,SAEzBlC,KAAK,CAAC4B,KAAK,GAAGK,SAAS,CAAC,IAAI5C,KAAK,CAACuC,KAAK,GAAAE,YAAA,CAAAvD,MAAA;UAAA,MAG9B0D,SAAS,CAACE,EAAE,CAACvC,KAAK;UAAA,SACjB,iBAAiB;UAAA,QAChBP,KAAK,CAACuC;QAAK,WAElBV,SAAS,EAGblB,KAAK,CAAC6B,OAAO,GAAGI,SAAS,CAAC,EAE/B,GAAGf,SAAS;QACbxB,OAAO,EAAE0C,KAAA;UAAA,IAAC;YAAED,EAAE;YAAEE;UAAW,CAAC,GAAAD,KAAA;UAAA,OAAAN,YAAA;YAAA,SAElB,qBAAqB;YAAA,eACb,CAACnB,QAAQ,CAACf,KAAK,GAAGU,iBAAiB,GAAGY,SAAS;YAAA,uBACvC,CAACP,QAAQ,CAACf,KAAK,GAAGW,kBAAkB,GAAGW;UAAS,IAAAY,YAAA;YAAA,MAG/DK,EAAE,CAACvC,KAAK;YAAA,QACNP,KAAK,CAACD,IAAI,IAAI+C,EAAE,CAACvC,KAAK;YAAA,YAClBP,KAAK,CAAC2C,QAAQ;YAAA,YACd3C,KAAK,CAACsB,QAAQ;YAAA,YAChB,IAAI;YAAA,SACLG,KAAK,CAAClB;UAAK,UAAAkC,YAAA,CAAArD,YAAA;YAAA,OAIb+B,iBAAiB;YAAA,SACf,CAAC;YAAA,QACFe,SAAS,CAAC3B;UAAK;YAEnB,YAAY,EAAEI,KAAK,CAAC,YAAY;UAAC,IAAA8B,YAAA,CAAAtD,YAAA;YAAA,OAI9ByB,iBAAiB;YAAA,oBACJoC,UAAU,CAACzC,KAAK;YAAA,WACzBwB,SAAS,CAACxB,KAAK;YAAA,OACnBM,GAAG,CAACN,KAAK;YAAA,OACTO,GAAG,CAACP,KAAK;YAAA,cACFkB,KAAK,CAAClB,KAAK;YAAA,uBACFC,CAAC,IAAKiB,KAAK,CAAClB,KAAK,GAAGC,CAAE;YAAA,YACjC0B,SAAS,CAAC3B,KAAK;YAAA,aACdP,KAAK,CAACiD,SAAS;YAAA,WACjBjB,KAAK;YAAA,UACNC;UAAI;YAEV,aAAa,EAAEtB,KAAK,CAAC,aAAa;UAAC;QAAA;MAG3C;IAIT,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}