@vuetify/nightly 3.3.12-dev.2023-08-17 → 3.3.12-dev.2023-08-18
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/CHANGELOG.md +5 -2
- package/dist/json/attributes.json +20 -4
- package/dist/json/importMap.json +42 -42
- package/dist/json/tags.json +4 -0
- package/dist/json/web-types.json +47 -11
- package/dist/vuetify-labs.css +923 -923
- package/dist/vuetify-labs.d.ts +56 -1
- package/dist/vuetify-labs.esm.js +43 -17
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +43 -17
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +217 -217
- package/dist/vuetify.d.ts +67 -12
- package/dist/vuetify.esm.js +43 -17
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +43 -17
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +282 -277
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VBanner/VBanner.mjs +5 -3
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/index.d.mts +10 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.mts +10 -0
- package/lib/components/VSlideGroup/VSlideGroup.mjs +5 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +10 -0
- package/lib/components/VTabs/index.d.mts +10 -0
- package/lib/components/index.d.mts +28 -0
- package/lib/composables/directiveComponent.mjs +69 -0
- package/lib/composables/directiveComponent.mjs.map +1 -0
- package/lib/composables/display.mjs +23 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/theme.mjs +7 -7
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +43 -12
- package/package.json +1 -1
|
@@ -12,7 +12,7 @@ import { makeComponentProps } from "../../composables/component.mjs";
|
|
|
12
12
|
import { provideDefaults } from "../../composables/defaults.mjs";
|
|
13
13
|
import { makeDensityProps, useDensity } from "../../composables/density.mjs";
|
|
14
14
|
import { makeDimensionProps, useDimension } from "../../composables/dimensions.mjs";
|
|
15
|
-
import { useDisplay } from "../../composables/display.mjs";
|
|
15
|
+
import { makeDisplayProps, useDisplay } from "../../composables/display.mjs";
|
|
16
16
|
import { makeElevationProps, useElevation } from "../../composables/elevation.mjs";
|
|
17
17
|
import { IconValue } from "../../composables/icons.mjs";
|
|
18
18
|
import { makeLocationProps, useLocation } from "../../composables/location.mjs";
|
|
@@ -34,6 +34,7 @@ export const makeVBannerProps = propsFactory({
|
|
|
34
34
|
...makeComponentProps(),
|
|
35
35
|
...makeDensityProps(),
|
|
36
36
|
...makeDimensionProps(),
|
|
37
|
+
...makeDisplayProps(),
|
|
37
38
|
...makeElevationProps(),
|
|
38
39
|
...makeLocationProps(),
|
|
39
40
|
...makePositionProps(),
|
|
@@ -55,8 +56,9 @@ export const VBanner = genericComponent()({
|
|
|
55
56
|
densityClasses
|
|
56
57
|
} = useDensity(props);
|
|
57
58
|
const {
|
|
59
|
+
displayClasses,
|
|
58
60
|
mobile
|
|
59
|
-
} = useDisplay();
|
|
61
|
+
} = useDisplay(props);
|
|
60
62
|
const {
|
|
61
63
|
dimensionStyles
|
|
62
64
|
} = useDimension(props);
|
|
@@ -92,7 +94,7 @@ export const VBanner = genericComponent()({
|
|
|
92
94
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
93
95
|
'v-banner--sticky': props.sticky,
|
|
94
96
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
95
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
97
|
+
}, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
96
98
|
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
97
99
|
"role": "banner"
|
|
98
100
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VBanner.mjs","names":["VBannerActions","VBannerText","VAvatar","VDefaultsProvider","makeBorderProps","useBorder","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","useDisplay","makeElevationProps","useElevation","IconValue","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","toRef","genericComponent","propsFactory","useRender","makeVBannerProps","avatar","String","color","icon","lines","stacked","Boolean","sticky","text","VBanner","name","props","setup","_ref","slots","borderClasses","densityClasses","mobile","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","themeClasses","density","hasText","hasPrependMedia","hasPrepend","prepend","_createVNode","tag","value","class","style","default","image","actions"],"sources":["../../../src/components/VBanner/VBanner.tsx"],"sourcesContent":["// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerText } from './VBannerText'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VBannerSlots = {\n default: never\n prepend: never\n text: never\n actions: never\n}\n\nexport const makeVBannerProps = propsFactory({\n avatar: String,\n color: String,\n icon: IconValue,\n lines: String as PropType<'one' | 'two' | 'three'>,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VBanner')\n\nexport const VBanner = genericComponent<VBannerSlots>()({\n name: 'VBanner',\n\n props: makeVBannerProps(),\n\n setup (props, { slots }) {\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { mobile } = useDisplay()\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n const { themeClasses } = provideTheme(props)\n\n const color = toRef(props, 'color')\n const density = toRef(props, 'density')\n\n provideDefaults({ VBannerActions: { color, density } })\n\n useRender(() => {\n const hasText = !!(props.text || slots.text)\n const hasPrependMedia = !!(props.avatar || props.icon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines,\n },\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n themeClasses.value,\n props.class,\n ]}\n style={[\n dimensionStyles.value,\n locationStyles.value,\n props.style,\n ]}\n role=\"banner\"\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-banner__prepend\">\n { !slots.prepend ? (\n <VAvatar\n key=\"prepend-avatar\"\n color={ color.value }\n density={ density.value }\n icon={ props.icon }\n image={ props.avatar }\n />\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n color: color.value,\n density: density.value,\n icon: props.icon,\n image: props.avatar,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-banner__content\">\n { hasText && (\n <VBannerText key=\"text\">\n { slots.text?.() ?? props.text }\n </VBannerText>\n )}\n\n { slots.default?.() }\n </div>\n\n { slots.actions && (\n <VBannerActions key=\"actions\" v-slots:default={ slots.actions } />\n )}\n </props.tag>\n )\n })\n },\n})\n\nexport type VBanner = InstanceType<typeof VBanner>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,cAAc;AAAA,SACdC,WAAW;AAAA,SACXC,OAAO;AAAA,SACPC,iBAAiB,0CAE1B;AAAA,SACSC,eAAe,EAAEC,SAAS;AAAA,SAC1BC,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,UAAU;AAAA,
|
|
1
|
+
{"version":3,"file":"VBanner.mjs","names":["VBannerActions","VBannerText","VAvatar","VDefaultsProvider","makeBorderProps","useBorder","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeDisplayProps","useDisplay","makeElevationProps","useElevation","IconValue","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","toRef","genericComponent","propsFactory","useRender","makeVBannerProps","avatar","String","color","icon","lines","stacked","Boolean","sticky","text","VBanner","name","props","setup","_ref","slots","borderClasses","densityClasses","displayClasses","mobile","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","themeClasses","density","hasText","hasPrependMedia","hasPrepend","prepend","_createVNode","tag","value","class","style","default","image","actions"],"sources":["../../../src/components/VBanner/VBanner.tsx"],"sourcesContent":["// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerText } from './VBannerText'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VBannerSlots = {\n default: never\n prepend: never\n text: never\n actions: never\n}\n\nexport const makeVBannerProps = propsFactory({\n avatar: String,\n color: String,\n icon: IconValue,\n lines: String as PropType<'one' | 'two' | 'three'>,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeDisplayProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VBanner')\n\nexport const VBanner = genericComponent<VBannerSlots>()({\n name: 'VBanner',\n\n props: makeVBannerProps(),\n\n setup (props, { slots }) {\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n const { themeClasses } = provideTheme(props)\n\n const color = toRef(props, 'color')\n const density = toRef(props, 'density')\n\n provideDefaults({ VBannerActions: { color, density } })\n\n useRender(() => {\n const hasText = !!(props.text || slots.text)\n const hasPrependMedia = !!(props.avatar || props.icon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines,\n },\n borderClasses.value,\n densityClasses.value,\n displayClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n themeClasses.value,\n props.class,\n ]}\n style={[\n dimensionStyles.value,\n locationStyles.value,\n props.style,\n ]}\n role=\"banner\"\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-banner__prepend\">\n { !slots.prepend ? (\n <VAvatar\n key=\"prepend-avatar\"\n color={ color.value }\n density={ density.value }\n icon={ props.icon }\n image={ props.avatar }\n />\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n color: color.value,\n density: density.value,\n icon: props.icon,\n image: props.avatar,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-banner__content\">\n { hasText && (\n <VBannerText key=\"text\">\n { slots.text?.() ?? props.text }\n </VBannerText>\n )}\n\n { slots.default?.() }\n </div>\n\n { slots.actions && (\n <VBannerActions key=\"actions\" v-slots:default={ slots.actions } />\n )}\n </props.tag>\n )\n })\n },\n})\n\nexport type VBanner = InstanceType<typeof VBanner>\n"],"mappings":"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"}
|
|
@@ -3,6 +3,10 @@ import { ComponentPropsOptions, ExtractPropTypes, JSXComponent, PropType } from
|
|
|
3
3
|
|
|
4
4
|
type Density = null | 'default' | 'comfortable' | 'compact';
|
|
5
5
|
|
|
6
|
+
declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
|
|
7
|
+
type Breakpoint = typeof breakpoints[number];
|
|
8
|
+
type DisplayBreakpoint = 'xs' | Breakpoint;
|
|
9
|
+
|
|
6
10
|
declare const block: readonly ["top", "bottom"];
|
|
7
11
|
declare const inline: readonly ["start", "end", "left", "right"];
|
|
8
12
|
type Tblock = typeof block[number];
|
|
@@ -100,6 +104,7 @@ declare const VBanner: {
|
|
|
100
104
|
}>) => void)[] | undefined;
|
|
101
105
|
"v-slot:prepend"?: false | (() => vue.VNodeChild) | undefined;
|
|
102
106
|
lines?: "one" | "two" | "three" | undefined;
|
|
107
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
103
108
|
avatar?: string | undefined;
|
|
104
109
|
"v-slot:actions"?: false | (() => vue.VNodeChild) | undefined;
|
|
105
110
|
};
|
|
@@ -151,6 +156,7 @@ declare const VBanner: {
|
|
|
151
156
|
theme?: string | undefined;
|
|
152
157
|
rounded?: string | number | boolean | undefined;
|
|
153
158
|
lines?: "one" | "two" | "three" | undefined;
|
|
159
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
154
160
|
avatar?: string | undefined;
|
|
155
161
|
} & {
|
|
156
162
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
@@ -234,6 +240,7 @@ declare const VBanner: {
|
|
|
234
240
|
theme?: string | undefined;
|
|
235
241
|
rounded?: string | number | boolean | undefined;
|
|
236
242
|
lines?: "one" | "two" | "three" | undefined;
|
|
243
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
237
244
|
avatar?: string | undefined;
|
|
238
245
|
} & {
|
|
239
246
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
@@ -281,6 +288,7 @@ declare const VBanner: {
|
|
|
281
288
|
theme?: string | undefined;
|
|
282
289
|
rounded?: string | number | boolean | undefined;
|
|
283
290
|
lines?: "one" | "two" | "three" | undefined;
|
|
291
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
284
292
|
avatar?: string | undefined;
|
|
285
293
|
} & {
|
|
286
294
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
@@ -339,6 +347,7 @@ declare const VBanner: {
|
|
|
339
347
|
type: (StringConstructor | NumberConstructor)[];
|
|
340
348
|
validator(v: any): boolean;
|
|
341
349
|
};
|
|
350
|
+
mobileBreakpoint: PropType<number | DisplayBreakpoint>;
|
|
342
351
|
height: (StringConstructor | NumberConstructor)[];
|
|
343
352
|
maxHeight: (StringConstructor | NumberConstructor)[];
|
|
344
353
|
maxWidth: (StringConstructor | NumberConstructor)[];
|
|
@@ -382,6 +391,7 @@ declare const VBanner: {
|
|
|
382
391
|
type: (StringConstructor | NumberConstructor)[];
|
|
383
392
|
validator(v: any): boolean;
|
|
384
393
|
};
|
|
394
|
+
mobileBreakpoint: PropType<number | DisplayBreakpoint>;
|
|
385
395
|
height: (StringConstructor | NumberConstructor)[];
|
|
386
396
|
maxHeight: (StringConstructor | NumberConstructor)[];
|
|
387
397
|
maxWidth: (StringConstructor | NumberConstructor)[];
|
|
@@ -10,7 +10,7 @@ import { makeBorderProps, useBorder } from "../../composables/border.mjs";
|
|
|
10
10
|
import { useBackgroundColor } from "../../composables/color.mjs";
|
|
11
11
|
import { makeComponentProps } from "../../composables/component.mjs";
|
|
12
12
|
import { provideDefaults } from "../../composables/defaults.mjs";
|
|
13
|
-
import { useDisplay } from "../../composables/display.mjs";
|
|
13
|
+
import { makeDisplayProps, useDisplay } from "../../composables/display.mjs";
|
|
14
14
|
import { makeElevationProps, useElevation } from "../../composables/elevation.mjs";
|
|
15
15
|
import { makeLayoutItemProps, useLayoutItem } from "../../composables/layout.mjs";
|
|
16
16
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
@@ -61,6 +61,7 @@ export const makeVNavigationDrawerProps = propsFactory({
|
|
|
61
61
|
sticky: Boolean,
|
|
62
62
|
...makeBorderProps(),
|
|
63
63
|
...makeComponentProps(),
|
|
64
|
+
...makeDisplayProps(),
|
|
64
65
|
...makeElevationProps(),
|
|
65
66
|
...makeLayoutItemProps(),
|
|
66
67
|
...makeRoundedProps(),
|
|
@@ -99,8 +100,9 @@ export const VNavigationDrawer = genericComponent()({
|
|
|
99
100
|
elevationClasses
|
|
100
101
|
} = useElevation(props);
|
|
101
102
|
const {
|
|
103
|
+
displayClasses,
|
|
102
104
|
mobile
|
|
103
|
-
} = useDisplay();
|
|
105
|
+
} = useDisplay(props);
|
|
104
106
|
const {
|
|
105
107
|
roundedClasses
|
|
106
108
|
} = useRounded(props);
|
|
@@ -211,7 +213,7 @@ export const VNavigationDrawer = genericComponent()({
|
|
|
211
213
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
212
214
|
'v-navigation-drawer--active': isActive.value,
|
|
213
215
|
'v-navigation-drawer--sticky': isSticky.value
|
|
214
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
216
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
215
217
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
216
218
|
}, scopeId, attrs), {
|
|
217
219
|
default: () => [hasImage && _createVNode("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VNavigationDrawer.mjs","names":["useSticky","useTouch","useRtl","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","useDisplay","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","useProxiedModel","makeRoundedProps","useRounded","useRouter","useScopeId","useSsrBoot","makeTagProps","makeThemeProps","provideTheme","computed","nextTick","onBeforeMount","ref","shallowRef","toRef","Transition","watch","genericComponent","propsFactory","toPhysical","useRender","locations","makeVNavigationDrawerProps","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","touchless","width","location","validator","value","includes","sticky","tag","VNavigationDrawer","name","props","emits","val","setup","_ref","attrs","emit","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","mobile","roundedClasses","router","isActive","v","ssrBootStyles","scopeId","rootEl","isHovering","isTemporary","isSticky","currentRoute","isDragging","dragProgress","dragStyles","position","layoutSize","size","layoutItemStyles","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","VList","bgColor","onMouseenter","onMouseleave","hasImage","_createVNode","_Fragment","_mergeProps","class","style","prepend","append","onClick"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\nimport { useRtl } from '@/composables'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, ref, shallowRef, toRef, Transition, watch } from 'vue'\nimport { genericComponent, propsFactory, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VNavigationDrawerImageSlot = {\n image: string | undefined\n}\n\nexport type VNavigationDrawerSlots = {\n default: never\n prepend: never\n append: never\n image: VNavigationDrawerImageSlot\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n}, 'VNavigationDrawer')\n\nexport const VNavigationDrawer = genericComponent<VNavigationDrawerSlots>()({\n name: 'VNavigationDrawer',\n\n props: makeVNavigationDrawerProps(),\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n const { scopeId } = useScopeId()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = shallowRef(false)\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n if (props.expandOnHover && props.rail != null) {\n watch(isHovering, val => emit('update:rail', !val))\n }\n\n if (!props.disableResizeWatcher) {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n }\n\n if (!props.disableRouteWatcher && router) {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false))\n }\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n\n const { layoutItemStyles, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n function onMouseenter () {\n isHovering.value = true\n }\n function onMouseleave () {\n isHovering.value = false\n }\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n props.style,\n ]}\n { ...scopeId }\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => isActive.value = false }\n { ...scopeId }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VNavigationDrawer.mjs","names":["useSticky","useTouch","useRtl","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDisplayProps","useDisplay","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","useProxiedModel","makeRoundedProps","useRounded","useRouter","useScopeId","useSsrBoot","makeTagProps","makeThemeProps","provideTheme","computed","nextTick","onBeforeMount","ref","shallowRef","toRef","Transition","watch","genericComponent","propsFactory","toPhysical","useRender","locations","makeVNavigationDrawerProps","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","touchless","width","location","validator","value","includes","sticky","tag","VNavigationDrawer","name","props","emits","val","setup","_ref","attrs","emit","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","displayClasses","mobile","roundedClasses","router","isActive","v","ssrBootStyles","scopeId","rootEl","isHovering","isTemporary","isSticky","currentRoute","isDragging","dragProgress","dragStyles","position","layoutSize","size","layoutItemStyles","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","VList","bgColor","onMouseenter","onMouseleave","hasImage","_createVNode","_Fragment","_mergeProps","class","style","prepend","append","onClick"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\nimport { useRtl } from '@/composables'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, ref, shallowRef, toRef, Transition, watch } from 'vue'\nimport { genericComponent, propsFactory, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VNavigationDrawerImageSlot = {\n image: string | undefined\n}\n\nexport type VNavigationDrawerSlots = {\n default: never\n prepend: never\n append: never\n image: VNavigationDrawerImageSlot\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDisplayProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n}, 'VNavigationDrawer')\n\nexport const VNavigationDrawer = genericComponent<VNavigationDrawerSlots>()({\n name: 'VNavigationDrawer',\n\n props: makeVNavigationDrawerProps(),\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n const { scopeId } = useScopeId()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = shallowRef(false)\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n if (props.expandOnHover && props.rail != null) {\n watch(isHovering, val => emit('update:rail', !val))\n }\n\n if (!props.disableResizeWatcher) {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n }\n\n if (!props.disableRouteWatcher && router) {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false))\n }\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n\n const { layoutItemStyles, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n function onMouseenter () {\n isHovering.value = true\n }\n function onMouseleave () {\n isHovering.value = false\n }\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n displayClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n props.style,\n ]}\n { ...scopeId }\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => isActive.value = false }\n { ...scopeId }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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"}
|
|
@@ -5,6 +5,10 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
|
|
|
5
5
|
filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
|
|
9
|
+
type Breakpoint = typeof breakpoints[number];
|
|
10
|
+
type DisplayBreakpoint = 'xs' | Breakpoint;
|
|
11
|
+
|
|
8
12
|
type VNavigationDrawerImageSlot = {
|
|
9
13
|
image: string | undefined;
|
|
10
14
|
};
|
|
@@ -98,6 +102,7 @@ declare const VNavigationDrawer: {
|
|
|
98
102
|
"v-slot:append"?: false | (() => vue.VNodeChild) | undefined;
|
|
99
103
|
"v-slot:prepend"?: false | (() => vue.VNodeChild) | undefined;
|
|
100
104
|
"onUpdate:modelValue"?: ((val: boolean) => any) | undefined;
|
|
105
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
101
106
|
"onUpdate:rail"?: ((val: boolean) => any) | undefined;
|
|
102
107
|
};
|
|
103
108
|
$attrs: {
|
|
@@ -152,6 +157,7 @@ declare const VNavigationDrawer: {
|
|
|
152
157
|
elevation?: string | number | undefined;
|
|
153
158
|
theme?: string | undefined;
|
|
154
159
|
rounded?: string | number | boolean | undefined;
|
|
160
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
155
161
|
} & {
|
|
156
162
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
157
163
|
default?: (() => vue.VNodeChild) | undefined;
|
|
@@ -259,6 +265,7 @@ declare const VNavigationDrawer: {
|
|
|
259
265
|
elevation?: string | number | undefined;
|
|
260
266
|
theme?: string | undefined;
|
|
261
267
|
rounded?: string | number | boolean | undefined;
|
|
268
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
262
269
|
} & {
|
|
263
270
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
264
271
|
default?: (() => vue.VNodeChild) | undefined;
|
|
@@ -314,6 +321,7 @@ declare const VNavigationDrawer: {
|
|
|
314
321
|
elevation?: string | number | undefined;
|
|
315
322
|
theme?: string | undefined;
|
|
316
323
|
rounded?: string | number | boolean | undefined;
|
|
324
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
317
325
|
} & {
|
|
318
326
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
319
327
|
default?: (() => vue.VNodeChild) | undefined;
|
|
@@ -398,6 +406,7 @@ declare const VNavigationDrawer: {
|
|
|
398
406
|
type: (StringConstructor | NumberConstructor)[];
|
|
399
407
|
validator(v: any): boolean;
|
|
400
408
|
};
|
|
409
|
+
mobileBreakpoint: PropType<number | DisplayBreakpoint>;
|
|
401
410
|
class: PropType<any>;
|
|
402
411
|
style: {
|
|
403
412
|
type: PropType<vue.StyleValue>;
|
|
@@ -464,6 +473,7 @@ declare const VNavigationDrawer: {
|
|
|
464
473
|
type: (StringConstructor | NumberConstructor)[];
|
|
465
474
|
validator(v: any): boolean;
|
|
466
475
|
};
|
|
476
|
+
mobileBreakpoint: PropType<number | DisplayBreakpoint>;
|
|
467
477
|
class: PropType<any>;
|
|
468
478
|
style: {
|
|
469
479
|
type: PropType<vue.StyleValue>;
|
|
@@ -5,8 +5,8 @@ import "./VSlideGroup.css";
|
|
|
5
5
|
// Components
|
|
6
6
|
import { VFadeTransition } from "../transitions/index.mjs";
|
|
7
7
|
import { VIcon } from "../VIcon/index.mjs"; // Composables
|
|
8
|
-
import { useDisplay } from "../../composables/index.mjs";
|
|
9
8
|
import { makeComponentProps } from "../../composables/component.mjs";
|
|
9
|
+
import { makeDisplayProps, useDisplay } from "../../composables/display.mjs";
|
|
10
10
|
import { makeGroupProps, useGroup } from "../../composables/group.mjs";
|
|
11
11
|
import { IconValue } from "../../composables/icons.mjs";
|
|
12
12
|
import { useRtl } from "../../composables/locale.mjs";
|
|
@@ -39,6 +39,7 @@ export const makeVSlideGroupProps = propsFactory({
|
|
|
39
39
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
40
40
|
},
|
|
41
41
|
...makeComponentProps(),
|
|
42
|
+
...makeDisplayProps(),
|
|
42
43
|
...makeTagProps(),
|
|
43
44
|
...makeGroupProps({
|
|
44
45
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -58,8 +59,9 @@ export const VSlideGroup = genericComponent()({
|
|
|
58
59
|
isRtl
|
|
59
60
|
} = useRtl();
|
|
60
61
|
const {
|
|
62
|
+
displayClasses,
|
|
61
63
|
mobile
|
|
62
|
-
} = useDisplay();
|
|
64
|
+
} = useDisplay(props);
|
|
63
65
|
const group = useGroup(props, props.symbol);
|
|
64
66
|
const isOverflowing = shallowRef(false);
|
|
65
67
|
const scrollOffset = shallowRef(0);
|
|
@@ -279,7 +281,7 @@ export const VSlideGroup = genericComponent()({
|
|
|
279
281
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
280
282
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
281
283
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
282
|
-
}, props.class],
|
|
284
|
+
}, displayClasses.value, props.class],
|
|
283
285
|
"style": props.style,
|
|
284
286
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
285
287
|
"onFocus": onFocus
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSlideGroup.mjs","names":["VFadeTransition","VIcon","useDisplay","makeComponentProps","makeGroupProps","useGroup","IconValue","useRtl","useResizeObserver","makeTagProps","computed","shallowRef","watch","bias","calculateCenteredOffset","calculateUpdatedOffset","clamp","focusableChildren","genericComponent","IN_BROWSER","propsFactory","useRender","VSlideGroupSymbol","Symbol","for","makeVSlideGroupProps","centerActive","Boolean","direction","type","String","default","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","selectedClass","VSlideGroup","name","props","emits","value","setup","_ref","slots","isRtl","mobile","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","firstSelectedIndex","selected","length","items","findIndex","item","id","lastSelectedIndex","frame","cancelAnimationFrame","requestAnimationFrame","sizeProperty","selectedElement","children","currentScrollOffset","disableTransition","startTouch","startOffset","onTouchstart","e","sign","touches","onTouchmove","onTouchend","maxScrollOffset","onScroll","isFocused","onFocusin","el","composedPath","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","key","location","focusable","querySelector","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","scrollTo","newAbsoluteOffset","contentStyles","scrollAmount","transform","transition","willChange","slotProps","next","prev","select","isSelected","hasAffixes","Math","abs","hasPrev","hasNext","_createVNode","tag","class","style","onClick"],"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useDisplay } from '@/composables'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\nimport { clamp, focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: SlideGroupSlot\n prev: SlideGroupSlot\n next: SlideGroupSlot\n}\n\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n}, 'VSlideGroup')\n\nexport const VSlideGroup = genericComponent<VSlideGroupSlots>()({\n name: 'VSlideGroup',\n\n props: makeVSlideGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { mobile } = useDisplay()\n const group = useGroup(props, props.symbol)\n const isOverflowing = shallowRef(false)\n const scrollOffset = shallowRef(0)\n const containerSize = shallowRef(0)\n const contentSize = shallowRef(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n if (IN_BROWSER) {\n let frame = -1\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n }\n\n if (firstSelectedIndex.value >= 0 && contentRef.value) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[lastSelectedIndex.value] as HTMLElement\n\n if (firstSelectedIndex.value === 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (props.centerActive) {\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n } else if (isOverflowing.value) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n }\n }\n })\n })\n }\n\n const disableTransition = shallowRef(false)\n\n let startTouch = 0\n let startOffset = 0\n\n function onTouchstart (e: TouchEvent) {\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n startOffset = sign * scrollOffset.value\n startTouch = e.touches[0][sizeProperty]\n disableTransition.value = true\n }\n\n function onTouchmove (e: TouchEvent) {\n if (!isOverflowing.value) return\n\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n scrollOffset.value = sign * (startOffset + startTouch - e.touches[0][sizeProperty])\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n if (!containerRef.value) return\n\n containerRef.value[isHorizontal.value ? 'scrollLeft' : 'scrollTop'] = 0\n }\n\n const isFocused = shallowRef(false)\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.value) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.value.children) {\n if (item === el) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement: item as HTMLElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n return\n }\n }\n }\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 if (!contentRef.value) return\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n focus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n focus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n }\n }\n\n if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.value) return\n\n if (!location) {\n const focusable = focusableChildren(contentRef.value)\n focusable[0]?.focus()\n } else if (location === 'next') {\n const el = contentRef.value.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('first')\n } else if (location === 'prev') {\n const el = contentRef.value.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('last')\n } else if (location === 'first') {\n (contentRef.value.firstElementChild as HTMLElement)?.focus()\n } else if (location === 'last') {\n (contentRef.value.lastElementChild as HTMLElement)?.focus()\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const newAbsoluteOffset = scrollOffset.value + (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = clamp(newAbsoluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n // This adds friction when scrolling the 'wrong' way when at max offset\n let scrollAmount = scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n // This adds friction when scrolling the 'wrong' way when at min offset\n if (scrollOffset.value <= 0) {\n scrollAmount = bias(-scrollOffset.value)\n }\n\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${sign * scrollAmount}px)`,\n transition: disableTransition.value ? 'none' : '',\n willChange: disableTransition.value ? 'transform' : '',\n }\n })\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n return Math.abs(scrollOffset.value) > 0\n })\n\n const hasNext = computed(() => {\n // Check one scroll ahead to know the width of right-most item\n return contentSize.value > Math.abs(scrollOffset.value) + containerSize.value\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n props.class,\n ]}\n style={ props.style }\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n key=\"prev\"\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onClick={ () => scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.nextIcon : props.prevIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n\n <div\n key=\"container\"\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n style={ contentStyles.value }\n onTouchstartPassive={ onTouchstart }\n onTouchmovePassive={ onTouchmove }\n onTouchendPassive={ onTouchend }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n key=\"next\"\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onClick={ () => scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.prevIcon : props.nextIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VSlideGroup.mjs","names":["VFadeTransition","VIcon","makeComponentProps","makeDisplayProps","useDisplay","makeGroupProps","useGroup","IconValue","useRtl","useResizeObserver","makeTagProps","computed","shallowRef","watch","bias","calculateCenteredOffset","calculateUpdatedOffset","clamp","focusableChildren","genericComponent","IN_BROWSER","propsFactory","useRender","VSlideGroupSymbol","Symbol","for","makeVSlideGroupProps","centerActive","Boolean","direction","type","String","default","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","selectedClass","VSlideGroup","name","props","emits","value","setup","_ref","slots","isRtl","displayClasses","mobile","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","firstSelectedIndex","selected","length","items","findIndex","item","id","lastSelectedIndex","frame","cancelAnimationFrame","requestAnimationFrame","sizeProperty","selectedElement","children","currentScrollOffset","disableTransition","startTouch","startOffset","onTouchstart","e","sign","touches","onTouchmove","onTouchend","maxScrollOffset","onScroll","isFocused","onFocusin","el","composedPath","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","key","location","focusable","querySelector","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","scrollTo","newAbsoluteOffset","contentStyles","scrollAmount","transform","transition","willChange","slotProps","next","prev","select","isSelected","hasAffixes","Math","abs","hasPrev","hasNext","_createVNode","tag","class","style","onClick"],"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\nimport { clamp, focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: SlideGroupSlot\n prev: SlideGroupSlot\n next: SlideGroupSlot\n}\n\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeComponentProps(),\n ...makeDisplayProps(),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n}, 'VSlideGroup')\n\nexport const VSlideGroup = genericComponent<VSlideGroupSlots>()({\n name: 'VSlideGroup',\n\n props: makeVSlideGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { displayClasses, mobile } = useDisplay(props)\n const group = useGroup(props, props.symbol)\n const isOverflowing = shallowRef(false)\n const scrollOffset = shallowRef(0)\n const containerSize = shallowRef(0)\n const contentSize = shallowRef(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n if (IN_BROWSER) {\n let frame = -1\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n }\n\n if (firstSelectedIndex.value >= 0 && contentRef.value) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[lastSelectedIndex.value] as HTMLElement\n\n if (firstSelectedIndex.value === 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (props.centerActive) {\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n } else if (isOverflowing.value) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n }\n }\n })\n })\n }\n\n const disableTransition = shallowRef(false)\n\n let startTouch = 0\n let startOffset = 0\n\n function onTouchstart (e: TouchEvent) {\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n startOffset = sign * scrollOffset.value\n startTouch = e.touches[0][sizeProperty]\n disableTransition.value = true\n }\n\n function onTouchmove (e: TouchEvent) {\n if (!isOverflowing.value) return\n\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n scrollOffset.value = sign * (startOffset + startTouch - e.touches[0][sizeProperty])\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n if (!containerRef.value) return\n\n containerRef.value[isHorizontal.value ? 'scrollLeft' : 'scrollTop'] = 0\n }\n\n const isFocused = shallowRef(false)\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.value) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.value.children) {\n if (item === el) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement: item as HTMLElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n return\n }\n }\n }\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 if (!contentRef.value) return\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n focus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n focus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n }\n }\n\n if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.value) return\n\n if (!location) {\n const focusable = focusableChildren(contentRef.value)\n focusable[0]?.focus()\n } else if (location === 'next') {\n const el = contentRef.value.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('first')\n } else if (location === 'prev') {\n const el = contentRef.value.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('last')\n } else if (location === 'first') {\n (contentRef.value.firstElementChild as HTMLElement)?.focus()\n } else if (location === 'last') {\n (contentRef.value.lastElementChild as HTMLElement)?.focus()\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const newAbsoluteOffset = scrollOffset.value + (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = clamp(newAbsoluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n // This adds friction when scrolling the 'wrong' way when at max offset\n let scrollAmount = scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n // This adds friction when scrolling the 'wrong' way when at min offset\n if (scrollOffset.value <= 0) {\n scrollAmount = bias(-scrollOffset.value)\n }\n\n const sign = isRtl.value && isHorizontal.value ? -1 : 1\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${sign * scrollAmount}px)`,\n transition: disableTransition.value ? 'none' : '',\n willChange: disableTransition.value ? 'transform' : '',\n }\n })\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n return Math.abs(scrollOffset.value) > 0\n })\n\n const hasNext = computed(() => {\n // Check one scroll ahead to know the width of right-most item\n return contentSize.value > Math.abs(scrollOffset.value) + containerSize.value\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n displayClasses.value,\n props.class,\n ]}\n style={ props.style }\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n key=\"prev\"\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onClick={ () => scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.nextIcon : props.prevIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n\n <div\n key=\"container\"\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n style={ contentStyles.value }\n onTouchstartPassive={ onTouchstart }\n onTouchmovePassive={ onTouchmove }\n onTouchendPassive={ onTouchend }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n key=\"next\"\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onClick={ () => scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.prevIcon : props.nextIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n"],"mappings":"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"}
|
|
@@ -5,6 +5,10 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
|
|
|
5
5
|
filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
|
|
9
|
+
type Breakpoint = typeof breakpoints[number];
|
|
10
|
+
type DisplayBreakpoint = 'xs' | Breakpoint;
|
|
11
|
+
|
|
8
12
|
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
|
|
9
13
|
declare const IconValue: PropType<IconValue>;
|
|
10
14
|
|
|
@@ -120,6 +124,7 @@ declare const VSlideGroup: {
|
|
|
120
124
|
[key: string]: any;
|
|
121
125
|
}>) => void)[] | undefined;
|
|
122
126
|
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
127
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
123
128
|
showArrows?: string | boolean | undefined;
|
|
124
129
|
"v-slot:next"?: false | ((arg: SlideGroupSlot) => vue.VNodeChild) | undefined;
|
|
125
130
|
"v-slot:prev"?: false | ((arg: SlideGroupSlot) => vue.VNodeChild) | undefined;
|
|
@@ -161,6 +166,7 @@ declare const VSlideGroup: {
|
|
|
161
166
|
class?: any;
|
|
162
167
|
mandatory?: boolean | "force" | undefined;
|
|
163
168
|
modelValue?: any;
|
|
169
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
164
170
|
showArrows?: string | boolean | undefined;
|
|
165
171
|
} & {
|
|
166
172
|
$children?: vue.VNodeChild | {
|
|
@@ -244,6 +250,7 @@ declare const VSlideGroup: {
|
|
|
244
250
|
class?: any;
|
|
245
251
|
mandatory?: boolean | "force" | undefined;
|
|
246
252
|
modelValue?: any;
|
|
253
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
247
254
|
showArrows?: string | boolean | undefined;
|
|
248
255
|
} & {
|
|
249
256
|
$children?: vue.VNodeChild | {
|
|
@@ -287,6 +294,7 @@ declare const VSlideGroup: {
|
|
|
287
294
|
class?: any;
|
|
288
295
|
mandatory?: boolean | "force" | undefined;
|
|
289
296
|
modelValue?: any;
|
|
297
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
|
290
298
|
showArrows?: string | boolean | undefined;
|
|
291
299
|
} & {
|
|
292
300
|
$children?: vue.VNodeChild | {
|
|
@@ -351,6 +359,7 @@ declare const VSlideGroup: {
|
|
|
351
359
|
type: StringConstructor;
|
|
352
360
|
default: string;
|
|
353
361
|
};
|
|
362
|
+
mobileBreakpoint: PropType<number | DisplayBreakpoint>;
|
|
354
363
|
class: PropType<any>;
|
|
355
364
|
style: {
|
|
356
365
|
type: PropType<vue.StyleValue>;
|
|
@@ -394,6 +403,7 @@ declare const VSlideGroup: {
|
|
|
394
403
|
type: StringConstructor;
|
|
395
404
|
default: string;
|
|
396
405
|
};
|
|
406
|
+
mobileBreakpoint: PropType<number | DisplayBreakpoint>;
|
|
397
407
|
class: PropType<any>;
|
|
398
408
|
style: {
|
|
399
409
|
type: PropType<vue.StyleValue>;
|