@cck-ui/core 0.4.10 → 0.5.0
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/cjs/components/button/button.cjs +71 -63
- package/cjs/components/button/button.cjs.map +1 -1
- package/cjs/components/button/button.utils.cjs +28 -0
- package/cjs/components/button/button.utils.cjs.map +1 -0
- package/cjs/components/button/index.cjs +5 -1
- package/cjs/components/button/index.cjs.map +1 -1
- package/cjs/components/grid/col/col.cjs +33 -16
- package/cjs/components/grid/col/col.cjs.map +1 -1
- package/cjs/components/grid/grid.cjs +63 -34
- package/cjs/components/grid/grid.cjs.map +1 -1
- package/cjs/components/grid/grid.constants.cjs.map +1 -1
- package/cjs/components/grid/grid.utils.cjs +11 -0
- package/cjs/components/grid/grid.utils.cjs.map +1 -0
- package/cjs/components/grid/index.cjs +7 -2
- package/cjs/components/grid/index.cjs.map +1 -1
- package/cjs/components/loader/loader.module.cjs.map +1 -1
- package/cjs/components/loader/loaders/bars.cjs +6 -3
- package/cjs/components/loader/loaders/bars.cjs.map +1 -1
- package/cjs/components/loader/loaders/dots.cjs +6 -3
- package/cjs/components/loader/loaders/dots.cjs.map +1 -1
- package/cjs/components/loader/loaders/oval.cjs +6 -3
- package/cjs/components/loader/loaders/oval.cjs.map +1 -1
- package/cjs/components/unstyled-button/unstyled-button.cjs +32 -22
- package/cjs/components/unstyled-button/unstyled-button.cjs.map +1 -1
- package/cjs/core/box/box.cjs +39 -27
- package/cjs/core/box/box.cjs.map +1 -1
- package/cjs/core/box/get-box-style/get-box-style.cjs.map +1 -1
- package/cjs/core/box/style-props/extract-style-props/extract-style-props.cjs.map +1 -1
- package/cjs/core/box/style-props/parse-style-props/sort-media-queries.cjs.map +1 -1
- package/cjs/core/box/style-props/resolvers/border-resolver/border-resolver.cjs.map +1 -1
- package/cjs/core/box/style-props/resolvers/color-resolver/color-resolver.cjs.map +1 -1
- package/cjs/core/box/style-props/resolvers/font-family-resolver/font-family-resolver.cjs.map +1 -1
- package/cjs/core/box/style-props/resolvers/index.cjs.map +1 -1
- package/cjs/core/box/style-props/style-props-data.cjs.map +1 -1
- package/cjs/core/config-provider/color-functions/get-gradient/get-gradient.cjs +3 -3
- package/cjs/core/config-provider/color-functions/get-gradient/get-gradient.cjs.map +1 -1
- package/cjs/core/config-provider/color-functions/rgba/rgba.cjs +8 -0
- package/cjs/core/config-provider/color-functions/rgba/rgba.cjs.map +1 -1
- package/cjs/core/config-provider/color-functions/to-rgba/to-rgba.cjs.map +1 -1
- package/cjs/core/config-provider/config-provider.cjs +33 -22
- package/cjs/core/config-provider/config-provider.cjs.map +1 -1
- package/cjs/core/config-provider/default-colors.cjs.map +1 -1
- package/cjs/core/config-provider/index.cjs +5 -0
- package/cjs/core/config-provider/index.cjs.map +1 -1
- package/cjs/core/config-provider/merge-cck-theme/merge-cck-theme.cjs +2 -2
- package/cjs/core/config-provider/merge-cck-theme/merge-cck-theme.cjs.map +1 -1
- package/cjs/core/config-provider/merge-theme-overrides/merge-theme-overrides.cjs +10 -0
- package/cjs/core/config-provider/merge-theme-overrides/merge-theme-overrides.cjs.map +1 -0
- package/cjs/core/config-provider/use-component-props/use-component-props.cjs +35 -0
- package/cjs/core/config-provider/use-component-props/use-component-props.cjs.map +1 -0
- package/cjs/core/responsive-style-manager/css-object-to-string/css-object-to-string.cjs.map +1 -1
- package/cjs/core/responsive-style-manager/normalize-number-like-string-prop/normalize-number-like-string-prop.cjs +1 -1
- package/cjs/core/responsive-style-manager/normalize-number-like-string-prop/normalize-number-like-string-prop.cjs.map +1 -1
- package/cjs/core/responsive-style-manager/responsive-style-manager.cjs.map +1 -1
- package/cjs/core/responsive-style-manager/styles-to-string/styles-to-string.cjs.map +1 -1
- package/cjs/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.cjs.map +1 -1
- package/cjs/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.cjs.map +1 -1
- package/cjs/core/styles-api/use-styles/get-class-name/get-root-class-name/get-root-class-name.cjs.map +1 -1
- package/cjs/core/styles-api/use-styles/get-class-name/get-selector-class-name/get-selector-class-name.cjs.map +1 -1
- package/cjs/core/styles-api/use-styles/get-class-name/get-static-class-names/get-static-class-names.cjs.map +1 -1
- package/cjs/core/styles-api/use-styles/get-class-name/get-variant-class-name/get-variant-class-name.cjs.map +1 -1
- package/cjs/core/utils/deep-merge/deep-merge.cjs +18 -0
- package/cjs/core/utils/deep-merge/deep-merge.cjs.map +1 -0
- package/cjs/core/utils/get-breakpoint-value/get-breakpoint-value.cjs.map +1 -1
- package/cjs/core/utils/get-size/get-size.cjs +2 -2
- package/cjs/core/utils/get-size/get-size.cjs.map +1 -1
- package/cjs/core/utils/get-sorted-breakpoints/get-sorted-breakpoints.cjs.map +1 -1
- package/cjs/core/utils/number-like-string-to-number/number-like-string-to-number.cjs.map +1 -1
- package/cjs/core/utils/units-converters/px.cjs.map +1 -1
- package/cjs/core/utils/units-converters/rem.cjs.map +1 -1
- package/cjs/core/utils/vue/component.cjs.map +1 -1
- package/cjs/core/utils/vue/install.cjs +3 -3
- package/cjs/core/utils/vue/install.cjs.map +1 -1
- package/cjs/core/utils/vue/statics.cjs +38 -0
- package/cjs/core/utils/vue/statics.cjs.map +1 -0
- package/cjs/index.cjs +12 -6
- package/cjs/index.cjs.map +1 -1
- package/esm/components/button/button.mjs +71 -63
- package/esm/components/button/button.mjs.map +1 -1
- package/esm/components/button/button.utils.mjs +29 -0
- package/esm/components/button/button.utils.mjs.map +1 -0
- package/esm/components/button/index.mjs +5 -1
- package/esm/components/button/index.mjs.map +1 -1
- package/esm/components/grid/col/col.mjs +34 -17
- package/esm/components/grid/col/col.mjs.map +1 -1
- package/esm/components/grid/grid.constants.mjs.map +1 -1
- package/esm/components/grid/grid.mjs +63 -34
- package/esm/components/grid/grid.mjs.map +1 -1
- package/esm/components/grid/grid.utils.mjs +12 -0
- package/esm/components/grid/grid.utils.mjs.map +1 -0
- package/esm/components/grid/index.mjs +6 -2
- package/esm/components/grid/index.mjs.map +1 -1
- package/esm/components/loader/loader.module.mjs.map +1 -1
- package/esm/components/loader/loaders/bars.mjs +7 -4
- package/esm/components/loader/loaders/bars.mjs.map +1 -1
- package/esm/components/loader/loaders/dots.mjs +7 -4
- package/esm/components/loader/loaders/dots.mjs.map +1 -1
- package/esm/components/loader/loaders/oval.mjs +7 -4
- package/esm/components/loader/loaders/oval.mjs.map +1 -1
- package/esm/components/unstyled-button/unstyled-button.mjs +33 -23
- package/esm/components/unstyled-button/unstyled-button.mjs.map +1 -1
- package/esm/core/box/box.mjs +40 -28
- package/esm/core/box/box.mjs.map +1 -1
- package/esm/core/box/get-box-style/get-box-style.mjs.map +1 -1
- package/esm/core/box/style-props/extract-style-props/extract-style-props.mjs.map +1 -1
- package/esm/core/box/style-props/parse-style-props/sort-media-queries.mjs.map +1 -1
- package/esm/core/box/style-props/resolvers/border-resolver/border-resolver.mjs.map +1 -1
- package/esm/core/box/style-props/resolvers/color-resolver/color-resolver.mjs.map +1 -1
- package/esm/core/box/style-props/resolvers/font-family-resolver/font-family-resolver.mjs.map +1 -1
- package/esm/core/box/style-props/resolvers/index.mjs.map +1 -1
- package/esm/core/box/style-props/style-props-data.mjs.map +1 -1
- package/esm/core/config-provider/color-functions/get-gradient/get-gradient.mjs +3 -3
- package/esm/core/config-provider/color-functions/get-gradient/get-gradient.mjs.map +1 -1
- package/esm/core/config-provider/color-functions/rgba/rgba.mjs +8 -1
- package/esm/core/config-provider/color-functions/rgba/rgba.mjs.map +1 -1
- package/esm/core/config-provider/color-functions/to-rgba/to-rgba.mjs.map +1 -1
- package/esm/core/config-provider/config-provider.mjs +33 -22
- package/esm/core/config-provider/config-provider.mjs.map +1 -1
- package/esm/core/config-provider/default-colors.mjs.map +1 -1
- package/esm/core/config-provider/index.mjs +4 -2
- package/esm/core/config-provider/index.mjs.map +1 -1
- package/esm/core/config-provider/merge-cck-theme/merge-cck-theme.mjs +2 -2
- package/esm/core/config-provider/merge-cck-theme/merge-cck-theme.mjs.map +1 -1
- package/esm/core/config-provider/merge-theme-overrides/merge-theme-overrides.mjs +10 -0
- package/esm/core/config-provider/merge-theme-overrides/merge-theme-overrides.mjs.map +1 -0
- package/esm/core/config-provider/use-component-props/use-component-props.mjs +35 -0
- package/esm/core/config-provider/use-component-props/use-component-props.mjs.map +1 -0
- package/esm/core/responsive-style-manager/css-object-to-string/css-object-to-string.mjs.map +1 -1
- package/esm/core/responsive-style-manager/normalize-number-like-string-prop/normalize-number-like-string-prop.mjs +1 -1
- package/esm/core/responsive-style-manager/normalize-number-like-string-prop/normalize-number-like-string-prop.mjs.map +1 -1
- package/esm/core/responsive-style-manager/responsive-style-manager.mjs.map +1 -1
- package/esm/core/responsive-style-manager/styles-to-string/styles-to-string.mjs.map +1 -1
- package/esm/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.mjs.map +1 -1
- package/esm/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.mjs.map +1 -1
- package/esm/core/styles-api/use-styles/get-class-name/get-root-class-name/get-root-class-name.mjs.map +1 -1
- package/esm/core/styles-api/use-styles/get-class-name/get-selector-class-name/get-selector-class-name.mjs.map +1 -1
- package/esm/core/styles-api/use-styles/get-class-name/get-static-class-names/get-static-class-names.mjs.map +1 -1
- package/esm/core/styles-api/use-styles/get-class-name/get-variant-class-name/get-variant-class-name.mjs.map +1 -1
- package/esm/core/utils/deep-merge/deep-merge.mjs +18 -0
- package/esm/core/utils/deep-merge/deep-merge.mjs.map +1 -0
- package/esm/core/utils/get-breakpoint-value/get-breakpoint-value.mjs.map +1 -1
- package/esm/core/utils/get-size/get-size.mjs +2 -2
- package/esm/core/utils/get-size/get-size.mjs.map +1 -1
- package/esm/core/utils/get-sorted-breakpoints/get-sorted-breakpoints.mjs.map +1 -1
- package/esm/core/utils/number-like-string-to-number/number-like-string-to-number.mjs.map +1 -1
- package/esm/core/utils/units-converters/px.mjs.map +1 -1
- package/esm/core/utils/units-converters/rem.mjs.map +1 -1
- package/esm/core/utils/vue/component.mjs.map +1 -1
- package/esm/core/utils/vue/install.mjs +2 -2
- package/esm/core/utils/vue/install.mjs.map +1 -1
- package/esm/core/utils/vue/statics.mjs +35 -0
- package/esm/core/utils/vue/statics.mjs.map +1 -0
- package/esm/index.mjs +6 -4
- package/esm/index.mjs.map +1 -1
- package/lib/components/button/button.utils.d.ts +9 -0
- package/lib/components/button/index.d.ts +3 -3
- package/lib/components/grid/grid.utils.d.ts +9 -0
- package/lib/components/grid/index.d.ts +6 -5
- package/lib/core/config-provider/color-functions/index.d.ts +1 -1
- package/lib/core/config-provider/color-functions/rgba/rgba.d.ts +1 -0
- package/lib/core/config-provider/index.d.ts +2 -0
- package/lib/core/config-provider/merge-theme-overrides/merge-theme-overrides.d.ts +2 -0
- package/lib/core/config-provider/use-component-props/use-component-props.d.ts +7 -0
- package/lib/core/responsive-style-manager/responsive-style-manager.d.ts +1 -0
- package/lib/core/styles-api/index.d.ts +1 -1
- package/lib/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.d.ts +1 -1
- package/lib/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.d.ts +1 -1
- package/lib/core/styles-api/use-styles/get-class-name/get-static-class-names/get-static-class-names.d.ts +1 -1
- package/lib/core/styles-api/use-styles/get-class-name/get-variant-class-name/get-variant-class-name.d.ts +1 -1
- package/lib/core/utils/deep-merge/deep-merge.d.ts +1 -0
- package/lib/core/utils/index.d.ts +4 -5
- package/lib/core/utils/vue/index.d.ts +1 -0
- package/lib/core/utils/vue/statics.d.ts +14 -0
- package/lib/core/utils/vue/typescript.d.ts +8 -0
- package/package.json +2 -1
- package/styles/loader.css +1 -2
- package/styles/loader.layer.css +1 -2
- package/styles.css +1 -2
- package/styles.layer.css +1 -2
- package/cjs/core/utils/color.cjs +0 -112
- package/cjs/core/utils/color.cjs.map +0 -1
- package/cjs/core/utils/dom/style.cjs +0 -13
- package/cjs/core/utils/dom/style.cjs.map +0 -1
- package/esm/core/utils/color.mjs +0 -110
- package/esm/core/utils/color.mjs.map +0 -1
- package/esm/core/utils/dom/style.mjs +0 -12
- package/esm/core/utils/dom/style.mjs.map +0 -1
- package/lib/core/utils/color.d.ts +0 -11
- package/lib/core/utils/dom/index.d.ts +0 -1
- package/lib/core/utils/dom/style.d.ts +0 -1
|
@@ -8,5 +8,7 @@ export * from './create-theme/create-theme';
|
|
|
8
8
|
export * from './default-theme';
|
|
9
9
|
export * from './theme.types';
|
|
10
10
|
export * from './use-cck-color-scheme';
|
|
11
|
+
export { useComponentProps } from './use-component-props/use-component-props';
|
|
12
|
+
export { mergeThemeOverrides } from './merge-theme-overrides/merge-theme-overrides';
|
|
11
13
|
export declare const CckConfigProvider: SFCWithInstall<typeof ConfigProvider>;
|
|
12
14
|
export default CckConfigProvider;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ComputedRef } from 'vue';
|
|
2
|
+
export interface UseComponentPropsOptions<T extends Record<string, any>, U extends Partial<T> | null = {}> {
|
|
3
|
+
component: string | (string | undefined)[];
|
|
4
|
+
defaultProps: U;
|
|
5
|
+
props: T;
|
|
6
|
+
}
|
|
7
|
+
export declare function useComponentProps<T extends Record<string, any>, U extends Partial<T> | null = {}>(options: UseComponentPropsOptions<T, U>): ComputedRef<T>;
|
|
@@ -4,4 +4,4 @@ export { resolveStyles } from './use-styles/get-style/resolve-styles/resolve-sty
|
|
|
4
4
|
export { FOCUS_CLASS_NAMES } from './use-styles/get-class-name/get-global-class-names/get-global-class-names';
|
|
5
5
|
export * from './styles-api.types';
|
|
6
6
|
export * from './use-styles/use-styles';
|
|
7
|
-
export type { VarsResolver, PartialVarsResolver, TransformVars, PartialTransformVars } from './create-vars-resolver/create-vars-resolver';
|
|
7
|
+
export type { VarsResolver, PartialVarsResolver, TransformVars, PartialTransformVars, } from './create-vars-resolver/create-vars-resolver';
|
|
@@ -4,5 +4,5 @@ interface GetOptionsClassNamesInput extends Omit<ResolveClassNamesInput, 'classN
|
|
|
4
4
|
selector: string;
|
|
5
5
|
options: GetStylesApiOptions | undefined;
|
|
6
6
|
}
|
|
7
|
-
export declare function getOptionsClassNames({ selector, stylesCtx, options, props, theme }: GetOptionsClassNamesInput): string | undefined;
|
|
7
|
+
export declare function getOptionsClassNames({ selector, stylesCtx, options, props, theme, }: GetOptionsClassNamesInput): string | undefined;
|
|
8
8
|
export {};
|
|
@@ -2,5 +2,5 @@ import { ResolveClassNamesInput } from '../resolve-class-names/resolve-class-nam
|
|
|
2
2
|
interface GetResolvedClassNamesOptions extends ResolveClassNamesInput {
|
|
3
3
|
selector: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function getResolvedClassNames({ selector, stylesCtx, theme, classNames, props }: GetResolvedClassNamesOptions): string | undefined;
|
|
5
|
+
export declare function getResolvedClassNames({ selector, stylesCtx, theme, classNames, props, }: GetResolvedClassNamesOptions): string | undefined;
|
|
6
6
|
export {};
|
|
@@ -4,5 +4,5 @@ interface GetStaticClassNamesInput {
|
|
|
4
4
|
classNamesPrefix: string;
|
|
5
5
|
withStaticClass?: boolean;
|
|
6
6
|
}
|
|
7
|
-
export declare function getStaticClassNames({ themeName, classNamesPrefix, selector, withStaticClass }: GetStaticClassNamesInput): string[];
|
|
7
|
+
export declare function getStaticClassNames({ themeName, classNamesPrefix, selector, withStaticClass, }: GetStaticClassNamesInput): string[];
|
|
8
8
|
export {};
|
|
@@ -8,5 +8,5 @@ interface GetVariantClassNameInput {
|
|
|
8
8
|
/**
|
|
9
9
|
* @returns Variant className, variant is always separated from selector with `--`, for example, `tab--default`
|
|
10
10
|
*/
|
|
11
|
-
export declare function getVariantClassName({ options, classes, selector, unstyled }: GetVariantClassNameInput): string | undefined;
|
|
11
|
+
export declare function getVariantClassName({ options, classes, selector, unstyled, }: GetVariantClassNameInput): string | undefined;
|
|
12
12
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function deepMerge<T extends object>(target: T, source: any): T;
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
+
export { deepMerge } from './deep-merge/deep-merge';
|
|
1
2
|
export { camelToKebabCase } from './camel-to-kebab-case/camel-to-kebab-case';
|
|
2
3
|
export { filterProps } from './filter-props/filter-props';
|
|
3
4
|
export { getBaseValue } from './get-base-value/get-base-value';
|
|
4
5
|
export { getBreakpointValue } from './get-breakpoint-value/get-breakpoint-value';
|
|
5
|
-
export { getSize, getSpacing, getShadow, getRadius, getFontSize, getLineHeight } from './get-size/get-size';
|
|
6
|
+
export { getSize, getSpacing, getShadow, getRadius, getFontSize, getLineHeight, } from './get-size/get-size';
|
|
6
7
|
export { getSortedBreakpoints } from './get-sorted-breakpoints/get-sorted-breakpoints';
|
|
7
8
|
export { isNumberLike } from './is-number-like/is-number-like';
|
|
8
9
|
export { numberLikeStringToNumber } from './number-like-string-to-number/number-like-string-to-number';
|
|
9
10
|
export { keys } from './keys/keys';
|
|
10
11
|
export { px, rem, em } from './units-converters';
|
|
11
|
-
export { getComponentName, withInstall, withPropsDefaultSetter } from './vue';
|
|
12
|
-
export type { SFCInstallWithContext, SFCWithInstall, SFCWithPropsDefaultSetter } from './vue';
|
|
13
|
-
export * from './color';
|
|
14
|
-
export * from './dom';
|
|
12
|
+
export { getComponentName, withClasses, withExtend, withInstall, withPropsDefaultSetter, withPropsFactory, withVarsResolver, } from './vue';
|
|
13
|
+
export type { SFCInstallWithContext, SFCWithInstall, SFCWithInstallAndClasses, SFCWithPropsDefaultSetter, } from './vue';
|
|
15
14
|
export { isNumber, isString, isStringNumber, isUndefined } from './types';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CThemeComponent } from '../../config-provider';
|
|
2
|
+
import { VarsResolver } from '../../styles-api';
|
|
3
|
+
export declare function withExtend<T>(component: T): T & {
|
|
4
|
+
extend: (config: CThemeComponent) => CThemeComponent;
|
|
5
|
+
};
|
|
6
|
+
export declare const withClasses: <T, C extends Record<string, string>>(component: T, classes: C) => T & {
|
|
7
|
+
classes: C;
|
|
8
|
+
};
|
|
9
|
+
export declare const withVarsResolver: <T, V extends VarsResolver<any>>(component: T, varsResolver: V) => T & {
|
|
10
|
+
varsResolver: V;
|
|
11
|
+
};
|
|
12
|
+
export declare const withPropsFactory: <T extends Record<string, any>>(component: T) => T & {
|
|
13
|
+
withProps: (defaultProps: Partial<T>) => any;
|
|
14
|
+
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { AllowedComponentProps, AppContext, Component, EmitsOptions, ObjectPlugin, SetupContext, VNodeProps } from 'vue';
|
|
2
2
|
import { type ComponentEmit, type ComponentProps } from 'vue-component-type-helpers';
|
|
3
|
+
import { CThemeComponent } from '../../config-provider';
|
|
4
|
+
import { VarsResolver } from '../../styles-api';
|
|
3
5
|
type NativeType = null | undefined | number | string | boolean | symbol | Function;
|
|
4
6
|
type InferDefaults<T> = {
|
|
5
7
|
[K in keyof T as string extends K ? never : K]?: InferDefault<T[K]>;
|
|
@@ -18,5 +20,11 @@ export type SFCWithPropsDefaultSetter<T> = T extends Component ? {
|
|
|
18
20
|
[K in keyof ComponentProps<T> as K extends ExcludeProps<T> ? never : K]?: ComponentProps<T>[K];
|
|
19
21
|
}>) => void;
|
|
20
22
|
} : unknown;
|
|
23
|
+
export type SFCWithInstallAndClasses<T, Classes extends Record<string, string> = Record<string, string>, VarsFn extends VarsResolver<any> = VarsResolver<any>> = SFCWithInstall<T> & {
|
|
24
|
+
classes: Classes;
|
|
25
|
+
extend: (config: CThemeComponent) => CThemeComponent;
|
|
26
|
+
varsResolver?: VarsFn;
|
|
27
|
+
withProps?: (defaultProps: Partial<ComponentProps<T>>) => any;
|
|
28
|
+
};
|
|
21
29
|
export type EmitFn<E extends EmitsOptions> = SetupContext<E>['emit'];
|
|
22
30
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cck-ui/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Vue component library focused on usability, accessibility and developer experience",
|
|
5
5
|
"homepage": "https://cck-ui.jackatlas.xyz",
|
|
6
6
|
"license": "ISC",
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@cck-ui/hooks": "workspace:*",
|
|
49
|
+
"@cck-ui-tests/core": "workspace:*",
|
|
49
50
|
"@vue/shared": "^3.5.39",
|
|
50
51
|
"csstype": "^3.2.3",
|
|
51
52
|
"es-toolkit": "^1.49.0",
|
package/styles/loader.css
CHANGED
|
@@ -113,7 +113,6 @@
|
|
|
113
113
|
border-radius: calc(625rem * var(--c-scale));
|
|
114
114
|
border-width: calc(var(--loader-size) / 8);
|
|
115
115
|
border-style: solid;
|
|
116
|
-
border-color: var(--loader-color) var(--loader-color) var(--loader-color)
|
|
117
|
-
transparent;
|
|
116
|
+
border-color: var(--loader-color) var(--loader-color) var(--loader-color) transparent;
|
|
118
117
|
animation: m_1309882b 1.2s linear infinite;
|
|
119
118
|
}
|
package/styles/loader.layer.css
CHANGED
|
@@ -113,8 +113,7 @@
|
|
|
113
113
|
border-radius: calc(625rem * var(--c-scale));
|
|
114
114
|
border-width: calc(var(--loader-size) / 8);
|
|
115
115
|
border-style: solid;
|
|
116
|
-
border-color: var(--loader-color) var(--loader-color) var(--loader-color)
|
|
117
|
-
transparent;
|
|
116
|
+
border-color: var(--loader-color) var(--loader-color) var(--loader-color) transparent;
|
|
118
117
|
animation: m_1309882b 1.2s linear infinite;
|
|
119
118
|
}
|
|
120
119
|
}
|
package/styles.css
CHANGED
|
@@ -1045,8 +1045,7 @@ fieldset:disabled .c-active:active {
|
|
|
1045
1045
|
border-radius: calc(625rem * var(--c-scale));
|
|
1046
1046
|
border-width: calc(var(--loader-size) / 8);
|
|
1047
1047
|
border-style: solid;
|
|
1048
|
-
border-color: var(--loader-color) var(--loader-color) var(--loader-color)
|
|
1049
|
-
transparent;
|
|
1048
|
+
border-color: var(--loader-color) var(--loader-color) var(--loader-color) transparent;
|
|
1050
1049
|
animation: m_1309882b 1.2s linear infinite;
|
|
1051
1050
|
}
|
|
1052
1051
|
|
package/styles.layer.css
CHANGED
|
@@ -1045,8 +1045,7 @@ fieldset:disabled .c-active:active {
|
|
|
1045
1045
|
border-radius: calc(625rem * var(--c-scale));
|
|
1046
1046
|
border-width: calc(var(--loader-size) / 8);
|
|
1047
1047
|
border-style: solid;
|
|
1048
|
-
border-color: var(--loader-color) var(--loader-color) var(--loader-color)
|
|
1049
|
-
transparent;
|
|
1048
|
+
border-color: var(--loader-color) var(--loader-color) var(--loader-color) transparent;
|
|
1050
1049
|
animation: m_1309882b 1.2s linear infinite;
|
|
1051
1050
|
}
|
|
1052
1051
|
|
package/cjs/core/utils/color.cjs
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
let _ctrl_tinycolor = require("@ctrl/tinycolor");
|
|
3
|
-
//#region packages/@cck-ui/core/src/core/utils/color.ts
|
|
4
|
-
const SATURATIONS = [
|
|
5
|
-
8,
|
|
6
|
-
15,
|
|
7
|
-
30,
|
|
8
|
-
55,
|
|
9
|
-
78,
|
|
10
|
-
95,
|
|
11
|
-
95,
|
|
12
|
-
92,
|
|
13
|
-
88,
|
|
14
|
-
85
|
|
15
|
-
];
|
|
16
|
-
const LIGHTNESSES = [
|
|
17
|
-
95,
|
|
18
|
-
88,
|
|
19
|
-
75,
|
|
20
|
-
62,
|
|
21
|
-
50,
|
|
22
|
-
40,
|
|
23
|
-
32,
|
|
24
|
-
27,
|
|
25
|
-
22,
|
|
26
|
-
18
|
|
27
|
-
];
|
|
28
|
-
const shadeCache = /* @__PURE__ */ new Map();
|
|
29
|
-
function getNormalizedKey(colorStr) {
|
|
30
|
-
const tc = new _ctrl_tinycolor.TinyColor(colorStr);
|
|
31
|
-
if (!tc.isValid) return null;
|
|
32
|
-
return tc.toHexString();
|
|
33
|
-
}
|
|
34
|
-
function getFormat(colorStr) {
|
|
35
|
-
const fmt = new _ctrl_tinycolor.TinyColor(colorStr).format;
|
|
36
|
-
return fmt === "name" ? "hex" : fmt;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Generates 10 shades (index 0~9, 0 lightest, 9 darkest) from a given color.
|
|
40
|
-
* The output format matches the input format (hex / rgb / rgba / hsl / hsla).
|
|
41
|
-
* Results are cached so repeated calls with the same color (even different formats) return instantly.
|
|
42
|
-
* @param originalColor - Any valid CSS color string
|
|
43
|
-
* @returns An array of 10 color strings representing the shades
|
|
44
|
-
* @throws If the input color is invalid
|
|
45
|
-
*/
|
|
46
|
-
function generateColorShades(originalColor) {
|
|
47
|
-
const normKey = getNormalizedKey(originalColor);
|
|
48
|
-
if (!normKey) throw new Error(`Invalid color: ${originalColor}`);
|
|
49
|
-
const targetFormat = getFormat(originalColor);
|
|
50
|
-
const cacheKey = `${normKey}|${targetFormat}`;
|
|
51
|
-
if (shadeCache.has(cacheKey)) return shadeCache.get(cacheKey);
|
|
52
|
-
const base = new _ctrl_tinycolor.TinyColor(originalColor);
|
|
53
|
-
if (!base.isValid) throw new Error(`Invalid color: ${originalColor}`);
|
|
54
|
-
const { h } = base.toHsl();
|
|
55
|
-
const shades = [];
|
|
56
|
-
for (let i = 0; i < 10; i++) {
|
|
57
|
-
const color = new _ctrl_tinycolor.TinyColor({
|
|
58
|
-
h,
|
|
59
|
-
s: SATURATIONS[i] / 100,
|
|
60
|
-
l: LIGHTNESSES[i] / 100
|
|
61
|
-
});
|
|
62
|
-
let output;
|
|
63
|
-
switch (targetFormat) {
|
|
64
|
-
case "hex":
|
|
65
|
-
output = color.toHexString();
|
|
66
|
-
break;
|
|
67
|
-
case "rgb":
|
|
68
|
-
output = color.toRgbString();
|
|
69
|
-
break;
|
|
70
|
-
case "hsl":
|
|
71
|
-
output = color.toHslString();
|
|
72
|
-
break;
|
|
73
|
-
case "hsv":
|
|
74
|
-
output = color.toHsvString();
|
|
75
|
-
break;
|
|
76
|
-
default: output = color.toHexString();
|
|
77
|
-
}
|
|
78
|
-
shades.push(output);
|
|
79
|
-
}
|
|
80
|
-
shadeCache.set(cacheKey, shades);
|
|
81
|
-
return shades;
|
|
82
|
-
}
|
|
83
|
-
function clearShadeCache() {
|
|
84
|
-
shadeCache.clear();
|
|
85
|
-
}
|
|
86
|
-
function setColorAlpha(originalColor, alpha) {
|
|
87
|
-
if (Number.isNaN(Number(alpha))) throw new TypeError(`Invalid alpha: ${alpha}`);
|
|
88
|
-
const tc = new _ctrl_tinycolor.TinyColor(originalColor);
|
|
89
|
-
if (!tc.isValid) throw new Error(`Invalid color: ${originalColor}`);
|
|
90
|
-
const targetFormat = getFormat(originalColor);
|
|
91
|
-
tc.setAlpha(alpha);
|
|
92
|
-
let output;
|
|
93
|
-
switch (targetFormat) {
|
|
94
|
-
case "rgb":
|
|
95
|
-
output = tc.toRgbString();
|
|
96
|
-
break;
|
|
97
|
-
case "hsl":
|
|
98
|
-
output = tc.toHslString();
|
|
99
|
-
break;
|
|
100
|
-
case "hsv":
|
|
101
|
-
output = tc.toHsvString();
|
|
102
|
-
break;
|
|
103
|
-
default: output = tc.toRgbString();
|
|
104
|
-
}
|
|
105
|
-
return output;
|
|
106
|
-
}
|
|
107
|
-
//#endregion
|
|
108
|
-
exports.clearShadeCache = clearShadeCache;
|
|
109
|
-
exports.generateColorShades = generateColorShades;
|
|
110
|
-
exports.setColorAlpha = setColorAlpha;
|
|
111
|
-
|
|
112
|
-
//# sourceMappingURL=color.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"color.cjs","names":["TinyColor"],"sources":["../../../src/core/utils/color.ts"],"sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\n\nconst SATURATIONS = [8, 15, 30, 55, 78, 95, 95, 92, 88, 85]\n\nconst LIGHTNESSES = [95, 88, 75, 62, 50, 40, 32, 27, 22, 18]\n\nconst shadeCache = new Map<string, string[]>()\n\nfunction getNormalizedKey(colorStr: string): string | null {\n const tc = new TinyColor(colorStr)\n if (!tc.isValid) return null\n return tc.toHexString()\n}\n\nfunction getFormat(colorStr: string): string {\n const tc = new TinyColor(colorStr)\n const fmt = tc.format\n return fmt === 'name' ? 'hex' : fmt\n}\n\n/**\n * Generates 10 shades (index 0~9, 0 lightest, 9 darkest) from a given color.\n * The output format matches the input format (hex / rgb / rgba / hsl / hsla).\n * Results are cached so repeated calls with the same color (even different formats) return instantly.\n * @param originalColor - Any valid CSS color string\n * @returns An array of 10 color strings representing the shades\n * @throws If the input color is invalid\n */\nexport function generateColorShades(originalColor: string): string[] {\n const normKey = getNormalizedKey(originalColor)\n if (!normKey) {\n throw new Error(`Invalid color: ${originalColor}`)\n }\n\n const targetFormat = getFormat(originalColor)\n const cacheKey = `${normKey}|${targetFormat}`\n\n if (shadeCache.has(cacheKey)) {\n return shadeCache.get(cacheKey)!\n }\n\n const base = new TinyColor(originalColor)\n if (!base.isValid) {\n throw new Error(`Invalid color: ${originalColor}`)\n }\n\n const { h } = base.toHsl()\n\n const shades: string[] = []\n\n for (let i = 0; i < 10; i++) {\n const color = new TinyColor({\n h,\n s: SATURATIONS[i] / 100,\n l: LIGHTNESSES[i] / 100\n })\n\n let output: string\n switch (targetFormat) {\n case 'hex':\n output = color.toHexString()\n break\n case 'rgb':\n output = color.toRgbString()\n break\n case 'hsl':\n output = color.toHslString()\n break\n case 'hsv':\n output = color.toHsvString()\n break\n default:\n output = color.toHexString()\n }\n shades.push(output)\n }\n\n shadeCache.set(cacheKey, shades)\n return shades\n}\n\nexport function clearShadeCache(): void {\n shadeCache.clear()\n}\n\nexport function setColorAlpha(originalColor: string, alpha: number): string {\n if (Number.isNaN(Number(alpha))) {\n throw new TypeError(`Invalid alpha: ${alpha}`)\n }\n\n const tc = new TinyColor(originalColor)\n if (!tc.isValid) {\n throw new Error(`Invalid color: ${originalColor}`)\n }\n\n const targetFormat = getFormat(originalColor)\n tc.setAlpha(alpha)\n\n let output: string\n switch (targetFormat) {\n case 'rgb':\n output = tc.toRgbString()\n break\n case 'hsl':\n output = tc.toHslString()\n break\n case 'hsv':\n output = tc.toHsvString()\n break\n default:\n output = tc.toRgbString()\n }\n\n return output\n}\n"],"mappings":";;;AAEA,MAAM,cAAc;CAAC;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;AAAE;AAE1D,MAAM,cAAc;CAAC;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;AAAE;AAE3D,MAAM,6BAAa,IAAI,IAAsB;AAE7C,SAAS,iBAAiB,UAAiC;CACzD,MAAM,KAAK,IAAIA,gBAAAA,UAAU,QAAQ;CACjC,IAAI,CAAC,GAAG,SAAS,OAAO;CACxB,OAAO,GAAG,YAAY;AACxB;AAEA,SAAS,UAAU,UAA0B;CAE3C,MAAM,MAAM,IADGA,gBAAAA,UAAU,QACZ,CAAC,CAAC;CACf,OAAO,QAAQ,SAAS,QAAQ;AAClC;;;;;;;;;AAUA,SAAgB,oBAAoB,eAAiC;CACnE,MAAM,UAAU,iBAAiB,aAAa;CAC9C,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,kBAAkB,eAAe;CAGnD,MAAM,eAAe,UAAU,aAAa;CAC5C,MAAM,WAAW,GAAG,QAAQ,GAAG;CAE/B,IAAI,WAAW,IAAI,QAAQ,GACzB,OAAO,WAAW,IAAI,QAAQ;CAGhC,MAAM,OAAO,IAAIA,gBAAAA,UAAU,aAAa;CACxC,IAAI,CAAC,KAAK,SACR,MAAM,IAAI,MAAM,kBAAkB,eAAe;CAGnD,MAAM,EAAE,MAAM,KAAK,MAAM;CAEzB,MAAM,SAAmB,CAAC;CAE1B,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK;EAC3B,MAAM,QAAQ,IAAIA,gBAAAA,UAAU;GAC1B;GACA,GAAG,YAAY,KAAK;GACpB,GAAG,YAAY,KAAK;EACtB,CAAC;EAED,IAAI;EACJ,QAAQ,cAAR;GACE,KAAK;IACH,SAAS,MAAM,YAAY;IAC3B;GACF,KAAK;IACH,SAAS,MAAM,YAAY;IAC3B;GACF,KAAK;IACH,SAAS,MAAM,YAAY;IAC3B;GACF,KAAK;IACH,SAAS,MAAM,YAAY;IAC3B;GACF,SACE,SAAS,MAAM,YAAY;EAC/B;EACA,OAAO,KAAK,MAAM;CACpB;CAEA,WAAW,IAAI,UAAU,MAAM;CAC/B,OAAO;AACT;AAEA,SAAgB,kBAAwB;CACtC,WAAW,MAAM;AACnB;AAEA,SAAgB,cAAc,eAAuB,OAAuB;CAC1E,IAAI,OAAO,MAAM,OAAO,KAAK,CAAC,GAC5B,MAAM,IAAI,UAAU,kBAAkB,OAAO;CAG/C,MAAM,KAAK,IAAIA,gBAAAA,UAAU,aAAa;CACtC,IAAI,CAAC,GAAG,SACN,MAAM,IAAI,MAAM,kBAAkB,eAAe;CAGnD,MAAM,eAAe,UAAU,aAAa;CAC5C,GAAG,SAAS,KAAK;CAEjB,IAAI;CACJ,QAAQ,cAAR;EACE,KAAK;GACH,SAAS,GAAG,YAAY;GACxB;EACF,KAAK;GACH,SAAS,GAAG,YAAY;GACxB;EACF,KAAK;GACH,SAAS,GAAG,YAAY;GACxB;EACF,SACE,SAAS,GAAG,YAAY;CAC5B;CAEA,OAAO;AACT"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
const require_index = require("../types/index.cjs");
|
|
3
|
-
let _vue_shared = require("@vue/shared");
|
|
4
|
-
//#region packages/@cck-ui/core/src/core/utils/dom/style.ts
|
|
5
|
-
function addUnit(value, defaultUnit = "px") {
|
|
6
|
-
if (!value && value !== 0) return "";
|
|
7
|
-
if (require_index.isNumber(value) || require_index.isStringNumber(value)) return `${value}${defaultUnit}`;
|
|
8
|
-
else if ((0, _vue_shared.isString)(value)) return value;
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
exports.addUnit = addUnit;
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=style.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"style.cjs","names":["isNumber","isStringNumber"],"sources":["../../../../src/core/utils/dom/style.ts"],"sourcesContent":["import { isNumber, isString, isStringNumber } from '../types'\n\n// const SCOPE = 'utils/dom/style'\n\nexport function addUnit(value?: string | number, defaultUnit = 'px') {\n if (!value && value !== 0) return ''\n if (isNumber(value) || isStringNumber(value)) {\n return `${value}${defaultUnit}`\n } else if (isString(value)) {\n return value\n }\n // debugWarn(SCOPE, 'binding value must be a string or number')\n}\n"],"mappings":";;;;AAIA,SAAgB,QAAQ,OAAyB,cAAc,MAAM;CACnE,IAAI,CAAC,SAAS,UAAU,GAAG,OAAO;CAClC,IAAIA,cAAAA,SAAS,KAAK,KAAKC,cAAAA,eAAe,KAAK,GACzC,OAAO,GAAG,QAAQ;MACb,KAAA,GAAA,YAAA,SAAA,CAAa,KAAK,GACvB,OAAO;AAGX"}
|
package/esm/core/utils/color.mjs
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { TinyColor } from "@ctrl/tinycolor";
|
|
3
|
-
//#region packages/@cck-ui/core/src/core/utils/color.ts
|
|
4
|
-
const SATURATIONS = [
|
|
5
|
-
8,
|
|
6
|
-
15,
|
|
7
|
-
30,
|
|
8
|
-
55,
|
|
9
|
-
78,
|
|
10
|
-
95,
|
|
11
|
-
95,
|
|
12
|
-
92,
|
|
13
|
-
88,
|
|
14
|
-
85
|
|
15
|
-
];
|
|
16
|
-
const LIGHTNESSES = [
|
|
17
|
-
95,
|
|
18
|
-
88,
|
|
19
|
-
75,
|
|
20
|
-
62,
|
|
21
|
-
50,
|
|
22
|
-
40,
|
|
23
|
-
32,
|
|
24
|
-
27,
|
|
25
|
-
22,
|
|
26
|
-
18
|
|
27
|
-
];
|
|
28
|
-
const shadeCache = /* @__PURE__ */ new Map();
|
|
29
|
-
function getNormalizedKey(colorStr) {
|
|
30
|
-
const tc = new TinyColor(colorStr);
|
|
31
|
-
if (!tc.isValid) return null;
|
|
32
|
-
return tc.toHexString();
|
|
33
|
-
}
|
|
34
|
-
function getFormat(colorStr) {
|
|
35
|
-
const fmt = new TinyColor(colorStr).format;
|
|
36
|
-
return fmt === "name" ? "hex" : fmt;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Generates 10 shades (index 0~9, 0 lightest, 9 darkest) from a given color.
|
|
40
|
-
* The output format matches the input format (hex / rgb / rgba / hsl / hsla).
|
|
41
|
-
* Results are cached so repeated calls with the same color (even different formats) return instantly.
|
|
42
|
-
* @param originalColor - Any valid CSS color string
|
|
43
|
-
* @returns An array of 10 color strings representing the shades
|
|
44
|
-
* @throws If the input color is invalid
|
|
45
|
-
*/
|
|
46
|
-
function generateColorShades(originalColor) {
|
|
47
|
-
const normKey = getNormalizedKey(originalColor);
|
|
48
|
-
if (!normKey) throw new Error(`Invalid color: ${originalColor}`);
|
|
49
|
-
const targetFormat = getFormat(originalColor);
|
|
50
|
-
const cacheKey = `${normKey}|${targetFormat}`;
|
|
51
|
-
if (shadeCache.has(cacheKey)) return shadeCache.get(cacheKey);
|
|
52
|
-
const base = new TinyColor(originalColor);
|
|
53
|
-
if (!base.isValid) throw new Error(`Invalid color: ${originalColor}`);
|
|
54
|
-
const { h } = base.toHsl();
|
|
55
|
-
const shades = [];
|
|
56
|
-
for (let i = 0; i < 10; i++) {
|
|
57
|
-
const color = new TinyColor({
|
|
58
|
-
h,
|
|
59
|
-
s: SATURATIONS[i] / 100,
|
|
60
|
-
l: LIGHTNESSES[i] / 100
|
|
61
|
-
});
|
|
62
|
-
let output;
|
|
63
|
-
switch (targetFormat) {
|
|
64
|
-
case "hex":
|
|
65
|
-
output = color.toHexString();
|
|
66
|
-
break;
|
|
67
|
-
case "rgb":
|
|
68
|
-
output = color.toRgbString();
|
|
69
|
-
break;
|
|
70
|
-
case "hsl":
|
|
71
|
-
output = color.toHslString();
|
|
72
|
-
break;
|
|
73
|
-
case "hsv":
|
|
74
|
-
output = color.toHsvString();
|
|
75
|
-
break;
|
|
76
|
-
default: output = color.toHexString();
|
|
77
|
-
}
|
|
78
|
-
shades.push(output);
|
|
79
|
-
}
|
|
80
|
-
shadeCache.set(cacheKey, shades);
|
|
81
|
-
return shades;
|
|
82
|
-
}
|
|
83
|
-
function clearShadeCache() {
|
|
84
|
-
shadeCache.clear();
|
|
85
|
-
}
|
|
86
|
-
function setColorAlpha(originalColor, alpha) {
|
|
87
|
-
if (Number.isNaN(Number(alpha))) throw new TypeError(`Invalid alpha: ${alpha}`);
|
|
88
|
-
const tc = new TinyColor(originalColor);
|
|
89
|
-
if (!tc.isValid) throw new Error(`Invalid color: ${originalColor}`);
|
|
90
|
-
const targetFormat = getFormat(originalColor);
|
|
91
|
-
tc.setAlpha(alpha);
|
|
92
|
-
let output;
|
|
93
|
-
switch (targetFormat) {
|
|
94
|
-
case "rgb":
|
|
95
|
-
output = tc.toRgbString();
|
|
96
|
-
break;
|
|
97
|
-
case "hsl":
|
|
98
|
-
output = tc.toHslString();
|
|
99
|
-
break;
|
|
100
|
-
case "hsv":
|
|
101
|
-
output = tc.toHsvString();
|
|
102
|
-
break;
|
|
103
|
-
default: output = tc.toRgbString();
|
|
104
|
-
}
|
|
105
|
-
return output;
|
|
106
|
-
}
|
|
107
|
-
//#endregion
|
|
108
|
-
export { clearShadeCache, generateColorShades, setColorAlpha };
|
|
109
|
-
|
|
110
|
-
//# sourceMappingURL=color.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"color.mjs","names":[],"sources":["../../../src/core/utils/color.ts"],"sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\n\nconst SATURATIONS = [8, 15, 30, 55, 78, 95, 95, 92, 88, 85]\n\nconst LIGHTNESSES = [95, 88, 75, 62, 50, 40, 32, 27, 22, 18]\n\nconst shadeCache = new Map<string, string[]>()\n\nfunction getNormalizedKey(colorStr: string): string | null {\n const tc = new TinyColor(colorStr)\n if (!tc.isValid) return null\n return tc.toHexString()\n}\n\nfunction getFormat(colorStr: string): string {\n const tc = new TinyColor(colorStr)\n const fmt = tc.format\n return fmt === 'name' ? 'hex' : fmt\n}\n\n/**\n * Generates 10 shades (index 0~9, 0 lightest, 9 darkest) from a given color.\n * The output format matches the input format (hex / rgb / rgba / hsl / hsla).\n * Results are cached so repeated calls with the same color (even different formats) return instantly.\n * @param originalColor - Any valid CSS color string\n * @returns An array of 10 color strings representing the shades\n * @throws If the input color is invalid\n */\nexport function generateColorShades(originalColor: string): string[] {\n const normKey = getNormalizedKey(originalColor)\n if (!normKey) {\n throw new Error(`Invalid color: ${originalColor}`)\n }\n\n const targetFormat = getFormat(originalColor)\n const cacheKey = `${normKey}|${targetFormat}`\n\n if (shadeCache.has(cacheKey)) {\n return shadeCache.get(cacheKey)!\n }\n\n const base = new TinyColor(originalColor)\n if (!base.isValid) {\n throw new Error(`Invalid color: ${originalColor}`)\n }\n\n const { h } = base.toHsl()\n\n const shades: string[] = []\n\n for (let i = 0; i < 10; i++) {\n const color = new TinyColor({\n h,\n s: SATURATIONS[i] / 100,\n l: LIGHTNESSES[i] / 100\n })\n\n let output: string\n switch (targetFormat) {\n case 'hex':\n output = color.toHexString()\n break\n case 'rgb':\n output = color.toRgbString()\n break\n case 'hsl':\n output = color.toHslString()\n break\n case 'hsv':\n output = color.toHsvString()\n break\n default:\n output = color.toHexString()\n }\n shades.push(output)\n }\n\n shadeCache.set(cacheKey, shades)\n return shades\n}\n\nexport function clearShadeCache(): void {\n shadeCache.clear()\n}\n\nexport function setColorAlpha(originalColor: string, alpha: number): string {\n if (Number.isNaN(Number(alpha))) {\n throw new TypeError(`Invalid alpha: ${alpha}`)\n }\n\n const tc = new TinyColor(originalColor)\n if (!tc.isValid) {\n throw new Error(`Invalid color: ${originalColor}`)\n }\n\n const targetFormat = getFormat(originalColor)\n tc.setAlpha(alpha)\n\n let output: string\n switch (targetFormat) {\n case 'rgb':\n output = tc.toRgbString()\n break\n case 'hsl':\n output = tc.toHslString()\n break\n case 'hsv':\n output = tc.toHsvString()\n break\n default:\n output = tc.toRgbString()\n }\n\n return output\n}\n"],"mappings":";;;AAEA,MAAM,cAAc;CAAC;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;AAAE;AAE1D,MAAM,cAAc;CAAC;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;CAAI;AAAE;AAE3D,MAAM,6BAAa,IAAI,IAAsB;AAE7C,SAAS,iBAAiB,UAAiC;CACzD,MAAM,KAAK,IAAI,UAAU,QAAQ;CACjC,IAAI,CAAC,GAAG,SAAS,OAAO;CACxB,OAAO,GAAG,YAAY;AACxB;AAEA,SAAS,UAAU,UAA0B;CAE3C,MAAM,MAAM,IADG,UAAU,QACZ,CAAC,CAAC;CACf,OAAO,QAAQ,SAAS,QAAQ;AAClC;;;;;;;;;AAUA,SAAgB,oBAAoB,eAAiC;CACnE,MAAM,UAAU,iBAAiB,aAAa;CAC9C,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,kBAAkB,eAAe;CAGnD,MAAM,eAAe,UAAU,aAAa;CAC5C,MAAM,WAAW,GAAG,QAAQ,GAAG;CAE/B,IAAI,WAAW,IAAI,QAAQ,GACzB,OAAO,WAAW,IAAI,QAAQ;CAGhC,MAAM,OAAO,IAAI,UAAU,aAAa;CACxC,IAAI,CAAC,KAAK,SACR,MAAM,IAAI,MAAM,kBAAkB,eAAe;CAGnD,MAAM,EAAE,MAAM,KAAK,MAAM;CAEzB,MAAM,SAAmB,CAAC;CAE1B,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK;EAC3B,MAAM,QAAQ,IAAI,UAAU;GAC1B;GACA,GAAG,YAAY,KAAK;GACpB,GAAG,YAAY,KAAK;EACtB,CAAC;EAED,IAAI;EACJ,QAAQ,cAAR;GACE,KAAK;IACH,SAAS,MAAM,YAAY;IAC3B;GACF,KAAK;IACH,SAAS,MAAM,YAAY;IAC3B;GACF,KAAK;IACH,SAAS,MAAM,YAAY;IAC3B;GACF,KAAK;IACH,SAAS,MAAM,YAAY;IAC3B;GACF,SACE,SAAS,MAAM,YAAY;EAC/B;EACA,OAAO,KAAK,MAAM;CACpB;CAEA,WAAW,IAAI,UAAU,MAAM;CAC/B,OAAO;AACT;AAEA,SAAgB,kBAAwB;CACtC,WAAW,MAAM;AACnB;AAEA,SAAgB,cAAc,eAAuB,OAAuB;CAC1E,IAAI,OAAO,MAAM,OAAO,KAAK,CAAC,GAC5B,MAAM,IAAI,UAAU,kBAAkB,OAAO;CAG/C,MAAM,KAAK,IAAI,UAAU,aAAa;CACtC,IAAI,CAAC,GAAG,SACN,MAAM,IAAI,MAAM,kBAAkB,eAAe;CAGnD,MAAM,eAAe,UAAU,aAAa;CAC5C,GAAG,SAAS,KAAK;CAEjB,IAAI;CACJ,QAAQ,cAAR;EACE,KAAK;GACH,SAAS,GAAG,YAAY;GACxB;EACF,KAAK;GACH,SAAS,GAAG,YAAY;GACxB;EACF,KAAK;GACH,SAAS,GAAG,YAAY;GACxB;EACF,SACE,SAAS,GAAG,YAAY;CAC5B;CAEA,OAAO;AACT"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { isNumber, isString, isStringNumber } from "../types/index.mjs";
|
|
3
|
-
//#region packages/@cck-ui/core/src/core/utils/dom/style.ts
|
|
4
|
-
function addUnit(value, defaultUnit = "px") {
|
|
5
|
-
if (!value && value !== 0) return "";
|
|
6
|
-
if (isNumber(value) || isStringNumber(value)) return `${value}${defaultUnit}`;
|
|
7
|
-
else if (isString(value)) return value;
|
|
8
|
-
}
|
|
9
|
-
//#endregion
|
|
10
|
-
export { addUnit };
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=style.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"style.mjs","names":[],"sources":["../../../../src/core/utils/dom/style.ts"],"sourcesContent":["import { isNumber, isString, isStringNumber } from '../types'\n\n// const SCOPE = 'utils/dom/style'\n\nexport function addUnit(value?: string | number, defaultUnit = 'px') {\n if (!value && value !== 0) return ''\n if (isNumber(value) || isStringNumber(value)) {\n return `${value}${defaultUnit}`\n } else if (isString(value)) {\n return value\n }\n // debugWarn(SCOPE, 'binding value must be a string or number')\n}\n"],"mappings":";;;AAIA,SAAgB,QAAQ,OAAyB,cAAc,MAAM;CACnE,IAAI,CAAC,SAAS,UAAU,GAAG,OAAO;CAClC,IAAI,SAAS,KAAK,KAAK,eAAe,KAAK,GACzC,OAAO,GAAG,QAAQ;MACb,IAAI,SAAS,KAAK,GACvB,OAAO;AAGX"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generates 10 shades (index 0~9, 0 lightest, 9 darkest) from a given color.
|
|
3
|
-
* The output format matches the input format (hex / rgb / rgba / hsl / hsla).
|
|
4
|
-
* Results are cached so repeated calls with the same color (even different formats) return instantly.
|
|
5
|
-
* @param originalColor - Any valid CSS color string
|
|
6
|
-
* @returns An array of 10 color strings representing the shades
|
|
7
|
-
* @throws If the input color is invalid
|
|
8
|
-
*/
|
|
9
|
-
export declare function generateColorShades(originalColor: string): string[];
|
|
10
|
-
export declare function clearShadeCache(): void;
|
|
11
|
-
export declare function setColorAlpha(originalColor: string, alpha: number): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './style';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function addUnit(value?: string | number, defaultUnit?: string): string | undefined;
|