diff --git a/packages/vue/package.json b/packages/vue/package.json index 7f892b748..aeb2b7ea2 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -88,10 +88,10 @@ }, "dependencies": { "@master/css-runtime": "workspace:^", - "@techor/one-liner": "^2.2.10", + "@techor/extend": "^2.5.24", "class-variant": "workspace:^", - "theme-service": "workspace:^", - "@techor/extend": "^2.5.24" + "clsx": "^2.1.0", + "theme-service": "workspace:^" }, "devDependencies": { "@vitejs/plugin-vue": "^4.2.3", diff --git a/packages/vue/src/styled.ts b/packages/vue/src/styled.ts index aa150262e..df37d15ec 100644 --- a/packages/vue/src/styled.ts +++ b/packages/vue/src/styled.ts @@ -1,15 +1,15 @@ import { h, defineComponent, type VNode } from 'vue' import cv from 'class-variant' -import line from '@techor/one-liner' import { extend } from '@techor/extend' +import clsx from 'clsx' -type IfEquals = (() => T extends X ? 1 : 2) extends (() => T extends Y ? 1 : 2) - ? A +type IfEquals = (() => T extends X ? 1 : 2) extends (() => T extends Y ? 1 : 2) + ? A : B type WritableKeys = { [P in keyof T]-?: IfEquals< - { [Q in P]: T[P];}, - { -readonly [Q in P]: T[P] }, + { [Q in P]: T[P]; }, + { -readonly [Q in P]: T[P] }, P > }[keyof T]; @@ -24,21 +24,21 @@ type BaseType = string | Record | ( E extends Array - ? never - : [string, { [key in keyof E]?: E[key] }] - | { [key in keyof E]?: E[key] extends boolean | undefined ? string : Record } + ? never + : [string, { [key in keyof E]?: E[key] }] + | { [key in keyof E]?: E[key] extends boolean | undefined ? string : Record } ) type BaseLoopType = BaseType | Array> type TagParams = Array<[TemplateStringsArray, any[]]>; type ParamType = ((props: MasterComponentProps) => BaseLoopType> | undefined) | BaseLoopType> type ParamsType = Array>; -type MasterComponentProps = +type MasterComponentProps = Partial & { className?: BaseLoopType | undefined, [key: string]: any } & ( - K extends HTMLElementTagNameKeys - ? Partial, 'className'>> - : object + K extends HTMLElementTagNameKeys + ? Partial, 'className'>> + : object ) type MasterComponent = ((props: MasterComponentProps) => any) & { setup?: any, tag?: K, params: TagParams }; type ReturnType = | VNode | BaseType>( @@ -67,8 +67,8 @@ export const styled: { // @ts-ignore ((firstParam, ...params) => { return ( - Array.isArray(firstParam) && 'raw' in firstParam - || typeof firstParam !== 'object' + Array.isArray(firstParam) && 'raw' in firstParam + || typeof firstParam !== 'object' || !('setup' in firstParam) && !('__v_isVNode' in firstParam) ) ? styled.div(firstParam as any, ...params) @@ -97,7 +97,7 @@ function handle(tag: K, tag let valuesByProp: Record> const unhandledTagParams: TagParams = [] const mergedProps = Object.assign({}, typeof tag === 'string' ? {} : tag.props, attrs) - + const handleParam = (param: any) => { switch (typeof param) { case 'object': @@ -192,7 +192,7 @@ function handle(tag: K, tag } } - return h(tag, { ...props, ...newAttrs, class: line(classNames, attrs.class) }, slots.default?.()) + return h(tag, { ...props, ...newAttrs, class: clsx(classNames, attrs.class) }, slots.default?.()) } } ) as any as MasterComponent diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a64f5f74..8b752c478 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1434,12 +1434,12 @@ importers: '@techor/extend': specifier: ^2.5.24 version: 2.5.24 - '@techor/one-liner': - specifier: ^2.2.10 - version: 2.5.17 class-variant: specifier: workspace:^ version: link:../class-variant + clsx: + specifier: ^2.1.0 + version: 2.1.0 theme-service: specifier: workspace:^ version: link:../theme-service @@ -8731,11 +8731,6 @@ packages: js-yaml: 4.1.0 dev: true - /@techor/one-liner@2.5.17: - resolution: {integrity: sha512-k6qFQUgYJou9JU57oBdzANLNxKfrwoT9pCqV3dpNQPIT0UMZVMM1n4NVH5rz2dCooNF1gSyiQriJjs9n1+xdaw==} - deprecated: Use https://www.npmjs.com/package/clsx - dev: false - /@techor/pack@2.5.24: resolution: {integrity: sha512-Vmjq+AOmOuCH8L6UVJAmUmPMYhZBcrm6TJS18cc8YggvRCoGf09G2SSgeDq3OA4tHskzT1r86s7jDK9/SPA86g==} dependencies: @@ -10041,7 +10036,7 @@ packages: peerDependencies: vite: ^3.0.0 || ^4.0.0 dependencies: - vite: 4.5.1(@types/node@18.19.5)(less@4.2.0)(sass@1.69.5)(terser@5.24.0) + vite: 4.5.1(@types/node@20.10.7)(less@4.2.0)(sass@1.69.5)(terser@5.24.0) dev: true /@vitejs/plugin-react@4.2.1(vite@4.5.1):