@fluixi/compiler 1.0.0-alpha.93 → 1.0.0-alpha.95
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/LICENSE +1 -1
- package/dist/analyze/intrinsics.cjs +13 -1
- package/dist/analyze/intrinsics.d.cts +14 -0
- package/dist/analyze/intrinsics.d.ts +14 -0
- package/dist/analyze/intrinsics.d.ts.map +1 -1
- package/dist/analyze/intrinsics.js +17 -0
- package/dist/analyze/intrinsics.mjs +13 -1
- package/dist/analyze/static-graph.cjs +1 -1
- package/dist/analyze/static-graph.mjs +1 -1
- package/dist/{babel-RJHJQVEM.mjs → babel-V33QLJBF.mjs} +4 -4
- package/dist/{chunk-56QSOVVL.mjs → chunk-62F2LLBM.mjs} +1 -1
- package/dist/{chunk-R7PPFBCL.mjs → chunk-7GNSGUHK.mjs} +4 -83
- package/dist/{chunk-U7HCFLZ2.mjs → chunk-B64LVPTU.mjs} +356 -24
- package/dist/{chunk-OD53TMER.mjs → chunk-C3AK5PBV.mjs} +13 -1
- package/dist/{chunk-TJIH7TLX.mjs → chunk-GLFUPZ27.mjs} +1 -1
- package/dist/chunk-HUABRVWB.mjs +92 -0
- package/dist/chunk-XCWP7WJG.mjs +584 -0
- package/dist/codegen/backends/imperative.cjs +1 -1
- package/dist/codegen/backends/imperative.d.ts.map +1 -1
- package/dist/codegen/backends/imperative.js +2 -1
- package/dist/codegen/backends/imperative.mjs +1 -1
- package/dist/frontend/babel/build-ir-lit.cjs +352 -22
- package/dist/frontend/babel/build-ir-lit.mjs +352 -22
- package/dist/frontend/babel/build-ir.cjs +352 -22
- package/dist/frontend/babel/build-ir.mjs +352 -22
- package/dist/frontend/babel/index.cjs +353 -23
- package/dist/frontend/babel/index.mjs +353 -23
- package/dist/frontend/babel/lower-template.cjs +352 -22
- package/dist/frontend/babel/lower-template.mjs +352 -22
- package/dist/frontend/babel/plugin.cjs +352 -22
- package/dist/frontend/babel/plugin.mjs +352 -22
- package/dist/index.cjs +321 -22
- package/dist/index.mjs +333 -22
- package/dist/integrations.cjs +1240 -56
- package/dist/integrations.d.ts.map +1 -1
- package/dist/integrations.js +62 -9
- package/dist/integrations.mjs +257 -26
- package/dist/lower/compile-template.cjs +315 -21
- package/dist/lower/compile-template.d.cts +13 -0
- package/dist/lower/compile-template.d.ts +13 -0
- package/dist/lower/compile-template.d.ts.map +1 -1
- package/dist/lower/compile-template.js +3 -0
- package/dist/lower/compile-template.mjs +327 -21
- package/dist/lower/entities.cjs +288 -0
- package/dist/lower/entities.d.cts +1 -0
- package/dist/lower/entities.d.ts +2 -0
- package/dist/lower/entities.d.ts.map +1 -0
- package/dist/lower/entities.js +54 -0
- package/dist/lower/entities.mjs +267 -0
- package/dist/lower/jsx.cjs +104 -47
- package/dist/lower/jsx.d.cts +8 -0
- package/dist/lower/jsx.d.ts +8 -0
- package/dist/lower/jsx.d.ts.map +1 -1
- package/dist/lower/jsx.js +92 -2
- package/dist/lower/jsx.mjs +104 -47
- package/dist/lower/template.cjs +293 -20
- package/dist/lower/template.d.ts.map +1 -1
- package/dist/lower/template.js +35 -19
- package/dist/lower/template.mjs +293 -20
- package/dist/resolve/builtins.cjs +1 -1
- package/dist/resolve/builtins.mjs +1 -1
- package/dist/resolve/component-globals.cjs +6 -1
- package/dist/resolve/component-globals.js +2 -2
- package/dist/resolve/component-globals.mjs +6 -1
- package/dist/resolve/write-globals.cjs +6 -1
- package/dist/resolve/write-globals.mjs +6 -1
- package/dist/{server-fns-ZFRDIQ2X.mjs → server-fns-N3SDJXA7.mjs} +5 -4
- package/dist/{server-functions-CTDXX67X.mjs → server-functions-LVS66Q4R.mjs} +3 -3
- package/dist/transform/index.cjs +973 -33
- package/dist/transform/index.mjs +991 -47
- package/dist/transform/props.mjs +19 -14
- package/dist/transform/server-fns.mjs +19 -14
- package/dist/transform/styles.cjs +606 -0
- package/dist/transform/styles.d.cts +237 -0
- package/dist/transform/styles.d.ts +238 -0
- package/dist/transform/styles.d.ts.map +1 -0
- package/dist/transform/styles.js +743 -0
- package/dist/transform/styles.mjs +671 -0
- package/dist/transform/templates.cjs +972 -32
- package/dist/transform/templates.d.cts +13 -0
- package/dist/transform/templates.d.ts +13 -0
- package/dist/transform/templates.d.ts.map +1 -1
- package/dist/transform/templates.js +49 -12
- package/dist/transform/templates.mjs +990 -46
- package/dist/{transform-QWWQDCXE.mjs → transform-P4AETYV4.mjs} +49 -16
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/vite-styles.cjs +223 -0
- package/dist/vite-styles.d.cts +68 -0
- package/dist/vite-styles.d.ts +69 -0
- package/dist/vite-styles.d.ts.map +1 -0
- package/dist/vite-styles.js +241 -0
- package/dist/vite-styles.mjs +214 -0
- package/package.json +5 -4
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @fluixi/compiler v1.0.0-alpha.
|
|
1
|
+
/*! @fluixi/compiler v1.0.0-alpha.95 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
|
|
2
2
|
|
|
3
3
|
// src/analyze/reactive-expr.ts
|
|
4
4
|
var STABLE_MEMBER = "children";
|
|
@@ -308,6 +308,11 @@ var INTRINSICS = {
|
|
|
308
308
|
// An environment variable, public or server-only; the browser build refuses a secret.
|
|
309
309
|
$env: { export: "env", module: "@fluixi/start/env", returns: "plain" }
|
|
310
310
|
};
|
|
311
|
+
var TAG_INTRINSICS = {
|
|
312
|
+
$html: { export: "html", module: "@fluixi/core" },
|
|
313
|
+
$svg: { export: "svg", module: "@fluixi/core" },
|
|
314
|
+
$css: { export: "css", module: "@fluixi/core" }
|
|
315
|
+
};
|
|
311
316
|
var INTRINSIC_CALL = new RegExp(`\\$(?:${Object.keys(INTRINSICS).map((n) => n.slice(1)).join("|")})\\s*\\(`);
|
|
312
317
|
|
|
313
318
|
// src/transform/source-locations.ts
|
|
@@ -488,7 +493,7 @@ function emitComponent(name, props, children, used, templates, at) {
|
|
|
488
493
|
}
|
|
489
494
|
let obj = `{ ${bodies.map(([name2, body]) => `get ${propKey(name2)}() { return ${body}; }`).join(", ")} }`;
|
|
490
495
|
if (bodies.some(([, body]) => /\bthis\b/.test(body))) {
|
|
491
|
-
const thunks = bodies.map(([name2, body]) => `${JSON.stringify(name2)}: () => ${body}`);
|
|
496
|
+
const thunks = bodies.map(([name2, body]) => `${JSON.stringify(name2)}: () => (${body})`);
|
|
492
497
|
const getters = bodies.map(([name2]) => `get ${propKey(name2)}() { return _$t[${JSON.stringify(name2)}](); }`);
|
|
493
498
|
obj = `((_$t) => ({ ${getters.join(", ")} }))({ ${thunks.join(", ")} })`;
|
|
494
499
|
}
|
|
@@ -627,6 +632,271 @@ function cleanTemplateText(value) {
|
|
|
627
632
|
return out;
|
|
628
633
|
}
|
|
629
634
|
|
|
635
|
+
// src/lower/entities.ts
|
|
636
|
+
var NAMED = {
|
|
637
|
+
quot: 34,
|
|
638
|
+
amp: 38,
|
|
639
|
+
apos: 39,
|
|
640
|
+
lt: 60,
|
|
641
|
+
gt: 62,
|
|
642
|
+
nbsp: 160,
|
|
643
|
+
iexcl: 161,
|
|
644
|
+
cent: 162,
|
|
645
|
+
pound: 163,
|
|
646
|
+
curren: 164,
|
|
647
|
+
yen: 165,
|
|
648
|
+
brvbar: 166,
|
|
649
|
+
sect: 167,
|
|
650
|
+
uml: 168,
|
|
651
|
+
copy: 169,
|
|
652
|
+
ordf: 170,
|
|
653
|
+
laquo: 171,
|
|
654
|
+
not: 172,
|
|
655
|
+
shy: 173,
|
|
656
|
+
reg: 174,
|
|
657
|
+
macr: 175,
|
|
658
|
+
deg: 176,
|
|
659
|
+
plusmn: 177,
|
|
660
|
+
sup2: 178,
|
|
661
|
+
sup3: 179,
|
|
662
|
+
acute: 180,
|
|
663
|
+
micro: 181,
|
|
664
|
+
para: 182,
|
|
665
|
+
middot: 183,
|
|
666
|
+
cedil: 184,
|
|
667
|
+
sup1: 185,
|
|
668
|
+
ordm: 186,
|
|
669
|
+
raquo: 187,
|
|
670
|
+
frac14: 188,
|
|
671
|
+
frac12: 189,
|
|
672
|
+
frac34: 190,
|
|
673
|
+
iquest: 191,
|
|
674
|
+
Agrave: 192,
|
|
675
|
+
Aacute: 193,
|
|
676
|
+
Acirc: 194,
|
|
677
|
+
Atilde: 195,
|
|
678
|
+
Auml: 196,
|
|
679
|
+
Aring: 197,
|
|
680
|
+
AElig: 198,
|
|
681
|
+
Ccedil: 199,
|
|
682
|
+
Egrave: 200,
|
|
683
|
+
Eacute: 201,
|
|
684
|
+
Ecirc: 202,
|
|
685
|
+
Euml: 203,
|
|
686
|
+
Igrave: 204,
|
|
687
|
+
Iacute: 205,
|
|
688
|
+
Icirc: 206,
|
|
689
|
+
Iuml: 207,
|
|
690
|
+
ETH: 208,
|
|
691
|
+
Ntilde: 209,
|
|
692
|
+
Ograve: 210,
|
|
693
|
+
Oacute: 211,
|
|
694
|
+
Ocirc: 212,
|
|
695
|
+
Otilde: 213,
|
|
696
|
+
Ouml: 214,
|
|
697
|
+
times: 215,
|
|
698
|
+
Oslash: 216,
|
|
699
|
+
Ugrave: 217,
|
|
700
|
+
Uacute: 218,
|
|
701
|
+
Ucirc: 219,
|
|
702
|
+
Uuml: 220,
|
|
703
|
+
Yacute: 221,
|
|
704
|
+
THORN: 222,
|
|
705
|
+
szlig: 223,
|
|
706
|
+
agrave: 224,
|
|
707
|
+
aacute: 225,
|
|
708
|
+
acirc: 226,
|
|
709
|
+
atilde: 227,
|
|
710
|
+
auml: 228,
|
|
711
|
+
aring: 229,
|
|
712
|
+
aelig: 230,
|
|
713
|
+
ccedil: 231,
|
|
714
|
+
egrave: 232,
|
|
715
|
+
eacute: 233,
|
|
716
|
+
ecirc: 234,
|
|
717
|
+
euml: 235,
|
|
718
|
+
igrave: 236,
|
|
719
|
+
iacute: 237,
|
|
720
|
+
icirc: 238,
|
|
721
|
+
iuml: 239,
|
|
722
|
+
eth: 240,
|
|
723
|
+
ntilde: 241,
|
|
724
|
+
ograve: 242,
|
|
725
|
+
oacute: 243,
|
|
726
|
+
ocirc: 244,
|
|
727
|
+
otilde: 245,
|
|
728
|
+
ouml: 246,
|
|
729
|
+
divide: 247,
|
|
730
|
+
oslash: 248,
|
|
731
|
+
ugrave: 249,
|
|
732
|
+
uacute: 250,
|
|
733
|
+
ucirc: 251,
|
|
734
|
+
uuml: 252,
|
|
735
|
+
yacute: 253,
|
|
736
|
+
thorn: 254,
|
|
737
|
+
yuml: 255,
|
|
738
|
+
OElig: 338,
|
|
739
|
+
oelig: 339,
|
|
740
|
+
Scaron: 352,
|
|
741
|
+
scaron: 353,
|
|
742
|
+
Yuml: 376,
|
|
743
|
+
fnof: 402,
|
|
744
|
+
circ: 710,
|
|
745
|
+
tilde: 732,
|
|
746
|
+
Alpha: 913,
|
|
747
|
+
Beta: 914,
|
|
748
|
+
Gamma: 915,
|
|
749
|
+
Delta: 916,
|
|
750
|
+
Epsilon: 917,
|
|
751
|
+
Zeta: 918,
|
|
752
|
+
Eta: 919,
|
|
753
|
+
Theta: 920,
|
|
754
|
+
Iota: 921,
|
|
755
|
+
Kappa: 922,
|
|
756
|
+
Lambda: 923,
|
|
757
|
+
Mu: 924,
|
|
758
|
+
Nu: 925,
|
|
759
|
+
Xi: 926,
|
|
760
|
+
Omicron: 927,
|
|
761
|
+
Pi: 928,
|
|
762
|
+
Rho: 929,
|
|
763
|
+
Sigma: 931,
|
|
764
|
+
Tau: 932,
|
|
765
|
+
Upsilon: 933,
|
|
766
|
+
Phi: 934,
|
|
767
|
+
Chi: 935,
|
|
768
|
+
Psi: 936,
|
|
769
|
+
Omega: 937,
|
|
770
|
+
alpha: 945,
|
|
771
|
+
beta: 946,
|
|
772
|
+
gamma: 947,
|
|
773
|
+
delta: 948,
|
|
774
|
+
epsilon: 949,
|
|
775
|
+
zeta: 950,
|
|
776
|
+
eta: 951,
|
|
777
|
+
theta: 952,
|
|
778
|
+
iota: 953,
|
|
779
|
+
kappa: 954,
|
|
780
|
+
lambda: 955,
|
|
781
|
+
mu: 956,
|
|
782
|
+
nu: 957,
|
|
783
|
+
xi: 958,
|
|
784
|
+
omicron: 959,
|
|
785
|
+
pi: 960,
|
|
786
|
+
rho: 961,
|
|
787
|
+
sigmaf: 962,
|
|
788
|
+
sigma: 963,
|
|
789
|
+
tau: 964,
|
|
790
|
+
upsilon: 965,
|
|
791
|
+
phi: 966,
|
|
792
|
+
chi: 967,
|
|
793
|
+
psi: 968,
|
|
794
|
+
omega: 969,
|
|
795
|
+
thetasym: 977,
|
|
796
|
+
upsih: 978,
|
|
797
|
+
piv: 982,
|
|
798
|
+
ensp: 8194,
|
|
799
|
+
emsp: 8195,
|
|
800
|
+
thinsp: 8201,
|
|
801
|
+
zwnj: 8204,
|
|
802
|
+
zwj: 8205,
|
|
803
|
+
lrm: 8206,
|
|
804
|
+
rlm: 8207,
|
|
805
|
+
ndash: 8211,
|
|
806
|
+
mdash: 8212,
|
|
807
|
+
lsquo: 8216,
|
|
808
|
+
rsquo: 8217,
|
|
809
|
+
sbquo: 8218,
|
|
810
|
+
ldquo: 8220,
|
|
811
|
+
rdquo: 8221,
|
|
812
|
+
bdquo: 8222,
|
|
813
|
+
dagger: 8224,
|
|
814
|
+
Dagger: 8225,
|
|
815
|
+
bull: 8226,
|
|
816
|
+
hellip: 8230,
|
|
817
|
+
permil: 8240,
|
|
818
|
+
prime: 8242,
|
|
819
|
+
Prime: 8243,
|
|
820
|
+
lsaquo: 8249,
|
|
821
|
+
rsaquo: 8250,
|
|
822
|
+
oline: 8254,
|
|
823
|
+
frasl: 8260,
|
|
824
|
+
euro: 8364,
|
|
825
|
+
image: 8465,
|
|
826
|
+
weierp: 8472,
|
|
827
|
+
real: 8476,
|
|
828
|
+
trade: 8482,
|
|
829
|
+
alefsym: 8501,
|
|
830
|
+
larr: 8592,
|
|
831
|
+
uarr: 8593,
|
|
832
|
+
rarr: 8594,
|
|
833
|
+
darr: 8595,
|
|
834
|
+
harr: 8596,
|
|
835
|
+
crarr: 8629,
|
|
836
|
+
lArr: 8656,
|
|
837
|
+
uArr: 8657,
|
|
838
|
+
rArr: 8658,
|
|
839
|
+
dArr: 8659,
|
|
840
|
+
hArr: 8660,
|
|
841
|
+
forall: 8704,
|
|
842
|
+
part: 8706,
|
|
843
|
+
exist: 8707,
|
|
844
|
+
empty: 8709,
|
|
845
|
+
nabla: 8711,
|
|
846
|
+
isin: 8712,
|
|
847
|
+
notin: 8713,
|
|
848
|
+
ni: 8715,
|
|
849
|
+
prod: 8719,
|
|
850
|
+
sum: 8721,
|
|
851
|
+
minus: 8722,
|
|
852
|
+
lowast: 8727,
|
|
853
|
+
radic: 8730,
|
|
854
|
+
prop: 8733,
|
|
855
|
+
infin: 8734,
|
|
856
|
+
ang: 8736,
|
|
857
|
+
and: 8743,
|
|
858
|
+
or: 8744,
|
|
859
|
+
cap: 8745,
|
|
860
|
+
cup: 8746,
|
|
861
|
+
int: 8747,
|
|
862
|
+
there4: 8756,
|
|
863
|
+
sim: 8764,
|
|
864
|
+
cong: 8773,
|
|
865
|
+
asymp: 8776,
|
|
866
|
+
ne: 8800,
|
|
867
|
+
equiv: 8801,
|
|
868
|
+
le: 8804,
|
|
869
|
+
ge: 8805,
|
|
870
|
+
sub: 8834,
|
|
871
|
+
sup: 8835,
|
|
872
|
+
nsub: 8836,
|
|
873
|
+
sube: 8838,
|
|
874
|
+
supe: 8839,
|
|
875
|
+
oplus: 8853,
|
|
876
|
+
otimes: 8855,
|
|
877
|
+
perp: 8869,
|
|
878
|
+
sdot: 8901,
|
|
879
|
+
lceil: 8968,
|
|
880
|
+
rceil: 8969,
|
|
881
|
+
lfloor: 8970,
|
|
882
|
+
rfloor: 8971,
|
|
883
|
+
lang: 9001,
|
|
884
|
+
rang: 9002,
|
|
885
|
+
loz: 9674,
|
|
886
|
+
spades: 9824,
|
|
887
|
+
clubs: 9827,
|
|
888
|
+
hearts: 9829,
|
|
889
|
+
diams: 9830
|
|
890
|
+
};
|
|
891
|
+
var REFERENCE = /&(?:#[xX]([0-9a-fA-F]{1,6})|#([0-9]{1,7})|([a-zA-Z][a-zA-Z0-9]{1,31}));/g;
|
|
892
|
+
function decodeEntities(value) {
|
|
893
|
+
if (!value.includes("&")) return value;
|
|
894
|
+
return value.replace(REFERENCE, (match, hex, dec, name) => {
|
|
895
|
+
const code = hex ? parseInt(hex, 16) : dec ? parseInt(dec, 10) : Object.prototype.hasOwnProperty.call(NAMED, name) ? NAMED[name] : void 0;
|
|
896
|
+
return code !== void 0 && code <= 1114111 ? String.fromCodePoint(code) : match;
|
|
897
|
+
});
|
|
898
|
+
}
|
|
899
|
+
|
|
630
900
|
// src/lower/template.ts
|
|
631
901
|
var DELEGATED = /* @__PURE__ */ new Set([
|
|
632
902
|
"click",
|
|
@@ -713,7 +983,7 @@ var Lowerer = class {
|
|
|
713
983
|
switch (node.kind) {
|
|
714
984
|
case "Text": {
|
|
715
985
|
if (node.raw) return { kind: "text", value: node.value };
|
|
716
|
-
const cleaned = cleanTemplateText(node.value);
|
|
986
|
+
const cleaned = decodeEntities(cleanTemplateText(node.value));
|
|
717
987
|
return cleaned ? { kind: "text", value: cleaned } : null;
|
|
718
988
|
}
|
|
719
989
|
case "Comment":
|
|
@@ -749,7 +1019,7 @@ var Lowerer = class {
|
|
|
749
1019
|
kind: "element",
|
|
750
1020
|
tag: el.tag,
|
|
751
1021
|
svg: el.namespace === "svg",
|
|
752
|
-
props: this.lowerAttributes(el.attributes),
|
|
1022
|
+
props: this.lowerAttributes(el.attributes, true),
|
|
753
1023
|
children,
|
|
754
1024
|
static: false,
|
|
755
1025
|
...at ? { at } : {}
|
|
@@ -862,13 +1132,22 @@ var Lowerer = class {
|
|
|
862
1132
|
return clone.kind === "Element" ? this.lowerElement(clone) : this.lowerComponent(clone);
|
|
863
1133
|
}
|
|
864
1134
|
// --- attributes ---------------------------------------------------------
|
|
865
|
-
|
|
1135
|
+
/**
|
|
1136
|
+
* `element`: a DOM element, where each class:/style: value that moves is its own accessor.
|
|
1137
|
+
* A component gets the object as before, rebuilt whole when any value moves.
|
|
1138
|
+
*/
|
|
1139
|
+
lowerAttributes(attrs, element = false) {
|
|
1140
|
+
let anyReactive = false;
|
|
1141
|
+
const entry = (name, h) => {
|
|
1142
|
+
anyReactive ||= h.reactive;
|
|
1143
|
+
if (!element || !h.reactive) return `${JSON.stringify(name)}: ${h.code}`;
|
|
1144
|
+
const accessor = `() => ${paren(h.code, "arrowBody")}`;
|
|
1145
|
+
return `${JSON.stringify(name)}: ${h.at ? markHole(accessor, h.at.line, h.at.column) : accessor}`;
|
|
1146
|
+
};
|
|
866
1147
|
const props = [];
|
|
867
1148
|
const classEntries = [];
|
|
868
|
-
let classReactive = false;
|
|
869
1149
|
let classAt;
|
|
870
1150
|
const styleEntries = [];
|
|
871
|
-
let styleReactive = false;
|
|
872
1151
|
let styleAt;
|
|
873
1152
|
const usePairs = [];
|
|
874
1153
|
for (const a of attrs) {
|
|
@@ -908,15 +1187,13 @@ var Lowerer = class {
|
|
|
908
1187
|
break;
|
|
909
1188
|
case "ClassDirective": {
|
|
910
1189
|
const h = this.hole(a.hole);
|
|
911
|
-
classEntries.push(
|
|
912
|
-
classReactive = classReactive || h.reactive;
|
|
1190
|
+
classEntries.push(entry(a.name, h));
|
|
913
1191
|
classAt ??= h.at;
|
|
914
1192
|
break;
|
|
915
1193
|
}
|
|
916
1194
|
case "StyleDirective": {
|
|
917
1195
|
const h = this.hole(a.hole);
|
|
918
|
-
styleEntries.push(
|
|
919
|
-
styleReactive = styleReactive || h.reactive;
|
|
1196
|
+
styleEntries.push(entry(a.name, h));
|
|
920
1197
|
styleAt ??= h.at;
|
|
921
1198
|
break;
|
|
922
1199
|
}
|
|
@@ -936,18 +1213,19 @@ var Lowerer = class {
|
|
|
936
1213
|
name: "classList",
|
|
937
1214
|
kind: "attr",
|
|
938
1215
|
expr: `{ ${classEntries.join(", ")} }`,
|
|
939
|
-
reactive:
|
|
1216
|
+
reactive: !element && anyReactive,
|
|
940
1217
|
...classAt ? { at: classAt } : {}
|
|
941
1218
|
});
|
|
942
1219
|
}
|
|
943
1220
|
if (styleEntries.length > 0) {
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
1221
|
+
const entries = `{ ${styleEntries.join(", ")} }`;
|
|
1222
|
+
const base = props.findIndex((p) => p.name === "style");
|
|
1223
|
+
if (base === -1) props.push({ name: "style", kind: "attr", expr: entries, reactive: !element && anyReactive, ...styleAt ? { at: styleAt } : {} });
|
|
1224
|
+
else {
|
|
1225
|
+
const prop = props[base];
|
|
1226
|
+
const value = prop.expr === void 0 ? JSON.stringify(prop.literal) : prop.reactive ? `() => ${paren(prop.expr, "arrowBody")}` : prop.expr;
|
|
1227
|
+
props[base] = { name: "style", kind: "attr", expr: `[${value}, ${entries}]`, reactive: false, ...prop.at ? { at: prop.at } : {} };
|
|
1228
|
+
}
|
|
951
1229
|
}
|
|
952
1230
|
if (usePairs.length > 0) {
|
|
953
1231
|
props.push({ name: "use", kind: "attr", expr: `[${usePairs.join(", ")}]` });
|
|
@@ -1036,7 +1314,7 @@ var Lowerer = class {
|
|
|
1036
1314
|
return base;
|
|
1037
1315
|
}
|
|
1038
1316
|
if (v.kind === "static") {
|
|
1039
|
-
base.literal = v.value;
|
|
1317
|
+
base.literal = decodeEntities(v.value);
|
|
1040
1318
|
return base;
|
|
1041
1319
|
}
|
|
1042
1320
|
if (v.kind === "hole") {
|
|
@@ -1049,7 +1327,7 @@ var Lowerer = class {
|
|
|
1049
1327
|
let reactive = false;
|
|
1050
1328
|
let at;
|
|
1051
1329
|
const body = v.parts.map((p) => {
|
|
1052
|
-
if ("text" in p) return escapeTemplate(p.text);
|
|
1330
|
+
if ("text" in p) return escapeTemplate(decodeEntities(p.text));
|
|
1053
1331
|
const h = this.hole(p.hole);
|
|
1054
1332
|
reactive = reactive || h.reactive;
|
|
1055
1333
|
at ??= h.at;
|
|
@@ -1066,6 +1344,38 @@ function lowerTemplate(pieces, holes, used, opts = {}) {
|
|
|
1066
1344
|
return new Lowerer(holes, used, opts.sourceFile, opts.positionAt).lowerRoot(root.children);
|
|
1067
1345
|
}
|
|
1068
1346
|
|
|
1347
|
+
// ../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.6.0/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
|
|
1348
|
+
var comma = ",".charCodeAt(0);
|
|
1349
|
+
var semicolon = ";".charCodeAt(0);
|
|
1350
|
+
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
1351
|
+
var intToChar = new Uint8Array(64);
|
|
1352
|
+
var charToInt = new Uint8Array(128);
|
|
1353
|
+
for (let i = 0; i < chars.length; i++) {
|
|
1354
|
+
const c = chars.charCodeAt(i);
|
|
1355
|
+
intToChar[i] = c;
|
|
1356
|
+
charToInt[c] = i;
|
|
1357
|
+
}
|
|
1358
|
+
var bufLength = 1024 * 16;
|
|
1359
|
+
|
|
1360
|
+
// src/transform/styles.ts
|
|
1361
|
+
var SCOPE_ATTR = "data-fx-s";
|
|
1362
|
+
function applyTemplateStyles(ir, t) {
|
|
1363
|
+
const walk2 = (node) => {
|
|
1364
|
+
const children = node.children;
|
|
1365
|
+
if (children) {
|
|
1366
|
+
for (let i = children.length - 1; i >= 0; i--) {
|
|
1367
|
+
const child = children[i];
|
|
1368
|
+
if (child.kind === "element" && child.tag === "style" && t.owner) children.splice(i, 1);
|
|
1369
|
+
else walk2(child);
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
if (t.scope && node.kind === "element" && node.tag !== "style" && node.props && !node.props.some((p) => p.name === SCOPE_ATTR)) {
|
|
1373
|
+
node.props.unshift({ name: SCOPE_ATTR, kind: "attr", literal: t.scope });
|
|
1374
|
+
}
|
|
1375
|
+
};
|
|
1376
|
+
walk2(ir);
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1069
1379
|
// src/optimize/analyze-static.ts
|
|
1070
1380
|
function propReason(prop) {
|
|
1071
1381
|
switch (prop.kind) {
|
|
@@ -1341,6 +1651,7 @@ function compilePieces(pieces, holes, options = {}) {
|
|
|
1341
1651
|
...options.sourceFile ? { sourceFile: options.sourceFile } : {},
|
|
1342
1652
|
...options.positionAt ? { positionAt: options.positionAt } : {}
|
|
1343
1653
|
});
|
|
1654
|
+
if (options.templateStyles) applyTemplateStyles(ir, options.templateStyles);
|
|
1344
1655
|
analyzeStatic(ir);
|
|
1345
1656
|
resolveComponentSources(ir, {
|
|
1346
1657
|
resolver: createComponentResolver(options.resolve ?? []),
|
|
@@ -1424,7 +1735,7 @@ function componentGlobals(rules, options = {}) {
|
|
|
1424
1735
|
resolved.set(name, target);
|
|
1425
1736
|
}
|
|
1426
1737
|
}
|
|
1427
|
-
const usableIntrinsics = intrinsics ? Object.entries(INTRINSICS).filter(([, i]) => {
|
|
1738
|
+
const usableIntrinsics = intrinsics ? Object.entries({ ...INTRINSICS, ...TAG_INTRINSICS }).filter(([, i]) => {
|
|
1428
1739
|
const pkg = packageOf(i.module);
|
|
1429
1740
|
return !available || !pkg || available.has(pkg);
|
|
1430
1741
|
}) : [];
|