vueless 0.0.255 → 0.0.256

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.
@@ -20,7 +20,7 @@ import {
20
20
  } from "../service.ui";
21
21
 
22
22
  import { cloneDeep } from "../service.helper";
23
- import { STRATEGY_TYPE, SYSTEM_CONFIG_KEY } from "../constants";
23
+ import { STRATEGY_TYPE, CVA_CONFIG_KEY, SYSTEM_CONFIG_KEY } from "../constants";
24
24
 
25
25
  /**
26
26
  Merging component configs in a given sequence (bigger number = bigger priority):
@@ -88,12 +88,15 @@ export default function useUI(defaultConfig = {}, propsConfigGetter = null, topL
88
88
 
89
89
  const isTopLevelClassKey = configKey === (topLevelClassKey || firstClassKey);
90
90
  const attrClass = isTopLevelClassKey && !nestedComponent ? attrs.class : "";
91
- // TODO: Uncomment and add into `cx` when getAttrs as a function will be resolved.
92
- // const classes = toValue(options?.classes) || getBaseClasses(configKeyValue);
93
91
 
92
+ // TODO: remove `getBaseClasses(configKeyValue)` after migration to `setDynamicVars`
94
93
  vuelessAttrs.value = {
95
94
  ...commonAttrs,
96
- class: cx([getBaseClasses(configKeyValue), toValue(options?.classes), attrClass]),
95
+ class: cx([
96
+ getBaseClasses(configKeyValue),
97
+ getBaseClasses(toValue(options?.classes)),
98
+ attrClass,
99
+ ]),
97
100
  ...((isObject && configAttrs) || {}),
98
101
  };
99
102
  }
@@ -106,6 +109,7 @@ export default function useUI(defaultConfig = {}, propsConfigGetter = null, topL
106
109
  getAttrs,
107
110
  getColor,
108
111
  setColor,
112
+ isCVA,
109
113
  isSystemKey,
110
114
  hasSlotContent,
111
115
  };
@@ -404,6 +408,19 @@ function isSystemKey(key) {
404
408
  );
405
409
  }
406
410
 
411
+ /**
412
+ Check is config contains default CVA keys.
413
+ @param { Object | String } config
414
+ @returns { Boolean }
415
+ */
416
+ function isCVA(config) {
417
+ if (typeof config !== "object") return false;
418
+
419
+ return Object.values(CVA_CONFIG_KEY).some((value) =>
420
+ Object.keys(config).some((key) => key === value),
421
+ );
422
+ }
423
+
407
424
  /**
408
425
  Check if slot defined, and have a content.
409
426
  @param slot
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vueless",
3
- "version": "0.0.255",
3
+ "version": "0.0.256",
4
4
  "license": "MIT",
5
5
  "description": "Vue Styleless Component Framework.",
6
6
  "homepage": "https://vueless.com",
@@ -5,7 +5,7 @@ import defaultConfig from "../configs/default.config";
5
5
 
6
6
  export default function useAttrs(props) {
7
7
  const slots = useSlots();
8
- const { config, getAttrs, getColor, setColor, hasSlotContent, isSystemKey } = useUI(
8
+ const { config, getAttrs, getColor, setColor, hasSlotContent, isSystemKey, isCVA } = useUI(
9
9
  defaultConfig,
10
10
  () => props.config,
11
11
  );
@@ -15,22 +15,19 @@ export default function useAttrs(props) {
15
15
  if (isSystemKey(key)) continue;
16
16
 
17
17
  const classes = computed(() => {
18
- const value = config.value[key];
18
+ let value = config.value[key];
19
19
 
20
- if (value.variants || value.compoundVariants) {
21
- return setColor(
22
- cva(value)({
23
- ...props,
24
- color: getColor(props.color),
25
- square: props.loading || props.square,
26
- iconLeft: Boolean(props.iconLeft) || hasSlotContent(slots["icon-left"]),
27
- iconRight: Boolean(props.iconRight) || hasSlotContent(slots["icon-right"]),
28
- }),
29
- props.color,
30
- );
20
+ if (isCVA(value)) {
21
+ value = cva(value)({
22
+ ...props,
23
+ color: getColor(props.color),
24
+ square: props.loading || props.square,
25
+ iconLeft: Boolean(props.iconLeft) || hasSlotContent(slots["icon-left"]),
26
+ iconRight: Boolean(props.iconRight) || hasSlotContent(slots["icon-right"]),
27
+ });
31
28
  }
32
29
 
33
- return "";
30
+ return setColor(value, props.color);
34
31
  });
35
32
 
36
33
  attrs[`${key}Attrs`] = getAttrs(key, { classes });
@@ -6,7 +6,7 @@ import defaultConfig from "../configs/default.config";
6
6
  export default function useAttrs(props, { isActive, isExactActive }) {
7
7
  const slots = useSlots();
8
8
 
9
- const { config, getAttrs, hasSlotContent, getColor, setColor, isSystemKey } = useUI(
9
+ const { config, getAttrs, hasSlotContent, getColor, setColor, isSystemKey, isCVA } = useUI(
10
10
  defaultConfig,
11
11
  () => props.config,
12
12
  );
@@ -16,19 +16,16 @@ export default function useAttrs(props, { isActive, isExactActive }) {
16
16
  if (isSystemKey(key)) continue;
17
17
 
18
18
  const classes = computed(() => {
19
- const value = config.value[key];
19
+ let value = config.value[key];
20
20
 
21
- if (value.variants || value.compoundVariants) {
22
- return setColor(
23
- cva(value)({
24
- ...props,
25
- color: getColor(props.color),
26
- }),
27
- props.color,
28
- );
21
+ if (isCVA(value)) {
22
+ value = cva(value)({
23
+ ...props,
24
+ color: getColor(props.color),
25
+ });
29
26
  }
30
27
 
31
- return "";
28
+ return setColor(value, props.color);
32
29
  });
33
30
 
34
31
  attrs[`${key}Attrs`] = getAttrs(key, { classes });
@@ -4,7 +4,7 @@ import { cva } from "../../service.ui";
4
4
  import defaultConfig from "../configs/default.config";
5
5
 
6
6
  export default function useAttrs(props) {
7
- const { config, getAttrs, hasSlotContent, isSystemKey } = useUI(
7
+ const { config, getAttrs, hasSlotContent, isSystemKey, isCVA } = useUI(
8
8
  defaultConfig,
9
9
  () => props.config,
10
10
  );
@@ -14,15 +14,15 @@ export default function useAttrs(props) {
14
14
  if (isSystemKey(key)) continue;
15
15
 
16
16
  const classes = computed(() => {
17
- const value = config.value[key];
17
+ let value = config.value[key];
18
18
 
19
- if (value.variants || value.compoundVariants) {
20
- return cva(value)({
19
+ if (isCVA(value)) {
20
+ value = cva(value)({
21
21
  ...props,
22
22
  });
23
23
  }
24
24
 
25
- return "";
25
+ return value;
26
26
  });
27
27
 
28
28
  attrs[`${key}Attrs`] = getAttrs(key, { classes });
@@ -4,7 +4,7 @@ import { cva } from "../../service.ui";
4
4
  import defaultConfig from "../configs/default.config";
5
5
 
6
6
  export default function useAttrs(props, { isSelected, separated, variant }) {
7
- const { config, getAttrs, isSystemKey, hasSlotContent } = useUI(
7
+ const { config, getAttrs, isSystemKey, hasSlotContent, isCVA } = useUI(
8
8
  defaultConfig,
9
9
  () => props.config,
10
10
  );
@@ -15,10 +15,10 @@ export default function useAttrs(props, { isSelected, separated, variant }) {
15
15
  if (isSystemKey(key)) continue;
16
16
 
17
17
  const classes = computed(() => {
18
- const value = config.value[key];
18
+ let value = config.value[key];
19
19
 
20
- if (value.variants || value.compoundVariants) {
21
- return cva(value)({
20
+ if (isCVA(value)) {
21
+ value = cva(value)({
22
22
  ...props,
23
23
  variant: toValue(variant),
24
24
  separated: toValue(separated),
@@ -26,7 +26,7 @@ export default function useAttrs(props, { isSelected, separated, variant }) {
26
26
  });
27
27
  }
28
28
 
29
- return "";
29
+ return value;
30
30
  });
31
31
 
32
32
  attrs[`${key}Attrs`] = getAttrs(key, { classes });
package/web-types.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "framework": "vue",
3
3
  "name": "vueless",
4
- "version": "0.0.255",
4
+ "version": "0.0.256",
5
5
  "contributions": {
6
6
  "html": {
7
7
  "description-markup": "markdown",