routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
+9
@@ -0,0 +1,9 @@
|
||||
@layer vuetify-components {
|
||||
.v-counter {
|
||||
opacity: var(--v-medium-emphasis-opacity);
|
||||
flex: 0 1 auto;
|
||||
font-size: 12px;
|
||||
transition-duration: 150ms;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
+269
@@ -0,0 +1,269 @@
|
||||
|
||||
import type { Component } from 'vue';
|
||||
export declare const makeVCounterProps: <Defaults extends {
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
transition?: unknown;
|
||||
active?: unknown;
|
||||
disabled?: unknown;
|
||||
max?: unknown;
|
||||
value?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
transition: unknown extends Defaults["transition"] ? {
|
||||
type: import("vue").PropType<string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null>;
|
||||
default: {
|
||||
component: Component;
|
||||
} | NonNullable<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null>;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null>;
|
||||
default: {
|
||||
component: Component;
|
||||
} | NonNullable<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null>;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["transition"] ? string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null : string | boolean | {
|
||||
component: Component;
|
||||
} | Defaults["transition"] | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null>;
|
||||
default: unknown extends Defaults["transition"] ? string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null : Defaults["transition"] | NonNullable<string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null>;
|
||||
};
|
||||
active: unknown extends Defaults["active"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["active"] ? boolean : boolean | Defaults["active"]>;
|
||||
default: unknown extends Defaults["active"] ? boolean : boolean | Defaults["active"];
|
||||
};
|
||||
disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>;
|
||||
default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"];
|
||||
};
|
||||
max: unknown extends Defaults["max"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["max"] ? string | number : string | number | Defaults["max"]>;
|
||||
default: unknown extends Defaults["max"] ? string | number : Defaults["max"] | NonNullable<string | number>;
|
||||
};
|
||||
value: unknown extends Defaults["value"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["value"] ? string | number : string | number | Defaults["value"]>;
|
||||
default: unknown extends Defaults["value"] ? string | number : Defaults["value"] | NonNullable<string | number>;
|
||||
};
|
||||
};
|
||||
export type VCounterSlot = {
|
||||
counter: string;
|
||||
max: string | number | undefined;
|
||||
value: string | number | undefined;
|
||||
};
|
||||
export declare const VCounter: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
transition: string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null;
|
||||
active: boolean;
|
||||
disabled: boolean;
|
||||
value: string | number;
|
||||
} & {
|
||||
class?: any;
|
||||
max?: string | number | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: ((arg: VCounterSlot) => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | ((arg: VCounterSlot) => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | ((arg: VCounterSlot) => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | ((arg: VCounterSlot) => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
transition: string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null;
|
||||
active: boolean;
|
||||
disabled: boolean;
|
||||
value: string | number;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: (arg: VCounterSlot) => 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: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
transition: string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null;
|
||||
active: boolean;
|
||||
disabled: boolean;
|
||||
value: string | number;
|
||||
} & {
|
||||
class?: any;
|
||||
max?: string | number | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: ((arg: VCounterSlot) => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | ((arg: VCounterSlot) => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | ((arg: VCounterSlot) => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | ((arg: VCounterSlot) => import("vue").VNodeChild) | undefined;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
transition: string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null;
|
||||
active: boolean;
|
||||
disabled: boolean;
|
||||
value: string | number;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
transition: string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null;
|
||||
active: boolean;
|
||||
disabled: boolean;
|
||||
value: string | number;
|
||||
} & {
|
||||
class?: any;
|
||||
max?: string | number | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: ((arg: VCounterSlot) => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | ((arg: VCounterSlot) => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | ((arg: VCounterSlot) => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | ((arg: VCounterSlot) => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
transition: string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null;
|
||||
active: boolean;
|
||||
disabled: boolean;
|
||||
value: string | number;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: (arg: VCounterSlot) => 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<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
transition: {
|
||||
type: import("vue").PropType<string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null>;
|
||||
default: {
|
||||
component: Component;
|
||||
} | NonNullable<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null>;
|
||||
};
|
||||
active: BooleanConstructor;
|
||||
disabled: BooleanConstructor;
|
||||
max: (NumberConstructor | StringConstructor)[];
|
||||
value: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
transition: {
|
||||
type: import("vue").PropType<string | boolean | {
|
||||
component: Component;
|
||||
} | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null>;
|
||||
default: {
|
||||
component: Component;
|
||||
} | NonNullable<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: Component;
|
||||
}) | null>;
|
||||
};
|
||||
active: BooleanConstructor;
|
||||
disabled: BooleanConstructor;
|
||||
max: (NumberConstructor | StringConstructor)[];
|
||||
value: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
}>>;
|
||||
export type VCounter = InstanceType<typeof VCounter>;
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
import { vShow as _vShow, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createVNode as _createVNode } from "vue";
|
||||
// Styles
|
||||
import "./VCounter.css";
|
||||
|
||||
// Components
|
||||
import { VSlideYTransition } from "../transitions/index.js"; // Composables
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { makeTransitionProps, MaybeTransition } from "../../composables/transition.js"; // Utilities
|
||||
import { toRef } from 'vue';
|
||||
import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
|
||||
export const makeVCounterProps = propsFactory({
|
||||
active: Boolean,
|
||||
disabled: Boolean,
|
||||
max: [Number, String],
|
||||
value: {
|
||||
type: [Number, String],
|
||||
default: 0
|
||||
},
|
||||
...makeComponentProps(),
|
||||
...makeTransitionProps({
|
||||
transition: {
|
||||
component: VSlideYTransition
|
||||
}
|
||||
})
|
||||
}, 'VCounter');
|
||||
export const VCounter = genericComponent()({
|
||||
name: 'VCounter',
|
||||
functional: true,
|
||||
props: makeVCounterProps(),
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
const counter = toRef(() => {
|
||||
return props.max ? `${props.value} / ${props.max}` : String(props.value);
|
||||
});
|
||||
useRender(() => _createVNode(MaybeTransition, {
|
||||
"transition": props.transition
|
||||
}, {
|
||||
default: () => [_withDirectives(_createElementVNode("div", {
|
||||
"class": _normalizeClass(['v-counter', {
|
||||
'text-error': props.max && !props.disabled && parseFloat(props.value) > parseFloat(props.max)
|
||||
}, props.class]),
|
||||
"style": _normalizeStyle(props.style)
|
||||
}, [slots.default ? slots.default({
|
||||
counter: counter.value,
|
||||
max: props.max,
|
||||
value: props.value
|
||||
}) : counter.value]), [[_vShow, props.active]])]
|
||||
}));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VCounter.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VCounter.js","names":["VSlideYTransition","makeComponentProps","makeTransitionProps","MaybeTransition","toRef","genericComponent","propsFactory","useRender","makeVCounterProps","active","Boolean","disabled","max","Number","String","value","type","default","transition","component","VCounter","name","functional","props","setup","slots","counter","_createVNode","_withDirectives","_createElementVNode","_normalizeClass","parseFloat","class","_normalizeStyle","style","_vShow"],"sources":["../../../src/components/VCounter/VCounter.tsx"],"sourcesContent":["// Styles\nimport './VCounter.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\n\nexport const makeVCounterProps = propsFactory({\n active: Boolean,\n disabled: Boolean,\n max: [Number, String],\n value: {\n type: [Number, String],\n default: 0,\n },\n\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: { component: VSlideYTransition as Component },\n }),\n}, 'VCounter')\n\nexport type VCounterSlot = {\n counter: string\n max: string | number | undefined\n value: string | number | undefined\n}\n\ntype VCounterSlots = {\n default: VCounterSlot\n}\n\nexport const VCounter = genericComponent<VCounterSlots>()({\n name: 'VCounter',\n\n functional: true,\n\n props: makeVCounterProps(),\n\n setup (props, { slots }) {\n const counter = toRef(() => {\n return props.max ? `${props.value} / ${props.max}` : String(props.value)\n })\n\n useRender(() => (\n <MaybeTransition transition={ props.transition }>\n <div\n v-show={ props.active }\n class={[\n 'v-counter',\n {\n 'text-error': props.max && !props.disabled &&\n parseFloat(props.value) > parseFloat(props.max),\n },\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default\n ? slots.default({\n counter: counter.value,\n max: props.max,\n value: props.value,\n })\n : counter.value\n }\n </div>\n </MaybeTransition>\n ))\n\n return {}\n },\n})\n\nexport type VCounter = InstanceType<typeof VCounter>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB,mCAE1B;AAAA,SACSC,kBAAkB;AAAA,SAClBC,mBAAmB,EAAEC,eAAe,2CAE7C;AACA,SAASC,KAAK,QAAQ,KAAK;AAAA,SAClBC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,+BAElD;AAGA,OAAO,MAAMC,iBAAiB,GAAGF,YAAY,CAAC;EAC5CG,MAAM,EAAEC,OAAO;EACfC,QAAQ,EAAED,OAAO;EACjBE,GAAG,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;EACrBC,KAAK,EAAE;IACLC,IAAI,EAAE,CAACH,MAAM,EAAEC,MAAM,CAAC;IACtBG,OAAO,EAAE;EACX,CAAC;EAED,GAAGhB,kBAAkB,CAAC,CAAC;EACvB,GAAGC,mBAAmB,CAAC;IACrBgB,UAAU,EAAE;MAAEC,SAAS,EAAEnB;IAA+B;EAC1D,CAAC;AACH,CAAC,EAAE,UAAU,CAAC;AAYd,OAAO,MAAMoB,QAAQ,GAAGf,gBAAgB,CAAgB,CAAC,CAAC;EACxDgB,IAAI,EAAE,UAAU;EAEhBC,UAAU,EAAE,IAAI;EAEhBC,KAAK,EAAEf,iBAAiB,CAAC,CAAC;EAE1BgB,KAAKA,CAAED,KAAK,EAAE;IAAEE;EAAM,CAAC,EAAE;IACvB,MAAMC,OAAO,GAAGtB,KAAK,CAAC,MAAM;MAC1B,OAAOmB,KAAK,CAACX,GAAG,GAAG,GAAGW,KAAK,CAACR,KAAK,MAAMQ,KAAK,CAACX,GAAG,EAAE,GAAGE,MAAM,CAACS,KAAK,CAACR,KAAK,CAAC;IAC1E,CAAC,CAAC;IAEFR,SAAS,CAAC,MAAAoB,YAAA,CAAAxB,eAAA;MAAA,cACsBoB,KAAK,CAACL;IAAU;MAAAD,OAAA,EAAAA,CAAA,MAAAW,eAAA,CAAAC,mBAAA;QAAA,SAAAC,eAAA,CAGnC,CACL,WAAW,EACX;UACE,YAAY,EAAEP,KAAK,CAACX,GAAG,IAAI,CAACW,KAAK,CAACZ,QAAQ,IACxCoB,UAAU,CAACR,KAAK,CAACR,KAAK,CAAC,GAAGgB,UAAU,CAACR,KAAK,CAACX,GAAG;QAClD,CAAC,EACDW,KAAK,CAACS,KAAK,CACZ;QAAA,SAAAC,eAAA,CACOV,KAAK,CAACW,KAAK;MAAA,IAEjBT,KAAK,CAACR,OAAO,GACXQ,KAAK,CAACR,OAAO,CAAC;QACdS,OAAO,EAAEA,OAAO,CAACX,KAAK;QACtBH,GAAG,EAAEW,KAAK,CAACX,GAAG;QACdG,KAAK,EAAEQ,KAAK,CAACR;MACf,CAAC,CAAC,GACAW,OAAO,CAACX,KAAK,MAAAoB,MAAA,EAjBRZ,KAAK,CAACd,MAAM;IAAA,EAqB1B,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
@use '../../styles/settings'
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-counter
|
||||
opacity: var(--v-medium-emphasis-opacity)
|
||||
flex: $counter-flex
|
||||
font-size: $counter-font-size
|
||||
transition-duration: $counter-transition-duration
|
||||
white-space: nowrap
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
// VCounter
|
||||
$counter-flex: 0 1 auto !default;
|
||||
$counter-font-size: 12px !default;
|
||||
$counter-line-height: $counter-font-size !default;
|
||||
$counter-min-height: 12px !default;
|
||||
$counter-transition-duration: 150ms !default;
|
||||
+1
@@ -0,0 +1 @@
|
||||
export { VCounter } from './VCounter.js';
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
export { VCounter } from "./VCounter.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VCounter"],"sources":["../../../src/components/VCounter/index.ts"],"sourcesContent":["export { VCounter } from './VCounter'\n"],"mappings":"SAASA,QAAQ","ignoreList":[]}
|
||||
Reference in New Issue
Block a user