routie dev init since i didn't adhere to any proper guidance up until now

This commit is contained in:
2026-04-29 22:27:29 -06:00
commit e1dabb71e2
15301 changed files with 3562618 additions and 0 deletions
@@ -0,0 +1,274 @@
import type { PropType } from 'vue';
export declare const makeTransitionProps: <Defaults extends {
disabled?: unknown;
group?: unknown;
hideOnLeave?: unknown;
leaveAbsolute?: unknown;
mode?: unknown;
origin?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : {
type: PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>;
default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"];
};
group: unknown extends Defaults["group"] ? BooleanConstructor : {
type: PropType<unknown extends Defaults["group"] ? boolean : boolean | Defaults["group"]>;
default: unknown extends Defaults["group"] ? boolean : boolean | Defaults["group"];
};
hideOnLeave: unknown extends Defaults["hideOnLeave"] ? BooleanConstructor : {
type: PropType<unknown extends Defaults["hideOnLeave"] ? boolean : boolean | Defaults["hideOnLeave"]>;
default: unknown extends Defaults["hideOnLeave"] ? boolean : boolean | Defaults["hideOnLeave"];
};
leaveAbsolute: unknown extends Defaults["leaveAbsolute"] ? BooleanConstructor : {
type: PropType<unknown extends Defaults["leaveAbsolute"] ? boolean : boolean | Defaults["leaveAbsolute"]>;
default: unknown extends Defaults["leaveAbsolute"] ? boolean : boolean | Defaults["leaveAbsolute"];
};
mode: unknown extends Defaults["mode"] ? StringConstructor : {
type: PropType<unknown extends Defaults["mode"] ? string : string | Defaults["mode"]>;
default: unknown extends Defaults["mode"] ? string : string | Defaults["mode"];
};
origin: unknown extends Defaults["origin"] ? StringConstructor : {
type: PropType<unknown extends Defaults["origin"] ? string : string | Defaults["origin"]>;
default: unknown extends Defaults["origin"] ? string : string | Defaults["origin"];
};
};
export declare function createCssTransition(name: string, origin?: string, mode?: string): {
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
leaveAbsolute: boolean;
mode: string;
origin: string;
} & {} & {
$children?: {
default?: (() => import("vue").VNodeChild) | undefined;
} | {
$stable?: boolean;
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
'v-slots'?: {
default?: false | (() => import("vue").VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
leaveAbsolute: boolean;
mode: string | undefined;
origin: string | undefined;
}, true, {}, import("vue").SlotsType<Partial<{
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[];
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, {
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
leaveAbsolute: boolean;
mode: string;
origin: string;
} & {} & {
$children?: {
default?: (() => import("vue").VNodeChild) | undefined;
} | {
$stable?: boolean;
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
'v-slots'?: {
default?: false | (() => import("vue").VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, {
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
leaveAbsolute: boolean;
mode: string | undefined;
origin: string | undefined;
}>;
__isFragment?: never;
__isTeleport?: never;
__isSuspense?: never;
} & import("vue").ComponentOptionsBase<{
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
leaveAbsolute: boolean;
mode: string;
origin: string;
} & {} & {
$children?: {
default?: (() => import("vue").VNodeChild) | undefined;
} | {
$stable?: boolean;
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
'v-slots'?: {
default?: false | (() => import("vue").VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
leaveAbsolute: boolean;
mode: string | undefined;
origin: string | undefined;
}, {}, string, import("vue").SlotsType<Partial<{
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[];
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
disabled: BooleanConstructor;
group: BooleanConstructor;
hideOnLeave: BooleanConstructor;
leaveAbsolute: BooleanConstructor;
mode: {
type: PropType<string | undefined>;
default: string | undefined;
};
origin: {
type: PropType<string | undefined>;
default: string | undefined;
};
}, import("vue").ExtractPropTypes<{
disabled: BooleanConstructor;
group: BooleanConstructor;
hideOnLeave: BooleanConstructor;
leaveAbsolute: BooleanConstructor;
mode: {
type: PropType<string | undefined>;
default: string | undefined;
};
origin: {
type: PropType<string | undefined>;
default: string | undefined;
};
}>>;
export declare function createJavascriptTransition(name: string, functions: Record<string, any>, mode?: string): {
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
mode: "default" | "in-out" | "out-in";
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
} & {} & {
$children?: {
default?: (() => import("vue").VNodeChild) | undefined;
} | {
$stable?: boolean;
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
'v-slots'?: {
default?: false | (() => import("vue").VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
mode: "default" | "in-out" | "out-in";
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
}, true, {}, import("vue").SlotsType<Partial<{
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[];
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, {
mode: "default" | "in-out" | "out-in";
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
} & {} & {
$children?: {
default?: (() => import("vue").VNodeChild) | undefined;
} | {
$stable?: boolean;
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
'v-slots'?: {
default?: false | (() => import("vue").VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, {
mode: "default" | "in-out" | "out-in";
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
}>;
__isFragment?: never;
__isTeleport?: never;
__isSuspense?: never;
} & import("vue").ComponentOptionsBase<{
mode: "default" | "in-out" | "out-in";
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
} & {} & {
$children?: {
default?: (() => import("vue").VNodeChild) | undefined;
} | {
$stable?: boolean;
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
'v-slots'?: {
default?: false | (() => import("vue").VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
mode: "default" | "in-out" | "out-in";
disabled: boolean;
group: boolean;
hideOnLeave: boolean;
}, {}, string, import("vue").SlotsType<Partial<{
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[];
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
mode: {
type: PropType<'in-out' | 'out-in' | 'default'>;
default: string;
};
disabled: {
type: BooleanConstructor;
default: boolean;
};
group: BooleanConstructor;
hideOnLeave: BooleanConstructor;
}, import("vue").ExtractPropTypes<{
mode: {
type: PropType<'in-out' | 'out-in' | 'default'>;
default: string;
};
disabled: {
type: BooleanConstructor;
default: boolean;
};
group: BooleanConstructor;
hideOnLeave: BooleanConstructor;
}>>;
@@ -0,0 +1,124 @@
// Utilities
import { h, Transition, TransitionGroup } from 'vue';
import { genericComponent, PREFERS_REDUCED_MOTION, propsFactory } from "../../util/index.js"; // Types
export const makeTransitionProps = propsFactory({
disabled: Boolean,
group: Boolean,
hideOnLeave: Boolean,
leaveAbsolute: Boolean,
mode: String,
origin: String
}, 'transition');
export function createCssTransition(name, origin, mode) {
return genericComponent()({
name,
props: makeTransitionProps({
mode,
origin
}),
setup(props, {
slots
}) {
const functions = {
onBeforeEnter(el) {
if (props.origin) {
el.style.transformOrigin = props.origin;
}
},
onLeave(el) {
if (props.leaveAbsolute) {
const {
offsetTop,
offsetLeft,
offsetWidth,
offsetHeight
} = el;
el._transitionInitialStyles = {
position: el.style.position,
top: el.style.top,
left: el.style.left,
width: el.style.width,
height: el.style.height
};
el.style.position = 'absolute';
el.style.top = `${offsetTop}px`;
el.style.left = `${offsetLeft}px`;
el.style.width = `${offsetWidth}px`;
el.style.height = `${offsetHeight}px`;
}
if (props.hideOnLeave) {
el.style.setProperty('display', 'none', 'important');
}
},
onAfterLeave(el) {
if (props.leaveAbsolute && el?._transitionInitialStyles) {
const {
position,
top,
left,
width,
height
} = el._transitionInitialStyles;
delete el._transitionInitialStyles;
el.style.position = position || '';
el.style.top = top || '';
el.style.left = left || '';
el.style.width = width || '';
el.style.height = height || '';
}
}
};
return () => {
const tag = props.group ? TransitionGroup : Transition;
return h(tag, {
name: props.disabled ? '' : name,
css: !props.disabled,
...(props.group ? undefined : {
mode: props.mode
}),
...(props.disabled ? {} : functions)
}, slots.default);
};
}
});
}
export function createJavascriptTransition(name, functions, mode = 'in-out') {
return genericComponent()({
name,
props: {
mode: {
type: String,
default: mode
},
disabled: {
type: Boolean,
default: PREFERS_REDUCED_MOTION()
},
group: Boolean,
hideOnLeave: Boolean
},
setup(props, {
slots
}) {
const tag = props.group ? TransitionGroup : Transition;
return () => {
return h(tag, {
name: props.disabled ? '' : name,
css: !props.disabled,
// mode: props.mode, // TODO: vuejs/vue-next#3104
...(props.disabled ? {} : {
...functions,
onLeave: el => {
if (props.hideOnLeave) {
el.style.setProperty('display', 'none', 'important');
} else {
functions.onLeave?.(el);
}
}
})
}, slots.default);
};
}
});
}
//# sourceMappingURL=createTransition.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,74 @@
import type { PropType } from 'vue';
export declare const makeVDialogTransitionProps: <Defaults extends {
target?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
target: unknown extends Defaults["target"] ? PropType<HTMLElement | [x: number, y: number]> : {
type: PropType<unknown extends Defaults["target"] ? HTMLElement | [x: number, y: number] : HTMLElement | [x: number, y: number] | Defaults["target"]>;
default: unknown extends Defaults["target"] ? HTMLElement | [x: number, y: number] : Defaults["target"] | NonNullable<HTMLElement | [x: number, y: number]>;
};
};
export declare const VDialogTransition: {
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{} & {
target?: HTMLElement | [x: number, y: number] | undefined;
} & {
$children?: {
default?: (() => import("vue").VNodeChild) | undefined;
} | {
$stable?: boolean;
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
'v-slots'?: {
default?: false | (() => import("vue").VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {}, true, {}, import("vue").SlotsType<Partial<{
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[];
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, {} & {
target?: HTMLElement | [x: number, y: number] | undefined;
} & {
$children?: {
default?: (() => import("vue").VNodeChild) | undefined;
} | {
$stable?: boolean;
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
'v-slots'?: {
default?: false | (() => import("vue").VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
}, () => JSX.Element, {}, {}, {}, {}>;
__isFragment?: never;
__isTeleport?: never;
__isSuspense?: never;
} & import("vue").ComponentOptionsBase<{} & {
target?: HTMLElement | [x: number, y: number] | undefined;
} & {
$children?: {
default?: (() => import("vue").VNodeChild) | undefined;
} | {
$stable?: boolean;
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
'v-slots'?: {
default?: false | (() => import("vue").VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {}, {}, string, import("vue").SlotsType<Partial<{
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[];
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
target: PropType<HTMLElement | [x: number, y: number]>;
}, import("vue").ExtractPropTypes<{
target: PropType<HTMLElement | [x: number, y: number]>;
}>>;
export type VDialogTransition = InstanceType<typeof VDialogTransition>;
@@ -0,0 +1,167 @@
// Utilities
import { Transition, mergeProps as _mergeProps, createVNode as _createVNode } from 'vue';
import { acceleratedEasing, animate, deceleratedEasing, genericComponent, nullifyTransforms, PREFERS_REDUCED_MOTION, propsFactory, standardEasing } from "../../util/index.js";
import { getTargetBox } from "../../util/box.js"; // Types
export const makeVDialogTransitionProps = propsFactory({
target: [Object, Array]
}, 'v-dialog-transition');
const saved = new WeakMap();
export const VDialogTransition = genericComponent()({
name: 'VDialogTransition',
props: makeVDialogTransitionProps(),
setup(props, {
slots
}) {
const functions = {
onBeforeEnter(el) {
el.style.pointerEvents = 'none';
el.style.visibility = 'hidden';
},
async onEnter(el, done) {
await new Promise(resolve => requestAnimationFrame(resolve));
await new Promise(resolve => requestAnimationFrame(resolve));
el.style.visibility = '';
const dimensions = getDimensions(props.target, el);
const {
x,
y,
sx,
sy,
speed
} = dimensions;
saved.set(el, dimensions);
if (PREFERS_REDUCED_MOTION()) {
animate(el, [{
opacity: 0
}, {}], {
duration: 125 * speed,
easing: deceleratedEasing
}).finished.then(() => done());
} else {
const animation = animate(el, [{
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
opacity: 0
}, {}], {
duration: 225 * speed,
easing: deceleratedEasing
});
getChildren(el)?.forEach(el => {
animate(el, [{
opacity: 0
}, {
opacity: 0,
offset: 0.33
}, {}], {
duration: 225 * 2 * speed,
easing: standardEasing
});
});
animation.finished.then(() => done());
}
},
onAfterEnter(el) {
el.style.removeProperty('pointer-events');
},
onBeforeLeave(el) {
el.style.pointerEvents = 'none';
},
async onLeave(el, done) {
await new Promise(resolve => requestAnimationFrame(resolve));
let dimensions;
if (!saved.has(el) || Array.isArray(props.target) || props.target.offsetParent || props.target.getClientRects().length) {
dimensions = getDimensions(props.target, el);
} else {
dimensions = saved.get(el);
}
const {
x,
y,
sx,
sy,
speed
} = dimensions;
if (PREFERS_REDUCED_MOTION()) {
animate(el, [{}, {
opacity: 0
}], {
duration: 85 * speed,
easing: acceleratedEasing
}).finished.then(() => done());
} else {
const animation = animate(el, [{}, {
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
opacity: 0
}], {
duration: 125 * speed,
easing: acceleratedEasing
});
animation.finished.then(() => done());
getChildren(el)?.forEach(el => {
animate(el, [{}, {
opacity: 0,
offset: 0.2
}, {
opacity: 0
}], {
duration: 125 * 2 * speed,
easing: standardEasing
});
});
}
},
onAfterLeave(el) {
el.style.removeProperty('pointer-events');
}
};
return () => {
return props.target ? _createVNode(Transition, _mergeProps({
"name": "dialog-transition"
}, functions, {
"css": false
}), slots) : _createVNode(Transition, {
"name": "dialog-transition"
}, slots);
};
}
});
/** Animatable children (card, sheet, list) */
function getChildren(el) {
const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children;
return els && [...els];
}
function getDimensions(target, el) {
const targetBox = getTargetBox(target);
const elBox = nullifyTransforms(el);
const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));
const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');
let offsetX = targetBox.left + targetBox.width / 2;
if (anchorSide === 'left' || anchorOffset === 'left') {
offsetX -= targetBox.width / 2;
} else if (anchorSide === 'right' || anchorOffset === 'right') {
offsetX += targetBox.width / 2;
}
let offsetY = targetBox.top + targetBox.height / 2;
if (anchorSide === 'top' || anchorOffset === 'top') {
offsetY -= targetBox.height / 2;
} else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {
offsetY += targetBox.height / 2;
}
const tsx = targetBox.width / elBox.width;
const tsy = targetBox.height / elBox.height;
const maxs = Math.max(1, tsx, tsy);
const sx = tsx / maxs || 0;
const sy = tsy / maxs || 0;
// Animate elements larger than 12% of the screen area up to 1.5x slower
const asa = elBox.width * elBox.height / (window.innerWidth * window.innerHeight);
const speed = asa > 0.12 ? Math.min(1.5, (asa - 0.12) * 10 + 1) : 1;
return {
x: offsetX - (originX + elBox.left),
y: offsetY - (originY + elBox.top),
sx,
sy,
speed
};
}
//# sourceMappingURL=dialog-transition.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,19 @@
interface HTMLExpandElement extends HTMLElement {
_parent?: (Node & ParentNode & HTMLElement) | null;
_initialStyle?: {
transition: string;
overflow: string;
height?: string | null;
width?: string | null;
};
}
export default function (expandedParentClass?: string, type?: 'x' | 'y' | 'both'): {
onBeforeEnter(el: HTMLExpandElement): void;
onEnter(el: HTMLExpandElement): void;
onAfterEnter: (el: HTMLExpandElement) => void;
onEnterCancelled: (el: HTMLExpandElement) => void;
onLeave(el: HTMLExpandElement): void;
onAfterLeave: (el: HTMLExpandElement) => void;
onLeaveCancelled: (el: HTMLExpandElement) => void;
};
@@ -0,0 +1,73 @@
export default function (expandedParentClass = '', type = 'y') {
return {
onBeforeEnter(el) {
el._parent = el.parentNode;
el._initialStyle = {
transition: el.style.transition,
overflow: el.style.overflow,
width: el.style.width,
height: el.style.height
};
},
onEnter(el) {
const initialStyle = el._initialStyle;
if (!initialStyle) return;
el.style.setProperty('transition', 'none', 'important');
// Hide overflow to account for collapsed margins in the calculated height
el.style.overflow = 'hidden';
const offsetWidth = `${el.offsetWidth}px`;
const offsetHeight = `${el.offsetHeight}px`;
if (['x', 'both'].includes(type)) el.style.width = '0';
if (['y', 'both'].includes(type)) el.style.height = '0';
void el.offsetHeight; // force reflow
el.style.transition = initialStyle.transition;
if (expandedParentClass && el._parent) {
el._parent.classList.add(expandedParentClass);
}
requestAnimationFrame(() => {
if (['x', 'both'].includes(type)) el.style.width = offsetWidth;
if (['y', 'both'].includes(type)) el.style.height = offsetHeight;
});
},
onAfterEnter: resetStyles,
onEnterCancelled: resetStyles,
onLeave(el) {
el._initialStyle = {
transition: '',
overflow: el.style.overflow,
width: el.style.width,
height: el.style.height
};
el.style.overflow = 'hidden';
if (['x', 'both'].includes(type)) el.style.width = `${el.offsetWidth}px`;
if (['y', 'both'].includes(type)) el.style.height = `${el.offsetHeight}px`;
void el.offsetHeight; // force reflow
requestAnimationFrame(() => {
if (['x', 'both'].includes(type)) el.style.width = '0';
if (['y', 'both'].includes(type)) el.style.height = '0';
});
},
onAfterLeave,
onLeaveCancelled: onAfterLeave
};
function onAfterLeave(el) {
if (expandedParentClass && el._parent) {
el._parent.classList.remove(expandedParentClass);
}
resetStyles(el);
}
function resetStyles(el) {
if (!el._initialStyle) return;
const {
width: w,
height: h
} = el._initialStyle;
el.style.overflow = el._initialStyle.overflow;
if (w != null && ['x', 'both'].includes(type)) el.style.width = w;
if (h != null && ['y', 'both'].includes(type)) el.style.height = h;
delete el._initialStyle;
}
}
//# sourceMappingURL=expand-transition.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+24
View File
@@ -0,0 +1,24 @@
import { createCssTransition, createJavascriptTransition } from "./createTransition.js";
import ExpandTransitionGenerator from "./expand-transition.js"; // Component specific transitions
export const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in');
// Generic transitions
export const VDialogBottomTransition = createCssTransition('dialog-bottom-transition');
export const VDialogTopTransition = createCssTransition('dialog-top-transition');
export const VFadeTransition = createCssTransition('fade-transition');
export const VScaleTransition = createCssTransition('scale-transition');
export const VScrollXTransition = createCssTransition('scroll-x-transition');
export const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition');
export const VScrollYTransition = createCssTransition('scroll-y-transition');
export const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition');
export const VSlideXTransition = createCssTransition('slide-x-transition');
export const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition');
export const VSlideYTransition = createCssTransition('slide-y-transition');
export const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition');
// Javascript transitions
export const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator());
export const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', 'x'));
export const VExpandBothTransition = createJavascriptTransition('expand-both-transition', ExpandTransitionGenerator('', 'both'));
export { VDialogTransition } from "./dialog-transition.js";
//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
{"version":3,"file":"index.js","names":["createCssTransition","createJavascriptTransition","ExpandTransitionGenerator","VFabTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandTransition","VExpandXTransition","VExpandBothTransition","VDialogTransition"],"sources":["../../../src/components/transitions/index.ts"],"sourcesContent":["import {\n createCssTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition')\nexport const VFadeTransition = createCssTransition('fade-transition')\nexport const VScaleTransition = createCssTransition('scale-transition')\nexport const VScrollXTransition = createCssTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createCssTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createCssTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createCssTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', 'x'))\nexport const VExpandBothTransition = createJavascriptTransition('expand-both-transition', ExpandTransitionGenerator('', 'both'))\n\nexport { VDialogTransition } from './dialog-transition'\n\nexport type VFabTransition = InstanceType<typeof VFabTransition>\nexport type VDialogBottomTransition = InstanceType<typeof VDialogBottomTransition>\nexport type VDialogTopTransition = InstanceType<typeof VDialogTopTransition>\nexport type VFadeTransition = InstanceType<typeof VFadeTransition>\nexport type VScaleTransition = InstanceType<typeof VScaleTransition>\nexport type VScrollXTransition = InstanceType<typeof VScrollXTransition>\nexport type VScrollXReverseTransition = InstanceType<typeof VScrollXReverseTransition>\nexport type VScrollYTransition = InstanceType<typeof VScrollYTransition>\nexport type VScrollYReverseTransition = InstanceType<typeof VScrollYReverseTransition>\nexport type VSlideXTransition = InstanceType<typeof VSlideXTransition>\nexport type VSlideXReverseTransition = InstanceType<typeof VSlideXReverseTransition>\nexport type VSlideYTransition = InstanceType<typeof VSlideYTransition>\nexport type VSlideYReverseTransition = InstanceType<typeof VSlideYReverseTransition>\nexport type VExpandTransition = InstanceType<typeof VExpandTransition>\nexport type VExpandXTransition = InstanceType<typeof VExpandXTransition>\n"],"mappings":"SACEA,mBAAmB,EACnBC,0BAA0B;AAAA,OAGrBC,yBAAyB,gCAEhC;AACA,OAAO,MAAMC,cAAc,GAAGH,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC;;AAE9F;AACA,OAAO,MAAMI,uBAAuB,GAAGJ,mBAAmB,CAAC,0BAA0B,CAAC;AACtF,OAAO,MAAMK,oBAAoB,GAAGL,mBAAmB,CAAC,uBAAuB,CAAC;AAChF,OAAO,MAAMM,eAAe,GAAGN,mBAAmB,CAAC,iBAAiB,CAAC;AACrE,OAAO,MAAMO,gBAAgB,GAAGP,mBAAmB,CAAC,kBAAkB,CAAC;AACvE,OAAO,MAAMQ,kBAAkB,GAAGR,mBAAmB,CAAC,qBAAqB,CAAC;AAC5E,OAAO,MAAMS,yBAAyB,GAAGT,mBAAmB,CAAC,6BAA6B,CAAC;AAC3F,OAAO,MAAMU,kBAAkB,GAAGV,mBAAmB,CAAC,qBAAqB,CAAC;AAC5E,OAAO,MAAMW,yBAAyB,GAAGX,mBAAmB,CAAC,6BAA6B,CAAC;AAC3F,OAAO,MAAMY,iBAAiB,GAAGZ,mBAAmB,CAAC,oBAAoB,CAAC;AAC1E,OAAO,MAAMa,wBAAwB,GAAGb,mBAAmB,CAAC,4BAA4B,CAAC;AACzF,OAAO,MAAMc,iBAAiB,GAAGd,mBAAmB,CAAC,oBAAoB,CAAC;AAC1E,OAAO,MAAMe,wBAAwB,GAAGf,mBAAmB,CAAC,4BAA4B,CAAC;;AAEzF;AACA,OAAO,MAAMgB,iBAAiB,GAAGf,0BAA0B,CAAC,mBAAmB,EAAEC,yBAAyB,CAAC,CAAC,CAAC;AAC7G,OAAO,MAAMe,kBAAkB,GAAGhB,0BAA0B,CAAC,qBAAqB,EAAEC,yBAAyB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACvH,OAAO,MAAMgB,qBAAqB,GAAGjB,0BAA0B,CAAC,wBAAwB,EAAEC,yBAAyB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAAA,SAEvHiB,iBAAiB","ignoreList":[]}