@cck-ui/core 0.4.9 → 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.
Files changed (197) hide show
  1. package/cjs/components/button/button.cjs +71 -63
  2. package/cjs/components/button/button.cjs.map +1 -1
  3. package/cjs/components/button/button.utils.cjs +28 -0
  4. package/cjs/components/button/button.utils.cjs.map +1 -0
  5. package/cjs/components/button/index.cjs +5 -1
  6. package/cjs/components/button/index.cjs.map +1 -1
  7. package/cjs/components/grid/col/col.cjs +33 -16
  8. package/cjs/components/grid/col/col.cjs.map +1 -1
  9. package/cjs/components/grid/grid.cjs +63 -34
  10. package/cjs/components/grid/grid.cjs.map +1 -1
  11. package/cjs/components/grid/grid.constants.cjs.map +1 -1
  12. package/cjs/components/grid/grid.utils.cjs +11 -0
  13. package/cjs/components/grid/grid.utils.cjs.map +1 -0
  14. package/cjs/components/grid/index.cjs +7 -2
  15. package/cjs/components/grid/index.cjs.map +1 -1
  16. package/cjs/components/loader/loader.module.cjs.map +1 -1
  17. package/cjs/components/loader/loaders/bars.cjs +6 -3
  18. package/cjs/components/loader/loaders/bars.cjs.map +1 -1
  19. package/cjs/components/loader/loaders/dots.cjs +6 -3
  20. package/cjs/components/loader/loaders/dots.cjs.map +1 -1
  21. package/cjs/components/loader/loaders/oval.cjs +6 -3
  22. package/cjs/components/loader/loaders/oval.cjs.map +1 -1
  23. package/cjs/components/transition/transition.cjs +1 -1
  24. package/cjs/components/unstyled-button/unstyled-button.cjs +32 -22
  25. package/cjs/components/unstyled-button/unstyled-button.cjs.map +1 -1
  26. package/cjs/core/box/box.cjs +40 -28
  27. package/cjs/core/box/box.cjs.map +1 -1
  28. package/cjs/core/box/get-box-style/get-box-style.cjs.map +1 -1
  29. package/cjs/core/box/style-props/extract-style-props/extract-style-props.cjs.map +1 -1
  30. package/cjs/core/box/style-props/parse-style-props/sort-media-queries.cjs.map +1 -1
  31. package/cjs/core/box/style-props/resolvers/border-resolver/border-resolver.cjs.map +1 -1
  32. package/cjs/core/box/style-props/resolvers/color-resolver/color-resolver.cjs.map +1 -1
  33. package/cjs/core/box/style-props/resolvers/font-family-resolver/font-family-resolver.cjs.map +1 -1
  34. package/cjs/core/box/style-props/resolvers/index.cjs.map +1 -1
  35. package/cjs/core/box/style-props/style-props-data.cjs.map +1 -1
  36. package/cjs/core/config-provider/cck-classes-style/cck-classes-style.cjs +58 -0
  37. package/cjs/core/config-provider/cck-classes-style/cck-classes-style.cjs.map +1 -0
  38. package/cjs/core/config-provider/color-functions/get-gradient/get-gradient.cjs +3 -3
  39. package/cjs/core/config-provider/color-functions/get-gradient/get-gradient.cjs.map +1 -1
  40. package/cjs/core/config-provider/color-functions/rgba/rgba.cjs +8 -0
  41. package/cjs/core/config-provider/color-functions/rgba/rgba.cjs.map +1 -1
  42. package/cjs/core/config-provider/color-functions/to-rgba/to-rgba.cjs.map +1 -1
  43. package/cjs/core/config-provider/config-provider.cjs +39 -24
  44. package/cjs/core/config-provider/config-provider.cjs.map +1 -1
  45. package/cjs/core/config-provider/default-colors.cjs.map +1 -1
  46. package/cjs/core/config-provider/index.cjs +6 -1
  47. package/cjs/core/config-provider/index.cjs.map +1 -1
  48. package/cjs/core/config-provider/merge-cck-theme/merge-cck-theme.cjs +2 -2
  49. package/cjs/core/config-provider/merge-cck-theme/merge-cck-theme.cjs.map +1 -1
  50. package/cjs/core/config-provider/merge-theme-overrides/merge-theme-overrides.cjs +10 -0
  51. package/cjs/core/config-provider/merge-theme-overrides/merge-theme-overrides.cjs.map +1 -0
  52. package/cjs/core/config-provider/use-component-props/use-component-props.cjs +35 -0
  53. package/cjs/core/config-provider/use-component-props/use-component-props.cjs.map +1 -0
  54. package/cjs/core/responsive-style-manager/css-object-to-string/css-object-to-string.cjs.map +1 -1
  55. package/cjs/core/responsive-style-manager/normalize-number-like-string-prop/normalize-number-like-string-prop.cjs +1 -1
  56. package/cjs/core/responsive-style-manager/normalize-number-like-string-prop/normalize-number-like-string-prop.cjs.map +1 -1
  57. package/cjs/core/responsive-style-manager/responsive-style-manager.cjs.map +1 -1
  58. package/cjs/core/responsive-style-manager/styles-to-string/styles-to-string.cjs.map +1 -1
  59. package/cjs/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.cjs.map +1 -1
  60. package/cjs/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.cjs.map +1 -1
  61. package/cjs/core/styles-api/use-styles/get-class-name/get-root-class-name/get-root-class-name.cjs.map +1 -1
  62. package/cjs/core/styles-api/use-styles/get-class-name/get-selector-class-name/get-selector-class-name.cjs.map +1 -1
  63. package/cjs/core/styles-api/use-styles/get-class-name/get-static-class-names/get-static-class-names.cjs.map +1 -1
  64. package/cjs/core/styles-api/use-styles/get-class-name/get-variant-class-name/get-variant-class-name.cjs.map +1 -1
  65. package/cjs/core/utils/deep-merge/deep-merge.cjs +18 -0
  66. package/cjs/core/utils/deep-merge/deep-merge.cjs.map +1 -0
  67. package/cjs/core/utils/get-breakpoint-value/get-breakpoint-value.cjs.map +1 -1
  68. package/cjs/core/utils/get-size/get-size.cjs +2 -2
  69. package/cjs/core/utils/get-size/get-size.cjs.map +1 -1
  70. package/cjs/core/utils/get-sorted-breakpoints/get-sorted-breakpoints.cjs.map +1 -1
  71. package/cjs/core/utils/number-like-string-to-number/number-like-string-to-number.cjs.map +1 -1
  72. package/cjs/core/utils/units-converters/px.cjs.map +1 -1
  73. package/cjs/core/utils/units-converters/rem.cjs.map +1 -1
  74. package/cjs/core/utils/vue/component.cjs.map +1 -1
  75. package/cjs/core/utils/vue/install.cjs +3 -3
  76. package/cjs/core/utils/vue/install.cjs.map +1 -1
  77. package/cjs/core/utils/vue/statics.cjs +38 -0
  78. package/cjs/core/utils/vue/statics.cjs.map +1 -0
  79. package/cjs/index.cjs +13 -7
  80. package/cjs/index.cjs.map +1 -1
  81. package/esm/components/button/button.mjs +71 -63
  82. package/esm/components/button/button.mjs.map +1 -1
  83. package/esm/components/button/button.utils.mjs +29 -0
  84. package/esm/components/button/button.utils.mjs.map +1 -0
  85. package/esm/components/button/index.mjs +5 -1
  86. package/esm/components/button/index.mjs.map +1 -1
  87. package/esm/components/grid/col/col.mjs +34 -17
  88. package/esm/components/grid/col/col.mjs.map +1 -1
  89. package/esm/components/grid/grid.constants.mjs.map +1 -1
  90. package/esm/components/grid/grid.mjs +63 -34
  91. package/esm/components/grid/grid.mjs.map +1 -1
  92. package/esm/components/grid/grid.utils.mjs +12 -0
  93. package/esm/components/grid/grid.utils.mjs.map +1 -0
  94. package/esm/components/grid/index.mjs +6 -2
  95. package/esm/components/grid/index.mjs.map +1 -1
  96. package/esm/components/loader/loader.module.mjs.map +1 -1
  97. package/esm/components/loader/loaders/bars.mjs +7 -4
  98. package/esm/components/loader/loaders/bars.mjs.map +1 -1
  99. package/esm/components/loader/loaders/dots.mjs +7 -4
  100. package/esm/components/loader/loaders/dots.mjs.map +1 -1
  101. package/esm/components/loader/loaders/oval.mjs +7 -4
  102. package/esm/components/loader/loaders/oval.mjs.map +1 -1
  103. package/esm/components/transition/transition.mjs +1 -1
  104. package/esm/components/unstyled-button/unstyled-button.mjs +33 -23
  105. package/esm/components/unstyled-button/unstyled-button.mjs.map +1 -1
  106. package/esm/core/box/box.mjs +41 -29
  107. package/esm/core/box/box.mjs.map +1 -1
  108. package/esm/core/box/get-box-style/get-box-style.mjs.map +1 -1
  109. package/esm/core/box/style-props/extract-style-props/extract-style-props.mjs.map +1 -1
  110. package/esm/core/box/style-props/parse-style-props/sort-media-queries.mjs.map +1 -1
  111. package/esm/core/box/style-props/resolvers/border-resolver/border-resolver.mjs.map +1 -1
  112. package/esm/core/box/style-props/resolvers/color-resolver/color-resolver.mjs.map +1 -1
  113. package/esm/core/box/style-props/resolvers/font-family-resolver/font-family-resolver.mjs.map +1 -1
  114. package/esm/core/box/style-props/resolvers/index.mjs.map +1 -1
  115. package/esm/core/box/style-props/style-props-data.mjs.map +1 -1
  116. package/esm/core/config-provider/cck-classes-style/cck-classes-style.mjs +58 -0
  117. package/esm/core/config-provider/cck-classes-style/cck-classes-style.mjs.map +1 -0
  118. package/esm/core/config-provider/color-functions/get-gradient/get-gradient.mjs +3 -3
  119. package/esm/core/config-provider/color-functions/get-gradient/get-gradient.mjs.map +1 -1
  120. package/esm/core/config-provider/color-functions/rgba/rgba.mjs +8 -1
  121. package/esm/core/config-provider/color-functions/rgba/rgba.mjs.map +1 -1
  122. package/esm/core/config-provider/color-functions/to-rgba/to-rgba.mjs.map +1 -1
  123. package/esm/core/config-provider/config-provider.mjs +40 -25
  124. package/esm/core/config-provider/config-provider.mjs.map +1 -1
  125. package/esm/core/config-provider/default-colors.mjs.map +1 -1
  126. package/esm/core/config-provider/index.mjs +5 -3
  127. package/esm/core/config-provider/index.mjs.map +1 -1
  128. package/esm/core/config-provider/merge-cck-theme/merge-cck-theme.mjs +2 -2
  129. package/esm/core/config-provider/merge-cck-theme/merge-cck-theme.mjs.map +1 -1
  130. package/esm/core/config-provider/merge-theme-overrides/merge-theme-overrides.mjs +10 -0
  131. package/esm/core/config-provider/merge-theme-overrides/merge-theme-overrides.mjs.map +1 -0
  132. package/esm/core/config-provider/use-component-props/use-component-props.mjs +35 -0
  133. package/esm/core/config-provider/use-component-props/use-component-props.mjs.map +1 -0
  134. package/esm/core/responsive-style-manager/css-object-to-string/css-object-to-string.mjs.map +1 -1
  135. package/esm/core/responsive-style-manager/normalize-number-like-string-prop/normalize-number-like-string-prop.mjs +1 -1
  136. package/esm/core/responsive-style-manager/normalize-number-like-string-prop/normalize-number-like-string-prop.mjs.map +1 -1
  137. package/esm/core/responsive-style-manager/responsive-style-manager.mjs.map +1 -1
  138. package/esm/core/responsive-style-manager/styles-to-string/styles-to-string.mjs.map +1 -1
  139. package/esm/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.mjs.map +1 -1
  140. package/esm/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.mjs.map +1 -1
  141. package/esm/core/styles-api/use-styles/get-class-name/get-root-class-name/get-root-class-name.mjs.map +1 -1
  142. package/esm/core/styles-api/use-styles/get-class-name/get-selector-class-name/get-selector-class-name.mjs.map +1 -1
  143. package/esm/core/styles-api/use-styles/get-class-name/get-static-class-names/get-static-class-names.mjs.map +1 -1
  144. package/esm/core/styles-api/use-styles/get-class-name/get-variant-class-name/get-variant-class-name.mjs.map +1 -1
  145. package/esm/core/utils/deep-merge/deep-merge.mjs +18 -0
  146. package/esm/core/utils/deep-merge/deep-merge.mjs.map +1 -0
  147. package/esm/core/utils/get-breakpoint-value/get-breakpoint-value.mjs.map +1 -1
  148. package/esm/core/utils/get-size/get-size.mjs +2 -2
  149. package/esm/core/utils/get-size/get-size.mjs.map +1 -1
  150. package/esm/core/utils/get-sorted-breakpoints/get-sorted-breakpoints.mjs.map +1 -1
  151. package/esm/core/utils/number-like-string-to-number/number-like-string-to-number.mjs.map +1 -1
  152. package/esm/core/utils/units-converters/px.mjs.map +1 -1
  153. package/esm/core/utils/units-converters/rem.mjs.map +1 -1
  154. package/esm/core/utils/vue/component.mjs.map +1 -1
  155. package/esm/core/utils/vue/install.mjs +2 -2
  156. package/esm/core/utils/vue/install.mjs.map +1 -1
  157. package/esm/core/utils/vue/statics.mjs +35 -0
  158. package/esm/core/utils/vue/statics.mjs.map +1 -0
  159. package/esm/index.mjs +7 -5
  160. package/esm/index.mjs.map +1 -1
  161. package/lib/components/button/button.utils.d.ts +9 -0
  162. package/lib/components/button/index.d.ts +3 -3
  163. package/lib/components/grid/grid.utils.d.ts +9 -0
  164. package/lib/components/grid/index.d.ts +6 -5
  165. package/lib/core/config-provider/cck-classes-style/index.d.ts +2 -0
  166. package/lib/core/config-provider/color-functions/index.d.ts +1 -1
  167. package/lib/core/config-provider/color-functions/rgba/rgba.d.ts +1 -0
  168. package/lib/core/config-provider/index.d.ts +2 -0
  169. package/lib/core/config-provider/merge-theme-overrides/merge-theme-overrides.d.ts +2 -0
  170. package/lib/core/config-provider/use-component-props/use-component-props.d.ts +7 -0
  171. package/lib/core/responsive-style-manager/responsive-style-manager.d.ts +1 -0
  172. package/lib/core/styles-api/index.d.ts +1 -1
  173. package/lib/core/styles-api/use-styles/get-class-name/get-options-class-names/get-options-class-names.d.ts +1 -1
  174. package/lib/core/styles-api/use-styles/get-class-name/get-resolved-class-names/get-resolved-class-names.d.ts +1 -1
  175. package/lib/core/styles-api/use-styles/get-class-name/get-static-class-names/get-static-class-names.d.ts +1 -1
  176. package/lib/core/styles-api/use-styles/get-class-name/get-variant-class-name/get-variant-class-name.d.ts +1 -1
  177. package/lib/core/utils/deep-merge/deep-merge.d.ts +1 -0
  178. package/lib/core/utils/index.d.ts +4 -5
  179. package/lib/core/utils/vue/index.d.ts +1 -0
  180. package/lib/core/utils/vue/statics.d.ts +14 -0
  181. package/lib/core/utils/vue/typescript.d.ts +8 -0
  182. package/package.json +2 -1
  183. package/styles/loader.css +1 -2
  184. package/styles/loader.layer.css +1 -2
  185. package/styles.css +1 -2
  186. package/styles.layer.css +1 -2
  187. package/cjs/core/utils/color.cjs +0 -112
  188. package/cjs/core/utils/color.cjs.map +0 -1
  189. package/cjs/core/utils/dom/style.cjs +0 -13
  190. package/cjs/core/utils/dom/style.cjs.map +0 -1
  191. package/esm/core/utils/color.mjs +0 -110
  192. package/esm/core/utils/color.mjs.map +0 -1
  193. package/esm/core/utils/dom/style.mjs +0 -12
  194. package/esm/core/utils/dom/style.mjs.map +0 -1
  195. package/lib/core/utils/color.d.ts +0 -11
  196. package/lib/core/utils/dom/index.d.ts +0 -1
  197. package/lib/core/utils/dom/style.d.ts +0 -1
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ import { computed, defineComponent, h } from "vue";
3
+ //#region packages/@cck-ui/core/src/core/utils/vue/statics.ts
4
+ function withExtend(component) {
5
+ component.extend = (config) => config;
6
+ return component;
7
+ }
8
+ const withClasses = (component, classes) => {
9
+ component.classes = classes;
10
+ return component;
11
+ };
12
+ const withVarsResolver = (component, varsResolver) => {
13
+ component.varsResolver = varsResolver;
14
+ return component;
15
+ };
16
+ const withPropsFactory = (component) => {
17
+ component.withProps = (defaultProps) => {
18
+ return defineComponent({
19
+ name: `WithProps(${component.name || "Component"})`,
20
+ props: component.props || {},
21
+ setup(props, { slots }) {
22
+ const mergedProps = computed(() => ({
23
+ ...defaultProps,
24
+ ...props
25
+ }));
26
+ return () => h(component, mergedProps.value, slots);
27
+ }
28
+ });
29
+ };
30
+ return component;
31
+ };
32
+ //#endregion
33
+ export { withClasses, withExtend, withPropsFactory, withVarsResolver };
34
+
35
+ //# sourceMappingURL=statics.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statics.mjs","names":[],"sources":["../../../../src/core/utils/vue/statics.ts"],"sourcesContent":["import { computed, defineComponent, h } from 'vue'\nimport { CThemeComponent } from '../../config-provider'\nimport { VarsResolver } from '../../styles-api'\n\nexport function withExtend<T>(\n component: T\n): T & { extend: (config: CThemeComponent) => CThemeComponent } {\n ;(component as any).extend = (config: CThemeComponent) => config\n return component as T & { extend: (config: CThemeComponent) => CThemeComponent }\n}\n\nexport const withClasses = <T, C extends Record<string, string>>(\n component: T,\n classes: C\n): T & { classes: C } => {\n ;(component as any).classes = classes\n return component as T & { classes: C }\n}\n\nexport const withVarsResolver = <T, V extends VarsResolver<any>>(\n component: T,\n varsResolver: V\n): T & { varsResolver: V } => {\n ;(component as any).varsResolver = varsResolver\n return component as T & { varsResolver: V }\n}\n\nexport const withPropsFactory = <T extends Record<string, any>>(component: T) => {\n ;(component as any).withProps = (defaultProps: Partial<T>) => {\n return defineComponent({\n name: `WithProps(${(component as any).name || 'Component'})`,\n props: (component as any).props || {},\n setup(props, { slots }) {\n const mergedProps = computed(() => ({\n ...defaultProps,\n ...props,\n }))\n\n return () => h(component, mergedProps.value, slots)\n },\n })\n }\n\n return component as T & { withProps: (defaultProps: Partial<T>) => any }\n}\n"],"mappings":";;;AAIA,SAAgB,WACd,WAC8D;CAC7D,UAAmB,UAAU,WAA4B;CAC1D,OAAO;AACT;AAEA,MAAa,eACX,WACA,YACuB;CACtB,UAAmB,UAAU;CAC9B,OAAO;AACT;AAEA,MAAa,oBACX,WACA,iBAC4B;CAC3B,UAAmB,eAAe;CACnC,OAAO;AACT;AAEA,MAAa,oBAAmD,cAAiB;CAC9E,UAAmB,aAAa,iBAA6B;EAC5D,OAAO,gBAAgB;GACrB,MAAM,aAAc,UAAkB,QAAQ,YAAY;GAC1D,OAAQ,UAAkB,SAAS,CAAC;GACpC,MAAM,OAAO,EAAE,SAAS;IACtB,MAAM,cAAc,gBAAgB;KAClC,GAAG;KACH,GAAG;IACL,EAAE;IAEF,aAAa,EAAE,WAAW,YAAY,OAAO,KAAK;GACpD;EACF,CAAC;CACH;CAEA,OAAO;AACT"}
package/esm/index.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ import { deepMerge } from "./core/utils/deep-merge/deep-merge.mjs";
1
2
  import { camelToKebabCase } from "./core/utils/camel-to-kebab-case/camel-to-kebab-case.mjs";
2
3
  import { filterProps } from "./core/utils/filter-props/filter-props.mjs";
3
4
  import { getBaseValue } from "./core/utils/get-base-value/get-base-value.mjs";
@@ -11,15 +12,14 @@ import { numberLikeStringToNumber } from "./core/utils/number-like-string-to-num
11
12
  import { keys } from "./core/utils/keys/keys.mjs";
12
13
  import { getComponentName } from "./core/utils/vue/component.mjs";
13
14
  import { withInstall, withPropsDefaultSetter } from "./core/utils/vue/install.mjs";
14
- import { clearShadeCache, generateColorShades, setColorAlpha } from "./core/utils/color.mjs";
15
+ import { withClasses, withExtend, withPropsFactory, withVarsResolver } from "./core/utils/vue/statics.mjs";
15
16
  import { isNumber, isString, isStringNumber, isUndefined } from "./core/utils/types/index.mjs";
16
- import { addUnit } from "./core/utils/dom/style.mjs";
17
17
  import { CONFIG_KEY, THEME_KEY } from "./core/config-provider/config-provider.types.mjs";
18
18
  import { useProviderColorScheme } from "./core/config-provider/use-cck-color-scheme/use-provider-color-scheme.mjs";
19
19
  import { colorsTuple } from "./core/config-provider/color-functions/colors-tuple/colors-tuple.mjs";
20
20
  import { toRgba } from "./core/config-provider/color-functions/to-rgba/to-rgba.mjs";
21
21
  import { darken } from "./core/config-provider/color-functions/darken/darken.mjs";
22
- import { alpha, rgba } from "./core/config-provider/color-functions/rgba/rgba.mjs";
22
+ import { alpha, rgb, rgba } from "./core/config-provider/color-functions/rgba/rgba.mjs";
23
23
  import { isLightColor, luminance } from "./core/config-provider/color-functions/luminance/luminance.mjs";
24
24
  import { getPrimaryShade } from "./core/config-provider/color-functions/get-primary-shade/get-primary-shade.mjs";
25
25
  import { parseThemeColor } from "./core/config-provider/color-functions/parse-theme-color/parse-theme-color.mjs";
@@ -27,12 +27,14 @@ import { getThemeColor } from "./core/config-provider/color-functions/get-theme-
27
27
  import { getGradient } from "./core/config-provider/color-functions/get-gradient/get-gradient.mjs";
28
28
  import { defaultVariantColorsResolver } from "./core/config-provider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.mjs";
29
29
  import { DEFAULT_THEME } from "./core/config-provider/default-theme.mjs";
30
+ import { useCckClassNamesPrefix, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckTheme, useCckWithStaticClasses, useConfigContext } from "./core/config-provider/config-provider.context.mjs";
31
+ import { useComponentProps } from "./core/config-provider/use-component-props/use-component-props.mjs";
30
32
  import { isVirtualColor, virtualColor } from "./core/config-provider/cck-css-variables/virtual-color/virtual-color.mjs";
31
33
  import { getCSSColorVariables } from "./core/config-provider/cck-css-variables/get-css-color-variables.mjs";
32
34
  import { defaultCssVariablesResolver } from "./core/config-provider/cck-css-variables/default-css-variables-resolver.mjs";
33
- import { useCckClassNamesPrefix, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckTheme, useCckWithStaticClasses, useConfigContext } from "./core/config-provider/config-provider.context.mjs";
34
35
  import { createTheme } from "./core/config-provider/create-theme/create-theme.mjs";
35
36
  import { useCckColorScheme } from "./core/config-provider/use-cck-color-scheme/use-cck-color-scheme.mjs";
37
+ import { mergeThemeOverrides } from "./core/config-provider/merge-theme-overrides/merge-theme-overrides.mjs";
36
38
  import { CckConfigProvider } from "./core/config-provider/index.mjs";
37
39
  import { extractStyleProps } from "./core/box/style-props/extract-style-props/extract-style-props.mjs";
38
40
  import { parseStyleProps } from "./core/box/style-props/parse-style-props/parse-style-props.mjs";
@@ -83,6 +85,6 @@ const CckUI = { install(app) {
83
85
  });
84
86
  } };
85
87
  //#endregion
86
- export { CBox, CButton, CButtonGroup, CButtonGroupSection, transitions as CCK_TRANSITIONS, CCol, CDefaultLoaders, CGrid, CGroup, CLoader, CONFIG_KEY, CSimpleGrid, CText, CTransition, CckConfigProvider, CckUI, CckUI as default, DEFAULT_THEME, FOCUS_CLASS_NAMES, STYLE_PROPS_DATA, THEME_KEY, UnstyledButton, addUnit, alpha, camelToKebabCase, clearShadeCache, colorsTuple, createTheme, createVarsResolver, darken, defaultCssVariablesResolver, defaultVariantColorsResolver, em, extractStyleProps, filterProps, generateColorShades, getBaseValue, getBreakpointValue, getCSSColorVariables, getComponentName, getFontSize, getGradient, getLineHeight, getPrimaryShade, getRadius, getShadow, getSize, getSortedBreakpoints, getSpacing, getThemeColor, getTransitionProps, hashStyleProps, isLightColor, isNumber, isNumberLike, isString, isStringNumber, isUndefined, isVirtualColor, keys, luminance, normalizeNumberLikeStringProp, numberLikeStringToNumber, parseStyleProps, parseThemeColor, px, rem, resolveClassNames, resolveStyles, responsiveStyleManager, rgba, setColorAlpha, stylesToString, toRgba, useCckClassNamesPrefix, useCckColorScheme, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckTheme, useCckWithStaticClasses, useConfigContext, useProviderColorScheme, useRandomClassName, useStyles, virtualColor, withInstall, withPropsDefaultSetter };
88
+ export { CBox, CButton, CButtonGroup, CButtonGroupSection, transitions as CCK_TRANSITIONS, CCol, CDefaultLoaders, CGrid, CGroup, CLoader, CONFIG_KEY, CSimpleGrid, CText, CTransition, CckConfigProvider, CckUI, CckUI as default, DEFAULT_THEME, FOCUS_CLASS_NAMES, STYLE_PROPS_DATA, THEME_KEY, UnstyledButton, alpha, camelToKebabCase, colorsTuple, createTheme, createVarsResolver, darken, deepMerge, defaultCssVariablesResolver, defaultVariantColorsResolver, em, extractStyleProps, filterProps, getBaseValue, getBreakpointValue, getCSSColorVariables, getComponentName, getFontSize, getGradient, getLineHeight, getPrimaryShade, getRadius, getShadow, getSize, getSortedBreakpoints, getSpacing, getThemeColor, getTransitionProps, hashStyleProps, isLightColor, isNumber, isNumberLike, isString, isStringNumber, isUndefined, isVirtualColor, keys, luminance, mergeThemeOverrides, normalizeNumberLikeStringProp, numberLikeStringToNumber, parseStyleProps, parseThemeColor, px, rem, resolveClassNames, resolveStyles, responsiveStyleManager, rgb, rgba, stylesToString, toRgba, useCckClassNamesPrefix, useCckColorScheme, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckTheme, useCckWithStaticClasses, useComponentProps, useConfigContext, useProviderColorScheme, useRandomClassName, useStyles, virtualColor, withClasses, withExtend, withInstall, withPropsDefaultSetter, withPropsFactory, withVarsResolver };
87
89
 
88
90
  //# sourceMappingURL=index.mjs.map
package/esm/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { App, Plugin } from 'vue'\nimport {\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CCol,\n CGrid,\n CGroup,\n CLoader,\n CSimpleGrid,\n CText,\n CTransition,\n UnstyledButton,\n} from './components'\nimport { CckConfigProvider, CBox } from './core'\n\nconst INSTALLED_KEY = Symbol('INSTALLED_KEY')\n\nconst components = [\n CckConfigProvider,\n CBox,\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CGrid,\n CCol,\n CGroup,\n CLoader,\n CSimpleGrid,\n CText,\n CTransition,\n UnstyledButton,\n]\n\nconst CckUI: Plugin = {\n install(app: App) {\n if ((app as any)[INSTALLED_KEY]) {\n return\n }\n ;(app as any)[INSTALLED_KEY] = true\n components.forEach((c) => {\n if (c.name) {\n app.component(c.name, c)\n }\n })\n },\n}\n\nexport default CckUI\nexport { CckUI }\n\nexport * from './components'\nexport * from './core'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,gBAAgB,OAAO,eAAe;AAE5C,MAAM,aAAa;CACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,QAAgB,EACpB,QAAQ,KAAU;CAChB,IAAK,IAAY,gBACf;CAED,IAAa,iBAAiB;CAC/B,WAAW,SAAS,MAAM;EACxB,IAAI,EAAE,MACJ,IAAI,UAAU,EAAE,MAAM,CAAC;CAE3B,CAAC;AACH,EACF"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { App, Plugin } from 'vue'\nimport {\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CCol,\n CGrid,\n CGroup,\n CLoader,\n CSimpleGrid,\n CText,\n CTransition,\n UnstyledButton,\n} from './components'\nimport { CckConfigProvider, CBox } from './core'\n\nconst INSTALLED_KEY = Symbol('INSTALLED_KEY')\n\nconst components = [\n CckConfigProvider,\n CBox,\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CGrid,\n CCol,\n CGroup,\n CLoader,\n CSimpleGrid,\n CText,\n CTransition,\n UnstyledButton,\n]\n\nconst CckUI: Plugin = {\n install(app: App) {\n if ((app as any)[INSTALLED_KEY]) {\n return\n }\n ;(app as any)[INSTALLED_KEY] = true\n components.forEach((c) => {\n if (c.name) {\n app.component(c.name, c)\n }\n })\n },\n}\n\nexport default CckUI\nexport { CckUI }\n\nexport * from './components'\nexport * from './core'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,gBAAgB,OAAO,eAAe;AAE5C,MAAM,aAAa;CACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,QAAgB,EACpB,QAAQ,KAAU;CAChB,IAAK,IAAY,gBACf;CAED,IAAa,iBAAiB;CAC/B,WAAW,SAAS,MAAM;EACxB,IAAI,EAAE,MACJ,IAAI,UAAU,EAAE,MAAM,CAAC;CAE3B,CAAC;AACH,EACF"}
@@ -0,0 +1,9 @@
1
+ export declare const varsResolver: import("../..").VarsResolver<{
2
+ props: import("./button.types").ButtonProps;
3
+ defaultRef: HTMLButtonElement;
4
+ defaultComponent: "button";
5
+ stylesNames: import("./button.types").ButtonStylesNames;
6
+ vars: import("./button.types").ButtonCssVariables;
7
+ variant: import("./button.types").ButtonVariant;
8
+ staticComponents: {};
9
+ }>;
@@ -1,12 +1,12 @@
1
- import { type SFCWithInstall } from '../../core';
1
+ import { type SFCWithInstall, type SFCWithInstallAndClasses } from '../../core';
2
2
  import ButtonGroup from './button-group/button-group.vue';
3
3
  import ButtonGroupSection from './button-group-section/button-group-section.vue';
4
4
  import Button from './button.vue';
5
+ import classes from './button.module.css';
5
6
  export declare const CButtonGroup: SFCWithInstall<typeof ButtonGroup>;
6
7
  export declare const CButtonGroupSection: SFCWithInstall<typeof ButtonGroupSection>;
7
- export declare const CButton: SFCWithInstall<typeof Button> & {
8
+ export declare const CButton: SFCWithInstallAndClasses<typeof Button, typeof classes> & {
8
9
  ButtonGroup: typeof ButtonGroup;
9
- } & {
10
10
  ButtonGroupSection: typeof ButtonGroupSection;
11
11
  };
12
12
  export default CButton;
@@ -0,0 +1,9 @@
1
+ export declare const varsResolver: import("../..").VarsResolver<{
2
+ props: import("./grid.types").GridProps;
3
+ ref: HTMLDivElement;
4
+ stylesNames: import("./grid.types").GridStylesNames;
5
+ vars: import("./grid.types").GridCssVariables;
6
+ staticComponents: {
7
+ Col: typeof import("*.vue");
8
+ };
9
+ }>;
@@ -1,10 +1,11 @@
1
- import { type SFCWithInstall } from '../../core';
1
+ import { type SFCWithInstallAndClasses } from '../../core';
2
2
  import Grid from './grid.vue';
3
3
  import Col from './col/col.vue';
4
- export declare const CCol: SFCWithInstall<typeof Col>;
5
- export declare const CGrid: SFCWithInstall<typeof Grid> & {
4
+ import classes from './grid.module.css';
5
+ export declare const CCol: SFCWithInstallAndClasses<typeof Col>;
6
+ export declare const CGrid: SFCWithInstallAndClasses<typeof Grid, typeof classes> & {
6
7
  Col: typeof Col;
7
8
  };
8
9
  export default CGrid;
9
- export * from './col/col.types.js';
10
- export * from './grid.types.js';
10
+ export * from './col/col.types';
11
+ export * from './grid.types';
@@ -0,0 +1,2 @@
1
+ import CckClassesStyle from './cck-classes-style.vue';
2
+ export { CckClassesStyle };
@@ -7,5 +7,5 @@ export { getPrimaryShade } from './get-primary-shade/get-primary-shade';
7
7
  export { getThemeColor } from './get-theme-color/get-theme-color';
8
8
  export { luminance, isLightColor } from './luminance/luminance';
9
9
  export { parseThemeColor } from './parse-theme-color/parse-theme-color';
10
- export { rgba, alpha } from './rgba/rgba';
10
+ export { rgb, rgba, alpha } from './rgba/rgba';
11
11
  export { toRgba } from './to-rgba/to-rgba';
@@ -1,2 +1,3 @@
1
+ export declare function rgb(color: string): string;
1
2
  export declare function rgba(color: string, alpha: number): string;
2
3
  export declare const alpha: typeof rgba;
@@ -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,2 @@
1
+ import { CThemeOverride } from '../theme.types';
2
+ export declare function mergeThemeOverrides(...overrides: CThemeOverride[]): CThemeOverride;
@@ -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>;
@@ -5,6 +5,7 @@ export interface StyleManagerEntry {
5
5
  }
6
6
  declare class ResponsiveStyleManager {
7
7
  private styleMap;
8
+ constructor();
8
9
  register(cssText: string, key?: string): string;
9
10
  unregister(styleKey: string): void;
10
11
  }
@@ -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';
@@ -1,3 +1,4 @@
1
1
  export * from './component';
2
2
  export * from './install';
3
+ export * from './statics';
3
4
  export * from './typescript';
@@ -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.4.9",
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
  }
@@ -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
 
@@ -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"}
@@ -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