@torpor/view 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/compile.js CHANGED
@@ -904,6 +904,17 @@ function buildComponentNode(node, status, b, root = false) {
904
904
  value = value.substring(1, value.length - 1);
905
905
  buildRun("setProp", `${propsName}["${name}"] = ${value};`, status, b);
906
906
  buildRun("setBinding", `${value} = ${propsName}["${name}"];`, status, b);
907
+ } else if (name === ":class" && value != null && isFullyReactive(value)) {
908
+ status.imports.add("t_class");
909
+ value = value.substring(1, value.length - 1);
910
+ if (node.scopeStyles) {
911
+ value += `, "torp-${status.styleHash}"`;
912
+ }
913
+ buildRun("setClasses", `${propsName}["class"] = t_class(${value});`, status, b);
914
+ } else if (name === ":style" && value != null && isFullyReactive(value)) {
915
+ status.imports.add("t_style");
916
+ value = value.substring(1, value.length - 1);
917
+ buildRun("setStyles", `${propsName}["style"] = t_style(${value});`, status, b);
907
918
  } else if (value != null) {
908
919
  let fullyReactive = isFullyReactive(value);
909
920
  let partlyReactive = isReactive(value);
@@ -2083,6 +2094,17 @@ function buildServerComponentNode(node, status, b) {
2083
2094
  name = name.substring(1, name.length - 1);
2084
2095
  const propName = name.split(".").at(-1);
2085
2096
  b.append(`${propsName}["${propName}"] = ${name};`);
2097
+ } else if (name === ":class" && value != null && isFullyReactive(value)) {
2098
+ status.imports.add("t_class");
2099
+ value = value.substring(1, value.length - 1);
2100
+ if (node.scopeStyles) {
2101
+ value += `, "torp-${status.styleHash}"`;
2102
+ }
2103
+ b.append(`${propsName}["class"] = t_class(${value});`);
2104
+ } else if (name === ":style" && value != null && isFullyReactive(value)) {
2105
+ status.imports.add("t_style");
2106
+ value = value.substring(1, value.length - 1);
2107
+ b.append(`${propsName}["style"] = t_style(${value});`);
2086
2108
  } else if (value != null) {
2087
2109
  let fullyReactive = isFullyReactive(value);
2088
2110
  let partlyReactive = isReactive(value);
@@ -3618,6 +3640,11 @@ function parseStyleAttribute(status) {
3618
3640
  };
3619
3641
  }
3620
3642
 
3643
+ // src/compile/types/nodes/isComponentNode.ts
3644
+ function isComponentNode(node) {
3645
+ return node.type === "component";
3646
+ }
3647
+
3621
3648
  // src/compile/types/nodes/isParentNode.ts
3622
3649
  function isParentNode(node) {
3623
3650
  return "children" in node;
@@ -3636,7 +3663,7 @@ function scopeStyles(status) {
3636
3663
  }
3637
3664
  }
3638
3665
  function scopeStylesOnNode(node, selectors) {
3639
- if (isElementNode(node)) {
3666
+ if (isElementNode(node) || isComponentNode(node)) {
3640
3667
  let scopeStyles2 = selectors.includes(node.tagName);
3641
3668
  if (!scopeStyles2) {
3642
3669
  for (let a of node.attributes) {