@vuetify/nightly 3.4.0-alpha.1-dev.2023-10-06 → 3.4.0-alpha.1-dev.2023-10-21

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 (105) hide show
  1. package/CHANGELOG.md +7 -2
  2. package/dist/json/attributes.json +222 -6
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +4 -4
  5. package/dist/json/tags.json +60 -3
  6. package/dist/json/web-types.json +977 -80
  7. package/dist/vuetify-labs.css +5351 -5349
  8. package/dist/vuetify-labs.d.ts +273 -67
  9. package/dist/vuetify-labs.esm.js +101 -32
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +101 -32
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +5362 -5364
  14. package/dist/vuetify.d.ts +10 -8
  15. package/dist/vuetify.esm.js +35 -8
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +35 -8
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +797 -794
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.mts +2 -0
  23. package/lib/blueprints/md1.d.mts +2 -0
  24. package/lib/blueprints/md2.d.mts +2 -0
  25. package/lib/blueprints/md3.d.mts +2 -0
  26. package/lib/components/VAutocomplete/VAutocomplete.css +8 -10
  27. package/lib/components/VAutocomplete/VAutocomplete.sass +12 -11
  28. package/lib/components/VAutocomplete/_variables.scss +4 -2
  29. package/lib/components/VCard/VCard.css +3 -1
  30. package/lib/components/VCard/VCard.sass +2 -1
  31. package/lib/components/VCard/_variables.scss +7 -5
  32. package/lib/components/VChip/VChip.css +67 -67
  33. package/lib/components/VChip/_variables.scss +1 -1
  34. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -0
  35. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  36. package/lib/components/VCombobox/VCombobox.css +7 -9
  37. package/lib/components/VCombobox/VCombobox.mjs +3 -3
  38. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  39. package/lib/components/VCombobox/VCombobox.sass +10 -9
  40. package/lib/components/VCombobox/_variables.scss +1 -0
  41. package/lib/components/VField/VField.css +35 -16
  42. package/lib/components/VField/VField.sass +14 -2
  43. package/lib/components/VField/_variables.scss +6 -3
  44. package/lib/components/VFileInput/VFileInput.css +6 -4
  45. package/lib/components/VFileInput/VFileInput.mjs +2 -1
  46. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  47. package/lib/components/VFileInput/VFileInput.sass +10 -4
  48. package/lib/components/VInput/VInput.css +22 -16
  49. package/lib/components/VInput/VInput.sass +17 -6
  50. package/lib/components/VInput/_variables.scss +3 -3
  51. package/lib/components/VList/VListItem.css +0 -4
  52. package/lib/components/VList/VListItem.sass +0 -5
  53. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +5 -0
  54. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +4 -0
  55. package/lib/components/VSelect/VSelect.css +0 -4
  56. package/lib/components/VSelect/VSelect.sass +0 -3
  57. package/lib/components/VTable/VTable.css +3 -0
  58. package/lib/components/VTable/VTable.sass +3 -0
  59. package/lib/components/VTextField/VTextField.css +1 -28
  60. package/lib/components/VTextField/VTextField.mjs +1 -1
  61. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  62. package/lib/components/VTextField/VTextField.sass +0 -26
  63. package/lib/components/VTextarea/VTextarea.mjs +1 -1
  64. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  65. package/lib/components/VToolbar/_variables.scss +6 -3
  66. package/lib/entry-bundler.mjs +1 -1
  67. package/lib/framework.mjs +1 -1
  68. package/lib/index.d.mts +10 -8
  69. package/lib/labs/VDataTable/VDataTable.css +0 -6
  70. package/lib/labs/VDataTable/VDataTable.sass +0 -1
  71. package/lib/labs/VDataTable/VDataTableFooter.mjs +12 -4
  72. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  73. package/lib/labs/VDataTable/index.d.mts +48 -48
  74. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +14 -2
  75. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  76. package/lib/labs/VDatePicker/index.d.mts +18 -0
  77. package/lib/labs/VDateRangePicker/index.d.mts +12 -0
  78. package/lib/labs/VOtpInput/VOtpInput.css +3 -2
  79. package/lib/labs/VOtpInput/VOtpInput.mjs +7 -4
  80. package/lib/labs/VOtpInput/VOtpInput.mjs.map +1 -1
  81. package/lib/labs/VOtpInput/VOtpInput.sass +9 -8
  82. package/lib/labs/VOtpInput/_variables.scss +9 -0
  83. package/lib/labs/VStepper/VStepper.css +9 -0
  84. package/lib/labs/VStepper/VStepper.mjs +1 -2
  85. package/lib/labs/VStepper/VStepper.mjs.map +1 -1
  86. package/lib/labs/VStepper/VStepper.sass +17 -8
  87. package/lib/labs/VStepper/VStepperActions.mjs +34 -13
  88. package/lib/labs/VStepper/VStepperActions.mjs.map +1 -1
  89. package/lib/labs/VStepper/VStepperItem.mjs.map +1 -1
  90. package/lib/labs/VStepper/VStepperItem.sass +15 -15
  91. package/lib/labs/VStepper/_variables.scss +24 -1
  92. package/lib/labs/VStepper/index.d.mts +205 -19
  93. package/lib/labs/components.d.mts +271 -67
  94. package/lib/labs/date/DateAdapter.mjs.map +1 -1
  95. package/lib/labs/date/adapters/vuetify.d.mts +4 -0
  96. package/lib/labs/date/adapters/vuetify.mjs +18 -1
  97. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  98. package/lib/labs/date/index.d.mts +4 -0
  99. package/lib/locale/de.mjs +20 -20
  100. package/lib/locale/de.mjs.map +1 -1
  101. package/lib/locale/nl.mjs +22 -22
  102. package/lib/locale/nl.mjs.map +1 -1
  103. package/lib/util/helpers.mjs +4 -0
  104. package/lib/util/helpers.mjs.map +1 -1
  105. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VCombobox.mjs","names":["VCheckboxBtn","VChip","VDefaultsProvider","VIcon","VList","VListItem","VMenu","makeSelectProps","VTextField","makeVTextFieldProps","VVirtualScroll","useScrolling","useTextColor","makeFilterProps","useFilter","useForm","forwardRefs","transformItem","useItems","useLocale","useProxiedModel","makeTransitionProps","computed","mergeProps","nextTick","ref","shallowRef","watch","genericComponent","IN_BROWSER","noop","omit","propsFactory","useRender","wrapInArray","highlightResult","text","matches","length","Array","isArray","Error","_createVNode","_Fragment","substr","makeVComboboxProps","autoSelectFirst","type","Boolean","String","delimiters","filterKeys","hideNoData","returnObject","modelValue","role","transition","VCombobox","name","props","emits","focused","val","setup","_ref","emit","slots","t","vTextFieldRef","isFocused","isPristine","listHasFocus","vMenuRef","vVirtualScrollRef","_menu","menu","get","value","set","v","ΨopenChildren","selectionIndex","cleared","color","label","closeText","openText","items","transformIn","transformOut","textColorClasses","textColorStyles","model","transformed","multiple","form","_search","title","search","values","split","RegExp","join","forEach","trim","select","filteredItems","getMatches","displayItems","hideSelected","filter","filteredItem","some","s","selectedValues","map","selection","highlightFirst","selectFirst","menuDisabled","readonly","isReadonly","listRef","onListScroll","onListKeydown","onClear","e","openOnClear","onMousedownControl","onMousedownMenuIcon","preventDefault","stopPropagation","onKeydown","selectionStart","includes","key","focus","originalSelectionIndex","selectedItem","disabled","prev","setSelectionRange","next","onAfterLeave","item","index","findIndex","valueComparator","splice","onFocusin","setTimeout","onFocusout","onUpdateModelValue","oldVal","_ref2","window","requestAnimationFrame","scrollToIndex","hasChips","chips","chip","hasList","isDirty","textFieldProps","filterProps","_mergeProps","$event","externalValue","class","style","undefined","placeholder","default","eager","menuProps","itemColor","noDataText","_ref3","itemRef","itemProps","active","onClick","prepend","_ref4","isSelected","prependIcon","onChipClose","slotProps","onMousedown","closableChips","closable","size","_createTextVNode","append-inner","_len","arguments","args","_key","menuIcon"],"sources":["../../../src/components/VCombobox/VCombobox.tsx"],"sourcesContent":["// Styles\nimport './VCombobox.sass'\n\n// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VTextField } from '@/components/VTextField'\nimport { makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from '../VSelect/useScrolling'\nimport { useTextColor } from '@/composables/color'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { transformItem, useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, IN_BROWSER, noop, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { FilterMatch } from '@/composables/filter'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps } from '@/util'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-combobox__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-combobox__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-combobox__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = string | ([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> | null\n\nexport const makeVComboboxProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String] as PropType<boolean | 'exact'>,\n },\n delimiters: Array as PropType<readonly string[]>,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps({ hideNoData: true, returnObject: true }),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n}, 'VCombobox')\n\nexport const VCombobox = genericComponent<new <\n T extends readonly any[],\n Item = T extends readonly (infer U)[] ? U : never,\n ReturnObject extends boolean = true,\n Multiple extends boolean = false,\n V extends Value<Item, ReturnObject, Multiple> = Value<Item, ReturnObject, Multiple>\n>(\n props: {\n items?: T\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (val: V) => void\n },\n slots: Omit<VInputSlots & VFieldSlots, 'default'> & {\n item: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n chip: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n selection: { item: ListItem<Item>, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VCombobox',\n\n props: makeVComboboxProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n 'update:search': (val: string) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = shallowRef(false)\n const isPristine = shallowRef(true)\n const listHasFocus = shallowRef(false)\n const vMenuRef = ref<VMenu>()\n const vVirtualScrollRef = ref<VVirtualScroll>()\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 selectionIndex = shallowRef(-1)\n let cleared = false\n const color = computed(() => vTextFieldRef.value?.color)\n const label = computed(() => menu.value ? props.closeText : props.openText)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(color)\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 _search = shallowRef(!props.multiple ? model.value[0]?.title ?? '' : '')\n const search = computed<string>({\n get: () => {\n return _search.value\n },\n set: val => {\n _search.value = val\n if (!props.multiple) {\n model.value = [transformItem(props, val)]\n }\n\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`))\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim()\n if (v) select(transformItem(props, v))\n })\n _search.value = ''\n }\n }\n\n if (!val) selectionIndex.value = -1\n\n isPristine.value = !val\n },\n })\n watch(_search, value => {\n if (cleared) {\n // wait for clear to finish, VTextField sets _search to null\n // then search computed triggers and updates _search to ''\n nextTick(() => (cleared = false))\n } else if (isFocused.value && !menu.value) {\n menu.value = true\n }\n\n emit('update:search', value)\n })\n watch(model, value => {\n if (!props.multiple) {\n _search.value = value[0]?.title ?? ''\n }\n })\n\n const { filteredItems, getMatches } = useFilter(props, items, () => isPristine.value ? '' : search.value)\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const selectedValues = computed(() => model.value.map(selection => selection.value))\n\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true ||\n (props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title)\n return selectFirst &&\n displayItems.value.length > 0 &&\n !isPristine.value &&\n !listHasFocus.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !items.value.length) ||\n props.readonly || form?.isReadonly.value\n ))\n\n const listRef = ref<VList>()\n const { onListScroll, onListKeydown } = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n cleared = true\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = true\n }\n function onMousedownMenuIcon (e: MouseEvent) {\n if (menuDisabled.value) return\n\n if (isFocused.value) {\n e.preventDefault()\n e.stopPropagation()\n }\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly || form?.isReadonly.value) return\n\n const selectionStart = vTextFieldRef.value.selectionStart\n const length = model.value.length\n\n if (\n selectionIndex.value > -1 ||\n ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {\n select(filteredItems.value[0])\n }\n\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (!props.multiple) return\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (selectionIndex.value < 0) {\n if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n\n return\n }\n\n const originalSelectionIndex = selectionIndex.value\n const selectedItem = model.value[selectionIndex.value]\n if (selectedItem && !selectedItem.props.disabled) select(selectedItem)\n\n selectionIndex.value = originalSelectionIndex >= length - 1 ? (length - 2) : originalSelectionIndex\n }\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (model.value[prev]) {\n selectionIndex.value = prev\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length)\n }\n }\n\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (model.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(0, 0)\n }\n }\n\n if (e.key === 'Enter' && search.value) {\n select(transformItem(props, search.value))\n search.value = ''\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n isPristine.value = true\n vTextFieldRef.value?.focus()\n }\n }\n function select (item: ListItem) {\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, 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\n search.value = ''\n } else {\n model.value = [item]\n _search.value = item.title\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false\n isPristine.value = true\n })\n }\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n setTimeout(() => {\n listHasFocus.value = true\n })\n }\n function onFocusout (e: FocusEvent) {\n listHasFocus.value = false\n }\n function onUpdateModelValue (v: any) {\n if (v == null || (v === '' && !props.multiple)) model.value = []\n }\n\n watch(filteredItems, val => {\n if (!val.length && props.hideNoData) menu.value = false\n })\n\n watch(isFocused, (val, oldVal) => {\n if (val || val === oldVal) return\n\n selectionIndex.value = -1\n menu.value = false\n\n if (\n highlightFirst.value &&\n !listHasFocus.value &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(displayItems.value[0])\n } else if (props.multiple && search.value) {\n model.value = [...model.value, transformItem(props, search.value)]\n search.value = ''\n }\n })\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => props.valueComparator(s.value, item.value))\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const [textFieldProps] = VTextField.filterProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n v-model={ search.value }\n onUpdate:modelValue={ onUpdateModelValue }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n counterValue={ props.multiple ? model.value.length : search.value.length }\n dirty={ isDirty }\n class={[\n 'v-combobox',\n {\n 'v-combobox--active-menu': menu.value,\n 'v-combobox--chips': !!props.chips,\n 'v-combobox--selection-slot': !!slots.selection,\n 'v-combobox--selecting-index': selectionIndex.value > -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n props.class,\n ]}\n style={ props.style }\n readonly={ props.readonly }\n placeholder={ isDirty ? undefined : props.placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\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-combobox__content\"\n disabled={ menuDisabled.value }\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selectedValues.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onScrollPassive={ onListScroll }\n tabindex=\"-1\"\n color={ props.itemColor ?? props.color }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n ))}\n\n <VVirtualScroll ref={ vVirtualScrollRef } renderless items={ displayItems.value }>\n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: (highlightFirst.value && index === 0) ? true : undefined,\n onClick: () => select(item),\n })\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n <VListItem { ...itemProps }>\n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n <VCheckboxBtn\n key={ item.value }\n modelValue={ isSelected }\n ripple={ false }\n tabindex=\"-1\"\n />\n ) : undefined }\n\n { item.props.prependIcon && (\n <VIcon icon={ item.props.prependIcon } />\n )}\n </>\n ),\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )\n }}\n </VVirtualScroll>\n\n { slots['append-item']?.() }\n </VList>\n )}\n </VMenu>\n\n { model.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 onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div\n key={ item.value }\n class={[\n 'v-combobox__selection',\n index === selectionIndex.value && [\n 'v-combobox__selection--selected',\n textColorClasses.value,\n ],\n ]}\n style={ index === selectionIndex.value ? textColorStyles.value : {} }\n >\n { hasChips ? (\n !slots.chip ? (\n <VChip\n key=\"chip\"\n closable={ props.closableChips }\n size=\"small\"\n text={ item.title }\n disabled={ item.props.disabled }\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-combobox__selection-text\">\n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n <span class=\"v-combobox__selection-comma\">,</span>\n )}\n </span>\n )\n )}\n </div>\n )\n })}\n </>\n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { (!props.hideNoData || props.items.length) && props.menuIcon ? (\n <VIcon\n class=\"v-combobox__menu-icon\"\n icon={ props.menuIcon }\n onMousedown={ onMousedownMenuIcon }\n onClick={ noop }\n aria-label={ t(label.value) }\n title={ t(label.value) }\n />\n ) : undefined }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n selectionIndex,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VCombobox = InstanceType<typeof VCombobox>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VCombobox.mjs","names":["VCheckboxBtn","VChip","VDefaultsProvider","VIcon","VList","VListItem","VMenu","makeSelectProps","VTextField","makeVTextFieldProps","VVirtualScroll","useScrolling","useTextColor","makeFilterProps","useFilter","useForm","forwardRefs","transformItem","useItems","useLocale","useProxiedModel","makeTransitionProps","computed","mergeProps","nextTick","ref","shallowRef","watch","genericComponent","IN_BROWSER","isComposingIgnoreKey","noop","omit","propsFactory","useRender","wrapInArray","highlightResult","text","matches","length","Array","isArray","Error","_createVNode","_Fragment","substr","makeVComboboxProps","autoSelectFirst","type","Boolean","String","delimiters","filterKeys","hideNoData","returnObject","modelValue","role","transition","VCombobox","name","props","emits","focused","val","setup","_ref","emit","slots","t","vTextFieldRef","isFocused","isPristine","listHasFocus","vMenuRef","vVirtualScrollRef","_menu","menu","get","value","set","v","ΨopenChildren","selectionIndex","cleared","color","label","closeText","openText","items","transformIn","transformOut","textColorClasses","textColorStyles","model","transformed","multiple","form","_search","title","search","values","split","RegExp","join","forEach","trim","select","filteredItems","getMatches","displayItems","hideSelected","filter","filteredItem","some","s","selectedValues","map","selection","highlightFirst","selectFirst","menuDisabled","readonly","isReadonly","listRef","onListScroll","onListKeydown","onClear","e","openOnClear","onMousedownControl","onMousedownMenuIcon","preventDefault","stopPropagation","onKeydown","selectionStart","includes","key","focus","originalSelectionIndex","selectedItem","disabled","prev","setSelectionRange","next","onAfterLeave","item","index","findIndex","valueComparator","splice","onFocusin","setTimeout","onFocusout","onUpdateModelValue","oldVal","_ref2","window","requestAnimationFrame","scrollToIndex","hasChips","chips","chip","hasList","isDirty","textFieldProps","filterProps","_mergeProps","$event","externalValue","class","style","undefined","placeholder","default","eager","menuProps","itemColor","noDataText","_ref3","itemRef","itemProps","active","onClick","prepend","_ref4","isSelected","prependIcon","onChipClose","slotProps","onMousedown","closableChips","closable","size","_createTextVNode","append-inner","_len","arguments","args","_key","menuIcon"],"sources":["../../../src/components/VCombobox/VCombobox.tsx"],"sourcesContent":["// Styles\nimport './VCombobox.sass'\n\n// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VTextField } from '@/components/VTextField'\nimport { makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from '../VSelect/useScrolling'\nimport { useTextColor } from '@/composables/color'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { transformItem, useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, IN_BROWSER, isComposingIgnoreKey, noop, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { FilterMatch } from '@/composables/filter'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps } from '@/util'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-combobox__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-combobox__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-combobox__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = string | ([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> | null\n\nexport const makeVComboboxProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String] as PropType<boolean | 'exact'>,\n },\n delimiters: Array as PropType<readonly string[]>,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps({ hideNoData: true, returnObject: true }),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n}, 'VCombobox')\n\nexport const VCombobox = genericComponent<new <\n T extends readonly any[],\n Item = T extends readonly (infer U)[] ? U : never,\n ReturnObject extends boolean = true,\n Multiple extends boolean = false,\n V extends Value<Item, ReturnObject, Multiple> = Value<Item, ReturnObject, Multiple>\n>(\n props: {\n items?: T\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (val: V) => void\n },\n slots: Omit<VInputSlots & VFieldSlots, 'default'> & {\n item: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n chip: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n selection: { item: ListItem<Item>, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VCombobox',\n\n props: makeVComboboxProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n 'update:search': (val: string) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = shallowRef(false)\n const isPristine = shallowRef(true)\n const listHasFocus = shallowRef(false)\n const vMenuRef = ref<VMenu>()\n const vVirtualScrollRef = ref<VVirtualScroll>()\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 selectionIndex = shallowRef(-1)\n let cleared = false\n const color = computed(() => vTextFieldRef.value?.color)\n const label = computed(() => menu.value ? props.closeText : props.openText)\n const { items, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(color)\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 _search = shallowRef(!props.multiple ? model.value[0]?.title ?? '' : '')\n const search = computed<string>({\n get: () => {\n return _search.value\n },\n set: (val: string | null) => {\n _search.value = val ?? ''\n if (!props.multiple) {\n model.value = [transformItem(props, val)]\n }\n\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`))\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim()\n if (v) select(transformItem(props, v))\n })\n _search.value = ''\n }\n }\n\n if (!val) selectionIndex.value = -1\n\n isPristine.value = !val\n },\n })\n watch(_search, value => {\n if (cleared) {\n // wait for clear to finish, VTextField sets _search to null\n // then search computed triggers and updates _search to ''\n nextTick(() => (cleared = false))\n } else if (isFocused.value && !menu.value) {\n menu.value = true\n }\n\n emit('update:search', value)\n })\n watch(model, value => {\n if (!props.multiple) {\n _search.value = value[0]?.title ?? ''\n }\n })\n\n const { filteredItems, getMatches } = useFilter(props, items, () => isPristine.value ? '' : search.value)\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value))\n }\n return filteredItems.value\n })\n\n const selectedValues = computed(() => model.value.map(selection => selection.value))\n\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true ||\n (props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title)\n return selectFirst &&\n displayItems.value.length > 0 &&\n !isPristine.value &&\n !listHasFocus.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !items.value.length) ||\n props.readonly || form?.isReadonly.value\n ))\n\n const listRef = ref<VList>()\n const { onListScroll, onListKeydown } = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n cleared = true\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = true\n }\n function onMousedownMenuIcon (e: MouseEvent) {\n if (menuDisabled.value) return\n\n if (isFocused.value) {\n e.preventDefault()\n e.stopPropagation()\n }\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return\n\n const selectionStart = vTextFieldRef.value.selectionStart\n const length = model.value.length\n\n if (\n selectionIndex.value > -1 ||\n ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {\n select(filteredItems.value[0])\n }\n\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next')\n }\n\n if (!props.multiple) return\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (selectionIndex.value < 0) {\n if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n\n return\n }\n\n const originalSelectionIndex = selectionIndex.value\n const selectedItem = model.value[selectionIndex.value]\n if (selectedItem && !selectedItem.props.disabled) select(selectedItem)\n\n selectionIndex.value = originalSelectionIndex >= length - 1 ? (length - 2) : originalSelectionIndex\n }\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (model.value[prev]) {\n selectionIndex.value = prev\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length)\n }\n }\n\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (model.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(0, 0)\n }\n }\n\n if (e.key === 'Enter' && search.value) {\n select(transformItem(props, search.value))\n search.value = ''\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n isPristine.value = true\n vTextFieldRef.value?.focus()\n }\n }\n function select (item: ListItem) {\n if (props.multiple) {\n const index = model.value.findIndex(selection => props.valueComparator(selection.value, 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\n search.value = ''\n } else {\n model.value = [item]\n _search.value = item.title\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false\n isPristine.value = true\n })\n }\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n setTimeout(() => {\n listHasFocus.value = true\n })\n }\n function onFocusout (e: FocusEvent) {\n listHasFocus.value = false\n }\n function onUpdateModelValue (v: any) {\n if (v == null || (v === '' && !props.multiple)) model.value = []\n }\n\n watch(filteredItems, val => {\n if (!val.length && props.hideNoData) menu.value = false\n })\n\n watch(isFocused, (val, oldVal) => {\n if (val || val === oldVal) return\n\n selectionIndex.value = -1\n menu.value = false\n\n if (\n highlightFirst.value &&\n !listHasFocus.value &&\n !model.value.some(({ value }) => value === displayItems.value[0].value)\n ) {\n select(displayItems.value[0])\n } else if (props.multiple && search.value) {\n model.value = [...model.value, transformItem(props, search.value)]\n search.value = ''\n }\n })\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => props.valueComparator(s.value, item.value))\n )\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const [textFieldProps] = VTextField.filterProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n v-model={ search.value }\n onUpdate:modelValue={ onUpdateModelValue }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n counterValue={ props.multiple ? model.value.length : search.value.length }\n dirty={ isDirty }\n class={[\n 'v-combobox',\n {\n 'v-combobox--active-menu': menu.value,\n 'v-combobox--chips': !!props.chips,\n 'v-combobox--selection-slot': !!slots.selection,\n 'v-combobox--selecting-index': selectionIndex.value > -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n props.class,\n ]}\n style={ props.style }\n readonly={ props.readonly }\n placeholder={ isDirty ? undefined : props.placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\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-combobox__content\"\n disabled={ menuDisabled.value }\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selectedValues.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onScrollPassive={ onListScroll }\n tabindex=\"-1\"\n color={ props.itemColor ?? props.color }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n ))}\n\n <VVirtualScroll ref={ vVirtualScrollRef } renderless items={ displayItems.value }>\n { ({ item, index, itemRef }) => {\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: index,\n active: (highlightFirst.value && index === 0) ? true : undefined,\n onClick: () => select(item),\n })\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n <VListItem { ...itemProps }>\n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n <VCheckboxBtn\n key={ item.value }\n modelValue={ isSelected }\n ripple={ false }\n tabindex=\"-1\"\n />\n ) : undefined }\n\n { item.props.prependIcon && (\n <VIcon icon={ item.props.prependIcon } />\n )}\n </>\n ),\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )\n }}\n </VVirtualScroll>\n\n { slots['append-item']?.() }\n </VList>\n )}\n </VMenu>\n\n { model.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 onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div\n key={ item.value }\n class={[\n 'v-combobox__selection',\n index === selectionIndex.value && [\n 'v-combobox__selection--selected',\n textColorClasses.value,\n ],\n ]}\n style={ index === selectionIndex.value ? textColorStyles.value : {} }\n >\n { hasChips ? (\n !slots.chip ? (\n <VChip\n key=\"chip\"\n closable={ props.closableChips }\n size=\"small\"\n text={ item.title }\n disabled={ item.props.disabled }\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-combobox__selection-text\">\n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n <span class=\"v-combobox__selection-comma\">,</span>\n )}\n </span>\n )\n )}\n </div>\n )\n })}\n </>\n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { (!props.hideNoData || props.items.length) && props.menuIcon ? (\n <VIcon\n class=\"v-combobox__menu-icon\"\n icon={ props.menuIcon }\n onMousedown={ onMousedownMenuIcon }\n onClick={ noop }\n aria-label={ t(label.value) }\n title={ t(label.value) }\n />\n ) : undefined }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n selectionIndex,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VCombobox = InstanceType<typeof VCombobox>\n"],"mappings":"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"}
@@ -15,7 +15,6 @@
15
15
  .v-field
16
16
  .v-field__input
17
17
  > input
18
- align-self: flex-start
19
18
  flex: 1 1
20
19
 
21
20
  .v-field
@@ -48,17 +47,24 @@
48
47
  &__selection
49
48
  display: inline-flex
50
49
  align-items: center
50
+ height: calc($input-font-size * $input-line-height)
51
51
  letter-spacing: inherit
52
52
  line-height: inherit
53
53
  max-width: 90%
54
54
 
55
55
  &__selection
56
- margin-top: var(--v-input-chips-margin-top)
57
- margin-bottom: var(--v-input-chips-margin-bottom)
58
-
59
56
  &:first-child
60
57
  margin-inline-start: 0
61
58
 
59
+ &--chips.v-input--density-compact
60
+ .v-field--variant-solo,
61
+ .v-field--variant-solo-inverted,
62
+ .v-field--variant-filled,
63
+ .v-field--variant-solo-filled
64
+ .v-label.v-field-label
65
+ &--floating
66
+ top: 0px
67
+
62
68
  &--selecting-index
63
69
  .v-combobox__selection
64
70
  opacity: var(--v-medium-emphasis-opacity)
@@ -78,11 +84,6 @@
78
84
  width: 100%
79
85
  padding-inline: inherit
80
86
 
81
- .v-field--variant-outlined
82
- input
83
- top: 50%
84
- transform: translateY(calc(-50% - (var(--v-input-chips-margin-top) + var(--v-input-chips-margin-bottom))/2))
85
-
86
87
  .v-field--active
87
88
  input
88
89
  transition: none
@@ -1,3 +1,4 @@
1
+ @forward '../VInput/variables';
1
2
  @use '../../styles/settings';
2
3
 
3
4
  // Defaults
@@ -13,15 +13,18 @@
13
13
  position: relative;
14
14
  --v-field-padding-start: 16px;
15
15
  --v-field-padding-end: 16px;
16
- --v-field-padding-top: 10px;
17
- --v-field-padding-bottom: 5px;
18
- --v-field-input-padding-top: calc(var(--v-field-padding-top, 10px) + var(--v-input-padding-top, 0));
19
- --v-field-input-padding-bottom: var(--v-field-padding-bottom, 5px);
16
+ --v-field-padding-top: 8px;
17
+ --v-field-padding-bottom: 4px;
18
+ --v-field-input-padding-top: calc(var(--v-field-padding-top, 8px) + var(--v-input-padding-top, 0));
19
+ --v-field-input-padding-bottom: var(--v-field-padding-bottom, 4px);
20
20
  }
21
21
  .v-field--disabled {
22
22
  opacity: var(--v-disabled-opacity);
23
23
  pointer-events: none;
24
24
  }
25
+ .v-field .v-chip {
26
+ --v-chip-height: 24px;
27
+ }
25
28
 
26
29
  /* endregion */
27
30
  /* region MODIFIERS */
@@ -52,12 +55,12 @@
52
55
  }
53
56
  .v-input--density-default .v-field--variant-solo, .v-input--density-default .v-field--variant-solo-inverted, .v-input--density-default .v-field--variant-solo-filled, .v-input--density-default .v-field--variant-filled {
54
57
  --v-input-control-height: 56px;
55
- --v-field-padding-bottom: 5px;
58
+ --v-field-padding-bottom: 4px;
56
59
  }
57
60
 
58
61
  .v-input--density-comfortable .v-field--variant-solo, .v-input--density-comfortable .v-field--variant-solo-inverted, .v-input--density-comfortable .v-field--variant-solo-filled, .v-input--density-comfortable .v-field--variant-filled {
59
62
  --v-input-control-height: 48px;
60
- --v-field-padding-bottom: 1px;
63
+ --v-field-padding-bottom: 0px;
61
64
  }
62
65
 
63
66
  .v-input--density-compact .v-field--variant-solo, .v-input--density-compact .v-field--variant-solo-inverted, .v-input--density-compact .v-field--variant-solo-filled, .v-input--density-compact .v-field--variant-filled {
@@ -69,15 +72,15 @@
69
72
  --v-field-padding-top: 0px;
70
73
  }
71
74
  .v-input--density-default .v-field--variant-outlined, .v-input--density-default .v-field--single-line, .v-input--density-default .v-field--no-label {
72
- --v-field-padding-bottom: 15px;
75
+ --v-field-padding-bottom: 16px;
73
76
  }
74
77
 
75
78
  .v-input--density-comfortable .v-field--variant-outlined, .v-input--density-comfortable .v-field--single-line, .v-input--density-comfortable .v-field--no-label {
76
- --v-field-padding-bottom: 11px;
79
+ --v-field-padding-bottom: 12px;
77
80
  }
78
81
 
79
82
  .v-input--density-compact .v-field--variant-outlined, .v-input--density-compact .v-field--single-line, .v-input--density-compact .v-field--no-label {
80
- --v-field-padding-bottom: 7px;
83
+ --v-field-padding-bottom: 8px;
81
84
  }
82
85
 
83
86
  .v-field--variant-plain, .v-field--variant-underlined {
@@ -87,20 +90,22 @@
87
90
  .v-field--variant-plain.v-field, .v-field--variant-underlined.v-field {
88
91
  --v-field-padding-start: 0px;
89
92
  --v-field-padding-end: 0px;
90
- --v-field-padding-top: var(--v-field-padding-top--plain-underlined, 6px);
91
93
  }
92
94
  .v-input--density-default .v-field--variant-plain, .v-input--density-default .v-field--variant-underlined {
93
95
  --v-input-control-height: 48px;
94
- --v-field-padding-bottom: 5px;
96
+ --v-field-padding-top: 4px;
97
+ --v-field-padding-bottom: 4px;
95
98
  }
96
99
 
97
100
  .v-input--density-comfortable .v-field--variant-plain, .v-input--density-comfortable .v-field--variant-underlined {
98
101
  --v-input-control-height: 40px;
99
- --v-field-padding-bottom: 1px;
102
+ --v-field-padding-top: 2px;
103
+ --v-field-padding-bottom: 0px;
100
104
  }
101
105
 
102
106
  .v-input--density-compact .v-field--variant-plain, .v-input--density-compact .v-field--variant-underlined {
103
107
  --v-input-control-height: 32px;
108
+ --v-field-padding-top: 0px;
104
109
  --v-field-padding-bottom: 0px;
105
110
  }
106
111
 
@@ -120,12 +125,14 @@
120
125
  /* endregion */
121
126
  /* region ELEMENTS */
122
127
  .v-field__input {
128
+ align-items: center;
123
129
  color: inherit;
130
+ column-gap: 2px;
124
131
  display: flex;
125
132
  flex-wrap: wrap;
126
133
  letter-spacing: 0.009375em;
127
134
  opacity: var(--v-high-emphasis-opacity);
128
- min-height: max(var(--v-input-control-height, 56px), 1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom) + var(--v-input-chips-margin-bottom) + 2px);
135
+ min-height: max(var(--v-input-control-height, 56px), 1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));
129
136
  min-width: 0;
130
137
  padding-inline: var(--v-field-padding-start) var(--v-field-padding-end);
131
138
  padding-top: var(--v-field-input-padding-top);
@@ -133,6 +140,18 @@
133
140
  position: relative;
134
141
  width: 100%;
135
142
  }
143
+ .v-input--density-default .v-field__input {
144
+ row-gap: 8px;
145
+ }
146
+
147
+ .v-input--density-comfortable .v-field__input {
148
+ row-gap: 6px;
149
+ }
150
+
151
+ .v-input--density-compact .v-field__input {
152
+ row-gap: 4px;
153
+ }
154
+
136
155
  .v-field__input input {
137
156
  letter-spacing: inherit;
138
157
  }
@@ -179,7 +198,7 @@ textarea.v-field__input::placeholder {
179
198
  .v-field__prepend-inner {
180
199
  display: flex;
181
200
  align-items: flex-start;
182
- padding-top: var(--v-input-padding-top, 10px);
201
+ padding-top: var(--v-input-padding-top, 8px);
183
202
  }
184
203
  .v-field--center-affix .v-field__append-inner,
185
204
  .v-field--center-affix .v-field__clearable,
@@ -195,8 +214,8 @@ textarea.v-field__input::placeholder {
195
214
  .v-field.v-field--variant-plain .v-field__clearable,
196
215
  .v-field.v-field--variant-plain .v-field__prepend-inner {
197
216
  align-items: flex-start;
198
- padding-top: calc(var(--v-field-padding-top, 10px) + var(--v-input-padding-top, 0));
199
- padding-bottom: var(--v-field-padding-bottom, 5px);
217
+ padding-top: calc(var(--v-field-padding-top, 8px) + var(--v-input-padding-top, 0));
218
+ padding-bottom: var(--v-field-padding-bottom, 4px);
200
219
  }
201
220
 
202
221
  .v-field--focused .v-field__prepend-inner,
@@ -30,6 +30,9 @@
30
30
  --v-field-input-padding-top: #{$field-input-padding-top}
31
31
  --v-field-input-padding-bottom: #{$field-input-padding-bottom}
32
32
 
33
+ .v-chip
34
+ --v-chip-height: #{$field-chip-height}
35
+
33
36
  /* endregion */
34
37
  /* region MODIFIERS */
35
38
  .v-field
@@ -82,7 +85,7 @@
82
85
  @at-root
83
86
  @include tools.density('v-input', $input-density) using ($modifier)
84
87
  @at-root #{selector.nest(&, $root)}
85
- --v-field-padding-bottom: #{15px + $modifier * .5}
88
+ --v-field-padding-bottom: #{16px + $modifier * .5}
86
89
 
87
90
  &--variant-plain,
88
91
  &--variant-underlined
@@ -93,12 +96,12 @@
93
96
  &.v-field
94
97
  --v-field-padding-start: 0px
95
98
  --v-field-padding-end: 0px
96
- --v-field-padding-top: var(--v-field-padding-top--plain-underlined, 6px)
97
99
 
98
100
  @at-root
99
101
  @include tools.density('v-input', $input-density) using ($modifier)
100
102
  @at-root #{selector.nest(&, $root)}
101
103
  --v-input-control-height: #{$field-control-underlined-height + $modifier}
104
+ --v-field-padding-top: #{math.max(0px, 4px + $modifier * .25)}
102
105
  --v-field-padding-bottom: #{math.max(0px, $field-control-padding-bottom + $modifier * .5)}
103
106
 
104
107
  &--flat
@@ -118,7 +121,9 @@
118
121
  /* endregion */
119
122
  /* region ELEMENTS */
120
123
  .v-field__input
124
+ align-items: center
121
125
  color: inherit
126
+ column-gap: $field-input-column-gap
122
127
  display: flex
123
128
  flex-wrap: wrap
124
129
  letter-spacing: $field-letter-spacing
@@ -131,6 +136,13 @@
131
136
  position: relative
132
137
  width: 100%
133
138
 
139
+ $root: &
140
+
141
+ @at-root
142
+ @include tools.density('v-input', $input-density) using ($modifier)
143
+ @at-root #{selector.nest(&, $root)}
144
+ row-gap: #{$field-input-row-gap + $modifier * .25}
145
+
134
146
  input
135
147
  letter-spacing: inherit
136
148
 
@@ -16,6 +16,7 @@ $field-subtle-transition-timing: 250ms settings.$standard-easing !default;
16
16
  $field-underlined-margin-bottom: 4px !default;
17
17
  $field-clearable-margin: 4px !default;
18
18
  $field-clearable-transition: .15s opacity, .15s width settings.$standard-easing !default;
19
+ $field-chip-height: 24px !default;
19
20
 
20
21
  // CONTROL
21
22
  $field-control-solo-background: rgb(var(--v-theme-surface)) !default;
@@ -26,8 +27,8 @@ $field-control-solo-inverted-focused-color: rgb(var(--v-theme-on-surface-variant
26
27
  $field-control-filled-background: rgba(var(--v-theme-on-surface), var(--v-idle-opacity)) !default;
27
28
  $field-control-padding-start: 16px !default;
28
29
  $field-control-padding-end: 16px !default;
29
- $field-control-padding-top: 10px !default;
30
- $field-control-padding-bottom: 5px !default;
30
+ $field-control-padding-top: 8px !default;
31
+ $field-control-padding-bottom: 4px !default;
31
32
  $field-control-affixed-padding: 12px !default;
32
33
  $field-control-affixed-inner-padding: 6px !default;
33
34
  $field-control-underlined-height: 48px !default;
@@ -38,10 +39,12 @@ $field-control-height: 56px !default;
38
39
  $field-input-opacity: var(--v-high-emphasis-opacity) !default;
39
40
  $field-input-min-height: #{max(
40
41
  var(--v-input-control-height, $input-control-height),
41
- calc($input-font-size * $input-line-height + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom) + var(--v-input-chips-margin-bottom) + $input-chips-margin-top)
42
+ calc($input-font-size * $input-line-height + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom))
42
43
  )} !default;
43
44
  $field-input-padding-top: calc(var(--v-field-padding-top, $field-control-padding-top) + var(--v-input-padding-top, 0)) !default;
44
45
  $field-input-padding-bottom: var(--v-field-padding-bottom, $field-control-padding-bottom) !default;
46
+ $field-input-column-gap: 2px !default;
47
+ $field-input-row-gap: 8px !default;
45
48
 
46
49
  // LABEL
47
50
  $field-label-floating-scale: .75 !default;
@@ -1,3 +1,9 @@
1
+ .v-file-input--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,
2
+ .v-file-input--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,
3
+ .v-file-input--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,
4
+ .v-file-input--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating {
5
+ top: 0px;
6
+ }
1
7
  .v-file-input input[type=file] {
2
8
  height: 100%;
3
9
  left: 0;
@@ -9,8 +15,4 @@
9
15
  }
10
16
  .v-file-input .v-input__details {
11
17
  padding-inline: 16px;
12
- }
13
- .v-file-input .v-chip {
14
- margin-top: var(--v-input-chips-margin-top);
15
- margin-bottom: var(--v-input-chips-margin-bottom);
16
18
  }
@@ -140,7 +140,8 @@ export const VFileInput = genericComponent()({
140
140
  "modelValue": model.value,
141
141
  "onUpdate:modelValue": $event => model.value = $event,
142
142
  "class": ['v-file-input', {
143
- 'v-text-field--plain-underlined': isPlainOrUnderlined.value
143
+ 'v-file-input--chips': !!props.chips,
144
+ 'v-input--plain-underlined': isPlainOrUnderlined.value
144
145
  }, props.class],
145
146
  "style": props.style,
146
147
  "onClick:prepend": onClickPrepend
@@ -1 +1 @@
1
- {"version":3,"file":"VFileInput.mjs","names":["VChip","VCounter","VField","filterFieldProps","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","val","every","clearable","VFileInput","name","inheritAttrs","props","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","onFocus","document","activeElement","onClickPrepend","onControlClick","onControlMousedown","click","onClear","stopPropagation","newValue","hasModelReset","isArray","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","_ref4","fieldClass","slotProps","_Fragment","preventDefault","target","selection","text","color","join"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: Array as PropType<File[]>,\n default: () => ([]),\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.active\n ))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n onControlClick(e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = VInput.filterProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-file-input',\n {\n 'v-text-field--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n color={ props.color }\n >{ text }</VChip>\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VFileInput.mjs","names":["VChip","VCounter","VField","filterFieldProps","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","val","every","clearable","VFileInput","name","inheritAttrs","props","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","onFocus","document","activeElement","onClickPrepend","onControlClick","onControlMousedown","click","onClear","stopPropagation","newValue","hasModelReset","isArray","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","_ref4","fieldClass","slotProps","_Fragment","preventDefault","target","selection","text","color","join"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: Array as PropType<File[]>,\n default: () => ([]),\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.active\n ))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n onControlClick(e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = VInput.filterProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n color={ props.color }\n >{ text }</VChip>\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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"}