vuetify 3.3.2 → 3.3.3
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.
- package/dist/json/attributes.json +8 -8
- package/dist/json/importMap.json +4 -4
- package/dist/json/web-types.json +26 -15
- package/dist/vuetify-labs.css +53 -61
- package/dist/vuetify-labs.d.ts +253 -119
- package/dist/vuetify-labs.esm.js +196 -82
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +195 -81
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +10 -8
- package/dist/vuetify.d.ts +254 -120
- package/dist/vuetify.esm.js +191 -78
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +190 -77
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +780 -771
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +2 -2
- package/lib/blueprints/md1.d.mts +2 -2
- package/lib/blueprints/md2.d.mts +2 -2
- package/lib/blueprints/md3.d.mts +2 -2
- package/lib/components/VAppBar/index.d.mts +24 -8
- package/lib/components/VAutocomplete/VAutocomplete.mjs +16 -11
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.mjs +1 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.mts +24 -8
- package/lib/components/VCard/VCard.mjs +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.mts +44 -28
- package/lib/components/VCheckbox/VCheckbox.mjs +8 -1
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +7 -1
- package/lib/components/VChip/VChip.mjs +2 -2
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +48 -32
- package/lib/components/VCombobox/VCombobox.mjs +16 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +56 -24
- package/lib/components/VField/VField.css +1 -0
- package/lib/components/VField/VField.sass +1 -0
- package/lib/components/VIcon/VIcon.mjs +2 -2
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +1 -1
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +24 -8
- package/lib/components/VMenu/VMenu.mjs +29 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +7 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +29 -35
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +15 -10
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +2 -2
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.css +1 -0
- package/lib/components/VTabs/VTabs.sass +1 -0
- package/lib/components/VTabs/index.d.mts +24 -8
- package/lib/components/VTextarea/VTextarea.css +7 -7
- package/lib/components/VTextarea/VTextarea.sass +9 -9
- package/lib/components/index.d.mts +251 -117
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/theme.mjs +1 -1
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/mdi-svg.mjs +35 -35
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/index.d.mts +3 -3
- package/lib/labs/VDataTable/VDataTable.css +4 -14
- package/lib/labs/VDataTable/VDataTable.sass +6 -15
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/select.mjs +3 -2
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/util/bindProps.mjs +49 -0
- package/lib/util/bindProps.mjs.map +1 -0
- package/lib/util/helpers.mjs +3 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +1 -0
- package/lib/util/index.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VCard.mjs","names":["VCardActions","VCardItem","VCardText","VDefaultsProvider","VImg","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","LoaderSlot","makeLoaderProps","useLoader","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","genericComponent","propsFactory","useRender","makeVCardProps","appendAvatar","String","appendIcon","disabled","Boolean","flat","hover","image","link","type","default","undefined","prependAvatar","prependIcon","ripple","subtitle","text","title","variant","VCard","name","directives","props","setup","_ref","attrs","slots","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","loaderClasses","locationStyles","positionClasses","roundedClasses","isLink","value","isClickable","Tag","tag","hasTitle","hasSubtitle","hasHeader","hasAppend","append","hasPrepend","prepend","hasImage","hasCardItem","hasText","_withDirectives","_createVNode","class","style","href","navigate","cover","src","loading","loader","item","actions","_resolveDirective"],"sources":["../../../src/components/VCard/VCard.tsx"],"sourcesContent":["/* eslint-disable complexity */\n\n// Styles\nimport './VCard.sass'\n\n// Components\nimport { VCardActions } from './VCardActions'\nimport { VCardItem } from './VCardItem'\nimport { VCardText } from './VCardText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\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 { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\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 } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VCardItemSlots } from './VCardItem'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport const makeVCardProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined,\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n subtitle: String,\n text: String,\n title: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n}, 'VCard')\n\nexport type VCardSlots = VCardItemSlots & {\n default: never\n actions: never\n text: never\n loader: LoaderSlotProps\n image: never\n item: never\n}\n\nexport const VCard = genericComponent<VCardSlots>()({\n name: 'VCard',\n\n directives: { Ripple },\n\n props: makeVCardProps(),\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const link = useLink(props, attrs)\n\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value)\n )\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = !!(slots.title || props.title)\n const hasSubtitle = !!(slots.subtitle || props.subtitle)\n const hasHeader = hasTitle || hasSubtitle\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n const hasImage = !!(slots.image || props.image)\n const hasCardItem = hasHeader || hasPrepend || hasAppend\n const hasText = !!(slots.text || props.text)\n\n return (\n <Tag\n class={[\n 'v-card',\n {\n 'v-card--disabled': props.disabled,\n 'v-card--flat': props.flat,\n 'v-card--hover': props.hover && !(props.disabled || props.flat),\n 'v-card--link': isClickable.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n props.style,\n ]}\n href={ link.href.value }\n onClick={ isClickable.value && link.navigate }\n v-ripple={ isClickable.value && props.ripple }\n tabindex={ props.disabled ? -1 : undefined }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-card__image\">\n { !slots.image ? (\n <VImg\n key=\"image-img\"\n cover\n src={ props.image }\n />\n ) : (\n <VDefaultsProvider\n key=\"image-defaults\"\n disabled={ !props.image }\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n v-slots:default={ slots.image }\n />\n )}\n </div>\n )}\n\n <LoaderSlot\n name=\"v-card\"\n active={ !!props.loading }\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n v-slots={{ default: slots.loader }}\n />\n\n { hasCardItem && (\n <VCardItem\n key=\"item\"\n prependAvatar={ props.prependAvatar }\n prependIcon={ props.prependIcon }\n title={ props.title }\n subtitle={ props.subtitle }\n appendAvatar={ props.appendAvatar }\n appendIcon={ props.appendIcon }\n >\n {{\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append,\n }}\n </VCardItem>\n )}\n\n { hasText && (\n <VCardText key=\"text\">\n { slots.text?.() ?? props.text }\n </VCardText>\n )}\n\n { slots.default?.() }\n\n { slots.actions && (\n <VCardActions v-slots={{ default: slots.actions }} />\n )}\n\n { genOverlays(isClickable.value, 'v-card') }\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VCard = InstanceType<typeof VCard>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VCard.mjs","names":["VCardActions","VCardItem","VCardText","VDefaultsProvider","VImg","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","LoaderSlot","makeLoaderProps","useLoader","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","genericComponent","propsFactory","useRender","makeVCardProps","appendAvatar","String","appendIcon","disabled","Boolean","flat","hover","image","link","type","default","undefined","prependAvatar","prependIcon","ripple","Object","subtitle","text","title","variant","VCard","name","directives","props","setup","_ref","attrs","slots","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","loaderClasses","locationStyles","positionClasses","roundedClasses","isLink","value","isClickable","Tag","tag","hasTitle","hasSubtitle","hasHeader","hasAppend","append","hasPrepend","prepend","hasImage","hasCardItem","hasText","_withDirectives","_createVNode","class","style","href","navigate","cover","src","loading","loader","item","actions","_resolveDirective"],"sources":["../../../src/components/VCard/VCard.tsx"],"sourcesContent":["/* eslint-disable complexity */\n\n// Styles\nimport './VCard.sass'\n\n// Components\nimport { VCardActions } from './VCardActions'\nimport { VCardItem } from './VCardItem'\nimport { VCardText } from './VCardText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\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 { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\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 } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCardItemSlots } from './VCardItem'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport const makeVCardProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined,\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n subtitle: String,\n text: String,\n title: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n}, 'VCard')\n\nexport type VCardSlots = VCardItemSlots & {\n default: never\n actions: never\n text: never\n loader: LoaderSlotProps\n image: never\n item: never\n}\n\nexport const VCard = genericComponent<VCardSlots>()({\n name: 'VCard',\n\n directives: { Ripple },\n\n props: makeVCardProps(),\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const link = useLink(props, attrs)\n\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value)\n )\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = !!(slots.title || props.title)\n const hasSubtitle = !!(slots.subtitle || props.subtitle)\n const hasHeader = hasTitle || hasSubtitle\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n const hasImage = !!(slots.image || props.image)\n const hasCardItem = hasHeader || hasPrepend || hasAppend\n const hasText = !!(slots.text || props.text)\n\n return (\n <Tag\n class={[\n 'v-card',\n {\n 'v-card--disabled': props.disabled,\n 'v-card--flat': props.flat,\n 'v-card--hover': props.hover && !(props.disabled || props.flat),\n 'v-card--link': isClickable.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n props.style,\n ]}\n href={ link.href.value }\n onClick={ isClickable.value && link.navigate }\n v-ripple={ isClickable.value && props.ripple }\n tabindex={ props.disabled ? -1 : undefined }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-card__image\">\n { !slots.image ? (\n <VImg\n key=\"image-img\"\n cover\n src={ props.image }\n />\n ) : (\n <VDefaultsProvider\n key=\"image-defaults\"\n disabled={ !props.image }\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n v-slots:default={ slots.image }\n />\n )}\n </div>\n )}\n\n <LoaderSlot\n name=\"v-card\"\n active={ !!props.loading }\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n v-slots={{ default: slots.loader }}\n />\n\n { hasCardItem && (\n <VCardItem\n key=\"item\"\n prependAvatar={ props.prependAvatar }\n prependIcon={ props.prependIcon }\n title={ props.title }\n subtitle={ props.subtitle }\n appendAvatar={ props.appendAvatar }\n appendIcon={ props.appendIcon }\n >\n {{\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append,\n }}\n </VCardItem>\n )}\n\n { hasText && (\n <VCardText key=\"text\">\n { slots.text?.() ?? props.text }\n </VCardText>\n )}\n\n { slots.default?.() }\n\n { slots.actions && (\n <VCardActions v-slots={{ default: slots.actions }} />\n )}\n\n { genOverlays(isClickable.value, 'v-card') }\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VCard = InstanceType<typeof VCard>\n"],"mappings":"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"}
|
|
@@ -336,7 +336,9 @@ declare const VCard: {
|
|
|
336
336
|
rounded?: string | number | boolean | undefined;
|
|
337
337
|
density?: Density | undefined;
|
|
338
338
|
variant?: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain"> | undefined;
|
|
339
|
-
ripple?: boolean |
|
|
339
|
+
ripple?: boolean | {
|
|
340
|
+
class: string;
|
|
341
|
+
} | undefined;
|
|
340
342
|
hover?: boolean | undefined;
|
|
341
343
|
key?: string | number | symbol | undefined;
|
|
342
344
|
location?: Anchor | undefined;
|
|
@@ -490,7 +492,9 @@ declare const VCard: {
|
|
|
490
492
|
tag: string;
|
|
491
493
|
density: Density;
|
|
492
494
|
variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
493
|
-
ripple: boolean
|
|
495
|
+
ripple: boolean | {
|
|
496
|
+
class: string;
|
|
497
|
+
} | undefined;
|
|
494
498
|
hover: boolean;
|
|
495
499
|
} & {
|
|
496
500
|
link?: boolean | undefined;
|
|
@@ -566,7 +570,9 @@ declare const VCard: {
|
|
|
566
570
|
rounded: string | number | boolean;
|
|
567
571
|
density: Density;
|
|
568
572
|
variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
569
|
-
ripple: boolean
|
|
573
|
+
ripple: boolean | {
|
|
574
|
+
class: string;
|
|
575
|
+
} | undefined;
|
|
570
576
|
hover: boolean;
|
|
571
577
|
}, {}, string, vue.SlotsType<Partial<{
|
|
572
578
|
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
@@ -628,7 +634,9 @@ declare const VCard: {
|
|
|
628
634
|
tag: string;
|
|
629
635
|
density: Density;
|
|
630
636
|
variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
631
|
-
ripple: boolean
|
|
637
|
+
ripple: boolean | {
|
|
638
|
+
class: string;
|
|
639
|
+
} | undefined;
|
|
632
640
|
hover: boolean;
|
|
633
641
|
} & {
|
|
634
642
|
link?: boolean | undefined;
|
|
@@ -706,7 +714,9 @@ declare const VCard: {
|
|
|
706
714
|
tag: string;
|
|
707
715
|
density: Density;
|
|
708
716
|
variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
709
|
-
ripple: boolean
|
|
717
|
+
ripple: boolean | {
|
|
718
|
+
class: string;
|
|
719
|
+
} | undefined;
|
|
710
720
|
hover: boolean;
|
|
711
721
|
} & {
|
|
712
722
|
link?: boolean | undefined;
|
|
@@ -782,7 +792,9 @@ declare const VCard: {
|
|
|
782
792
|
rounded: string | number | boolean;
|
|
783
793
|
density: Density;
|
|
784
794
|
variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
785
|
-
ripple: boolean
|
|
795
|
+
ripple: boolean | {
|
|
796
|
+
class: string;
|
|
797
|
+
} | undefined;
|
|
786
798
|
hover: boolean;
|
|
787
799
|
}, {}, string, vue.SlotsType<Partial<{
|
|
788
800
|
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
@@ -818,11 +830,11 @@ declare const VCard: {
|
|
|
818
830
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
819
831
|
color: StringConstructor;
|
|
820
832
|
variant: Omit<{
|
|
821
|
-
type:
|
|
833
|
+
type: PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
822
834
|
default: string;
|
|
823
835
|
validator: (v: any) => boolean;
|
|
824
836
|
}, "type" | "default"> & {
|
|
825
|
-
type:
|
|
837
|
+
type: PropType<NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">>;
|
|
826
838
|
default: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
827
839
|
};
|
|
828
840
|
theme: StringConstructor;
|
|
@@ -832,17 +844,17 @@ declare const VCard: {
|
|
|
832
844
|
};
|
|
833
845
|
href: StringConstructor;
|
|
834
846
|
replace: BooleanConstructor;
|
|
835
|
-
to:
|
|
847
|
+
to: PropType<vue_router.RouteLocationRaw>;
|
|
836
848
|
exact: BooleanConstructor;
|
|
837
849
|
rounded: {
|
|
838
850
|
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
839
851
|
default: undefined;
|
|
840
852
|
};
|
|
841
853
|
position: {
|
|
842
|
-
type:
|
|
854
|
+
type: PropType<"fixed" | "absolute" | "static" | "relative" | "sticky">;
|
|
843
855
|
validator: (v: any) => boolean;
|
|
844
856
|
};
|
|
845
|
-
location:
|
|
857
|
+
location: PropType<Anchor>;
|
|
846
858
|
loading: (StringConstructor | BooleanConstructor)[];
|
|
847
859
|
elevation: {
|
|
848
860
|
type: (StringConstructor | NumberConstructor)[];
|
|
@@ -855,18 +867,18 @@ declare const VCard: {
|
|
|
855
867
|
minWidth: (StringConstructor | NumberConstructor)[];
|
|
856
868
|
width: (StringConstructor | NumberConstructor)[];
|
|
857
869
|
density: {
|
|
858
|
-
type:
|
|
870
|
+
type: PropType<Density>;
|
|
859
871
|
default: string;
|
|
860
872
|
validator: (v: any) => boolean;
|
|
861
873
|
};
|
|
862
|
-
class:
|
|
874
|
+
class: PropType<any>;
|
|
863
875
|
style: {
|
|
864
|
-
type:
|
|
876
|
+
type: PropType<vue.StyleValue>;
|
|
865
877
|
default: null;
|
|
866
878
|
};
|
|
867
879
|
border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
868
880
|
appendAvatar: StringConstructor;
|
|
869
|
-
appendIcon:
|
|
881
|
+
appendIcon: PropType<IconValue>;
|
|
870
882
|
disabled: BooleanConstructor;
|
|
871
883
|
flat: BooleanConstructor;
|
|
872
884
|
hover: BooleanConstructor;
|
|
@@ -876,9 +888,11 @@ declare const VCard: {
|
|
|
876
888
|
default: undefined;
|
|
877
889
|
};
|
|
878
890
|
prependAvatar: StringConstructor;
|
|
879
|
-
prependIcon:
|
|
891
|
+
prependIcon: PropType<IconValue>;
|
|
880
892
|
ripple: {
|
|
881
|
-
type:
|
|
893
|
+
type: PropType<boolean | {
|
|
894
|
+
class: string;
|
|
895
|
+
} | undefined>;
|
|
882
896
|
default: boolean;
|
|
883
897
|
};
|
|
884
898
|
subtitle: StringConstructor;
|
|
@@ -887,11 +901,11 @@ declare const VCard: {
|
|
|
887
901
|
}, vue.ExtractPropTypes<{
|
|
888
902
|
color: StringConstructor;
|
|
889
903
|
variant: Omit<{
|
|
890
|
-
type:
|
|
904
|
+
type: PropType<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
891
905
|
default: string;
|
|
892
906
|
validator: (v: any) => boolean;
|
|
893
907
|
}, "type" | "default"> & {
|
|
894
|
-
type:
|
|
908
|
+
type: PropType<NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">>;
|
|
895
909
|
default: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
|
|
896
910
|
};
|
|
897
911
|
theme: StringConstructor;
|
|
@@ -901,17 +915,17 @@ declare const VCard: {
|
|
|
901
915
|
};
|
|
902
916
|
href: StringConstructor;
|
|
903
917
|
replace: BooleanConstructor;
|
|
904
|
-
to:
|
|
918
|
+
to: PropType<vue_router.RouteLocationRaw>;
|
|
905
919
|
exact: BooleanConstructor;
|
|
906
920
|
rounded: {
|
|
907
921
|
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
908
922
|
default: undefined;
|
|
909
923
|
};
|
|
910
924
|
position: {
|
|
911
|
-
type:
|
|
925
|
+
type: PropType<"fixed" | "absolute" | "static" | "relative" | "sticky">;
|
|
912
926
|
validator: (v: any) => boolean;
|
|
913
927
|
};
|
|
914
|
-
location:
|
|
928
|
+
location: PropType<Anchor>;
|
|
915
929
|
loading: (StringConstructor | BooleanConstructor)[];
|
|
916
930
|
elevation: {
|
|
917
931
|
type: (StringConstructor | NumberConstructor)[];
|
|
@@ -924,18 +938,18 @@ declare const VCard: {
|
|
|
924
938
|
minWidth: (StringConstructor | NumberConstructor)[];
|
|
925
939
|
width: (StringConstructor | NumberConstructor)[];
|
|
926
940
|
density: {
|
|
927
|
-
type:
|
|
941
|
+
type: PropType<Density>;
|
|
928
942
|
default: string;
|
|
929
943
|
validator: (v: any) => boolean;
|
|
930
944
|
};
|
|
931
|
-
class:
|
|
945
|
+
class: PropType<any>;
|
|
932
946
|
style: {
|
|
933
|
-
type:
|
|
947
|
+
type: PropType<vue.StyleValue>;
|
|
934
948
|
default: null;
|
|
935
949
|
};
|
|
936
950
|
border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
937
951
|
appendAvatar: StringConstructor;
|
|
938
|
-
appendIcon:
|
|
952
|
+
appendIcon: PropType<IconValue>;
|
|
939
953
|
disabled: BooleanConstructor;
|
|
940
954
|
flat: BooleanConstructor;
|
|
941
955
|
hover: BooleanConstructor;
|
|
@@ -945,9 +959,11 @@ declare const VCard: {
|
|
|
945
959
|
default: undefined;
|
|
946
960
|
};
|
|
947
961
|
prependAvatar: StringConstructor;
|
|
948
|
-
prependIcon:
|
|
962
|
+
prependIcon: PropType<IconValue>;
|
|
949
963
|
ripple: {
|
|
950
|
-
type:
|
|
964
|
+
type: PropType<boolean | {
|
|
965
|
+
class: string;
|
|
966
|
+
} | undefined>;
|
|
951
967
|
default: boolean;
|
|
952
968
|
};
|
|
953
969
|
subtitle: StringConstructor;
|
|
@@ -5,7 +5,8 @@ import "./VCheckbox.css";
|
|
|
5
5
|
// Components
|
|
6
6
|
import { makeVCheckboxBtnProps, VCheckboxBtn } from "./VCheckboxBtn.mjs";
|
|
7
7
|
import { makeVInputProps, VInput } from "../VInput/VInput.mjs"; // Composables
|
|
8
|
-
import { useFocus } from "../../composables/focus.mjs";
|
|
8
|
+
import { useFocus } from "../../composables/focus.mjs";
|
|
9
|
+
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
9
10
|
import { computed } from 'vue';
|
|
10
11
|
import { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
11
12
|
export const makeVCheckboxProps = propsFactory({
|
|
@@ -17,6 +18,7 @@ export const VCheckbox = genericComponent()({
|
|
|
17
18
|
inheritAttrs: false,
|
|
18
19
|
props: makeVCheckboxProps(),
|
|
19
20
|
emits: {
|
|
21
|
+
'update:modelValue': value => true,
|
|
20
22
|
'update:focused': focused => true
|
|
21
23
|
},
|
|
22
24
|
setup(props, _ref) {
|
|
@@ -24,6 +26,7 @@ export const VCheckbox = genericComponent()({
|
|
|
24
26
|
attrs,
|
|
25
27
|
slots
|
|
26
28
|
} = _ref;
|
|
29
|
+
const model = useProxiedModel(props, 'modelValue');
|
|
27
30
|
const {
|
|
28
31
|
isFocused,
|
|
29
32
|
focus,
|
|
@@ -38,6 +41,8 @@ export const VCheckbox = genericComponent()({
|
|
|
38
41
|
return _createVNode(VInput, _mergeProps({
|
|
39
42
|
"class": ['v-checkbox', props.class]
|
|
40
43
|
}, inputAttrs, inputProps, {
|
|
44
|
+
"modelValue": model.value,
|
|
45
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
41
46
|
"id": id.value,
|
|
42
47
|
"focused": isFocused.value,
|
|
43
48
|
"style": props.style
|
|
@@ -56,6 +61,8 @@ export const VCheckbox = genericComponent()({
|
|
|
56
61
|
"disabled": isDisabled.value,
|
|
57
62
|
"readonly": isReadonly.value
|
|
58
63
|
}, controlAttrs, {
|
|
64
|
+
"modelValue": model.value,
|
|
65
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
59
66
|
"onFocus": focus,
|
|
60
67
|
"onBlur": blur
|
|
61
68
|
}), slots);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VCheckbox.mjs","names":["makeVCheckboxBtnProps","VCheckboxBtn","makeVInputProps","VInput","useFocus","computed","filterInputAttrs","genericComponent","getUid","omit","propsFactory","useRender","makeVCheckboxProps","VCheckbox","name","inheritAttrs","props","emits","focused","setup","_ref","attrs","slots","isFocused","focus","blur","uid","id","inputAttrs","controlAttrs","inputProps","_1","filterProps","checkboxProps","_2","_createVNode","_mergeProps","class","
|
|
1
|
+
{"version":3,"file":"VCheckbox.mjs","names":["makeVCheckboxBtnProps","VCheckboxBtn","makeVInputProps","VInput","useFocus","useProxiedModel","computed","filterInputAttrs","genericComponent","getUid","omit","propsFactory","useRender","makeVCheckboxProps","VCheckbox","name","inheritAttrs","props","emits","value","focused","setup","_ref","attrs","slots","model","isFocused","focus","blur","uid","id","inputAttrs","controlAttrs","inputProps","_1","filterProps","checkboxProps","_2","_createVNode","_mergeProps","class","$event","style","default","_ref2","messagesId","isDisabled","isReadonly"],"sources":["../../../src/components/VCheckbox/VCheckbox.tsx"],"sourcesContent":["// Styles\nimport './VCheckbox.sass'\n\n// Components\nimport { makeVCheckboxBtnProps, VCheckboxBtn } from './VCheckboxBtn'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { filterInputAttrs, genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VSelectionControlSlots } from '../VSelectionControl/VSelectionControl'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VCheckboxSlots = VInputSlots & VSelectionControlSlots\n\nexport const makeVCheckboxProps = propsFactory({\n ...makeVInputProps(),\n ...omit(makeVCheckboxBtnProps(), ['inline']),\n}, 'VCheckbox')\n\nexport const VCheckbox = genericComponent<VCheckboxSlots>()({\n name: 'VCheckbox',\n\n inheritAttrs: false,\n\n props: makeVCheckboxProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n 'update:focused': (focused: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `checkbox-${uid}`)\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = VInput.filterProps(props)\n const [checkboxProps, _2] = VCheckboxBtn.filterProps(props)\n\n return (\n <VInput\n class={[\n 'v-checkbox',\n props.class,\n ]}\n { ...inputAttrs }\n { ...inputProps }\n v-model={ model.value }\n id={ id.value }\n focused={ isFocused.value }\n style={ props.style }\n >\n {{\n ...slots,\n default: ({\n id,\n messagesId,\n isDisabled,\n isReadonly,\n }) => (\n <VCheckboxBtn\n { ...checkboxProps }\n id={ id.value }\n aria-describedby={ messagesId.value }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n v-model={ model.value }\n onFocus={ focus }\n onBlur={ blur }\n v-slots={ slots }\n />\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VCheckbox = InstanceType<typeof VCheckbox>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,qBAAqB,EAAEC,YAAY;AAAA,SACnCC,eAAe,EAAEC,MAAM,gCAEhC;AAAA,SACSC,QAAQ;AAAA,SACRC,eAAe,8CAExB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,gBAAgB,EAAEC,gBAAgB,EAAEC,MAAM,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAElF;AAMA,OAAO,MAAMC,kBAAkB,GAAGF,YAAY,CAAC;EAC7C,GAAGT,eAAe,EAAE;EACpB,GAAGQ,IAAI,CAACV,qBAAqB,EAAE,EAAE,CAAC,QAAQ,CAAC;AAC7C,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMc,SAAS,GAAGN,gBAAgB,EAAkB,CAAC;EAC1DO,IAAI,EAAE,WAAW;EAEjBC,YAAY,EAAE,KAAK;EAEnBC,KAAK,EAAEJ,kBAAkB,EAAE;EAE3BK,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAc,IAAK,IAAI;IAC7C,gBAAgB,EAAGC,OAAgB,IAAK;EAC1C,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAoB;IAAA,IAAlB;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC5B,MAAMG,KAAK,GAAGpB,eAAe,CAACY,KAAK,EAAE,YAAY,CAAC;IAClD,MAAM;MAAES,SAAS;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGxB,QAAQ,CAACa,KAAK,CAAC;IAElD,MAAMY,GAAG,GAAGpB,MAAM,EAAE;IACpB,MAAMqB,EAAE,GAAGxB,QAAQ,CAAC,MAAMW,KAAK,CAACa,EAAE,IAAK,YAAWD,GAAI,EAAC,CAAC;IAExDjB,SAAS,CAAC,MAAM;MACd,MAAM,CAACmB,UAAU,EAAEC,YAAY,CAAC,GAAGzB,gBAAgB,CAACgB,KAAK,CAAC;MAC1D,MAAM,CAACU,UAAU,EAAEC,EAAE,CAAC,GAAG/B,MAAM,CAACgC,WAAW,CAAClB,KAAK,CAAC;MAClD,MAAM,CAACmB,aAAa,EAAEC,EAAE,CAAC,GAAGpC,YAAY,CAACkC,WAAW,CAAClB,KAAK,CAAC;MAE3D,OAAAqB,YAAA,CAAAnC,MAAA,EAAAoC,WAAA;QAAA,SAEW,CACL,YAAY,EACZtB,KAAK,CAACuB,KAAK;MACZ,GACIT,UAAU,EACVE,UAAU;QAAA,cACLR,KAAK,CAACN,KAAK;QAAA,uBAAAsB,MAAA,IAAXhB,KAAK,CAACN,KAAK,GAAAsB,MAAA;QAAA,MAChBX,EAAE,CAACX,KAAK;QAAA,WACHO,SAAS,CAACP,KAAK;QAAA,SACjBF,KAAK,CAACyB;MAAK;QAGjB,GAAGlB,KAAK;QACRmB,OAAO,EAAEC,KAAA;UAAA,IAAC;YACRd,EAAE;YACFe,UAAU;YACVC,UAAU;YACVC;UACF,CAAC,GAAAH,KAAA;UAAA,OAAAN,YAAA,CAAArC,YAAA,EAAAsC,WAAA,CAEQH,aAAa;YAAA,MACbN,EAAE,CAACX,KAAK;YAAA,oBACM0B,UAAU,CAAC1B,KAAK;YAAA,YACxB2B,UAAU,CAAC3B,KAAK;YAAA,YAChB4B,UAAU,CAAC5B;UAAK,GACtBa,YAAY;YAAA,cACPP,KAAK,CAACN,KAAK;YAAA,uBAAAsB,MAAA,IAAXhB,KAAK,CAACN,KAAK,GAAAsB,MAAA;YAAA,WACXd,KAAK;YAAA,UACNC;UAAI,IACHJ,KAAK;QAAA;MAElB;IAIT,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -149,6 +149,7 @@ declare const VCheckbox: {
|
|
|
149
149
|
"v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
150
150
|
"v-slot:prepend"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
151
151
|
modelValue?: any;
|
|
152
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
152
153
|
prependIcon?: IconValue | undefined;
|
|
153
154
|
appendIcon?: IconValue | undefined;
|
|
154
155
|
defaultsTarget?: string | undefined;
|
|
@@ -203,7 +204,7 @@ declare const VCheckbox: {
|
|
|
203
204
|
}>;
|
|
204
205
|
$root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
|
|
205
206
|
$parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
|
|
206
|
-
$emit: (event: "update:focused", focused: boolean) => void;
|
|
207
|
+
$emit: ((event: "update:modelValue", value: boolean) => void) & ((event: "update:focused", focused: boolean) => void);
|
|
207
208
|
$el: any;
|
|
208
209
|
$options: vue.ComponentOptionsBase<{
|
|
209
210
|
error: boolean;
|
|
@@ -285,8 +286,10 @@ declare const VCheckbox: {
|
|
|
285
286
|
}) => vue.VNodeChild) | undefined;
|
|
286
287
|
"v-slot:input"?: false | ((arg: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
287
288
|
} & {
|
|
289
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
288
290
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
289
291
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
292
|
+
'update:modelValue': (value: boolean) => boolean;
|
|
290
293
|
'update:focused': (focused: boolean) => boolean;
|
|
291
294
|
}, string, {
|
|
292
295
|
error: boolean;
|
|
@@ -434,6 +437,7 @@ declare const VCheckbox: {
|
|
|
434
437
|
}) => vue.VNodeChild) | undefined;
|
|
435
438
|
"v-slot:input"?: false | ((arg: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
436
439
|
} & {
|
|
440
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
437
441
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
438
442
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
439
443
|
__isFragment?: undefined;
|
|
@@ -519,8 +523,10 @@ declare const VCheckbox: {
|
|
|
519
523
|
}) => vue.VNodeChild) | undefined;
|
|
520
524
|
"v-slot:input"?: false | ((arg: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
521
525
|
} & {
|
|
526
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
522
527
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
523
528
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
529
|
+
'update:modelValue': (value: boolean) => boolean;
|
|
524
530
|
'update:focused': (focused: boolean) => boolean;
|
|
525
531
|
}, string, {
|
|
526
532
|
error: boolean;
|
|
@@ -25,7 +25,7 @@ import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
|
25
25
|
import { genOverlays, makeVariantProps, useVariant } from "../../composables/variant.mjs"; // Directives
|
|
26
26
|
import { Ripple } from "../../directives/ripple/index.mjs"; // Utilities
|
|
27
27
|
import { computed } from 'vue';
|
|
28
|
-
import { EventProp, genericComponent, propsFactory } from "../../util/index.mjs";
|
|
28
|
+
import { EventProp, genericComponent, propsFactory } from "../../util/index.mjs"; // Types
|
|
29
29
|
export const makeVChipProps = propsFactory({
|
|
30
30
|
activeClass: String,
|
|
31
31
|
appendAvatar: String,
|
|
@@ -54,7 +54,7 @@ export const makeVChipProps = propsFactory({
|
|
|
54
54
|
prependAvatar: String,
|
|
55
55
|
prependIcon: IconValue,
|
|
56
56
|
ripple: {
|
|
57
|
-
type: Boolean,
|
|
57
|
+
type: [Boolean, Object],
|
|
58
58
|
default: true
|
|
59
59
|
},
|
|
60
60
|
text: String,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VChip.mjs","names":["VExpandXTransition","VAvatar","VChipGroupSymbol","VDefaultsProvider","VIcon","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","IconValue","useLocale","useProxiedModel","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","EventProp","genericComponent","propsFactory","makeVChipProps","activeClass","String","appendAvatar","appendIcon","closable","Boolean","closeIcon","type","default","closeLabel","draggable","filter","filterIcon","label","link","undefined","pill","prependAvatar","prependIcon","ripple","text","modelValue","onClick","onClickOnce","tag","variant","VChip","name","directives","props","emits","e","value","val","click","setup","_ref","attrs","emit","slots","t","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","elevationClasses","roundedClasses","sizeClasses","themeClasses","isActive","group","isLink","isClickable","disabled","closeProps","navigate","toggle","onKeyDown","key","preventDefault","Tag","hasAppendMedia","hasAppend","append","hasClose","close","hasFilter","hasPrependMedia","hasPrepend","prepend","hasColor","isSelected","_withDirectives","_createVNode","selectedClass","class","style","href","icon","_resolveDirective","_vShow","_Fragment","image","start","select","end","_mergeProps","size"],"sources":["../../../src/components/VChip/VChip.tsx"],"sourcesContent":["/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\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 } from 'vue'\nimport { EventProp, genericComponent, propsFactory } from '@/util'\n\nexport type VChipSlots = {\n default: {\n isSelected: boolean | undefined\n selectedClass: boolean | (string | undefined)[] | undefined\n select: ((value: boolean) => void) | undefined\n toggle: (() => void) | undefined\n value: unknown\n disabled: boolean\n }\n label: never\n prepend: never\n append: never\n close: never\n filter: never\n}\n\nexport const makeVChipProps = propsFactory({\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined,\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n}, 'VChip')\n\nexport const VChip = genericComponent<VChipSlots>()({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: makeVChipProps(),\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (!!group || props.link || link.isClickable.value)\n )\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasColor = !group || group.isSelected.value\n\n return isActive.value && (\n <Tag\n class={[\n 'v-chip',\n {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable.value,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n group?.selectedClass.value,\n props.class,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n props.style,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n tabindex={ isClickable.value ? 0 : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={[isClickable.value && props.ripple, null]}\n >\n { genOverlays(isClickable.value, 'v-chip') }\n\n { hasFilter && (\n <VExpandXTransition key=\"filter\">\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { !slots.filter ? (\n <VIcon\n key=\"filter-icon\"\n icon={ props.filterIcon }\n />\n ) : (\n <VDefaultsProvider\n key=\"filter-defaults\"\n disabled={ !props.filterIcon }\n defaults={{\n VIcon: { icon: props.filterIcon },\n }}\n v-slot:default={ slots.filter }\n />\n )}\n </div>\n </VExpandXTransition>\n )}\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-chip__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n icon={ props.prependIcon }\n start\n />\n )}\n\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n image={ props.prependAvatar }\n start\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n image: props.prependAvatar,\n start: true,\n },\n VIcon: {\n icon: props.prependIcon,\n start: true,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-chip__content\">\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-chip__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n end\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n end\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n end: true,\n image: props.appendAvatar,\n },\n VIcon: {\n end: true,\n icon: props.appendIcon,\n },\n }}\n v-slots:default={ slots.append }\n />\n )}\n </div>\n )}\n\n { hasClose && (\n <div\n key=\"close\"\n class=\"v-chip__close\"\n { ...closeProps.value }\n >\n { !slots.close ? (\n <VIcon\n key=\"close-icon\"\n icon={ props.closeIcon }\n size=\"x-small\"\n />\n ) : (\n <VDefaultsProvider\n key=\"close-defaults\"\n defaults={{\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small',\n },\n }}\n v-slots:default={ slots.close }\n />\n )}\n </div>\n )}\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VChip.mjs","names":["VExpandXTransition","VAvatar","VChipGroupSymbol","VDefaultsProvider","VIcon","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","IconValue","useLocale","useProxiedModel","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","EventProp","genericComponent","propsFactory","makeVChipProps","activeClass","String","appendAvatar","appendIcon","closable","Boolean","closeIcon","type","default","closeLabel","draggable","filter","filterIcon","label","link","undefined","pill","prependAvatar","prependIcon","ripple","Object","text","modelValue","onClick","onClickOnce","tag","variant","VChip","name","directives","props","emits","e","value","val","click","setup","_ref","attrs","emit","slots","t","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","elevationClasses","roundedClasses","sizeClasses","themeClasses","isActive","group","isLink","isClickable","disabled","closeProps","navigate","toggle","onKeyDown","key","preventDefault","Tag","hasAppendMedia","hasAppend","append","hasClose","close","hasFilter","hasPrependMedia","hasPrepend","prepend","hasColor","isSelected","_withDirectives","_createVNode","selectedClass","class","style","href","icon","_resolveDirective","_vShow","_Fragment","image","start","select","end","_mergeProps","size"],"sources":["../../../src/components/VChip/VChip.tsx"],"sourcesContent":["/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\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 } from 'vue'\nimport { EventProp, genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VChipSlots = {\n default: {\n isSelected: boolean | undefined\n selectedClass: boolean | (string | undefined)[] | undefined\n select: ((value: boolean) => void) | undefined\n toggle: (() => void) | undefined\n value: unknown\n disabled: boolean\n }\n label: never\n prepend: never\n append: never\n close: never\n filter: never\n}\n\nexport const makeVChipProps = propsFactory({\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined,\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n}, 'VChip')\n\nexport const VChip = genericComponent<VChipSlots>()({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: makeVChipProps(),\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (!!group || props.link || link.isClickable.value)\n )\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasColor = !group || group.isSelected.value\n\n return isActive.value && (\n <Tag\n class={[\n 'v-chip',\n {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable.value,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n group?.selectedClass.value,\n props.class,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n props.style,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n tabindex={ isClickable.value ? 0 : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={[isClickable.value && props.ripple, null]}\n >\n { genOverlays(isClickable.value, 'v-chip') }\n\n { hasFilter && (\n <VExpandXTransition key=\"filter\">\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { !slots.filter ? (\n <VIcon\n key=\"filter-icon\"\n icon={ props.filterIcon }\n />\n ) : (\n <VDefaultsProvider\n key=\"filter-defaults\"\n disabled={ !props.filterIcon }\n defaults={{\n VIcon: { icon: props.filterIcon },\n }}\n v-slot:default={ slots.filter }\n />\n )}\n </div>\n </VExpandXTransition>\n )}\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-chip__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n icon={ props.prependIcon }\n start\n />\n )}\n\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n image={ props.prependAvatar }\n start\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n image: props.prependAvatar,\n start: true,\n },\n VIcon: {\n icon: props.prependIcon,\n start: true,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-chip__content\">\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-chip__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n end\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n end\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n end: true,\n image: props.appendAvatar,\n },\n VIcon: {\n end: true,\n icon: props.appendIcon,\n },\n }}\n v-slots:default={ slots.append }\n />\n )}\n </div>\n )}\n\n { hasClose && (\n <div\n key=\"close\"\n class=\"v-chip__close\"\n { ...closeProps.value }\n >\n { !slots.close ? (\n <VIcon\n key=\"close-icon\"\n icon={ props.closeIcon }\n size=\"x-small\"\n />\n ) : (\n <VDefaultsProvider\n key=\"close-defaults\"\n defaults={{\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small',\n },\n }}\n v-slots:default={ slots.close }\n />\n )}\n </div>\n )}\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n"],"mappings":"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"}
|