@cck-ui/core 0.2.0 → 0.3.3

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 (225) hide show
  1. package/cjs/components/button/button-group/button-group.cjs +1 -1
  2. package/cjs/components/button/button-group/button-group.cjs.map +1 -1
  3. package/cjs/components/button/button-group/use-button-group.cjs +2 -1
  4. package/cjs/components/button/button-group/use-button-group.cjs.map +1 -1
  5. package/cjs/components/button/button-group-section/button-group-section.cjs +1 -1
  6. package/cjs/components/button/button-group-section/button-group-section.cjs.map +1 -1
  7. package/cjs/components/button/button.cjs +99 -68
  8. package/cjs/components/button/button.cjs.map +1 -1
  9. package/cjs/components/button/button.module.cjs.map +1 -1
  10. package/cjs/components/grid/col/col-custom.cjs +2 -3
  11. package/cjs/components/grid/col/col-custom.cjs.map +1 -1
  12. package/cjs/components/grid/col/col.cjs +31 -23
  13. package/cjs/components/grid/col/col.cjs.map +1 -1
  14. package/cjs/components/grid/grid-custom.cjs +2 -3
  15. package/cjs/components/grid/grid-custom.cjs.map +1 -1
  16. package/cjs/components/grid/grid.cjs +50 -38
  17. package/cjs/components/grid/grid.cjs.map +1 -1
  18. package/cjs/components/group/group.cjs +1 -1
  19. package/cjs/components/group/group.cjs.map +1 -1
  20. package/cjs/components/loader/loader.cjs +44 -36
  21. package/cjs/components/loader/loader.cjs.map +1 -1
  22. package/cjs/components/loader/loaders/bars.cjs +1 -1
  23. package/cjs/components/loader/loaders/bars.cjs.map +1 -1
  24. package/cjs/components/loader/loaders/dots.cjs +1 -1
  25. package/cjs/components/loader/loaders/dots.cjs.map +1 -1
  26. package/cjs/components/loader/loaders/oval.cjs +1 -1
  27. package/cjs/components/loader/loaders/oval.cjs.map +1 -1
  28. package/cjs/components/simple-grid/simple-grid-custom.cjs +2 -3
  29. package/cjs/components/simple-grid/simple-grid-custom.cjs.map +1 -1
  30. package/cjs/components/simple-grid/simple-grid.cjs +35 -30
  31. package/cjs/components/simple-grid/simple-grid.cjs.map +1 -1
  32. package/cjs/components/text/text.cjs +50 -43
  33. package/cjs/components/text/text.cjs.map +1 -1
  34. package/cjs/components/text/text.module.cjs.map +1 -1
  35. package/cjs/components/transition/get-transition-props/get-transition-props.cjs +17 -0
  36. package/cjs/components/transition/get-transition-props/get-transition-props.cjs.map +1 -0
  37. package/cjs/components/transition/get-transition-styles/get-transition-styles.cjs +37 -0
  38. package/cjs/components/transition/get-transition-styles/get-transition-styles.cjs.map +1 -0
  39. package/cjs/components/transition/index.cjs +14 -0
  40. package/cjs/components/transition/index.cjs.map +1 -0
  41. package/cjs/components/transition/transition.cjs +140 -0
  42. package/cjs/components/transition/transition.cjs.map +1 -0
  43. package/cjs/components/transition/transitions.cjs +220 -0
  44. package/cjs/components/transition/transitions.cjs.map +1 -0
  45. package/cjs/components/transition/use-transition.cjs +84 -0
  46. package/cjs/components/transition/use-transition.cjs.map +1 -0
  47. package/cjs/components/unstyled-button/unstyled-button.cjs +32 -22
  48. package/cjs/components/unstyled-button/unstyled-button.cjs.map +1 -1
  49. package/cjs/core/box/box.cjs +40 -46
  50. package/cjs/core/box/box.cjs.map +1 -1
  51. package/cjs/core/box/get-box-mod/get-box-mod.cjs.map +1 -1
  52. package/cjs/core/box/style-props/parse-style-props/parse-style-props.cjs +1 -1
  53. package/cjs/core/box/style-props/parse-style-props/parse-style-props.cjs.map +1 -1
  54. package/cjs/core/config-provider/baseline.cjs +1 -0
  55. package/cjs/core/config-provider/cck-css-variables/default-css-variables-resolver.cjs +138 -0
  56. package/cjs/core/config-provider/cck-css-variables/default-css-variables-resolver.cjs.map +1 -0
  57. package/cjs/core/config-provider/cck-css-variables/get-css-color-variables.cjs +64 -0
  58. package/cjs/core/config-provider/cck-css-variables/get-css-color-variables.cjs.map +1 -0
  59. package/cjs/core/config-provider/cck-css-variables/virtual-color/virtual-color.cjs +39 -0
  60. package/cjs/core/config-provider/cck-css-variables/virtual-color/virtual-color.cjs.map +1 -0
  61. package/cjs/core/config-provider/color-functions/colors-tuple/colors-tuple.cjs +10 -0
  62. package/cjs/core/config-provider/color-functions/colors-tuple/colors-tuple.cjs.map +1 -0
  63. package/cjs/core/config-provider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.cjs +22 -0
  64. package/cjs/core/config-provider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.cjs.map +1 -1
  65. package/cjs/core/config-provider/color-functions/get-contrast-color/get-contrast-color.cjs +39 -0
  66. package/cjs/core/config-provider/color-functions/get-contrast-color/get-contrast-color.cjs.map +1 -0
  67. package/cjs/core/config-provider/color-functions/parse-theme-color/parse-theme-color.cjs.map +1 -1
  68. package/cjs/core/config-provider/color-scheme-managers/is-cck-color-scheme.cjs +9 -0
  69. package/cjs/core/config-provider/color-scheme-managers/is-cck-color-scheme.cjs.map +1 -0
  70. package/cjs/core/config-provider/color-scheme-managers/local-storage-manager.cjs +40 -0
  71. package/cjs/core/config-provider/color-scheme-managers/local-storage-manager.cjs.map +1 -0
  72. package/cjs/core/config-provider/config-provider.cjs +65 -11
  73. package/cjs/core/config-provider/config-provider.cjs.map +1 -1
  74. package/cjs/core/config-provider/config-provider.context.cjs +5 -0
  75. package/cjs/core/config-provider/config-provider.context.cjs.map +1 -1
  76. package/cjs/core/config-provider/config-provider.types.cjs +1 -1
  77. package/cjs/core/config-provider/config-provider.types.cjs.map +1 -1
  78. package/cjs/core/config-provider/create-theme/create-theme.cjs +8 -0
  79. package/cjs/core/config-provider/create-theme/create-theme.cjs.map +1 -0
  80. package/cjs/core/config-provider/default-css-variables.cjs +1 -0
  81. package/cjs/core/config-provider/global.cjs +1 -0
  82. package/cjs/core/config-provider/index.cjs +18 -2
  83. package/cjs/core/config-provider/index.cjs.map +1 -1
  84. package/cjs/core/config-provider/merge-cck-theme/merge-cck-theme.cjs +35 -0
  85. package/cjs/core/config-provider/merge-cck-theme/merge-cck-theme.cjs.map +1 -0
  86. package/cjs/core/config-provider/use-cck-color-scheme/use-cck-color-scheme.cjs +84 -0
  87. package/cjs/core/config-provider/use-cck-color-scheme/use-cck-color-scheme.cjs.map +1 -0
  88. package/cjs/core/config-provider/use-cck-color-scheme/use-provider-color-scheme.cjs +59 -0
  89. package/cjs/core/config-provider/use-cck-color-scheme/use-provider-color-scheme.cjs.map +1 -0
  90. package/cjs/core/config-provider/use-respect-reduce-motion/use-respect-reduce-motion.cjs +14 -0
  91. package/cjs/core/config-provider/use-respect-reduce-motion/use-respect-reduce-motion.cjs.map +1 -0
  92. package/cjs/core/styles-api/use-styles/use-styles.cjs +1 -4
  93. package/cjs/core/styles-api/use-styles/use-styles.cjs.map +1 -1
  94. package/cjs/index.cjs +39 -17
  95. package/esm/components/button/button-group/button-group.mjs +1 -1
  96. package/esm/components/button/button-group/button-group.mjs.map +1 -1
  97. package/esm/components/button/button-group/use-button-group.mjs +2 -1
  98. package/esm/components/button/button-group/use-button-group.mjs.map +1 -1
  99. package/esm/components/button/button-group-section/button-group-section.mjs +1 -1
  100. package/esm/components/button/button-group-section/button-group-section.mjs.map +1 -1
  101. package/esm/components/button/button.mjs +100 -69
  102. package/esm/components/button/button.mjs.map +1 -1
  103. package/esm/components/button/button.module.mjs.map +1 -1
  104. package/esm/components/grid/col/col-custom.mjs +3 -4
  105. package/esm/components/grid/col/col-custom.mjs.map +1 -1
  106. package/esm/components/grid/col/col.mjs +32 -24
  107. package/esm/components/grid/col/col.mjs.map +1 -1
  108. package/esm/components/grid/grid-custom.mjs +3 -4
  109. package/esm/components/grid/grid-custom.mjs.map +1 -1
  110. package/esm/components/grid/grid.mjs +51 -39
  111. package/esm/components/grid/grid.mjs.map +1 -1
  112. package/esm/components/group/group.mjs +1 -1
  113. package/esm/components/group/group.mjs.map +1 -1
  114. package/esm/components/loader/loader.mjs +43 -35
  115. package/esm/components/loader/loader.mjs.map +1 -1
  116. package/esm/components/loader/loaders/bars.mjs +1 -1
  117. package/esm/components/loader/loaders/bars.mjs.map +1 -1
  118. package/esm/components/loader/loaders/dots.mjs +1 -1
  119. package/esm/components/loader/loaders/dots.mjs.map +1 -1
  120. package/esm/components/loader/loaders/oval.mjs +1 -1
  121. package/esm/components/loader/loaders/oval.mjs.map +1 -1
  122. package/esm/components/simple-grid/simple-grid-custom.mjs +3 -4
  123. package/esm/components/simple-grid/simple-grid-custom.mjs.map +1 -1
  124. package/esm/components/simple-grid/simple-grid.mjs +35 -30
  125. package/esm/components/simple-grid/simple-grid.mjs.map +1 -1
  126. package/esm/components/text/text.mjs +50 -43
  127. package/esm/components/text/text.mjs.map +1 -1
  128. package/esm/components/text/text.module.mjs.map +1 -1
  129. package/esm/components/transition/get-transition-props/get-transition-props.mjs +17 -0
  130. package/esm/components/transition/get-transition-props/get-transition-props.mjs.map +1 -0
  131. package/esm/components/transition/get-transition-styles/get-transition-styles.mjs +37 -0
  132. package/esm/components/transition/get-transition-styles/get-transition-styles.mjs.map +1 -0
  133. package/esm/components/transition/index.mjs +11 -0
  134. package/esm/components/transition/index.mjs.map +1 -0
  135. package/esm/components/transition/transition.mjs +140 -0
  136. package/esm/components/transition/transition.mjs.map +1 -0
  137. package/esm/components/transition/transitions.mjs +220 -0
  138. package/esm/components/transition/transitions.mjs.map +1 -0
  139. package/esm/components/transition/use-transition.mjs +84 -0
  140. package/esm/components/transition/use-transition.mjs.map +1 -0
  141. package/esm/components/unstyled-button/unstyled-button.mjs +33 -23
  142. package/esm/components/unstyled-button/unstyled-button.mjs.map +1 -1
  143. package/esm/core/box/box.mjs +41 -47
  144. package/esm/core/box/box.mjs.map +1 -1
  145. package/esm/core/box/get-box-mod/get-box-mod.mjs.map +1 -1
  146. package/esm/core/box/style-props/parse-style-props/parse-style-props.mjs +1 -1
  147. package/esm/core/box/style-props/parse-style-props/parse-style-props.mjs.map +1 -1
  148. package/esm/core/config-provider/baseline.mjs +1 -0
  149. package/esm/core/config-provider/cck-css-variables/default-css-variables-resolver.mjs +138 -0
  150. package/esm/core/config-provider/cck-css-variables/default-css-variables-resolver.mjs.map +1 -0
  151. package/esm/core/config-provider/cck-css-variables/get-css-color-variables.mjs +64 -0
  152. package/esm/core/config-provider/cck-css-variables/get-css-color-variables.mjs.map +1 -0
  153. package/esm/core/config-provider/cck-css-variables/virtual-color/virtual-color.mjs +38 -0
  154. package/esm/core/config-provider/cck-css-variables/virtual-color/virtual-color.mjs.map +1 -0
  155. package/esm/core/config-provider/color-functions/colors-tuple/colors-tuple.mjs +10 -0
  156. package/esm/core/config-provider/color-functions/colors-tuple/colors-tuple.mjs.map +1 -0
  157. package/esm/core/config-provider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.mjs +22 -0
  158. package/esm/core/config-provider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.mjs.map +1 -1
  159. package/esm/core/config-provider/color-functions/get-contrast-color/get-contrast-color.mjs +37 -0
  160. package/esm/core/config-provider/color-functions/get-contrast-color/get-contrast-color.mjs.map +1 -0
  161. package/esm/core/config-provider/color-functions/parse-theme-color/parse-theme-color.mjs.map +1 -1
  162. package/esm/core/config-provider/color-scheme-managers/is-cck-color-scheme.mjs +9 -0
  163. package/esm/core/config-provider/color-scheme-managers/is-cck-color-scheme.mjs.map +1 -0
  164. package/esm/core/config-provider/color-scheme-managers/local-storage-manager.mjs +40 -0
  165. package/esm/core/config-provider/color-scheme-managers/local-storage-manager.mjs.map +1 -0
  166. package/esm/core/config-provider/config-provider.context.mjs +7 -3
  167. package/esm/core/config-provider/config-provider.context.mjs.map +1 -1
  168. package/esm/core/config-provider/config-provider.mjs +66 -12
  169. package/esm/core/config-provider/config-provider.mjs.map +1 -1
  170. package/esm/core/config-provider/config-provider.types.mjs +1 -1
  171. package/esm/core/config-provider/config-provider.types.mjs.map +1 -1
  172. package/esm/core/config-provider/create-theme/create-theme.mjs +8 -0
  173. package/esm/core/config-provider/create-theme/create-theme.mjs.map +1 -0
  174. package/esm/core/config-provider/default-css-variables.mjs +1 -0
  175. package/esm/core/config-provider/global.mjs +1 -0
  176. package/esm/core/config-provider/index.mjs +10 -3
  177. package/esm/core/config-provider/index.mjs.map +1 -1
  178. package/esm/core/config-provider/merge-cck-theme/merge-cck-theme.mjs +32 -0
  179. package/esm/core/config-provider/merge-cck-theme/merge-cck-theme.mjs.map +1 -0
  180. package/esm/core/config-provider/use-cck-color-scheme/use-cck-color-scheme.mjs +84 -0
  181. package/esm/core/config-provider/use-cck-color-scheme/use-cck-color-scheme.mjs.map +1 -0
  182. package/esm/core/config-provider/use-cck-color-scheme/use-provider-color-scheme.mjs +59 -0
  183. package/esm/core/config-provider/use-cck-color-scheme/use-provider-color-scheme.mjs.map +1 -0
  184. package/esm/core/config-provider/use-respect-reduce-motion/use-respect-reduce-motion.mjs +14 -0
  185. package/esm/core/config-provider/use-respect-reduce-motion/use-respect-reduce-motion.mjs.map +1 -0
  186. package/esm/core/styles-api/use-styles/use-styles.mjs +2 -5
  187. package/esm/core/styles-api/use-styles/use-styles.mjs.map +1 -1
  188. package/esm/index.mjs +13 -3
  189. package/lib/components/button/button.types.d.ts +1 -11
  190. package/lib/components/index.d.ts +1 -0
  191. package/lib/components/text/text.types.d.ts +1 -1
  192. package/lib/components/transition/get-transition-props/get-transition-props.d.ts +5 -0
  193. package/lib/components/transition/get-transition-styles/get-transition-styles.d.ts +17 -0
  194. package/lib/components/transition/index.d.ts +8 -0
  195. package/lib/components/transition/transition.types.d.ts +66 -0
  196. package/lib/components/transition/transitions.d.ts +10 -0
  197. package/lib/components/transition/use-transition.d.ts +20 -0
  198. package/lib/core/box/style-props/parse-style-props/parse-style-props.d.ts +1 -1
  199. package/lib/core/config-provider/cck-css-variables/index.d.ts +3 -0
  200. package/lib/core/config-provider/cck-css-variables/virtual-color/virtual-color.d.ts +1 -1
  201. package/lib/core/config-provider/color-functions/index.d.ts +2 -1
  202. package/lib/core/config-provider/color-functions/parse-theme-color/parse-theme-color.d.ts +1 -1
  203. package/lib/core/config-provider/color-scheme-managers/index.d.ts +4 -0
  204. package/lib/core/config-provider/color-scheme-managers/is-cck-color-scheme.d.ts +2 -0
  205. package/lib/core/config-provider/color-scheme-managers/local-storage-manager.d.ts +5 -0
  206. package/lib/core/config-provider/color-scheme-managers/types.d.ts +30 -0
  207. package/lib/core/config-provider/config-provider.context.d.ts +4 -3
  208. package/lib/core/config-provider/config-provider.types.d.ts +10 -4
  209. package/lib/core/config-provider/create-theme/create-theme.d.ts +2 -0
  210. package/lib/core/config-provider/index.d.ts +3 -0
  211. package/lib/core/config-provider/merge-cck-theme/index.d.ts +1 -0
  212. package/lib/core/config-provider/merge-cck-theme/merge-cck-theme.d.ts +5 -0
  213. package/lib/core/config-provider/use-cck-color-scheme/index.d.ts +2 -0
  214. package/lib/core/config-provider/use-cck-color-scheme/use-cck-color-scheme.d.ts +10 -0
  215. package/lib/core/config-provider/use-cck-color-scheme/use-provider-color-scheme.d.ts +15 -0
  216. package/lib/core/config-provider/use-respect-reduce-motion/use-respect-reduce-motion.d.ts +7 -0
  217. package/package.json +3 -1
  218. package/styles/button.css +5 -9
  219. package/styles/button.layer.css +5 -9
  220. package/styles/default-css-variables.css +30 -30
  221. package/styles/default-css-variables.layer.css +30 -30
  222. package/styles/text.css +10 -0
  223. package/styles/text.layer.css +10 -0
  224. package/styles.css +1482 -232
  225. package/styles.layer.css +1483 -233
@@ -1,7 +1,15 @@
1
1
  "use client";
2
2
  import { CONFIG_KEY, THEME_KEY } from "./config-provider.types.mjs";
3
+ import { useProviderColorScheme } from "./use-cck-color-scheme/use-provider-color-scheme.mjs";
4
+ import { localStorageColorSchemeManager } from "./color-scheme-managers/local-storage-manager.mjs";
5
+ import { useRespectReduceMotion } from "./use-respect-reduce-motion/use-respect-reduce-motion.mjs";
6
+ import { DEFAULT_THEME } from "./default-theme.mjs";
7
+ import { mergeCckTheme } from "./merge-cck-theme/merge-cck-theme.mjs";
8
+ import "./baseline.mjs";
9
+ import "./global.mjs";
10
+ import "./default-css-variables.mjs";
3
11
  import export_helper_default from "../../_virtual/_/plugin-vue/export-helper.mjs";
4
- import { defineComponent, provide, renderSlot } from "vue";
12
+ import { computed, defineComponent, provide, renderSlot } from "vue";
5
13
  //#region packages/@cck-ui/core/src/core/config-provider/config-provider.vue
6
14
  const _sfc_main = /*@__PURE__*/ defineComponent({
7
15
  name: "CckConfigProvider",
@@ -11,9 +19,15 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
11
19
  type: null,
12
20
  required: false
13
21
  },
22
+ colorSchemeManager: {
23
+ type: Object,
24
+ required: false,
25
+ default: () => localStorageColorSchemeManager()
26
+ },
14
27
  defaultColorScheme: {
15
28
  type: String,
16
- required: false
29
+ required: false,
30
+ default: "light"
17
31
  },
18
32
  forceColorScheme: {
19
33
  type: String,
@@ -21,27 +35,33 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
21
35
  },
22
36
  cssVariablesSelector: {
23
37
  type: String,
24
- required: false
38
+ required: false,
39
+ default: ":root"
25
40
  },
26
41
  withCssVariables: {
27
42
  type: Boolean,
28
- required: false
43
+ required: false,
44
+ default: true
29
45
  },
30
46
  getRootElement: {
31
47
  type: Function,
32
- required: false
48
+ required: false,
49
+ default: () => document.documentElement
33
50
  },
34
51
  classNamesPrefix: {
35
52
  type: String,
36
- required: false
53
+ required: false,
54
+ default: "c"
37
55
  },
38
56
  withStaticClasses: {
39
57
  type: Boolean,
40
- required: false
58
+ required: false,
59
+ default: true
41
60
  },
42
61
  withGlobalClasses: {
43
62
  type: Boolean,
44
- required: false
63
+ required: false,
64
+ default: true
45
65
  },
46
66
  stylesTransform: {
47
67
  type: Object,
@@ -55,9 +75,43 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
55
75
  setup(__props, { expose: __expose }) {
56
76
  __expose();
57
77
  const config = __props;
58
- provide(CONFIG_KEY, config);
59
- config.theme && provide(THEME_KEY, config.theme);
60
- const __returned__ = { config };
78
+ const { defaultColorScheme, forceColorScheme, colorSchemeManager, getRootElement, theme: userTheme } = config;
79
+ const finalTheme = computed(() => {
80
+ if (userTheme) return mergeCckTheme(DEFAULT_THEME, userTheme);
81
+ return DEFAULT_THEME;
82
+ });
83
+ const { colorScheme, setColorScheme, clearColorScheme } = useProviderColorScheme({
84
+ defaultColorScheme,
85
+ forceColorScheme,
86
+ manager: colorSchemeManager,
87
+ getRootElement
88
+ });
89
+ useRespectReduceMotion({
90
+ respectReduceMotion: config.theme?.respectReducedMotion || false,
91
+ getRootElement
92
+ });
93
+ const { theme: _excludedTheme, ...configWithoutTheme } = config;
94
+ provide(CONFIG_KEY, {
95
+ ...configWithoutTheme,
96
+ colorScheme,
97
+ setColorScheme,
98
+ clearColorScheme
99
+ });
100
+ provide(THEME_KEY, finalTheme);
101
+ const __returned__ = {
102
+ config,
103
+ defaultColorScheme,
104
+ forceColorScheme,
105
+ colorSchemeManager,
106
+ getRootElement,
107
+ userTheme,
108
+ finalTheme,
109
+ colorScheme,
110
+ setColorScheme,
111
+ clearColorScheme,
112
+ _excludedTheme,
113
+ configWithoutTheme
114
+ };
61
115
  Object.defineProperty(__returned__, "__isScriptSetup", {
62
116
  enumerable: false,
63
117
  value: true
@@ -68,7 +122,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
68
122
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
69
123
  return renderSlot(_ctx.$slots, "default");
70
124
  }
71
- var config_provider_default = /*#__PURE__*/ export_helper_default(_sfc_main, [["render", _sfc_render], ["__file", "D:\\work\\jackatlas\\cck-ui\\packages\\@cck-ui\\core\\src\\core\\config-provider\\config-provider.vue"]]);
125
+ var config_provider_default = /*#__PURE__*/ export_helper_default(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/cck-ui/cck-ui/packages/@cck-ui/core/src/core/config-provider/config-provider.vue"]]);
72
126
  //#endregion
73
127
  export { config_provider_default as default };
74
128
 
@@ -1 +1 @@
1
- {"version":3,"file":"config-provider.mjs","names":[],"sources":["../../../src/core/config-provider/config-provider.vue","../../../src/core/config-provider/config-provider.vue"],"sourcesContent":["<template>\n <slot />\n</template>\n\n<script setup lang=\"ts\">\nimport { provide } from 'vue'\nimport {\n CONFIG_KEY,\n type ConfigProviderProps,\n THEME_KEY\n} from './config-provider.types'\n\ndefineOptions({\n name: 'CckConfigProvider'\n})\n\nconst config = defineProps<ConfigProviderProps>()\n\nprovide(CONFIG_KEY, config)\nconfig.theme && provide(THEME_KEY, config.theme)\n</script>\n",null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBA,MAAM,SAAS;EAEf,QAAQ,YAAY,MAAM;EAC1B,OAAO,SAAS,QAAQ,WAAW,OAAO,KAAK;;;;;;;;;;QClB7C,WAAQ,KAAA,QAAA,SAAA"}
1
+ {"version":3,"file":"config-provider.mjs","names":[],"sources":["../../../src/core/config-provider/config-provider.vue"],"sourcesContent":["<template>\n <slot />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, provide } from 'vue'\nimport { CONFIG_KEY, type ConfigProviderProps, THEME_KEY } from './config-provider.types'\nimport { useProviderColorScheme } from './use-cck-color-scheme/use-provider-color-scheme'\nimport { localStorageColorSchemeManager } from './color-scheme-managers'\nimport { useRespectReduceMotion } from './use-respect-reduce-motion/use-respect-reduce-motion'\nimport { DEFAULT_THEME } from './default-theme'\nimport { mergeCckTheme } from './merge-cck-theme'\nimport { CContextValue } from './config-provider.context'\nimport './baseline.css'\nimport './global.css'\nimport './default-css-variables.css'\n\ndefineOptions({\n name: 'CckConfigProvider',\n})\n\nconst config = withDefaults(defineProps<ConfigProviderProps>(), {\n withStaticClasses: true,\n withGlobalClasses: true,\n withCssVariables: true,\n classNamesPrefix: 'c',\n defaultColorScheme: 'light',\n cssVariablesSelector: ':root',\n colorSchemeManager: () => localStorageColorSchemeManager(),\n getRootElement: () => document.documentElement,\n})\n\nconst {\n defaultColorScheme,\n forceColorScheme,\n colorSchemeManager,\n getRootElement,\n theme: userTheme,\n} = config\n\nconst finalTheme = computed(() => {\n if (userTheme) {\n return mergeCckTheme(DEFAULT_THEME, userTheme)\n }\n\n return DEFAULT_THEME\n})\n\nconst { colorScheme, setColorScheme, clearColorScheme } = useProviderColorScheme({\n defaultColorScheme,\n forceColorScheme,\n manager: colorSchemeManager,\n getRootElement,\n})\n\nuseRespectReduceMotion({\n respectReduceMotion: config.theme?.respectReducedMotion || false,\n getRootElement,\n})\n\nconst { theme: _excludedTheme, ...configWithoutTheme } = config\nprovide<CContextValue>(CONFIG_KEY, {\n ...configWithoutTheme,\n colorScheme,\n setColorScheme,\n clearColorScheme,\n})\nprovide(THEME_KEY, finalTheme)\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBA,MAAM,SAAS;EAWf,MAAM,EACJ,oBACA,kBACA,oBACA,gBACA,OAAO,cACL;EAEJ,MAAM,aAAa,eAAe;GAChC,IAAI,WACF,OAAO,cAAc,eAAe,SAAS;GAG/C,OAAO;EACT,CAAC;EAED,MAAM,EAAE,aAAa,gBAAgB,qBAAqB,uBAAuB;GAC/E;GACA;GACA,SAAS;GACT;EACF,CAAC;EAED,uBAAuB;GACrB,qBAAqB,OAAO,OAAO,wBAAwB;GAC3D;EACF,CAAC;EAED,MAAM,EAAE,OAAO,gBAAgB,GAAG,uBAAuB;EACzD,QAAuB,YAAY;GACjC,GAAG;GACH;GACA;GACA;EACF,CAAC;EACD,QAAQ,WAAW,UAAU;;;;;;;;;;;;;;;;;;;;;;;QAlE3B,WAAQ,KAAA,QAAA,SAAA"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  //#region packages/@cck-ui/core/src/core/config-provider/config-provider.types.ts
3
3
  const CONFIG_KEY = Symbol("CCK_CONFIG_KEY");
4
- const THEME_KEY = Symbol("THEME_SLATE");
4
+ const THEME_KEY = Symbol("CCK_THEME");
5
5
  //#endregion
6
6
  export { CONFIG_KEY, THEME_KEY };
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"config-provider.types.mjs","names":[],"sources":["../../../src/core/config-provider/config-provider.types.ts"],"sourcesContent":["import { CStylesTransform } from './config-provider.context'\nimport { CColorScheme, CThemeOverride } from './theme.types'\n\nexport const CONFIG_KEY = Symbol('CCK_CONFIG_KEY')\n\nexport const THEME_KEY = Symbol('THEME_SLATE')\n\nexport interface ConfigProviderProps {\n /**\n * @description Theme override object\n */\n theme?: CThemeOverride\n\n /**\n * @description Default color scheme value used when `colorSchemeManager` cannot retrieve value from external storage\n */\n defaultColorScheme?: CColorScheme\n\n /**\n * @description Forces color scheme value, if set, useTheme ignores `colorSchemeManager` and `defaultColorScheme`\n */\n forceColorScheme?: 'light' | 'dark'\n\n /**\n * @description CSS selector to which CSS variales should be added\n */\n cssVariablesSelector?: string\n\n /**\n * @description Determines whether theme CSS variables should be added to given `cssVariablesSelector`\n */\n withCssVariables?: boolean\n\n /**\n * @description Function to resolve root element to set `data-c-color-scheme` attribute\n * @returns root element, must return undefined on server\n */\n getRootElement?: () => HTMLElement | undefined\n\n /**\n * @description A prefix for components static classes (for example `${prefix}-text__root`)\n */\n classNamesPrefix?: string\n\n /**\n * @description Determines whether components should have static classes, for example `c-button__root`\n */\n withStaticClasses?: boolean\n\n /**\n * @description Determines whether global classes should be added with `<style />` tag. Global classes are required for `hiddenFrom`/`visibleFrom` and `lightHidden`/`darkHidden` props to work.\n * @default true\n */\n withGlobalClasses?: boolean\n\n /**\n * An object to transform `styles` and `sx` props into css classes, can be used with CSS-in-JS libraries\n */\n stylesTransform?: CStylesTransform\n\n /**\n * @description Enviroment at which the useTheme is used, `'test'` environment disables all transitions and portals\n */\n env?: 'default' | 'test'\n}\n"],"mappings":";;AAGA,MAAa,aAAa,OAAO,gBAAgB;AAEjD,MAAa,YAAY,OAAO,aAAa"}
1
+ {"version":3,"file":"config-provider.types.mjs","names":[],"sources":["../../../src/core/config-provider/config-provider.types.ts"],"sourcesContent":["import { ComputedRef, InjectionKey } from 'vue'\nimport { CColorSchemeManager } from './color-scheme-managers/types'\nimport { CContextValue, CStylesTransform } from './config-provider.context'\nimport { CColorScheme, CTheme, CThemeOverride } from './theme.types'\n\nexport const CONFIG_KEY: InjectionKey<CContextValue> = Symbol('CCK_CONFIG_KEY')\n\nexport const THEME_KEY: InjectionKey<ComputedRef<CTheme>> = Symbol('CCK_THEME')\n\nexport interface ConfigProviderProps {\n /**\n * @description Theme override object\n */\n theme?: CThemeOverride\n\n /**\n * @description Used to retrieve/set color scheme value in external storage, by default was `window.localStorage`\n */\n colorSchemeManager?: CColorSchemeManager\n\n /**\n * @description Default color scheme value used when `colorSchemeManager` cannot retrieve value from external storage\n */\n defaultColorScheme?: CColorScheme\n\n /**\n * @description Forces color scheme value, if set, useTheme ignores `colorSchemeManager` and `defaultColorScheme`\n */\n forceColorScheme?: 'light' | 'dark'\n\n /**\n * @description CSS selector to which CSS variales should be added\n */\n cssVariablesSelector?: string\n\n /**\n * @description Determines whether theme CSS variables should be added to given `cssVariablesSelector`\n */\n withCssVariables?: boolean\n\n /**\n * @description Function to resolve root element to set `data-c-color-scheme` attribute\n * @returns root element, must return undefined on server\n */\n getRootElement?: () => HTMLElement | undefined\n\n /**\n * @description A prefix for components static classes (for example `${prefix}-text__root`)\n */\n classNamesPrefix?: string\n\n /**\n * @description Determines whether components should have static classes, for example `c-button__root`\n */\n withStaticClasses?: boolean\n\n /**\n * @description Determines whether global classes should be added with `<style />` tag. Global classes are required for `hiddenFrom`/`visibleFrom` and `lightHidden`/`darkHidden` props to work.\n * @default true\n */\n withGlobalClasses?: boolean\n\n /**\n * An object to transform `styles` and `sx` props into css classes, can be used with CSS-in-JS libraries\n */\n stylesTransform?: CStylesTransform\n\n /**\n * @description Enviroment at which the useTheme is used, `'test'` environment disables all transitions and portals\n */\n env?: 'default' | 'test'\n}\n"],"mappings":";;AAKA,MAAa,aAA0C,OAAO,gBAAgB;AAE9E,MAAa,YAA+C,OAAO,WAAW"}
@@ -0,0 +1,8 @@
1
+ //#region packages/@cck-ui/core/src/core/config-provider/create-theme/create-theme.ts
2
+ function createTheme(theme) {
3
+ return theme;
4
+ }
5
+ //#endregion
6
+ export { createTheme };
7
+
8
+ //# sourceMappingURL=create-theme.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-theme.mjs","names":[],"sources":["../../../../src/core/config-provider/create-theme/create-theme.ts"],"sourcesContent":["import { CThemeOverride } from '../theme.types'\n\nexport function createTheme(theme: CThemeOverride): CThemeOverride {\n return theme\n}\n"],"mappings":";AAEA,SAAgB,YAAY,OAAuC;CACjE,OAAO;AACT"}
@@ -0,0 +1 @@
1
+ "use client";
@@ -0,0 +1 @@
1
+ "use client";
@@ -1,7 +1,8 @@
1
1
  "use client";
2
2
  import { withInstall } from "../utils/vue/install.mjs";
3
3
  import { CONFIG_KEY, THEME_KEY } from "./config-provider.types.mjs";
4
- import config_provider_default from "./config-provider.mjs";
4
+ import { useProviderColorScheme } from "./use-cck-color-scheme/use-provider-color-scheme.mjs";
5
+ import { colorsTuple } from "./color-functions/colors-tuple/colors-tuple.mjs";
5
6
  import { toRgba } from "./color-functions/to-rgba/to-rgba.mjs";
6
7
  import { darken } from "./color-functions/darken/darken.mjs";
7
8
  import { alpha, rgba } from "./color-functions/rgba/rgba.mjs";
@@ -11,11 +12,17 @@ import { parseThemeColor } from "./color-functions/parse-theme-color/parse-theme
11
12
  import { getThemeColor } from "./color-functions/get-theme-color/get-theme-color.mjs";
12
13
  import { getGradient } from "./color-functions/get-gradient/get-gradient.mjs";
13
14
  import { defaultVariantColorsResolver } from "./color-functions/default-variant-colors-resolver/default-variant-colors-resolver.mjs";
14
- import { useCckClassNamesPrefix, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckWithStaticClasses, useConfigContext } from "./config-provider.context.mjs";
15
15
  import { DEFAULT_THEME } from "./default-theme.mjs";
16
+ import config_provider_default from "./config-provider.mjs";
17
+ import { isVirtualColor, virtualColor } from "./cck-css-variables/virtual-color/virtual-color.mjs";
18
+ import { getCSSColorVariables } from "./cck-css-variables/get-css-color-variables.mjs";
19
+ import { defaultCssVariablesResolver } from "./cck-css-variables/default-css-variables-resolver.mjs";
20
+ import { useCckClassNamesPrefix, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckTheme, useCckWithStaticClasses, useConfigContext } from "./config-provider.context.mjs";
21
+ import { createTheme } from "./create-theme/create-theme.mjs";
22
+ import { useCckColorScheme } from "./use-cck-color-scheme/use-cck-color-scheme.mjs";
16
23
  //#region packages/@cck-ui/core/src/core/config-provider/index.ts
17
24
  const CckConfigProvider = withInstall(config_provider_default);
18
25
  //#endregion
19
- export { CONFIG_KEY, CckConfigProvider, CckConfigProvider as default, DEFAULT_THEME, THEME_KEY, alpha, darken, defaultVariantColorsResolver, getGradient, getPrimaryShade, getThemeColor, isLightColor, luminance, parseThemeColor, rgba, toRgba, useCckClassNamesPrefix, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckWithStaticClasses, useConfigContext };
26
+ export { CONFIG_KEY, CckConfigProvider, CckConfigProvider as default, DEFAULT_THEME, THEME_KEY, alpha, colorsTuple, createTheme, darken, defaultCssVariablesResolver, defaultVariantColorsResolver, getCSSColorVariables, getGradient, getPrimaryShade, getThemeColor, isLightColor, isVirtualColor, luminance, parseThemeColor, rgba, toRgba, useCckClassNamesPrefix, useCckColorScheme, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckTheme, useCckWithStaticClasses, useConfigContext, useProviderColorScheme, virtualColor };
20
27
 
21
28
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["ConfigProvider"],"sources":["../../../src/core/config-provider/index.ts"],"sourcesContent":["import { SFCWithInstall, withInstall } from '../utils'\nimport ConfigProvider from './config-provider.vue'\n\nexport * from './color-functions'\nexport * from './config-provider.context'\nexport * from './config-provider.types'\nexport * from './default-theme'\nexport * from './theme.types'\n\nexport const CckConfigProvider: SFCWithInstall<typeof ConfigProvider> = withInstall(ConfigProvider)\nexport default CckConfigProvider\n"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAa,oBAA2D,YAAYA,uBAAc"}
1
+ {"version":3,"file":"index.mjs","names":["ConfigProvider"],"sources":["../../../src/core/config-provider/index.ts"],"sourcesContent":["import { SFCWithInstall, withInstall } from '../utils'\nimport ConfigProvider from './config-provider.vue'\n\nexport * from './cck-css-variables'\nexport * from './color-functions'\nexport * from './config-provider.context'\nexport * from './config-provider.types'\nexport * from './create-theme/create-theme'\nexport * from './default-theme'\nexport * from './theme.types'\nexport * from './use-cck-color-scheme'\n\nexport const CckConfigProvider: SFCWithInstall<typeof ConfigProvider> = withInstall(ConfigProvider)\nexport default CckConfigProvider\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAa,oBAA2D,YAAYA,uBAAc"}
@@ -0,0 +1,32 @@
1
+ import { merge } from "es-toolkit";
2
+ //#region packages/@cck-ui/core/src/core/config-provider/merge-cck-theme/merge-cck-theme.ts
3
+ const INVALID_PRIMARY_COLOR_ERROR = "[@cck-ui/core] ConfigProvider: Invalid theme.primaryColor, it accepts only key of theme.colors";
4
+ const INVALID_PRIMARY_SHADE_ERROR = "[@cck-ui/core] ConfigProvider: Invalid theme.primaryShade, it accepts only 0-9 integers or an object { light: 0-9, dark: 0-9 }";
5
+ function isValidPrimaryShade(shade) {
6
+ if (shade < 0 || shade > 9) return false;
7
+ return parseInt(shade.toString(), 10) === shade;
8
+ }
9
+ function validateCckTheme(theme) {
10
+ if (!(theme.primaryColor in theme.colors)) throw new Error(INVALID_PRIMARY_COLOR_ERROR);
11
+ if (typeof theme.primaryShade === "object") {
12
+ if (!isValidPrimaryShade(theme.primaryShade.dark) || !isValidPrimaryShade(theme.primaryShade.light)) throw new Error(INVALID_PRIMARY_SHADE_ERROR);
13
+ }
14
+ if (typeof theme.primaryShade === "number" && !isValidPrimaryShade(theme.primaryShade)) throw new Error(INVALID_PRIMARY_SHADE_ERROR);
15
+ }
16
+ function mergeCckTheme(currentTheme, themeOverride) {
17
+ if (!themeOverride) {
18
+ validateCckTheme(currentTheme);
19
+ return currentTheme;
20
+ }
21
+ const result = merge(currentTheme, themeOverride);
22
+ if (themeOverride.fontFamily && !themeOverride.headings?.fontFamily) result.headings = {
23
+ ...result.headings,
24
+ fontFamily: themeOverride.fontFamily
25
+ };
26
+ validateCckTheme(result);
27
+ return result;
28
+ }
29
+ //#endregion
30
+ export { INVALID_PRIMARY_COLOR_ERROR, INVALID_PRIMARY_SHADE_ERROR, mergeCckTheme, validateCckTheme };
31
+
32
+ //# sourceMappingURL=merge-cck-theme.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-cck-theme.mjs","names":[],"sources":["../../../../src/core/config-provider/merge-cck-theme/merge-cck-theme.ts"],"sourcesContent":["import { merge } from 'es-toolkit'\nimport type { CTheme, CThemeOverride } from '../theme.types'\n\nexport const INVALID_PRIMARY_COLOR_ERROR =\n '[@cck-ui/core] ConfigProvider: Invalid theme.primaryColor, it accepts only key of theme.colors'\n\nexport const INVALID_PRIMARY_SHADE_ERROR =\n '[@cck-ui/core] ConfigProvider: Invalid theme.primaryShade, it accepts only 0-9 integers or an object { light: 0-9, dark: 0-9 }'\n\nfunction isValidPrimaryShade(shade: number) {\n if (shade < 0 || shade > 9) {\n return false\n }\n\n return parseInt(shade.toString(), 10) === shade\n}\n\nexport function validateCckTheme(theme: CTheme): asserts theme is CTheme {\n if (!(theme.primaryColor in theme.colors)) {\n throw new Error(INVALID_PRIMARY_COLOR_ERROR)\n }\n\n if (typeof theme.primaryShade === 'object') {\n if (\n !isValidPrimaryShade(theme.primaryShade.dark) ||\n !isValidPrimaryShade(theme.primaryShade.light)\n ) {\n throw new Error(INVALID_PRIMARY_SHADE_ERROR)\n }\n }\n\n if (typeof theme.primaryShade === 'number' && !isValidPrimaryShade(theme.primaryShade)) {\n throw new Error(INVALID_PRIMARY_SHADE_ERROR)\n }\n}\n\nexport function mergeCckTheme(currentTheme: CTheme, themeOverride?: CThemeOverride) {\n if (!themeOverride) {\n validateCckTheme(currentTheme)\n return currentTheme\n }\n\n const result = merge(currentTheme, themeOverride)\n\n if (themeOverride.fontFamily && !themeOverride.headings?.fontFamily) {\n result.headings = { ...result.headings, fontFamily: themeOverride.fontFamily }\n }\n\n validateCckTheme(result)\n return result\n}\n"],"mappings":";;AAGA,MAAa,8BACX;AAEF,MAAa,8BACX;AAEF,SAAS,oBAAoB,OAAe;CAC1C,IAAI,QAAQ,KAAK,QAAQ,GACvB,OAAO;CAGT,OAAO,SAAS,MAAM,SAAS,GAAG,EAAE,MAAM;AAC5C;AAEA,SAAgB,iBAAiB,OAAwC;CACvE,IAAI,EAAE,MAAM,gBAAgB,MAAM,SAChC,MAAM,IAAI,MAAM,2BAA2B;CAG7C,IAAI,OAAO,MAAM,iBAAiB;MAE9B,CAAC,oBAAoB,MAAM,aAAa,IAAI,KAC5C,CAAC,oBAAoB,MAAM,aAAa,KAAK,GAE7C,MAAM,IAAI,MAAM,2BAA2B;CAAA;CAI/C,IAAI,OAAO,MAAM,iBAAiB,YAAY,CAAC,oBAAoB,MAAM,YAAY,GACnF,MAAM,IAAI,MAAM,2BAA2B;AAE/C;AAEA,SAAgB,cAAc,cAAsB,eAAgC;CAClF,IAAI,CAAC,eAAe;EAClB,iBAAiB,YAAY;EAC7B,OAAO;CACT;CAEA,MAAM,SAAS,MAAM,cAAc,aAAa;CAEhD,IAAI,cAAc,cAAc,CAAC,cAAc,UAAU,YACvD,OAAO,WAAW;EAAE,GAAG,OAAO;EAAU,YAAY,cAAc;CAAW;CAG/E,iBAAiB,MAAM;CACvB,OAAO;AACT"}
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ import { useConfigContext } from "../config-provider.context.mjs";
3
+ import { computed, onMounted, onUnmounted, ref } from "vue";
4
+ //#region packages/@cck-ui/core/src/core/config-provider/use-cck-color-scheme/use-cck-color-scheme.ts
5
+ function getSystemTheme() {
6
+ if (typeof window === "undefined") return "light";
7
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
8
+ }
9
+ function watchSystemTheme(callback) {
10
+ if (typeof window === "undefined") return () => {};
11
+ const mql = window.matchMedia("(prefers-color-scheme: dark)");
12
+ const listener = (e) => callback(e.matches ? "dark" : "light");
13
+ mql.addEventListener("change", listener);
14
+ return () => mql.removeEventListener("change", listener);
15
+ }
16
+ function disableTransitions(nonce) {
17
+ if (typeof document === "undefined") return () => {};
18
+ const style = document.createElement("style");
19
+ style.setAttribute("data-color-scheme-transition", "inline");
20
+ style.innerHTML = "*, *::before, *::after { transition: none !important; }";
21
+ if (nonce) style.setAttribute("nonce", nonce);
22
+ document.head.appendChild(style);
23
+ return () => {
24
+ document.querySelectorAll("[data-color-scheme-transition]").forEach((el) => el.remove());
25
+ };
26
+ }
27
+ function useCckColorScheme({ keepTransition } = {}) {
28
+ const ctx = useConfigContext();
29
+ const colorScheme = ctx.colorScheme;
30
+ const systemTheme = ref("light");
31
+ const computedColorScheme = computed(() => {
32
+ const scheme = colorScheme.value;
33
+ return scheme === "auto" ? systemTheme.value : scheme;
34
+ });
35
+ let clearStyles = null;
36
+ let timeoutId = null;
37
+ function disableTransitionsTemporarily() {
38
+ if (keepTransition) return;
39
+ clearStyles?.();
40
+ const nonce = ctx.getStyleNonce?.();
41
+ clearStyles = disableTransitions(nonce);
42
+ if (timeoutId) window.clearTimeout(timeoutId);
43
+ timeoutId = window.setTimeout(() => {
44
+ clearStyles?.();
45
+ clearStyles = null;
46
+ }, 10);
47
+ }
48
+ const setColorScheme = (value) => {
49
+ ctx.setColorScheme(value);
50
+ disableTransitionsTemporarily();
51
+ };
52
+ const clearColorScheme = () => {
53
+ ctx.clearColorScheme();
54
+ disableTransitionsTemporarily();
55
+ };
56
+ const toggleColorScheme = () => {
57
+ const current = computedColorScheme.value;
58
+ setColorScheme(current === "light" ? "dark" : "light");
59
+ };
60
+ onMounted(() => {
61
+ systemTheme.value = getSystemTheme();
62
+ const unwatch = watchSystemTheme((theme) => {
63
+ systemTheme.value = theme;
64
+ });
65
+ onUnmounted(() => {
66
+ unwatch();
67
+ if (timeoutId) {
68
+ window.clearTimeout(timeoutId);
69
+ clearStyles?.();
70
+ }
71
+ });
72
+ });
73
+ return {
74
+ colorScheme,
75
+ computedColorScheme,
76
+ setColorScheme,
77
+ clearColorScheme,
78
+ toggleColorScheme
79
+ };
80
+ }
81
+ //#endregion
82
+ export { useCckColorScheme };
83
+
84
+ //# sourceMappingURL=use-cck-color-scheme.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-cck-color-scheme.mjs","names":[],"sources":["../../../../src/core/config-provider/use-cck-color-scheme/use-cck-color-scheme.ts"],"sourcesContent":["import { computed, onMounted, onUnmounted, ref } from 'vue'\nimport { useConfigContext } from '../config-provider.context'\nimport { CColorScheme } from '../theme.types'\n\nfunction getSystemTheme(): 'light' | 'dark' {\n if (typeof window === 'undefined') {\n return 'light'\n }\n\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n}\n\nfunction watchSystemTheme(callback: (theme: 'light' | 'dark') => void) {\n if (typeof window === 'undefined') {\n return () => {}\n }\n const mql = window.matchMedia('(prefers-color-scheme: dark)')\n const listener = (e: MediaQueryListEvent) => callback(e.matches ? 'dark' : 'light')\n mql.addEventListener('change', listener)\n return () => mql.removeEventListener('change', listener)\n}\n\nfunction disableTransitions(nonce?: string): () => void {\n if (typeof document === 'undefined') {\n return () => {}\n }\n\n const style = document.createElement('style')\n style.setAttribute('data-color-scheme-transition', 'inline')\n style.innerHTML = '*, *::before, *::after { transition: none !important; }'\n if (nonce) {\n style.setAttribute('nonce', nonce)\n }\n document.head.appendChild(style)\n return () => {\n document.querySelectorAll('[data-color-scheme-transition]').forEach((el) => el.remove())\n }\n}\n\nexport function useCckColorScheme({ keepTransition }: { keepTransition?: boolean } = {}) {\n const ctx = useConfigContext()\n\n const colorScheme = ctx.colorScheme\n\n const systemTheme = ref<'light' | 'dark'>('light')\n\n const computedColorScheme = computed<'light' | 'dark'>(() => {\n const scheme = colorScheme.value\n return scheme === 'auto' ? systemTheme.value : scheme\n })\n\n let clearStyles: (() => void) | null = null\n let timeoutId: number | null = null\n\n function disableTransitionsTemporarily() {\n if (keepTransition) {\n return\n }\n clearStyles?.()\n const nonce = ctx.getStyleNonce?.()\n clearStyles = disableTransitions(nonce)\n if (timeoutId) {\n window.clearTimeout(timeoutId)\n }\n timeoutId = window.setTimeout(() => {\n clearStyles?.()\n clearStyles = null\n }, 10)\n }\n\n const setColorScheme = (value: CColorScheme) => {\n ctx.setColorScheme(value)\n disableTransitionsTemporarily()\n }\n\n const clearColorScheme = () => {\n ctx.clearColorScheme()\n disableTransitionsTemporarily()\n }\n\n const toggleColorScheme = () => {\n const current = computedColorScheme.value\n setColorScheme(current === 'light' ? 'dark' : 'light')\n }\n\n onMounted(() => {\n systemTheme.value = getSystemTheme()\n const unwatch = watchSystemTheme((theme) => {\n systemTheme.value = theme\n })\n\n onUnmounted(() => {\n unwatch()\n if (timeoutId) {\n window.clearTimeout(timeoutId)\n clearStyles?.()\n }\n })\n })\n\n return {\n colorScheme,\n computedColorScheme,\n setColorScheme,\n clearColorScheme,\n toggleColorScheme,\n }\n}\n"],"mappings":";;;;AAIA,SAAS,iBAAmC;CAC1C,IAAI,OAAO,WAAW,aACpB,OAAO;CAGT,OAAO,OAAO,WAAW,8BAA8B,CAAC,CAAC,UAAU,SAAS;AAC9E;AAEA,SAAS,iBAAiB,UAA6C;CACrE,IAAI,OAAO,WAAW,aACpB,aAAa,CAAC;CAEhB,MAAM,MAAM,OAAO,WAAW,8BAA8B;CAC5D,MAAM,YAAY,MAA2B,SAAS,EAAE,UAAU,SAAS,OAAO;CAClF,IAAI,iBAAiB,UAAU,QAAQ;CACvC,aAAa,IAAI,oBAAoB,UAAU,QAAQ;AACzD;AAEA,SAAS,mBAAmB,OAA4B;CACtD,IAAI,OAAO,aAAa,aACtB,aAAa,CAAC;CAGhB,MAAM,QAAQ,SAAS,cAAc,OAAO;CAC5C,MAAM,aAAa,gCAAgC,QAAQ;CAC3D,MAAM,YAAY;CAClB,IAAI,OACF,MAAM,aAAa,SAAS,KAAK;CAEnC,SAAS,KAAK,YAAY,KAAK;CAC/B,aAAa;EACX,SAAS,iBAAiB,gCAAgC,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,CAAC;CACzF;AACF;AAEA,SAAgB,kBAAkB,EAAE,mBAAiD,CAAC,GAAG;CACvF,MAAM,MAAM,iBAAiB;CAE7B,MAAM,cAAc,IAAI;CAExB,MAAM,cAAc,IAAsB,OAAO;CAEjD,MAAM,sBAAsB,eAAiC;EAC3D,MAAM,SAAS,YAAY;EAC3B,OAAO,WAAW,SAAS,YAAY,QAAQ;CACjD,CAAC;CAED,IAAI,cAAmC;CACvC,IAAI,YAA2B;CAE/B,SAAS,gCAAgC;EACvC,IAAI,gBACF;EAEF,cAAc;EACd,MAAM,QAAQ,IAAI,gBAAgB;EAClC,cAAc,mBAAmB,KAAK;EACtC,IAAI,WACF,OAAO,aAAa,SAAS;EAE/B,YAAY,OAAO,iBAAiB;GAClC,cAAc;GACd,cAAc;EAChB,GAAG,EAAE;CACP;CAEA,MAAM,kBAAkB,UAAwB;EAC9C,IAAI,eAAe,KAAK;EACxB,8BAA8B;CAChC;CAEA,MAAM,yBAAyB;EAC7B,IAAI,iBAAiB;EACrB,8BAA8B;CAChC;CAEA,MAAM,0BAA0B;EAC9B,MAAM,UAAU,oBAAoB;EACpC,eAAe,YAAY,UAAU,SAAS,OAAO;CACvD;CAEA,gBAAgB;EACd,YAAY,QAAQ,eAAe;EACnC,MAAM,UAAU,kBAAkB,UAAU;GAC1C,YAAY,QAAQ;EACtB,CAAC;EAED,kBAAkB;GAChB,QAAQ;GACR,IAAI,WAAW;IACb,OAAO,aAAa,SAAS;IAC7B,cAAc;GAChB;EACF,CAAC;CACH,CAAC;CAED,OAAO;EACL;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { computed, onMounted, onUnmounted, ref } from "vue";
3
+ import { useIsomorphicEffect } from "@cck-ui/hooks";
4
+ //#region packages/@cck-ui/core/src/core/config-provider/use-cck-color-scheme/use-provider-color-scheme.ts
5
+ function setColorSchemeAttribute(colorScheme, getRootElement) {
6
+ const hasDarkColorScheme = typeof window !== "undefined" && "matchMedia" in window && window.matchMedia("(prefers-color-scheme: dark)")?.matches;
7
+ const computedColorScheme = colorScheme !== "auto" ? colorScheme : hasDarkColorScheme ? "dark" : "light";
8
+ getRootElement()?.setAttribute("data-c-color-scheme", computedColorScheme);
9
+ }
10
+ function useProviderColorScheme({ manager, defaultColorScheme, getRootElement, forceColorScheme }) {
11
+ const value = ref(manager.get(defaultColorScheme));
12
+ const colorScheme = computed(() => forceColorScheme || value.value);
13
+ const applyColorScheme = (scheme) => {
14
+ setColorSchemeAttribute(scheme, getRootElement);
15
+ };
16
+ const setColorScheme = (scheme) => {
17
+ if (!forceColorScheme) {
18
+ applyColorScheme(scheme);
19
+ value.value = scheme;
20
+ manager.set(scheme);
21
+ }
22
+ };
23
+ const clearColorScheme = () => {
24
+ value.value = defaultColorScheme;
25
+ applyColorScheme(defaultColorScheme);
26
+ manager.clear();
27
+ };
28
+ let unsubscribeManager = null;
29
+ let mediaQuery = null;
30
+ const handleMediaChange = (event) => {
31
+ if (value.value === "auto") applyColorScheme(event.matches ? "dark" : "light");
32
+ };
33
+ onMounted(() => {
34
+ manager.subscribe((scheme) => {
35
+ if (!forceColorScheme) value.value = scheme;
36
+ });
37
+ unsubscribeManager = manager.unsubscribe.bind(manager);
38
+ if (typeof window !== "undefined" && "matchMedia" in window) {
39
+ mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
40
+ mediaQuery.addEventListener("change", handleMediaChange);
41
+ }
42
+ });
43
+ useIsomorphicEffect(() => {
44
+ applyColorScheme(colorScheme.value);
45
+ }, [colorScheme]);
46
+ onUnmounted(() => {
47
+ if (unsubscribeManager) unsubscribeManager();
48
+ if (mediaQuery) mediaQuery.removeEventListener("change", handleMediaChange);
49
+ });
50
+ return {
51
+ colorScheme,
52
+ setColorScheme,
53
+ clearColorScheme
54
+ };
55
+ }
56
+ //#endregion
57
+ export { useProviderColorScheme };
58
+
59
+ //# sourceMappingURL=use-provider-color-scheme.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-provider-color-scheme.mjs","names":[],"sources":["../../../../src/core/config-provider/use-cck-color-scheme/use-provider-color-scheme.ts"],"sourcesContent":["import { computed, type ComputedRef, onMounted, onUnmounted, ref } from 'vue'\nimport { useIsomorphicEffect } from '@cck-ui/hooks'\nimport type { CColorSchemeManager } from '../color-scheme-managers'\nimport type { CColorScheme } from '../theme.types'\n\nfunction setColorSchemeAttribute(\n colorScheme: CColorScheme,\n getRootElement: () => HTMLElement | undefined\n) {\n const hasDarkColorScheme =\n typeof window !== 'undefined' &&\n 'matchMedia' in window &&\n window.matchMedia('(prefers-color-scheme: dark)')?.matches\n\n const computedColorScheme =\n colorScheme !== 'auto' ? colorScheme : hasDarkColorScheme ? 'dark' : 'light'\n getRootElement()?.setAttribute('data-c-color-scheme', computedColorScheme)\n}\n\ninterface UseProviderColorSchemeOptions {\n manager: CColorSchemeManager\n defaultColorScheme: CColorScheme\n forceColorScheme: 'light' | 'dark' | undefined\n getRootElement: () => HTMLElement | undefined\n}\n\nexport function useProviderColorScheme({\n manager,\n defaultColorScheme,\n getRootElement,\n forceColorScheme,\n}: UseProviderColorSchemeOptions) {\n const value = ref<CColorScheme>(manager.get(defaultColorScheme))\n const colorScheme = computed(() => forceColorScheme || value.value) as ComputedRef<CColorScheme>\n\n const applyColorScheme = (scheme: CColorScheme) => {\n setColorSchemeAttribute(scheme, getRootElement)\n }\n\n const setColorScheme = (scheme: CColorScheme) => {\n if (!forceColorScheme) {\n applyColorScheme(scheme)\n value.value = scheme\n manager.set(scheme)\n }\n }\n\n const clearColorScheme = () => {\n value.value = defaultColorScheme\n applyColorScheme(defaultColorScheme)\n manager.clear()\n }\n\n let unsubscribeManager: (() => void) | null = null\n let mediaQuery: MediaQueryList | null = null\n\n const handleMediaChange = (event: MediaQueryListEvent) => {\n if (value.value === 'auto') {\n applyColorScheme(event.matches ? 'dark' : 'light')\n }\n }\n\n onMounted(() => {\n manager.subscribe((scheme) => {\n if (!forceColorScheme) {\n value.value = scheme\n }\n })\n unsubscribeManager = manager.unsubscribe.bind(manager)\n\n if (typeof window !== 'undefined' && 'matchMedia' in window) {\n mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')\n mediaQuery.addEventListener('change', handleMediaChange)\n }\n })\n\n useIsomorphicEffect(() => {\n applyColorScheme(colorScheme.value)\n }, [colorScheme])\n\n onUnmounted(() => {\n if (unsubscribeManager) {\n unsubscribeManager()\n }\n if (mediaQuery) {\n mediaQuery.removeEventListener('change', handleMediaChange)\n }\n })\n\n return { colorScheme, setColorScheme, clearColorScheme }\n}\n"],"mappings":";;;;AAKA,SAAS,wBACP,aACA,gBACA;CACA,MAAM,qBACJ,OAAO,WAAW,eAClB,gBAAgB,UAChB,OAAO,WAAW,8BAA8B,CAAC,EAAE;CAErD,MAAM,sBACJ,gBAAgB,SAAS,cAAc,qBAAqB,SAAS;CACvE,eAAe,CAAC,EAAE,aAAa,uBAAuB,mBAAmB;AAC3E;AASA,SAAgB,uBAAuB,EACrC,SACA,oBACA,gBACA,oBACgC;CAChC,MAAM,QAAQ,IAAkB,QAAQ,IAAI,kBAAkB,CAAC;CAC/D,MAAM,cAAc,eAAe,oBAAoB,MAAM,KAAK;CAElE,MAAM,oBAAoB,WAAyB;EACjD,wBAAwB,QAAQ,cAAc;CAChD;CAEA,MAAM,kBAAkB,WAAyB;EAC/C,IAAI,CAAC,kBAAkB;GACrB,iBAAiB,MAAM;GACvB,MAAM,QAAQ;GACd,QAAQ,IAAI,MAAM;EACpB;CACF;CAEA,MAAM,yBAAyB;EAC7B,MAAM,QAAQ;EACd,iBAAiB,kBAAkB;EACnC,QAAQ,MAAM;CAChB;CAEA,IAAI,qBAA0C;CAC9C,IAAI,aAAoC;CAExC,MAAM,qBAAqB,UAA+B;EACxD,IAAI,MAAM,UAAU,QAClB,iBAAiB,MAAM,UAAU,SAAS,OAAO;CAErD;CAEA,gBAAgB;EACd,QAAQ,WAAW,WAAW;GAC5B,IAAI,CAAC,kBACH,MAAM,QAAQ;EAElB,CAAC;EACD,qBAAqB,QAAQ,YAAY,KAAK,OAAO;EAErD,IAAI,OAAO,WAAW,eAAe,gBAAgB,QAAQ;GAC3D,aAAa,OAAO,WAAW,8BAA8B;GAC7D,WAAW,iBAAiB,UAAU,iBAAiB;EACzD;CACF,CAAC;CAED,0BAA0B;EACxB,iBAAiB,YAAY,KAAK;CACpC,GAAG,CAAC,WAAW,CAAC;CAEhB,kBAAkB;EAChB,IAAI,oBACF,mBAAmB;EAErB,IAAI,YACF,WAAW,oBAAoB,UAAU,iBAAiB;CAE9D,CAAC;CAED,OAAO;EAAE;EAAa;EAAgB;CAAiB;AACzD"}
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { toRef } from "vue";
3
+ import { useIsomorphicEffect } from "@cck-ui/hooks";
4
+ //#region packages/@cck-ui/core/src/core/config-provider/use-respect-reduce-motion/use-respect-reduce-motion.ts
5
+ function useRespectReduceMotion({ respectReduceMotion, getRootElement }) {
6
+ const respectRef = toRef(respectReduceMotion);
7
+ useIsomorphicEffect(() => {
8
+ if (respectRef.value) getRootElement()?.setAttribute("data-respect-reduced-motion", "true");
9
+ }, [respectRef]);
10
+ }
11
+ //#endregion
12
+ export { useRespectReduceMotion };
13
+
14
+ //# sourceMappingURL=use-respect-reduce-motion.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-respect-reduce-motion.mjs","names":[],"sources":["../../../../src/core/config-provider/use-respect-reduce-motion/use-respect-reduce-motion.ts"],"sourcesContent":["import { MaybeRef, toRef } from 'vue'\nimport { useIsomorphicEffect } from '@cck-ui/hooks'\n\ninterface UseRespectReduceMotionOptions {\n respectReduceMotion: MaybeRef<boolean>\n getRootElement: () => HTMLElement | undefined\n}\n\nexport function useRespectReduceMotion({\n respectReduceMotion,\n getRootElement,\n}: UseRespectReduceMotionOptions) {\n const respectRef = toRef(respectReduceMotion)\n\n useIsomorphicEffect(() => {\n if (respectRef.value) {\n getRootElement()?.setAttribute('data-respect-reduced-motion', 'true')\n }\n }, [respectRef])\n}\n"],"mappings":";;;;AAQA,SAAgB,uBAAuB,EACrC,qBACA,kBACgC;CAChC,MAAM,aAAa,MAAM,mBAAmB;CAE5C,0BAA0B;EACxB,IAAI,WAAW,OACb,eAAe,CAAC,EAAE,aAAa,+BAA+B,MAAM;CAExE,GAAG,CAAC,UAAU,CAAC;AACjB"}
@@ -1,7 +1,5 @@
1
1
  "use client";
2
- import { THEME_KEY } from "../../config-provider/config-provider.types.mjs";
3
- import { useCckClassNamesPrefix, useCckIsHeadless, useCckWithStaticClasses } from "../../config-provider/config-provider.context.mjs";
4
- import { DEFAULT_THEME } from "../../config-provider/default-theme.mjs";
2
+ import { useCckClassNamesPrefix, useCckIsHeadless, useCckTheme, useCckWithStaticClasses } from "../../config-provider/config-provider.context.mjs";
5
3
  import { resolveClassNames } from "./get-class-name/resolve-class-names/resolve-class-names.mjs";
6
4
  import { resolveStyles } from "./get-style/resolve-styles/resolve-styles.mjs";
7
5
  import { useStylesTransform } from "./use-transformed-styles.mjs";
@@ -9,10 +7,9 @@ import { mergeVars } from "./get-style/resolve-vars/merge-vars.mjs";
9
7
  import { resolveStyle } from "./get-style/resolve-style/resolve-style.mjs";
10
8
  import { getClassName } from "./get-class-name/get-class-name.mjs";
11
9
  import { getStyle } from "./get-style/get-style.mjs";
12
- import { inject } from "vue";
13
10
  //#region packages/@cck-ui/core/src/core/styles-api/use-styles/use-styles.ts
14
11
  function useStyles({ name, classes, props, stylesCtx, className, style, rootSelector = "root", unstyled, classNames, styles, vars, varsResolver, attributes }) {
15
- const theme = inject(THEME_KEY, DEFAULT_THEME);
12
+ const theme = useCckTheme().value;
16
13
  const classNamesPrefix = useCckClassNamesPrefix();
17
14
  const withStaticClasses = useCckWithStaticClasses();
18
15
  const headless = useCckIsHeadless();
@@ -1 +1 @@
1
- {"version":3,"file":"use-styles.mjs","names":[],"sources":["../../../../src/core/styles-api/use-styles/use-styles.ts"],"sourcesContent":["import { inject } from 'vue'\nimport {\n Attributes,\n ClassNames,\n ClassNamesArray,\n GetStylesApiOptions,\n Styles,\n} from '../styles-api.types'\nimport { PartialVarsResolver, VarsResolver } from '../create-vars-resolver/create-vars-resolver'\nimport { useStylesTransform } from './use-transformed-styles'\nimport { resolveClassNames } from './get-class-name/resolve-class-names/resolve-class-names'\nimport { resolveStyles } from './get-style/resolve-styles/resolve-styles'\nimport { mergeVars } from './get-style/resolve-vars/merge-vars'\nimport { resolveStyle } from './get-style/resolve-style/resolve-style'\nimport { getClassName } from './get-class-name/get-class-name'\nimport { Properties } from 'csstype'\nimport { getStyle } from './get-style/get-style'\nimport { FactoryPayload } from '../../factory'\nimport { CStyleProp } from '../../box'\nimport {\n DEFAULT_THEME,\n THEME_KEY,\n useCckClassNamesPrefix,\n useCckIsHeadless,\n useCckWithStaticClasses,\n} from '../../config-provider'\n\nexport interface UseStylesInput<Payload extends FactoryPayload> {\n name: string | (string | undefined)[]\n classes: Payload['stylesNames'] extends string ? Record<string, string> : never\n props: Payload['props']\n stylesCtx?: Payload['ctx']\n className?: string | undefined\n style?: CStyleProp\n rootSelector?: Payload['stylesNames']\n unstyled?: boolean\n classNames?: ClassNames<Payload> | ClassNamesArray<Payload>\n styles?: Styles<Payload>\n vars?: PartialVarsResolver<Payload>\n varsResolver?: VarsResolver<Payload>\n attributes?: Attributes<Payload>\n}\n\nexport type GetStylesApi<Payload extends FactoryPayload> = (\n selector: NonNullable<Payload['stylesNames']>,\n options?: GetStylesApiOptions\n) => {\n className: string\n style: Properties\n}\n\nexport function useStyles<Payload extends FactoryPayload>({\n name,\n classes,\n props,\n stylesCtx,\n className,\n style,\n rootSelector = 'root' as NonNullable<Payload['stylesNames']>,\n unstyled,\n classNames,\n styles,\n vars,\n varsResolver,\n attributes,\n}: UseStylesInput<Payload>): GetStylesApi<Payload> {\n const theme = inject(THEME_KEY, DEFAULT_THEME)\n const classNamesPrefix = useCckClassNamesPrefix()\n const withStaticClasses = useCckWithStaticClasses()\n const headless = useCckIsHeadless()\n\n const themeNames = Array.isArray(name) ? name : [name]\n const themeName = themeNames.filter((n) => n) as string[]\n const { withStylesTransform, getTransformedStyles } = useStylesTransform({\n props,\n stylesCtx,\n themeName,\n theme,\n })\n\n const resolvedClassNames = resolveClassNames({\n theme,\n classNames,\n props,\n stylesCtx,\n })\n const resolvedThemeClassNames = themeName.map((n) =>\n resolveClassNames({\n theme,\n classNames: theme.components?.[n]?.classNames,\n props,\n stylesCtx,\n })\n )\n\n const resolvedComponentStyles = withStylesTransform\n ? {}\n : resolveStyles({ theme, styles, props, stylesCtx })\n\n const resolvedThemeStyles: Record<string, any> = {}\n\n if (!withStylesTransform) {\n for (const n of themeName) {\n const resolved = resolveStyles({\n theme,\n styles: theme.components?.[n]?.styles,\n props,\n stylesCtx,\n })\n for (const key of Object.keys(resolved)) {\n resolvedThemeStyles[key] = {\n ...resolvedThemeStyles[key],\n ...resolved[key],\n }\n }\n }\n }\n\n const resolvedVars = mergeVars([\n headless ? {} : varsResolver?.(theme, props, stylesCtx),\n ...themeName.map((n) => theme.components?.[n]?.vars?.(theme, props, stylesCtx)),\n vars?.(theme, props, stylesCtx),\n ])\n\n const resolvedRootStyle = resolveStyle({ style, theme })\n\n return (selector, options) => ({\n ...attributes?.[selector],\n\n className: getClassName({\n theme,\n options,\n themeName,\n selector,\n classNamesPrefix,\n resolvedClassNames,\n resolvedThemeClassNames,\n classes,\n unstyled,\n className,\n rootSelector,\n props,\n stylesCtx,\n withStaticClasses,\n headless,\n transformedStyles: getTransformedStyles([options?.styles, styles]),\n }),\n\n style: getStyle({\n theme,\n selector,\n options,\n props,\n stylesCtx,\n rootSelector,\n withStylesTransform,\n resolvedStyles: resolvedComponentStyles,\n resolvedThemeStyles,\n resolvedVars,\n resolvedRootStyle,\n }),\n })\n}\n"],"mappings":";;;;;;;;;;;;;AAmDA,SAAgB,UAA0C,EACxD,MACA,SACA,OACA,WACA,WACA,OACA,eAAe,QACf,UACA,YACA,QACA,MACA,cACA,cACiD;CACjD,MAAM,QAAQ,OAAO,WAAW,aAAa;CAC7C,MAAM,mBAAmB,uBAAuB;CAChD,MAAM,oBAAoB,wBAAwB;CAClD,MAAM,WAAW,iBAAiB;CAGlC,MAAM,aADa,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,EAAA,CACxB,QAAQ,MAAM,CAAC;CAC5C,MAAM,EAAE,qBAAqB,yBAAyB,mBAAmB;EACvE;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,qBAAqB,kBAAkB;EAC3C;EACA;EACA;EACA;CACF,CAAC;CACD,MAAM,0BAA0B,UAAU,KAAK,MAC7C,kBAAkB;EAChB;EACA,YAAY,MAAM,aAAa,EAAE,EAAE;EACnC;EACA;CACF,CAAC,CACH;CAEA,MAAM,0BAA0B,sBAC5B,CAAC,IACD,cAAc;EAAE;EAAO;EAAQ;EAAO;CAAU,CAAC;CAErD,MAAM,sBAA2C,CAAC;CAElD,IAAI,CAAC,qBACH,KAAK,MAAM,KAAK,WAAW;EACzB,MAAM,WAAW,cAAc;GAC7B;GACA,QAAQ,MAAM,aAAa,EAAE,EAAE;GAC/B;GACA;EACF,CAAC;EACD,KAAK,MAAM,OAAO,OAAO,KAAK,QAAQ,GACpC,oBAAoB,OAAO;GACzB,GAAG,oBAAoB;GACvB,GAAG,SAAS;EACd;CAEJ;CAGF,MAAM,eAAe,UAAU;EAC7B,WAAW,CAAC,IAAI,eAAe,OAAO,OAAO,SAAS;EACtD,GAAG,UAAU,KAAK,MAAM,MAAM,aAAa,EAAE,EAAE,OAAO,OAAO,OAAO,SAAS,CAAC;EAC9E,OAAO,OAAO,OAAO,SAAS;CAChC,CAAC;CAED,MAAM,oBAAoB,aAAa;EAAE;EAAO;CAAM,CAAC;CAEvD,QAAQ,UAAU,aAAa;EAC7B,GAAG,aAAa;EAEhB,WAAW,aAAa;GACtB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,mBAAmB,qBAAqB,CAAC,SAAS,QAAQ,MAAM,CAAC;EACnE,CAAC;EAED,OAAO,SAAS;GACd;GACA;GACA;GACA;GACA;GACA;GACA;GACA,gBAAgB;GAChB;GACA;GACA;EACF,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"use-styles.mjs","names":[],"sources":["../../../../src/core/styles-api/use-styles/use-styles.ts"],"sourcesContent":["import {\n Attributes,\n ClassNames,\n ClassNamesArray,\n GetStylesApiOptions,\n Styles,\n} from '../styles-api.types'\nimport { PartialVarsResolver, VarsResolver } from '../create-vars-resolver/create-vars-resolver'\nimport { useStylesTransform } from './use-transformed-styles'\nimport { resolveClassNames } from './get-class-name/resolve-class-names/resolve-class-names'\nimport { resolveStyles } from './get-style/resolve-styles/resolve-styles'\nimport { mergeVars } from './get-style/resolve-vars/merge-vars'\nimport { resolveStyle } from './get-style/resolve-style/resolve-style'\nimport { getClassName } from './get-class-name/get-class-name'\nimport { Properties } from 'csstype'\nimport { getStyle } from './get-style/get-style'\nimport { FactoryPayload } from '../../factory'\nimport { CStyleProp } from '../../box'\nimport {\n useCckClassNamesPrefix,\n useCckIsHeadless,\n useCckTheme,\n useCckWithStaticClasses,\n} from '../../config-provider'\n\nexport interface UseStylesInput<Payload extends FactoryPayload> {\n name: string | (string | undefined)[]\n classes: Payload['stylesNames'] extends string ? Record<string, string> : never\n props: Payload['props']\n stylesCtx?: Payload['ctx']\n className?: string | undefined\n style?: CStyleProp\n rootSelector?: Payload['stylesNames']\n unstyled?: boolean\n classNames?: ClassNames<Payload> | ClassNamesArray<Payload>\n styles?: Styles<Payload>\n vars?: PartialVarsResolver<Payload>\n varsResolver?: VarsResolver<Payload>\n attributes?: Attributes<Payload>\n}\n\nexport type GetStylesApi<Payload extends FactoryPayload> = (\n selector: NonNullable<Payload['stylesNames']>,\n options?: GetStylesApiOptions\n) => {\n className: string\n style: Properties\n}\n\nexport function useStyles<Payload extends FactoryPayload>({\n name,\n classes,\n props,\n stylesCtx,\n className,\n style,\n rootSelector = 'root' as NonNullable<Payload['stylesNames']>,\n unstyled,\n classNames,\n styles,\n vars,\n varsResolver,\n attributes,\n}: UseStylesInput<Payload>): GetStylesApi<Payload> {\n const _theme = useCckTheme()\n const theme = _theme.value\n const classNamesPrefix = useCckClassNamesPrefix()\n const withStaticClasses = useCckWithStaticClasses()\n const headless = useCckIsHeadless()\n\n const themeNames = Array.isArray(name) ? name : [name]\n const themeName = themeNames.filter((n) => n) as string[]\n const { withStylesTransform, getTransformedStyles } = useStylesTransform({\n props,\n stylesCtx,\n themeName,\n theme,\n })\n\n const resolvedClassNames = resolveClassNames({\n theme,\n classNames,\n props,\n stylesCtx,\n })\n const resolvedThemeClassNames = themeName.map((n) =>\n resolveClassNames({\n theme,\n classNames: theme.components?.[n]?.classNames,\n props,\n stylesCtx,\n })\n )\n\n const resolvedComponentStyles = withStylesTransform\n ? {}\n : resolveStyles({ theme, styles, props, stylesCtx })\n\n const resolvedThemeStyles: Record<string, any> = {}\n\n if (!withStylesTransform) {\n for (const n of themeName) {\n const resolved = resolveStyles({\n theme,\n styles: theme.components?.[n]?.styles,\n props,\n stylesCtx,\n })\n for (const key of Object.keys(resolved)) {\n resolvedThemeStyles[key] = {\n ...resolvedThemeStyles[key],\n ...resolved[key],\n }\n }\n }\n }\n\n const resolvedVars = mergeVars([\n headless ? {} : varsResolver?.(theme, props, stylesCtx),\n ...themeName.map((n) => theme.components?.[n]?.vars?.(theme, props, stylesCtx)),\n vars?.(theme, props, stylesCtx),\n ])\n\n const resolvedRootStyle = resolveStyle({ style, theme })\n\n return (selector, options) => ({\n ...attributes?.[selector],\n\n className: getClassName({\n theme,\n options,\n themeName,\n selector,\n classNamesPrefix,\n resolvedClassNames,\n resolvedThemeClassNames,\n classes,\n unstyled,\n className,\n rootSelector,\n props,\n stylesCtx,\n withStaticClasses,\n headless,\n transformedStyles: getTransformedStyles([options?.styles, styles]),\n }),\n\n style: getStyle({\n theme,\n selector,\n options,\n props,\n stylesCtx,\n rootSelector,\n withStylesTransform,\n resolvedStyles: resolvedComponentStyles,\n resolvedThemeStyles,\n resolvedVars,\n resolvedRootStyle,\n }),\n })\n}\n"],"mappings":";;;;;;;;;;AAiDA,SAAgB,UAA0C,EACxD,MACA,SACA,OACA,WACA,WACA,OACA,eAAe,QACf,UACA,YACA,QACA,MACA,cACA,cACiD;CAEjD,MAAM,QADS,YACI,CAAC,CAAC;CACrB,MAAM,mBAAmB,uBAAuB;CAChD,MAAM,oBAAoB,wBAAwB;CAClD,MAAM,WAAW,iBAAiB;CAGlC,MAAM,aADa,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI,EAAA,CACxB,QAAQ,MAAM,CAAC;CAC5C,MAAM,EAAE,qBAAqB,yBAAyB,mBAAmB;EACvE;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,qBAAqB,kBAAkB;EAC3C;EACA;EACA;EACA;CACF,CAAC;CACD,MAAM,0BAA0B,UAAU,KAAK,MAC7C,kBAAkB;EAChB;EACA,YAAY,MAAM,aAAa,EAAE,EAAE;EACnC;EACA;CACF,CAAC,CACH;CAEA,MAAM,0BAA0B,sBAC5B,CAAC,IACD,cAAc;EAAE;EAAO;EAAQ;EAAO;CAAU,CAAC;CAErD,MAAM,sBAA2C,CAAC;CAElD,IAAI,CAAC,qBACH,KAAK,MAAM,KAAK,WAAW;EACzB,MAAM,WAAW,cAAc;GAC7B;GACA,QAAQ,MAAM,aAAa,EAAE,EAAE;GAC/B;GACA;EACF,CAAC;EACD,KAAK,MAAM,OAAO,OAAO,KAAK,QAAQ,GACpC,oBAAoB,OAAO;GACzB,GAAG,oBAAoB;GACvB,GAAG,SAAS;EACd;CAEJ;CAGF,MAAM,eAAe,UAAU;EAC7B,WAAW,CAAC,IAAI,eAAe,OAAO,OAAO,SAAS;EACtD,GAAG,UAAU,KAAK,MAAM,MAAM,aAAa,EAAE,EAAE,OAAO,OAAO,OAAO,SAAS,CAAC;EAC9E,OAAO,OAAO,OAAO,SAAS;CAChC,CAAC;CAED,MAAM,oBAAoB,aAAa;EAAE;EAAO;CAAM,CAAC;CAEvD,QAAQ,UAAU,aAAa;EAC7B,GAAG,aAAa;EAEhB,WAAW,aAAa;GACtB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,mBAAmB,qBAAqB,CAAC,SAAS,QAAQ,MAAM,CAAC;EACnE,CAAC;EAED,OAAO,SAAS;GACd;GACA;GACA;GACA;GACA;GACA;GACA;GACA,gBAAgB;GAChB;GACA;GACA;EACF,CAAC;CACH;AACF"}
package/esm/index.mjs CHANGED
@@ -15,6 +15,8 @@ import { clearShadeCache, generateColorShades, setColorAlpha } from "./core/util
15
15
  import { isNumber, isString, isStringNumber, isUndefined } from "./core/utils/types/index.mjs";
16
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
+ import { useProviderColorScheme } from "./core/config-provider/use-cck-color-scheme/use-provider-color-scheme.mjs";
19
+ import { colorsTuple } from "./core/config-provider/color-functions/colors-tuple/colors-tuple.mjs";
18
20
  import { toRgba } from "./core/config-provider/color-functions/to-rgba/to-rgba.mjs";
19
21
  import { darken } from "./core/config-provider/color-functions/darken/darken.mjs";
20
22
  import { alpha, rgba } from "./core/config-provider/color-functions/rgba/rgba.mjs";
@@ -24,8 +26,13 @@ import { parseThemeColor } from "./core/config-provider/color-functions/parse-th
24
26
  import { getThemeColor } from "./core/config-provider/color-functions/get-theme-color/get-theme-color.mjs";
25
27
  import { getGradient } from "./core/config-provider/color-functions/get-gradient/get-gradient.mjs";
26
28
  import { defaultVariantColorsResolver } from "./core/config-provider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.mjs";
27
- import { useCckClassNamesPrefix, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckWithStaticClasses, useConfigContext } from "./core/config-provider/config-provider.context.mjs";
28
29
  import { DEFAULT_THEME } from "./core/config-provider/default-theme.mjs";
30
+ import { isVirtualColor, virtualColor } from "./core/config-provider/cck-css-variables/virtual-color/virtual-color.mjs";
31
+ import { getCSSColorVariables } from "./core/config-provider/cck-css-variables/get-css-color-variables.mjs";
32
+ 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
+ import { createTheme } from "./core/config-provider/create-theme/create-theme.mjs";
35
+ import { useCckColorScheme } from "./core/config-provider/use-cck-color-scheme/use-cck-color-scheme.mjs";
29
36
  import { CckConfigProvider } from "./core/config-provider/index.mjs";
30
37
  import { extractStyleProps } from "./core/box/style-props/extract-style-props/extract-style-props.mjs";
31
38
  import { parseStyleProps } from "./core/box/style-props/parse-style-props/parse-style-props.mjs";
@@ -41,10 +48,13 @@ import { resolveClassNames } from "./core/styles-api/use-styles/get-class-name/r
41
48
  import { resolveStyles } from "./core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.mjs";
42
49
  import { FOCUS_CLASS_NAMES } from "./core/styles-api/use-styles/get-class-name/get-global-class-names/get-global-class-names.mjs";
43
50
  import { useStyles } from "./core/styles-api/use-styles/use-styles.mjs";
51
+ import { CDefaultLoaders, CLoader } from "./components/loader/index.mjs";
52
+ import { transitions } from "./components/transition/transitions.mjs";
53
+ import { getTransitionProps } from "./components/transition/get-transition-props/get-transition-props.mjs";
54
+ import { CTransition } from "./components/transition/index.mjs";
44
55
  import { CButton, CButtonGroup, CButtonGroupSection } from "./components/button/index.mjs";
45
56
  import { CCol, CGrid } from "./components/grid/index.mjs";
46
57
  import { CGroup } from "./components/group/index.mjs";
47
- import { CDefaultLoaders, CLoader } from "./components/loader/index.mjs";
48
58
  import { CSimpleGrid } from "./components/simple-grid/index.mjs";
49
59
  import { CText } from "./components/text/index.mjs";
50
- export { CBox, CButton, CButtonGroup, CButtonGroupSection, CCol, CDefaultLoaders, CGrid, CGroup, CLoader, CONFIG_KEY, CSimpleGrid, CText, CckConfigProvider, DEFAULT_THEME, FOCUS_CLASS_NAMES, STYLE_PROPS_DATA, THEME_KEY, addUnit, alpha, camelToKebabCase, clearShadeCache, createVarsResolver, darken, defaultVariantColorsResolver, em, extractStyleProps, filterProps, generateColorShades, getBaseValue, getBreakpointValue, getComponentName, getFontSize, getGradient, getLineHeight, getPrimaryShade, getRadius, getShadow, getSize, getSortedBreakpoints, getSpacing, getThemeColor, hashStyleProps, isLightColor, isNumber, isNumberLike, isString, isStringNumber, isUndefined, keys, luminance, normalizeNumberLikeStringProp, numberLikeStringToNumber, parseStyleProps, parseThemeColor, px, rem, resolveClassNames, resolveStyles, responsiveStyleManager, rgba, setColorAlpha, stylesToString, toRgba, useCckClassNamesPrefix, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckWithStaticClasses, useConfigContext, useRandomClassName, useStyles, withInstall, withPropsDefaultSetter };
60
+ export { CBox, CButton, CButtonGroup, CButtonGroupSection, transitions as CCK_TRANSITIONS, CCol, CDefaultLoaders, CGrid, CGroup, CLoader, CONFIG_KEY, CSimpleGrid, CText, CTransition, CckConfigProvider, DEFAULT_THEME, FOCUS_CLASS_NAMES, STYLE_PROPS_DATA, THEME_KEY, 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 };
@@ -17,7 +17,7 @@ export type ButtonFactory = PolymorphicFactory<{
17
17
  staticComponents: {};
18
18
  }>;
19
19
  export interface ButtonProps extends BoxProps, StylesApiProps<ButtonFactory> {
20
- 'data-disabled'?: boolean;
20
+ dataDisabled?: boolean;
21
21
  /**
22
22
  * @description If set, adjusts text color based on background color for `filled` variant
23
23
  */
@@ -72,14 +72,4 @@ export interface ButtonProps extends BoxProps, StylesApiProps<ButtonFactory> {
72
72
  * @default 'sm'
73
73
  */
74
74
  size?: ButtonSize;
75
- /**
76
- * @description custom element tag
77
- * @default 'button'
78
- */
79
- tag?: string | Component;
80
- /**
81
- * @description variants of button
82
- * @default 'default'
83
- */
84
- variant?: ButtonVariant;
85
75
  }
@@ -3,4 +3,5 @@ export * from './grid';
3
3
  export * from './group';
4
4
  export * from './loader';
5
5
  export * from './simple-grid';
6
+ export * from './transition';
6
7
  export * from './text';
@@ -25,7 +25,7 @@ export interface TextProps extends BoxProps, StylesApiProps<TextFactory> {
25
25
  */
26
26
  lineClamp?: number;
27
27
  /**
28
- * @description Side on which Text must be truncated, if `true`, text is truncated from the start
28
+ * @description Side on which Text must be truncated, if `true`, text is truncated from the end
29
29
  */
30
30
  truncate?: TextTruncate;
31
31
  /**
@@ -0,0 +1,5 @@
1
+ import type { SetRequired } from 'type-fest';
2
+ import type { TransitionOverride } from '../transition.types';
3
+ type MinimalTransitionOverride = SetRequired<TransitionOverride, 'duration' | 'transition'>;
4
+ export declare function getTransitionProps(transitionProps: TransitionOverride | undefined, componentTransition: TransitionOverride | undefined): MinimalTransitionOverride;
5
+ export {};