@vuetify/nightly 3.7.12-master.2025-02-18 → 3.7.12-master.2025-02-19

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 (46) hide show
  1. package/CHANGELOG.md +12 -3
  2. package/dist/json/attributes.json +2555 -2555
  3. package/dist/json/importMap-labs.json +38 -38
  4. package/dist/json/importMap.json +152 -152
  5. package/dist/json/web-types.json +4785 -4785
  6. package/dist/vuetify-labs.css +4769 -4769
  7. package/dist/vuetify-labs.d.ts +17 -8
  8. package/dist/vuetify-labs.esm.js +23 -30
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +23 -30
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +5007 -5007
  13. package/dist/vuetify.d.ts +74 -65
  14. package/dist/vuetify.esm.js +14 -20
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +14 -20
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +1056 -1057
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VInput/VInput.mjs +2 -2
  22. package/lib/components/VInput/VInput.mjs.map +1 -1
  23. package/lib/components/VList/VList.mjs +1 -1
  24. package/lib/components/VList/VList.mjs.map +1 -1
  25. package/lib/components/VList/VListItem.mjs +2 -1
  26. package/lib/components/VList/VListItem.mjs.map +1 -1
  27. package/lib/components/VList/index.d.mts +13 -1
  28. package/lib/components/VOtpInput/VOtpInput.mjs +2 -2
  29. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  30. package/lib/components/VStepper/VStepper.mjs +2 -2
  31. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  32. package/lib/components/VTimeline/VTimeline.mjs +2 -2
  33. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  34. package/lib/components/index.d.mts +17 -8
  35. package/lib/composables/list-items.mjs +2 -3
  36. package/lib/composables/list-items.mjs.map +1 -1
  37. package/lib/entry-bundler.mjs +1 -1
  38. package/lib/framework.mjs +1 -1
  39. package/lib/index.d.mts +57 -57
  40. package/lib/labs/VFileUpload/VFileUpload.mjs +2 -2
  41. package/lib/labs/VFileUpload/VFileUpload.mjs.map +1 -1
  42. package/lib/labs/VTreeview/VTreeviewItem.mjs +9 -11
  43. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  44. package/lib/util/helpers.mjs +3 -9
  45. package/lib/util/helpers.mjs.map +1 -1
  46. package/package.json +1 -1
@@ -13,7 +13,7 @@ import { useRtl } from "../../composables/locale.mjs";
13
13
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
14
14
  import { makeValidationProps, useValidation } from "../../composables/validation.mjs"; // Utilities
15
15
  import { computed } from 'vue';
16
- import { EventProp, genericComponent, getUid, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
16
+ import { EventProp, genericComponent, getUid, pick, propsFactory, useRender } from "../../util/index.mjs"; // Types
17
17
  export const makeVInputProps = propsFactory({
18
18
  id: String,
19
19
  appendIcon: IconValue,
@@ -39,7 +39,7 @@ export const makeVInputProps = propsFactory({
39
39
  'onClick:append': EventProp(),
40
40
  ...makeComponentProps(),
41
41
  ...makeDensityProps(),
42
- ...only(makeDimensionProps(), ['maxWidth', 'minWidth', 'width']),
42
+ ...pick(makeDimensionProps(), ['maxWidth', 'minWidth', 'width']),
43
43
  ...makeThemeProps(),
44
44
  ...makeValidationProps()
45
45
  }, 'VInput');
@@ -1 +1 @@
1
- {"version":3,"file":"VInput.mjs","names":["useInputIcon","VMessages","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","IconValue","useRtl","makeThemeProps","provideTheme","makeValidationProps","useValidation","computed","EventProp","genericComponent","getUid","only","propsFactory","useRender","makeVInputProps","id","String","appendIcon","centerAffix","type","Boolean","default","prependIcon","hideDetails","hideSpinButtons","hint","persistentHint","messages","Array","direction","validator","v","includes","VInput","name","props","emits","value","setup","_ref","attrs","slots","emit","densityClasses","dimensionStyles","themeClasses","rtlClasses","InputIcon","uid","messagesId","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","slotProps","length","focused","hasPrepend","prepend","hasAppend","append","hasMessages","hasDetails","details","_createVNode","class","style","message"],"sources":["../../../src/components/VInput/VInput.tsx"],"sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { useInputIcon } from '@/components/VInput/InputIcon'\nimport { VMessages } from '@/components/VMessages/VMessages'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { VMessageSlot } from '@/components/VMessages/VMessages'\nimport type { GenericProps } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n messagesId: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n centerAffix: {\n type: Boolean,\n default: true,\n },\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String] as PropType<string | readonly string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp<[MouseEvent]>(),\n 'onClick:append': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...only(makeDimensionProps(), [\n 'maxWidth',\n 'minWidth',\n 'width',\n ]),\n ...makeThemeProps(),\n ...makeValidationProps(),\n}, 'VInput')\n\nexport type VInputSlots = {\n default: VInputSlot\n prepend: VInputSlot\n append: VInputSlot\n details: VInputSlot\n message: VMessageSlot\n}\n\nexport const VInput = genericComponent<new <T>(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VInputSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n const messages = computed(() => {\n if (props.errorMessages?.length || (!isPristine.value && errorMessages.value.length)) {\n return errorMessages.value\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint\n } else {\n return props.messages\n }\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = messages.value.length > 0\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\n )\n\n return (\n <div\n class={[\n 'v-input',\n `v-input--${props.direction}`,\n {\n 'v-input--center-affix': props.centerAffix,\n 'v-input--hide-spin-buttons': props.hideSpinButtons,\n },\n densityClasses.value,\n themeClasses.value,\n rtlClasses.value,\n validationClasses.value,\n props.class,\n ]}\n style={[\n dimensionStyles.value,\n props.style,\n ]}\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-input__prepend\">\n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prepend\"\n />\n )}\n </div>\n )}\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-input__append\">\n { props.appendIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"append\"\n />\n )}\n\n { slots.append?.(slotProps.value) }\n </div>\n )}\n\n { hasDetails && (\n <div\n id={ messagesId.value }\n class=\"v-input__details\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n <VMessages\n active={ hasMessages }\n messages={ messages.value }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n )}\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VInput.mjs","names":["useInputIcon","VMessages","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","IconValue","useRtl","makeThemeProps","provideTheme","makeValidationProps","useValidation","computed","EventProp","genericComponent","getUid","pick","propsFactory","useRender","makeVInputProps","id","String","appendIcon","centerAffix","type","Boolean","default","prependIcon","hideDetails","hideSpinButtons","hint","persistentHint","messages","Array","direction","validator","v","includes","VInput","name","props","emits","value","setup","_ref","attrs","slots","emit","densityClasses","dimensionStyles","themeClasses","rtlClasses","InputIcon","uid","messagesId","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","slotProps","length","focused","hasPrepend","prepend","hasAppend","append","hasMessages","hasDetails","details","_createVNode","class","style","message"],"sources":["../../../src/components/VInput/VInput.tsx"],"sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { useInputIcon } from '@/components/VInput/InputIcon'\nimport { VMessages } from '@/components/VMessages/VMessages'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { VMessageSlot } from '@/components/VMessages/VMessages'\nimport type { GenericProps } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n messagesId: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n centerAffix: {\n type: Boolean,\n default: true,\n },\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String] as PropType<string | readonly string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp<[MouseEvent]>(),\n 'onClick:append': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...pick(makeDimensionProps(), [\n 'maxWidth',\n 'minWidth',\n 'width',\n ]),\n ...makeThemeProps(),\n ...makeValidationProps(),\n}, 'VInput')\n\nexport type VInputSlots = {\n default: VInputSlot\n prepend: VInputSlot\n append: VInputSlot\n details: VInputSlot\n message: VMessageSlot\n}\n\nexport const VInput = genericComponent<new <T>(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VInputSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n const messages = computed(() => {\n if (props.errorMessages?.length || (!isPristine.value && errorMessages.value.length)) {\n return errorMessages.value\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint\n } else {\n return props.messages\n }\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = messages.value.length > 0\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\n )\n\n return (\n <div\n class={[\n 'v-input',\n `v-input--${props.direction}`,\n {\n 'v-input--center-affix': props.centerAffix,\n 'v-input--hide-spin-buttons': props.hideSpinButtons,\n },\n densityClasses.value,\n themeClasses.value,\n rtlClasses.value,\n validationClasses.value,\n props.class,\n ]}\n style={[\n dimensionStyles.value,\n props.style,\n ]}\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-input__prepend\">\n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prepend\"\n />\n )}\n </div>\n )}\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-input__append\">\n { props.appendIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"append\"\n />\n )}\n\n { slots.append?.(slotProps.value) }\n </div>\n )}\n\n { hasDetails && (\n <div\n id={ messagesId.value }\n class=\"v-input__details\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n <VMessages\n active={ hasMessages }\n messages={ messages.value }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n )}\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n"],"mappings":"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","ignoreList":[]}
@@ -210,7 +210,7 @@ export const VList = genericComponent()({
210
210
  'v-list--slim': props.slim
211
211
  }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
212
212
  "style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
213
- "tabindex": props.disabled || isFocused.value ? -1 : 0,
213
+ "tabindex": props.disabled ? -1 : 0,
214
214
  "role": "listbox",
215
215
  "aria-activedescendant": undefined,
216
216
  "onFocusin": onFocusin,
@@ -1 +1 @@
1
- {"version":3,"file":"VList.mjs","names":["VListChildren","createList","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","makeItemsProps","makeNestedProps","useNested","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","computed","ref","shallowRef","toRef","EventProp","focusChild","genericComponent","getPropertyFromItem","isPrimitive","omit","propsFactory","useRender","transformItem","props","item","type","itemType","title","itemTitle","value","itemValue","undefined","children","itemChildren","itemProps","_props","transformItems","raw","items","array","push","useListItems","makeVListProps","baseColor","String","activeColor","activeClass","bgColor","disabled","Boolean","expandIcon","collapseIcon","lines","default","slim","nav","selectStrategy","openStrategy","variant","VList","name","emits","setup","_ref","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","parents","select","getPath","lineClasses","color","VListGroup","VListItem","density","isFocused","contentRef","onFocusin","e","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","target","includes","tagName","key","preventDefault","onMousedown","location","_createVNode","tag","class","style","returnObject"],"sources":["../../../src/components/VList/VList.tsx"],"sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue'\nimport {\n EventProp,\n focusChild,\n genericComponent,\n getPropertyFromItem,\n isPrimitive,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem<T = any> extends ListItem<T> {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction transformItem (props: ItemProps & { itemType?: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps & { itemType?: string }, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps & { itemType?: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n expandIcon: IconValue,\n collapseIcon: IconValue,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n nav: Boolean,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent<new <\n T extends readonly any[],\n S = unknown,\n O = unknown\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemChildren?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n selected?: S\n 'onUpdate:selected'?: (value: S) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n opened?: O\n 'onUpdate:opened'?: (value: O) => void\n },\n slots: VListChildrenSlots<ItemType<T>>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { children, open, parents, select, getPath } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const baseColor = toRef(props, 'baseColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(props, 'expandIcon'),\n collapseIcon: toRef(props, 'collapseIcon'),\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n baseColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n slim: toRef(props, 'slim'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref<HTMLElement>()\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return\n\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n } else {\n return\n }\n\n e.preventDefault()\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n return (\n <props.tag\n ref={ contentRef }\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ (props.disabled || isFocused.value) ? -1 : 0 }\n role=\"listbox\"\n aria-activedescendant={ undefined }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onFocus={ onFocus }\n onKeydown={ onKeydown }\n onMousedown={ onMousedown }\n >\n <VListChildren\n items={ items.value }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VList.mjs","names":["VListChildren","createList","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","makeItemsProps","makeNestedProps","useNested","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","computed","ref","shallowRef","toRef","EventProp","focusChild","genericComponent","getPropertyFromItem","isPrimitive","omit","propsFactory","useRender","transformItem","props","item","type","itemType","title","itemTitle","value","itemValue","undefined","children","itemChildren","itemProps","_props","transformItems","raw","items","array","push","useListItems","makeVListProps","baseColor","String","activeColor","activeClass","bgColor","disabled","Boolean","expandIcon","collapseIcon","lines","default","slim","nav","selectStrategy","openStrategy","variant","VList","name","emits","setup","_ref","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","parents","select","getPath","lineClasses","color","VListGroup","VListItem","density","isFocused","contentRef","onFocusin","e","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","target","includes","tagName","key","preventDefault","onMousedown","location","_createVNode","tag","class","style","returnObject"],"sources":["../../../src/components/VList/VList.tsx"],"sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue'\nimport {\n EventProp,\n focusChild,\n genericComponent,\n getPropertyFromItem,\n isPrimitive,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem<T = any> extends ListItem<T> {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction transformItem (props: ItemProps & { itemType?: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps & { itemType?: string }, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps & { itemType?: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n expandIcon: IconValue,\n collapseIcon: IconValue,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n nav: Boolean,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent<new <\n T extends readonly any[],\n S = unknown,\n O = unknown\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemChildren?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n selected?: S\n 'onUpdate:selected'?: (value: S) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n opened?: O\n 'onUpdate:opened'?: (value: O) => void\n },\n slots: VListChildrenSlots<ItemType<T>>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { children, open, parents, select, getPath } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const baseColor = toRef(props, 'baseColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(props, 'expandIcon'),\n collapseIcon: toRef(props, 'collapseIcon'),\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n baseColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n slim: toRef(props, 'slim'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref<HTMLElement>()\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return\n\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n } else {\n return\n }\n\n e.preventDefault()\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n return (\n <props.tag\n ref={ contentRef }\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ props.disabled ? -1 : 0 }\n role=\"listbox\"\n aria-activedescendant={ undefined }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onFocus={ onFocus }\n onKeydown={ onKeydown }\n onMousedown={ onMousedown }\n >\n <VListChildren\n items={ items.value }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"mappings":"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","ignoreList":[]}
@@ -290,7 +290,8 @@ export const VListItem = genericComponent()({
290
290
  list,
291
291
  select,
292
292
  root,
293
- id: uid
293
+ id: uid,
294
+ link
294
295
  };
295
296
  }
296
297
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VListItem.mjs","names":["VListItemSubtitle","VListItemTitle","VAvatar","VDefaultsProvider","VIcon","useList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","useNestedItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","onBeforeMount","watch","deprecate","EventProp","genericComponent","propsFactory","useRender","makeVListItemProps","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","baseColor","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","Object","slim","subtitle","Number","title","value","onClick","onClickOnce","variant","VListItem","name","directives","props","emits","click","e","setup","_ref","attrs","slots","emit","id","href","activate","isActivated","select","isOpen","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","uid","list","isActive","activatable","isLink","isSelectable","selectable","isClickable","roundedProps","rounded","color","variantProps","val","handleActiveLink","open","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","slotProps","navigate","onKeyDown","key","preventDefault","target","dispatchEvent","MouseEvent","Tag","tag","hasTitle","hasSubtitle","hasAppendMedia","hasAppend","append","hasPrependMedia","hasPrepend","prepend","updateHasPrepend","_withDirectives","_createVNode","_mergeProps","class","style","linkProps","_Fragment","density","image","icon","VListItemAction","start","end","_resolveDirective"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, onBeforeMount, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type ListItemSlot = {\n isActive: boolean\n isOpen: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n slim: Boolean,\n subtitle: [String, Number],\n title: [String, Number],\n value: null,\n\n onClick: EventProp<[MouseEvent | KeyboardEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n id: uid,\n } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value))\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isSelectable = computed(() => (!!list && (root.selectable.value || root.activatable.value || props.value != null)))\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || isSelectable.value)\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n // useNestedItem doesn't call register until beforeMount,\n // so this can't be an immediate watcher as we don't know parent yet\n watch(() => link.isActive?.value, val => {\n if (!val) return\n handleActiveLink()\n })\n onBeforeMount(() => {\n if (link.isActive?.value) handleActiveLink()\n })\n function handleActiveLink () {\n if (parent.value != null) {\n root.open(parent.value, true)\n }\n openOnSelect(true)\n }\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n\n if (isGroupActivator) return\n\n if (root.activatable.value) {\n activate(!isActivated.value, e)\n } else if (root.selectable.value) {\n select(!isSelected.value, e)\n } else if (props.value != null) {\n select(!isSelected.value, e)\n }\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n e.target!.dispatchEvent(new MouseEvent('click', e))\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title != null)\n const hasSubtitle = (slots.subtitle || props.subtitle != null)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n 'v-list-item--slim': props.slim,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }\n aria-selected={\n isSelectable.value ? (\n root.activatable.value ? isActivated.value\n : root.selectable.value ? isSelected.value\n : isActive.value\n ) : undefined\n }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && props.ripple }\n { ...link.linkProps }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n </Tag>\n )\n })\n\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n root,\n id: uid,\n }\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VListItem.mjs","names":["VListItemSubtitle","VListItemTitle","VAvatar","VDefaultsProvider","VIcon","useList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","useNestedItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","onBeforeMount","watch","deprecate","EventProp","genericComponent","propsFactory","useRender","makeVListItemProps","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","baseColor","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","Object","slim","subtitle","Number","title","value","onClick","onClickOnce","variant","VListItem","name","directives","props","emits","click","e","setup","_ref","attrs","slots","emit","id","href","activate","isActivated","select","isOpen","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","uid","list","isActive","activatable","isLink","isSelectable","selectable","isClickable","roundedProps","rounded","color","variantProps","val","handleActiveLink","open","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","slotProps","navigate","onKeyDown","key","preventDefault","target","dispatchEvent","MouseEvent","Tag","tag","hasTitle","hasSubtitle","hasAppendMedia","hasAppend","append","hasPrependMedia","hasPrepend","prepend","updateHasPrepend","_withDirectives","_createVNode","_mergeProps","class","style","linkProps","_Fragment","density","image","icon","VListItemAction","start","end","_resolveDirective"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, onBeforeMount, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type ListItemSlot = {\n isActive: boolean\n isOpen: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n slim: Boolean,\n subtitle: [String, Number],\n title: [String, Number],\n value: null,\n\n onClick: EventProp<[MouseEvent | KeyboardEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n id: uid,\n } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value))\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isSelectable = computed(() => (!!list && (root.selectable.value || root.activatable.value || props.value != null)))\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || isSelectable.value)\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n // useNestedItem doesn't call register until beforeMount,\n // so this can't be an immediate watcher as we don't know parent yet\n watch(() => link.isActive?.value, val => {\n if (!val) return\n handleActiveLink()\n })\n onBeforeMount(() => {\n if (link.isActive?.value) handleActiveLink()\n })\n function handleActiveLink () {\n if (parent.value != null) {\n root.open(parent.value, true)\n }\n openOnSelect(true)\n }\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n\n if (isGroupActivator) return\n\n if (root.activatable.value) {\n activate(!isActivated.value, e)\n } else if (root.selectable.value) {\n select(!isSelected.value, e)\n } else if (props.value != null) {\n select(!isSelected.value, e)\n }\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n e.target!.dispatchEvent(new MouseEvent('click', e))\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title != null)\n const hasSubtitle = (slots.subtitle || props.subtitle != null)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n 'v-list-item--slim': props.slim,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }\n aria-selected={\n isSelectable.value ? (\n root.activatable.value ? isActivated.value\n : root.selectable.value ? isSelected.value\n : isActive.value\n ) : undefined\n }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && props.ripple }\n { ...link.linkProps }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n </Tag>\n )\n })\n\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n root,\n id: uid,\n link,\n }\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,9 @@
1
1
  import * as vue from 'vue';
2
- import { VNodeChild, VNode, ComponentPropsOptions, ExtractPropTypes, ComponentPublicInstance, FunctionalComponent, PropType, DirectiveBinding } from 'vue';
2
+ import { VNodeChild, VNode, ComponentPropsOptions, ExtractPropTypes, ComputedRef, Ref, ComponentPublicInstance, FunctionalComponent, PropType, DirectiveBinding } from 'vue';
3
3
  // @ts-ignore
4
4
  import * as vue_router from 'vue-router';
5
+ // @ts-ignore
6
+ import { useLink } from 'vue-router';
5
7
 
6
8
  type ClassValue = any;
7
9
 
@@ -37,6 +39,13 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
37
39
  declare function deepEqual(a: any, b: any): boolean;
38
40
  type SelectItemKey<T = Record<string, any>> = boolean | null | undefined | string | readonly (string | number)[] | ((item: T, fallback?: any) => any);
39
41
 
42
+ interface UseLink extends Omit<Partial<ReturnType<typeof useLink>>, 'href'> {
43
+ isLink: ComputedRef<boolean>;
44
+ isClickable: ComputedRef<boolean>;
45
+ href: Ref<string | undefined>;
46
+ linkProps: Record<string, string | undefined>;
47
+ }
48
+
40
49
  type Density = null | 'default' | 'comfortable' | 'compact';
41
50
 
42
51
  declare const allowedVariants: readonly ["elevated", "flat", "tonal", "outlined", "text", "plain"];
@@ -175,6 +184,7 @@ declare const VListItem: {
175
184
  getPath: (id: unknown) => unknown[];
176
185
  };
177
186
  id: vue.ComputedRef<{} | null>;
187
+ link: UseLink;
178
188
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
179
189
  click: (e: MouseEvent | KeyboardEvent) => true;
180
190
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
@@ -369,6 +379,7 @@ declare const VListItem: {
369
379
  getPath: (id: unknown) => unknown[];
370
380
  };
371
381
  id: vue.ComputedRef<{} | null>;
382
+ link: UseLink;
372
383
  }, {}, {}, {}, {
373
384
  replace: boolean;
374
385
  link: boolean;
@@ -485,6 +496,7 @@ declare const VListItem: {
485
496
  getPath: (id: unknown) => unknown[];
486
497
  };
487
498
  id: vue.ComputedRef<{} | null>;
499
+ link: UseLink;
488
500
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
489
501
  click: (e: MouseEvent | KeyboardEvent) => true;
490
502
  }, string, {
@@ -12,7 +12,7 @@ import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
12
12
  import { useLocale } from "../../composables/locale.mjs";
13
13
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
14
14
  import { computed, nextTick, ref, watch } from 'vue';
15
- import { filterInputAttrs, focusChild, genericComponent, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
15
+ import { filterInputAttrs, focusChild, genericComponent, pick, propsFactory, useRender } from "../../util/index.mjs"; // Types
16
16
  // Types
17
17
  export const makeVOtpInputProps = propsFactory({
18
18
  autofocus: Boolean,
@@ -37,7 +37,7 @@ export const makeVOtpInputProps = propsFactory({
37
37
  },
38
38
  ...makeDimensionProps(),
39
39
  ...makeFocusProps(),
40
- ...only(makeVFieldProps({
40
+ ...pick(makeVFieldProps({
41
41
  variant: 'outlined'
42
42
  }), ['baseColor', 'bgColor', 'class', 'color', 'disabled', 'error', 'loading', 'rounded', 'style', 'theme', 'variant'])
43
43
  }, 'VOtpInput');
@@ -1 +1 @@
1
- {"version":3,"file":"VOtpInput.mjs","names":["makeVFieldProps","VField","VOverlay","VProgressCircular","provideDefaults","makeDimensionProps","useDimension","makeFocusProps","useFocus","useLocale","useProxiedModel","computed","nextTick","ref","watch","filterInputAttrs","focusChild","genericComponent","only","propsFactory","useRender","makeVOtpInputProps","autofocus","Boolean","divider","String","focusAll","label","type","default","length","Number","modelValue","undefined","placeholder","variant","VOtpInput","name","props","emits","finish","val","setup","_ref","attrs","emit","slots","dimensionStyles","isFocused","focus","blur","model","split","join","t","fields","Array","value","fill","focusIndex","contentRef","inputRef","current","onInput","isValidNumber","array","slice","target","onKeydown","e","index","includes","key","preventDefault","requestAnimationFrame","select","onPaste","stopPropagation","clipboardText","clipboardData","getData","reset","onFocus","onBlur","test","color","bgColor","baseColor","disabled","error","scoped","deep","rootAttrs","inputAttrs","_createVNode","_mergeProps","class","style","map","_","i","_Fragment","loader","event","loading","some","input"],"sources":["../../../src/components/VOtpInput/VOtpInput.tsx"],"sourcesContent":["// Styles\nimport './VOtpInput.sass'\n\n// Components\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { VProgressCircular } from '@/components/VProgressCircular/VProgressCircular'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { filterInputAttrs, focusChild, genericComponent, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VOtpInputSlots = {\n default: never\n loader: never\n}\n\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp',\n },\n length: {\n type: [Number, String],\n default: 6,\n },\n modelValue: {\n type: [Number, String],\n default: undefined,\n },\n placeholder: String,\n type: {\n type: String as PropType<'text' | 'password' | 'number'>,\n default: 'number',\n },\n\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...only(makeVFieldProps({\n variant: 'outlined' as const,\n }), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n}, 'VOtpInput')\n\nexport const VOtpInput = genericComponent<VOtpInputSlots>()({\n name: 'VOtpInput',\n\n props: makeVOtpInputProps(),\n\n emits: {\n finish: (val: string) => true,\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { dimensionStyles } = useDimension(props)\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n '',\n val => val == null ? [] : String(val).split(''),\n val => val.join('')\n )\n const { t } = useLocale()\n\n const length = computed(() => Number(props.length))\n const fields = computed(() => Array(length.value).fill(0))\n const focusIndex = ref(-1)\n const contentRef = ref<HTMLElement>()\n const inputRef = ref<HTMLInputElement[]>([])\n const current = computed(() => inputRef.value[focusIndex.value])\n\n function onInput () {\n // The maxlength attribute doesn't work for the number type input, so the text type is used.\n // The following logic simulates the behavior of a number input.\n if (isValidNumber(current.value.value)) {\n current.value.value = ''\n return\n }\n\n const array = model.value.slice()\n const value = current.value.value\n\n array[focusIndex.value] = value\n\n let target: any = null\n\n if (focusIndex.value > model.value.length) {\n target = model.value.length + 1\n } else if (focusIndex.value + 1 !== length.value) {\n target = 'next'\n }\n\n model.value = array\n\n if (target) focusChild(contentRef.value!, target)\n }\n\n function onKeydown (e: KeyboardEvent) {\n const array = model.value.slice()\n const index = focusIndex.value\n let target: 'next' | 'prev' | 'first' | 'last' | number | null = null\n\n if (![\n 'ArrowLeft',\n 'ArrowRight',\n 'Backspace',\n 'Delete',\n ].includes(e.key)) return\n\n e.preventDefault()\n\n if (e.key === 'ArrowLeft') {\n target = 'prev'\n } else if (e.key === 'ArrowRight') {\n target = 'next'\n } else if (['Backspace', 'Delete'].includes(e.key)) {\n array[focusIndex.value] = ''\n\n model.value = array\n\n if (focusIndex.value > 0 && e.key === 'Backspace') {\n target = 'prev'\n } else {\n requestAnimationFrame(() => {\n inputRef.value[index]?.select()\n })\n }\n }\n\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value!, target)\n }\n })\n }\n\n function onPaste (index: number, e: ClipboardEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? ''\n\n if (isValidNumber(clipboardText)) return\n\n model.value = clipboardText.split('')\n\n inputRef.value?.[index].blur()\n }\n\n function reset () {\n model.value = []\n }\n\n function onFocus (e: FocusEvent, index: number) {\n focus()\n\n focusIndex.value = index\n }\n\n function onBlur () {\n blur()\n\n focusIndex.value = -1\n }\n\n function isValidNumber (value: string) {\n return props.type === 'number' && /[^0-9]/g.test(value)\n }\n\n provideDefaults({\n VField: {\n color: computed(() => props.color),\n bgColor: computed(() => props.color),\n baseColor: computed(() => props.baseColor),\n disabled: computed(() => props.disabled),\n error: computed(() => props.error),\n variant: computed(() => props.variant),\n },\n }, { scoped: true })\n\n watch(model, val => {\n if (val.length === length.value) emit('finish', val.join(''))\n }, { deep: true })\n\n watch(focusIndex, val => {\n if (val < 0) return\n\n nextTick(() => {\n inputRef.value[val]?.select()\n })\n })\n\n useRender(() => {\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n return (\n <div\n class={[\n 'v-otp-input',\n {\n 'v-otp-input--divided': !!props.divider,\n },\n props.class,\n ]}\n style={[\n props.style,\n ]}\n { ...rootAttrs }\n >\n <div\n ref={ contentRef }\n class=\"v-otp-input__content\"\n style={[\n dimensionStyles.value,\n ]}\n >\n { fields.value.map((_, i) => (\n <>\n { props.divider && i !== 0 && (\n <span class=\"v-otp-input__divider\">{ props.divider }</span>\n )}\n\n <VField\n focused={ (isFocused.value && props.focusAll) || focusIndex.value === i }\n key={ i }\n >\n {{\n ...slots,\n loader: undefined,\n default: () => {\n return (\n <input\n ref={ val => inputRef.value[i] = val as HTMLInputElement }\n aria-label={ t(props.label, i + 1) }\n autofocus={ i === 0 && props.autofocus }\n autocomplete=\"one-time-code\"\n class={[\n 'v-otp-input__field',\n ]}\n disabled={ props.disabled }\n inputmode={ props.type === 'number' ? 'numeric' : 'text' }\n min={ props.type === 'number' ? 0 : undefined }\n maxlength=\"1\"\n placeholder={ props.placeholder }\n type={ props.type === 'number' ? 'text' : props.type }\n value={ model.value[i] }\n onInput={ onInput }\n onFocus={ e => onFocus(e, i) }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n onPaste={ event => onPaste(i, event) }\n />\n )\n },\n }}\n </VField>\n </>\n ))}\n\n <input\n class=\"v-otp-input-input\"\n type=\"hidden\"\n { ...inputAttrs }\n value={ model.value.join('') }\n />\n\n <VOverlay\n contained\n content-class=\"v-otp-input__loader\"\n model-value={ !!props.loading }\n persistent\n >\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"24\"\n width=\"2\"\n />\n )}\n </VOverlay>\n\n { slots.default?.() }\n </div>\n </div>\n )\n })\n\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur())\n },\n focus: () => {\n inputRef.value?.[0].focus()\n },\n reset,\n isFocused,\n }\n },\n})\n\nexport type VOtpInput = InstanceType<typeof VOtpInput>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VOtpInput.mjs","names":["makeVFieldProps","VField","VOverlay","VProgressCircular","provideDefaults","makeDimensionProps","useDimension","makeFocusProps","useFocus","useLocale","useProxiedModel","computed","nextTick","ref","watch","filterInputAttrs","focusChild","genericComponent","pick","propsFactory","useRender","makeVOtpInputProps","autofocus","Boolean","divider","String","focusAll","label","type","default","length","Number","modelValue","undefined","placeholder","variant","VOtpInput","name","props","emits","finish","val","setup","_ref","attrs","emit","slots","dimensionStyles","isFocused","focus","blur","model","split","join","t","fields","Array","value","fill","focusIndex","contentRef","inputRef","current","onInput","isValidNumber","array","slice","target","onKeydown","e","index","includes","key","preventDefault","requestAnimationFrame","select","onPaste","stopPropagation","clipboardText","clipboardData","getData","reset","onFocus","onBlur","test","color","bgColor","baseColor","disabled","error","scoped","deep","rootAttrs","inputAttrs","_createVNode","_mergeProps","class","style","map","_","i","_Fragment","loader","event","loading","some","input"],"sources":["../../../src/components/VOtpInput/VOtpInput.tsx"],"sourcesContent":["// Styles\nimport './VOtpInput.sass'\n\n// Components\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { VProgressCircular } from '@/components/VProgressCircular/VProgressCircular'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { filterInputAttrs, focusChild, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VOtpInputSlots = {\n default: never\n loader: never\n}\n\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp',\n },\n length: {\n type: [Number, String],\n default: 6,\n },\n modelValue: {\n type: [Number, String],\n default: undefined,\n },\n placeholder: String,\n type: {\n type: String as PropType<'text' | 'password' | 'number'>,\n default: 'number',\n },\n\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...pick(makeVFieldProps({\n variant: 'outlined' as const,\n }), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n}, 'VOtpInput')\n\nexport const VOtpInput = genericComponent<VOtpInputSlots>()({\n name: 'VOtpInput',\n\n props: makeVOtpInputProps(),\n\n emits: {\n finish: (val: string) => true,\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { dimensionStyles } = useDimension(props)\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n '',\n val => val == null ? [] : String(val).split(''),\n val => val.join('')\n )\n const { t } = useLocale()\n\n const length = computed(() => Number(props.length))\n const fields = computed(() => Array(length.value).fill(0))\n const focusIndex = ref(-1)\n const contentRef = ref<HTMLElement>()\n const inputRef = ref<HTMLInputElement[]>([])\n const current = computed(() => inputRef.value[focusIndex.value])\n\n function onInput () {\n // The maxlength attribute doesn't work for the number type input, so the text type is used.\n // The following logic simulates the behavior of a number input.\n if (isValidNumber(current.value.value)) {\n current.value.value = ''\n return\n }\n\n const array = model.value.slice()\n const value = current.value.value\n\n array[focusIndex.value] = value\n\n let target: any = null\n\n if (focusIndex.value > model.value.length) {\n target = model.value.length + 1\n } else if (focusIndex.value + 1 !== length.value) {\n target = 'next'\n }\n\n model.value = array\n\n if (target) focusChild(contentRef.value!, target)\n }\n\n function onKeydown (e: KeyboardEvent) {\n const array = model.value.slice()\n const index = focusIndex.value\n let target: 'next' | 'prev' | 'first' | 'last' | number | null = null\n\n if (![\n 'ArrowLeft',\n 'ArrowRight',\n 'Backspace',\n 'Delete',\n ].includes(e.key)) return\n\n e.preventDefault()\n\n if (e.key === 'ArrowLeft') {\n target = 'prev'\n } else if (e.key === 'ArrowRight') {\n target = 'next'\n } else if (['Backspace', 'Delete'].includes(e.key)) {\n array[focusIndex.value] = ''\n\n model.value = array\n\n if (focusIndex.value > 0 && e.key === 'Backspace') {\n target = 'prev'\n } else {\n requestAnimationFrame(() => {\n inputRef.value[index]?.select()\n })\n }\n }\n\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value!, target)\n }\n })\n }\n\n function onPaste (index: number, e: ClipboardEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? ''\n\n if (isValidNumber(clipboardText)) return\n\n model.value = clipboardText.split('')\n\n inputRef.value?.[index].blur()\n }\n\n function reset () {\n model.value = []\n }\n\n function onFocus (e: FocusEvent, index: number) {\n focus()\n\n focusIndex.value = index\n }\n\n function onBlur () {\n blur()\n\n focusIndex.value = -1\n }\n\n function isValidNumber (value: string) {\n return props.type === 'number' && /[^0-9]/g.test(value)\n }\n\n provideDefaults({\n VField: {\n color: computed(() => props.color),\n bgColor: computed(() => props.color),\n baseColor: computed(() => props.baseColor),\n disabled: computed(() => props.disabled),\n error: computed(() => props.error),\n variant: computed(() => props.variant),\n },\n }, { scoped: true })\n\n watch(model, val => {\n if (val.length === length.value) emit('finish', val.join(''))\n }, { deep: true })\n\n watch(focusIndex, val => {\n if (val < 0) return\n\n nextTick(() => {\n inputRef.value[val]?.select()\n })\n })\n\n useRender(() => {\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n return (\n <div\n class={[\n 'v-otp-input',\n {\n 'v-otp-input--divided': !!props.divider,\n },\n props.class,\n ]}\n style={[\n props.style,\n ]}\n { ...rootAttrs }\n >\n <div\n ref={ contentRef }\n class=\"v-otp-input__content\"\n style={[\n dimensionStyles.value,\n ]}\n >\n { fields.value.map((_, i) => (\n <>\n { props.divider && i !== 0 && (\n <span class=\"v-otp-input__divider\">{ props.divider }</span>\n )}\n\n <VField\n focused={ (isFocused.value && props.focusAll) || focusIndex.value === i }\n key={ i }\n >\n {{\n ...slots,\n loader: undefined,\n default: () => {\n return (\n <input\n ref={ val => inputRef.value[i] = val as HTMLInputElement }\n aria-label={ t(props.label, i + 1) }\n autofocus={ i === 0 && props.autofocus }\n autocomplete=\"one-time-code\"\n class={[\n 'v-otp-input__field',\n ]}\n disabled={ props.disabled }\n inputmode={ props.type === 'number' ? 'numeric' : 'text' }\n min={ props.type === 'number' ? 0 : undefined }\n maxlength=\"1\"\n placeholder={ props.placeholder }\n type={ props.type === 'number' ? 'text' : props.type }\n value={ model.value[i] }\n onInput={ onInput }\n onFocus={ e => onFocus(e, i) }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n onPaste={ event => onPaste(i, event) }\n />\n )\n },\n }}\n </VField>\n </>\n ))}\n\n <input\n class=\"v-otp-input-input\"\n type=\"hidden\"\n { ...inputAttrs }\n value={ model.value.join('') }\n />\n\n <VOverlay\n contained\n content-class=\"v-otp-input__loader\"\n model-value={ !!props.loading }\n persistent\n >\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"24\"\n width=\"2\"\n />\n )}\n </VOverlay>\n\n { slots.default?.() }\n </div>\n </div>\n )\n })\n\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur())\n },\n focus: () => {\n inputRef.value?.[0].focus()\n },\n reset,\n isFocused,\n }\n },\n})\n\nexport type VOtpInput = InstanceType<typeof VOtpInput>\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ import { makeDisplayProps, useDisplay } from "../../composables/display.mjs";
16
16
  import { makeGroupProps, useGroup } from "../../composables/group.mjs";
17
17
  import { IconValue } from "../../composables/icons.mjs"; // Utilities
18
18
  import { computed, toRefs } from 'vue';
19
- import { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
19
+ import { genericComponent, getPropertyFromItem, pick, propsFactory, useRender } from "../../util/index.mjs"; // Types
20
20
  export const makeStepperProps = propsFactory({
21
21
  altLabels: Boolean,
22
22
  bgColor: String,
@@ -48,7 +48,7 @@ export const makeVStepperProps = propsFactory({
48
48
  selectedClass: 'v-stepper-item--selected'
49
49
  }),
50
50
  ...makeVSheetProps(),
51
- ...only(makeVStepperActionsProps(), ['prevText', 'nextText'])
51
+ ...pick(makeVStepperActionsProps(), ['prevText', 'nextText'])
52
52
  }, 'VStepper');
53
53
  export const VStepper = genericComponent()({
54
54
  name: 'VStepper',
@@ -1 +1 @@
1
- {"version":3,"file":"VStepper.mjs","names":["VStepperSymbol","makeVStepperActionsProps","VStepperActions","VStepperHeader","VStepperItem","VStepperWindow","VStepperWindowItem","VDivider","makeVSheetProps","VSheet","provideDefaults","makeDisplayProps","useDisplay","makeGroupProps","useGroup","IconValue","computed","toRefs","genericComponent","getPropertyFromItem","only","propsFactory","useRender","makeStepperProps","altLabels","Boolean","bgColor","String","completeIcon","editIcon","editable","errorIcon","hideActions","items","type","Array","default","itemTitle","itemValue","nonLinear","flat","makeVStepperProps","mandatory","selectedClass","VStepper","name","props","emits","v","setup","_ref","slots","_items","next","prev","selected","displayClasses","mobile","color","prevText","nextText","map","item","index","title","value","raw","activeIndex","findIndex","includes","id","disabled","length","sheetProps","filterProps","hasHeader","header","hasWindow","hasActions","actions","_createVNode","_mergeProps","class","style","_ref2","_Fragment","icon","subtitle"],"sources":["../../../src/components/VStepper/VStepper.tsx"],"sourcesContent":["// Styles\nimport './VStepper.sass'\n\n// Components\nimport { VStepperSymbol } from './shared'\nimport { makeVStepperActionsProps, VStepperActions } from './VStepperActions'\nimport { VStepperHeader } from './VStepperHeader'\nimport { VStepperItem } from './VStepperItem'\nimport { VStepperWindow } from './VStepperWindow'\nimport { VStepperWindowItem } from './VStepperWindowItem'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StepperItem, StepperItemSlot } from './VStepperItem'\n\nexport type VStepperSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VStepperSlots = {\n actions: VStepperSlot\n default: VStepperSlot\n header: StepperItem\n 'header-item': StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: never\n next: never\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n completeIcon: IconValue,\n editIcon: IconValue,\n editable: Boolean,\n errorIcon: IconValue,\n hideActions: Boolean,\n items: {\n type: Array as PropType<readonly StepperItem[]>,\n default: () => ([]),\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n nonLinear: Boolean,\n flat: Boolean,\n\n ...makeDisplayProps(),\n}, 'Stepper')\n\nexport const makeVStepperProps = propsFactory({\n ...makeStepperProps(),\n ...makeGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-stepper-item--selected',\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText']),\n}, 'VStepper')\n\nexport const VStepper = genericComponent<VStepperSlots>()({\n name: 'VStepper',\n\n props: makeVStepperProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { items: _items, next, prev, selected } = useGroup(props, VStepperSymbol)\n const { displayClasses, mobile } = useDisplay(props)\n const { completeIcon, editIcon, errorIcon, color, editable, prevText, nextText } = toRefs(props)\n\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id))\n })\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (activeIndex.value === 0) return 'prev'\n if (activeIndex.value === _items.value.length - 1) return 'next'\n\n return false\n })\n\n provideDefaults({\n VStepperItem: {\n editable,\n errorIcon,\n completeIcon,\n editIcon,\n prevText,\n nextText,\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n const hasHeader = !!(slots.header || props.items.length)\n const hasWindow = props.items.length > 0\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions)\n\n return (\n <VSheet\n { ...sheetProps }\n color={ props.bgColor }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': mobile.value,\n },\n displayClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { hasHeader && (\n <VStepperHeader key=\"stepper-header\">\n { items.value.map(({ raw, ...item }, index) => (\n <>\n { !!index && (<VDivider />) }\n\n <VStepperItem\n { ...item }\n v-slots={{\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle,\n }}\n />\n </>\n ))}\n </VStepperHeader>\n )}\n\n { hasWindow && (\n <VStepperWindow key=\"stepper-window\">\n { items.value.map(item => (\n <VStepperWindowItem\n value={ item.value }\n v-slots={{\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item),\n }}\n />\n ))}\n </VStepperWindow>\n )}\n\n { slots.default?.({ prev, next }) }\n\n { hasActions && (\n slots.actions?.({ next, prev }) ?? (\n <VStepperActions\n key=\"stepper-actions\"\n onClick:prev={ prev }\n onClick:next={ next }\n v-slots={ slots }\n />\n )\n )}\n </VSheet>\n )\n })\n\n return {\n prev,\n next,\n }\n },\n})\n\nexport type VStepper = InstanceType<typeof VStepper>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VStepper.mjs","names":["VStepperSymbol","makeVStepperActionsProps","VStepperActions","VStepperHeader","VStepperItem","VStepperWindow","VStepperWindowItem","VDivider","makeVSheetProps","VSheet","provideDefaults","makeDisplayProps","useDisplay","makeGroupProps","useGroup","IconValue","computed","toRefs","genericComponent","getPropertyFromItem","pick","propsFactory","useRender","makeStepperProps","altLabels","Boolean","bgColor","String","completeIcon","editIcon","editable","errorIcon","hideActions","items","type","Array","default","itemTitle","itemValue","nonLinear","flat","makeVStepperProps","mandatory","selectedClass","VStepper","name","props","emits","v","setup","_ref","slots","_items","next","prev","selected","displayClasses","mobile","color","prevText","nextText","map","item","index","title","value","raw","activeIndex","findIndex","includes","id","disabled","length","sheetProps","filterProps","hasHeader","header","hasWindow","hasActions","actions","_createVNode","_mergeProps","class","style","_ref2","_Fragment","icon","subtitle"],"sources":["../../../src/components/VStepper/VStepper.tsx"],"sourcesContent":["// Styles\nimport './VStepper.sass'\n\n// Components\nimport { VStepperSymbol } from './shared'\nimport { makeVStepperActionsProps, VStepperActions } from './VStepperActions'\nimport { VStepperHeader } from './VStepperHeader'\nimport { VStepperItem } from './VStepperItem'\nimport { VStepperWindow } from './VStepperWindow'\nimport { VStepperWindowItem } from './VStepperWindowItem'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StepperItem, StepperItemSlot } from './VStepperItem'\n\nexport type VStepperSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VStepperSlots = {\n actions: VStepperSlot\n default: VStepperSlot\n header: StepperItem\n 'header-item': StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: never\n next: never\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n completeIcon: IconValue,\n editIcon: IconValue,\n editable: Boolean,\n errorIcon: IconValue,\n hideActions: Boolean,\n items: {\n type: Array as PropType<readonly StepperItem[]>,\n default: () => ([]),\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n nonLinear: Boolean,\n flat: Boolean,\n\n ...makeDisplayProps(),\n}, 'Stepper')\n\nexport const makeVStepperProps = propsFactory({\n ...makeStepperProps(),\n ...makeGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-stepper-item--selected',\n }),\n ...makeVSheetProps(),\n ...pick(makeVStepperActionsProps(), ['prevText', 'nextText']),\n}, 'VStepper')\n\nexport const VStepper = genericComponent<VStepperSlots>()({\n name: 'VStepper',\n\n props: makeVStepperProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { items: _items, next, prev, selected } = useGroup(props, VStepperSymbol)\n const { displayClasses, mobile } = useDisplay(props)\n const { completeIcon, editIcon, errorIcon, color, editable, prevText, nextText } = toRefs(props)\n\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id))\n })\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (activeIndex.value === 0) return 'prev'\n if (activeIndex.value === _items.value.length - 1) return 'next'\n\n return false\n })\n\n provideDefaults({\n VStepperItem: {\n editable,\n errorIcon,\n completeIcon,\n editIcon,\n prevText,\n nextText,\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText,\n },\n })\n\n useRender(() => {\n const sheetProps = VSheet.filterProps(props)\n\n const hasHeader = !!(slots.header || props.items.length)\n const hasWindow = props.items.length > 0\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions)\n\n return (\n <VSheet\n { ...sheetProps }\n color={ props.bgColor }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': mobile.value,\n },\n displayClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { hasHeader && (\n <VStepperHeader key=\"stepper-header\">\n { items.value.map(({ raw, ...item }, index) => (\n <>\n { !!index && (<VDivider />) }\n\n <VStepperItem\n { ...item }\n v-slots={{\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle,\n }}\n />\n </>\n ))}\n </VStepperHeader>\n )}\n\n { hasWindow && (\n <VStepperWindow key=\"stepper-window\">\n { items.value.map(item => (\n <VStepperWindowItem\n value={ item.value }\n v-slots={{\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item),\n }}\n />\n ))}\n </VStepperWindow>\n )}\n\n { slots.default?.({ prev, next }) }\n\n { hasActions && (\n slots.actions?.({ next, prev }) ?? (\n <VStepperActions\n key=\"stepper-actions\"\n onClick:prev={ prev }\n onClick:next={ next }\n v-slots={ slots }\n />\n )\n )}\n </VSheet>\n )\n })\n\n return {\n prev,\n next,\n }\n },\n})\n\nexport type VStepper = InstanceType<typeof VStepper>\n"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,7 @@ import { useRtl } from "../../composables/locale.mjs";
10
10
  import { makeTagProps } from "../../composables/tag.mjs";
11
11
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
12
12
  import { computed, toRef } from 'vue';
13
- import { convertToUnit, genericComponent, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
13
+ import { convertToUnit, genericComponent, pick, propsFactory, useRender } from "../../util/index.mjs"; // Types
14
14
  import { makeVTimelineItemProps } from "./VTimelineItem.mjs";
15
15
  export const makeVTimelineProps = propsFactory({
16
16
  align: {
@@ -41,7 +41,7 @@ export const makeVTimelineProps = propsFactory({
41
41
  type: String,
42
42
  validator: v => ['start', 'end', 'both'].includes(v)
43
43
  },
44
- ...only(makeVTimelineItemProps({
44
+ ...pick(makeVTimelineItemProps({
45
45
  lineInset: 0
46
46
  }), ['dotColor', 'fillDot', 'hideOpposite', 'iconColor', 'lineInset', 'size']),
47
47
  ...makeComponentProps(),