@torpor/view 0.4.13 → 0.4.15

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 (94) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{Cleanup-BGQ5zaxE.d.cts → Cleanup-CYsytTEc.d.cts} +1 -1
  3. package/dist/Cleanup-CYsytTEc.d.cts.map +1 -0
  4. package/dist/{Cleanup-Ca8IspaG.d.ts → Cleanup-CgjyN0lW.d.mts} +1 -1
  5. package/dist/Cleanup-CgjyN0lW.d.mts.map +1 -0
  6. package/dist/{Component-BDUCwkBQ.d.cts → Component-DmWGMgak.d.mts} +1 -1
  7. package/dist/{Component-BDUCwkBQ.d.cts.map → Component-DmWGMgak.d.mts.map} +1 -1
  8. package/dist/{Component-JVwSemf-.d.ts → Component-kGLRFYg2.d.cts} +1 -1
  9. package/dist/Component-kGLRFYg2.d.cts.map +1 -0
  10. package/dist/{Region-BrsZLZUe.d.ts → Region-Bb6HAb-F.d.cts} +2 -2
  11. package/dist/{Region-Cf7OeBIQ.d.cts.map → Region-Bb6HAb-F.d.cts.map} +1 -1
  12. package/dist/{Region-Cf7OeBIQ.d.cts → Region-CTchywkr.d.mts} +2 -2
  13. package/dist/Region-CTchywkr.d.mts.map +1 -0
  14. package/dist/compile.cjs +238 -68
  15. package/dist/compile.d.cts +1 -1
  16. package/dist/{compile.d.ts → compile.d.mts} +2 -2
  17. package/dist/compile.d.mts.map +1 -0
  18. package/dist/{compile.js → compile.mjs} +238 -67
  19. package/dist/compile.mjs.map +1 -0
  20. package/dist/dev.cjs +1 -2
  21. package/dist/dev.d.cts +2 -2
  22. package/dist/{dev.d.ts → dev.d.mts} +3 -3
  23. package/dist/dev.d.mts.map +1 -0
  24. package/dist/{dev.js → dev.mjs} +2 -2
  25. package/dist/{dev.cjs.map → dev.mjs.map} +1 -1
  26. package/dist/devContext-B3yskfhA.cjs +1 -2
  27. package/dist/{devContext-CevrTlUO.js → devContext-CQ8RhBX-.mjs} +1 -1
  28. package/dist/{devContext-B3yskfhA.cjs.map → devContext-CQ8RhBX-.mjs.map} +1 -1
  29. package/dist/{formatText-Ck04q8_X.cjs → formatText--9zsK5Nq.cjs} +4 -4
  30. package/dist/{formatText-OyD8MNAM.js → formatText-B8u71S_K.mjs} +4 -3
  31. package/dist/formatText-B8u71S_K.mjs.map +1 -0
  32. package/dist/{formatText-BlLF3PPm.d.ts → formatText-BNP3P38F.d.cts} +3 -3
  33. package/dist/formatText-BNP3P38F.d.cts.map +1 -0
  34. package/dist/{formatText-Bcb1JvW5.d.cts → formatText-D6Ov8Ub0.d.mts} +3 -3
  35. package/dist/formatText-D6Ov8Ub0.d.mts.map +1 -0
  36. package/dist/index.cjs +2 -3
  37. package/dist/index.d.cts +4 -4
  38. package/dist/{index.d.ts → index.d.mts} +5 -5
  39. package/dist/index.d.mts.map +1 -0
  40. package/dist/{index.js → index.mjs} +3 -3
  41. package/dist/{index.cjs.map → index.mjs.map} +1 -1
  42. package/dist/ssr.cjs +2 -3
  43. package/dist/ssr.d.cts +2 -2
  44. package/dist/{ssr.d.ts → ssr.d.mts} +3 -3
  45. package/dist/ssr.d.mts.map +1 -0
  46. package/dist/{ssr.js → ssr.mjs} +2 -2
  47. package/dist/{ssr.cjs.map → ssr.mjs.map} +1 -1
  48. package/package.json +17 -17
  49. package/scripts/copyToRepl.ts +6 -6
  50. package/src/compile/build/client/addMappedTextWithOffsets.ts +31 -0
  51. package/src/compile/build/client/buildAddFragment.ts +11 -11
  52. package/src/compile/build/client/buildComponentNode.ts +126 -29
  53. package/src/compile/build/client/buildElementNode.ts +65 -8
  54. package/src/compile/build/client/buildIfNode.ts +1 -1
  55. package/src/compile/build/client/buildSwitchNode.ts +1 -1
  56. package/src/compile/build/client/buildTextNode.ts +13 -6
  57. package/src/compile/build/client/getAttributeOffsets.ts +90 -0
  58. package/src/compile/build/client/stashRunWithOffsets.ts +7 -1
  59. package/src/compile/build/server/buildServerElementNode.ts +1 -1
  60. package/src/compile/parse/parseTag.ts +1 -7
  61. package/src/compile/parse/parseText.ts +1 -1
  62. package/src/render/buildClasses.ts +1 -1
  63. package/src/render/buildStyles.ts +3 -1
  64. package/src/types/ClassValue.ts +6 -1
  65. package/src/types/StyleValue.ts +6 -1
  66. package/test/class/class.test.ts +31 -12
  67. package/test/class/components/output/Class-client.ts +62 -17
  68. package/test/class/components/output/Class-server.ts +40 -6
  69. package/test/class/components/temp/Class-client-c100fef7474dd892108c52b2cfed5825a3412e8b.ts +123 -0
  70. package/test/class/components/temp/Class-server-f42d0611a27002b493da55392baf7244d31e0d39.ts +78 -0
  71. package/test/source-maps/interpolated.test.ts +88 -0
  72. package/test/source-maps/parse.test.ts +1 -1
  73. package/tsdown.config.ts +2 -9
  74. package/vitest.config.ts +3 -3
  75. package/dist/Cleanup-BGQ5zaxE.d.cts.map +0 -1
  76. package/dist/Cleanup-Ca8IspaG.d.ts.map +0 -1
  77. package/dist/Component-JVwSemf-.d.ts.map +0 -1
  78. package/dist/Region-BrsZLZUe.d.ts.map +0 -1
  79. package/dist/compile.cjs.map +0 -1
  80. package/dist/compile.d.ts.map +0 -1
  81. package/dist/compile.js.map +0 -1
  82. package/dist/dev.d.ts.map +0 -1
  83. package/dist/dev.js.map +0 -1
  84. package/dist/devContext-CevrTlUO.js.map +0 -1
  85. package/dist/formatText-Bcb1JvW5.d.cts.map +0 -1
  86. package/dist/formatText-BlLF3PPm.d.ts.map +0 -1
  87. package/dist/formatText-Ck04q8_X.cjs.map +0 -1
  88. package/dist/formatText-OyD8MNAM.js.map +0 -1
  89. package/dist/index.d.ts.map +0 -1
  90. package/dist/index.js.map +0 -1
  91. package/dist/ssr.d.ts.map +0 -1
  92. package/dist/ssr.js.map +0 -1
  93. package/test/class/components/temp/Class-client-d17977d356d8c8f964eaa1ac5a381814b33c22ba.ts +0 -78
  94. package/test/class/components/temp/Class-server-e4adcf242d5620acfcfa31c57b9b35c323a15664.ts +0 -44
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @torpor/view
2
2
 
3
+ ## 0.4.15
4
+
5
+ ### Patch Changes
6
+
7
+ - 1b19c1d: Fix: set style hash on component classes
8
+
9
+ ## 0.4.14
10
+
11
+ ### Patch Changes
12
+
13
+ - 9bca98e: Feat: mapping for interpolated attribute values
14
+ - 7382b6d: Fix: allow null and undefined in classes and styles
15
+ - d68d347: Fix: some mapping
16
+ - 4e3d726: Fix: ifs and switches in @heads don't add elements
17
+ - adfa504: Fix: ok I think those types are finally right
18
+
3
19
  ## 0.4.13
4
20
 
5
21
  ### Patch Changes
@@ -6,4 +6,4 @@
6
6
  type Cleanup = () => void;
7
7
  //#endregion
8
8
  export { Cleanup as t };
9
- //# sourceMappingURL=Cleanup-BGQ5zaxE.d.cts.map
9
+ //# sourceMappingURL=Cleanup-CYsytTEc.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cleanup-CYsytTEc.d.cts","names":[],"sources":["../src/types/Cleanup.ts"],"sourcesContent":[],"mappings":";;;;;KAIK,OAAA"}
@@ -6,4 +6,4 @@
6
6
  type Cleanup = () => void;
7
7
  //#endregion
8
8
  export { Cleanup as t };
9
- //# sourceMappingURL=Cleanup-Ca8IspaG.d.ts.map
9
+ //# sourceMappingURL=Cleanup-CgjyN0lW.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cleanup-CgjyN0lW.d.mts","names":[],"sources":["../src/types/Cleanup.ts"],"sourcesContent":[],"mappings":";;;;;KAIK,OAAA"}
@@ -8,4 +8,4 @@ type SlotRender = ($sparent: ParentNode, $sanchor: Node | null, $sprops?: Record
8
8
  type Component = ($parent: ParentNode, $anchor: Node | null, $props?: Record<PropertyKey, any>, $context?: Record<PropertyKey, any>, $slots?: Record<string, SlotRender>) => void;
9
9
  //#endregion
10
10
  export { SlotRender as n, Component as t };
11
- //# sourceMappingURL=Component-BDUCwkBQ.d.cts.map
11
+ //# sourceMappingURL=Component-DmWGMgak.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Component-BDUCwkBQ.d.cts","names":[],"sources":["../src/types/SlotRender.ts","../src/types/Component.ts"],"sourcesContent":[],"mappings":";KAAK,UAAA,cACM,sBACA,uBACA,OAAO,8BACN,OAAO;;;;;;KCCd,SAAA,GDFa,CAAA,OAAA,ECGR,UDHQ,EAAA,OAAA,ECIR,IDJQ,GAAA,IAAA,EAAA,MAAA,CAAA,ECKR,MDLQ,CCKD,WDLC,EAAA,GAAA,CAAA,EAAA,QAAA,CAAA,ECMN,MDNM,CCMC,WDND,EAAA,GAAA,CAAA,EAAA,MAAA,CAAA,ECOR,MDPQ,CAAA,MAAA,ECOO,UDPP,CAAA,EAAA,GAAA,IAAA"}
1
+ {"version":3,"file":"Component-DmWGMgak.d.mts","names":[],"sources":["../src/types/SlotRender.ts","../src/types/Component.ts"],"sourcesContent":[],"mappings":";KAAK,UAAA,cACM,sBACA,uBACA,OAAO,8BACN,OAAO;;;;;;KCCd,SAAA,GDFa,CAAA,OAAA,ECGR,UDHQ,EAAA,OAAA,ECIR,IDJQ,GAAA,IAAA,EAAA,MAAA,CAAA,ECKR,MDLQ,CCKD,WDLC,EAAA,GAAA,CAAA,EAAA,QAAA,CAAA,ECMN,MDNM,CCMC,WDND,EAAA,GAAA,CAAA,EAAA,MAAA,CAAA,ECOR,MDPQ,CAAA,MAAA,ECOO,UDPP,CAAA,EAAA,GAAA,IAAA"}
@@ -8,4 +8,4 @@ type SlotRender = ($sparent: ParentNode, $sanchor: Node | null, $sprops?: Record
8
8
  type Component = ($parent: ParentNode, $anchor: Node | null, $props?: Record<PropertyKey, any>, $context?: Record<PropertyKey, any>, $slots?: Record<string, SlotRender>) => void;
9
9
  //#endregion
10
10
  export { SlotRender as n, Component as t };
11
- //# sourceMappingURL=Component-JVwSemf-.d.ts.map
11
+ //# sourceMappingURL=Component-kGLRFYg2.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component-kGLRFYg2.d.cts","names":[],"sources":["../src/types/SlotRender.ts","../src/types/Component.ts"],"sourcesContent":[],"mappings":";KAAK,UAAA,cACM,sBACA,uBACA,OAAO,8BACN,OAAO;;;;;;KCCd,SAAA,GDFa,CAAA,OAAA,ECGR,UDHQ,EAAA,OAAA,ECIR,IDJQ,GAAA,IAAA,EAAA,MAAA,CAAA,ECKR,MDLQ,CCKD,WDLC,EAAA,GAAA,CAAA,EAAA,QAAA,CAAA,ECMN,MDNM,CCMC,WDND,EAAA,GAAA,CAAA,EAAA,MAAA,CAAA,ECOR,MDPQ,CAAA,MAAA,ECOO,UDPP,CAAA,EAAA,GAAA,IAAA"}
@@ -1,4 +1,4 @@
1
- import { t as Cleanup } from "./Cleanup-Ca8IspaG.js";
1
+ import { t as Cleanup } from "./Cleanup-CYsytTEc.cjs";
2
2
 
3
3
  //#region src/types/constants.d.ts
4
4
  /**
@@ -198,4 +198,4 @@ interface Region {
198
198
  }
199
199
  //#endregion
200
200
  export { Computed as i, Effect as n, ProxySignal as r, Region as t };
201
- //# sourceMappingURL=Region-BrsZLZUe.d.ts.map
201
+ //# sourceMappingURL=Region-Bb6HAb-F.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Region-Cf7OeBIQ.d.cts","names":[],"sources":["../src/types/constants.ts","../src/types/Computed.ts","../src/types/ProxySignal.ts","../src/types/Subscription.ts","../src/types/Effect.ts","../src/types/Region.ts"],"sourcesContent":[],"mappings":";;;;;;AAGa,cAAA,WAAA,GAAA,CAAA;AAKb;AAKA;;cALa,aAAA;;ACPiB;;AAgBtB,cDJK,WAAA,GCIL,CAAA;;;;ADdR;AAKA;AAKA;;UCLyB;;AAPK;;EAgBtB,IAAA,EAAA,OALM,aAKN;EAKI;;;EAiCD,KAAA,EAtCH,CAsCG;EAAA;;;aAjCC;ECrBgB;;;EAoBP,WAAA,EDMP,YCNO,GAAA,IAAA;EAAA;;;eDWP;EE9Be;;;;;;EA2BhB,MAAA,EAAA,OAAA;EAQI;;;;;ACnCW;;EAehB,QAAA,EAAA,OAAA;EAKF;;;EAoBQ,QAAA,EHaP,YGbO,GAAA,IAAA;EAAA;;;;;;;;AJvClB;AAKA;AAKA;UENyB,WAAA;;;ADNK;EAWhB,IAAA,EAAA,OCDA,WDCA;EAKN;;;EAeM,WAAA,EChBA,YDgBA,GAAA,IAAA;EAuBH;;;sBClCU;;AApBO;;EAed,IAAA,CAAA,EAAA,MAAA;;;;AFbd;AAKA;AAKA;;UGLyB,YAAA;;AFPK;;EAgBtB,MAAA,EELC,WFKD,GELe,QFKf;EAKI;;;EAiCD,MAAA,EEtCF,QFsCE,GEtCS,MFsCT;EAAA;;;;ECtDiB,UAMH,ECgBZ,YDhBY,GAAA,IAAA;EAIX;;;;cCkBD;;;AA3BgB;;;;EAeT,cAAA,EAoBH,YApBG,GAAA,IAAA;EAMP;;;;;;;ACrBe;;;EAoBlB,MAAA,EAAA,OAAA;EAKI;;;EAeI,IAAA,CAAA,EAAA,MAAA;;;;AJvClB;AAKA;AAKA;UINyB,MAAA;;;AHNK;EAWhB,IAAA,EAAA,OGDA,WHCA;EAKN;;;;EAsCG,GAAA,EAAA,GAAA,GGtCC,OHsCD,GAAA,IAAA;EAAA;;;WGjCD;EFrBkB;;;EAoBP,WAAA,EEMP,YFNO,GAAA,IAAA;EAAA,UAAA,EEWR,MFXQ,GAAA,IAAA;;;;ECnBQ,MAMJ,EAAA,MAAA;EAIhB;;;EAKW,eAAA,ECyBF,MDzBE,GAAA,IAAA;EAMP;;;EAcI,QAAA,EAAA,OAAA;;;;ECnCW,IAKH,CAAA,EAAA,MAAA;;;;UCPA,MAAA;aACb;WACF;ELCV,cAAa,EKCI,MLDJ,GAAA,IAAA;EAKb,UAAa,EKHA,MLGA,GAAA,IAAA;EAKb,KAAa,EAAA,MAAA;;;;ACZiB;EAWhB,UAAA,EIAD,GJAC,CIAG,SJAH,CAAA,GAAA,IAAA;EAKN;;;EAeM,IAAA,CAAA,EAAA,MAAA"}
1
+ {"version":3,"file":"Region-Bb6HAb-F.d.cts","names":[],"sources":["../src/types/constants.ts","../src/types/Computed.ts","../src/types/ProxySignal.ts","../src/types/Subscription.ts","../src/types/Effect.ts","../src/types/Region.ts"],"sourcesContent":[],"mappings":";;;;;;AAGa,cAAA,WAAA,GAAA,CAAA;AAKb;AAKA;;cALa,aAAA;;ACPiB;;AAgBtB,cDJK,WAAA,GCIL,CAAA;;;;ADdR;AAKA;AAKA;;UCLyB;;AAPK;;EAgBtB,IAAA,EAAA,OALM,aAKN;EAKI;;;EAiCD,KAAA,EAtCH,CAsCG;EAAA;;;aAjCC;ECrBgB;;;EAoBP,WAAA,EDMP,YCNO,GAAA,IAAA;EAAA;;;eDWP;EE9Be;;;;;;EA2BhB,MAAA,EAAA,OAAA;EAQI;;;;;ACnCW;;EAehB,QAAA,EAAA,OAAA;EAKF;;;EAoBQ,QAAA,EHaP,YGbO,GAAA,IAAA;EAAA;;;;;;;;AJvClB;AAKA;AAKA;UENyB,WAAA;;;ADNK;EAWhB,IAAA,EAAA,OCDA,WDCA;EAKN;;;EAeM,WAAA,EChBA,YDgBA,GAAA,IAAA;EAuBH;;;sBClCU;;AApBO;;EAed,IAAA,CAAA,EAAA,MAAA;;;;AFbd;AAKA;AAKA;;UGLyB,YAAA;;AFPK;;EAgBtB,MAAA,EELC,WFKD,GELe,QFKf;EAKI;;;EAiCD,MAAA,EEtCF,QFsCE,GEtCS,MFsCT;EAAA;;;;ECtDiB,UAMH,ECgBZ,YDhBY,GAAA,IAAA;EAIX;;;;cCkBD;;;AA3BgB;;;;EAeT,cAAA,EAoBH,YApBG,GAAA,IAAA;EAMP;;;;;;;ACrBe;;;EAoBlB,MAAA,EAAA,OAAA;EAKI;;;EAeI,IAAA,CAAA,EAAA,MAAA;;;;AJvClB;AAKA;AAKA;UINyB,MAAA;;;AHNK;EAWhB,IAAA,EAAA,OGDA,WHCA;EAKN;;;;EAsCG,GAAA,EAAA,GAAA,GGtCC,OHsCD,GAAA,IAAA;EAAA;;;WGjCD;EFrBkB;;;EAoBP,WAAA,EEMP,YFNO,GAAA,IAAA;EAAA,UAAA,EEWR,MFXQ,GAAA,IAAA;;;;ECnBQ,MAMJ,EAAA,MAAA;EAIhB;;;EAKW,eAAA,ECyBF,MDzBE,GAAA,IAAA;EAMP;;;EAcI,QAAA,EAAA,OAAA;;;;ECnCW,IAKH,CAAA,EAAA,MAAA;;;;UCPA,MAAA;aACb;WACF;ELCV,cAAa,EKCI,MLDJ,GAAA,IAAA;EAKb,UAAa,EKHA,MLGA,GAAA,IAAA;EAKb,KAAa,EAAA,MAAA;;;;ACZiB;EAWhB,UAAA,EIAD,GJAC,CIAG,SJAH,CAAA,GAAA,IAAA;EAKN;;;EAeM,IAAA,CAAA,EAAA,MAAA"}
@@ -1,4 +1,4 @@
1
- import { t as Cleanup } from "./Cleanup-BGQ5zaxE.cjs";
1
+ import { t as Cleanup } from "./Cleanup-CgjyN0lW.mjs";
2
2
 
3
3
  //#region src/types/constants.d.ts
4
4
  /**
@@ -198,4 +198,4 @@ interface Region {
198
198
  }
199
199
  //#endregion
200
200
  export { Computed as i, Effect as n, ProxySignal as r, Region as t };
201
- //# sourceMappingURL=Region-Cf7OeBIQ.d.cts.map
201
+ //# sourceMappingURL=Region-CTchywkr.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Region-CTchywkr.d.mts","names":[],"sources":["../src/types/constants.ts","../src/types/Computed.ts","../src/types/ProxySignal.ts","../src/types/Subscription.ts","../src/types/Effect.ts","../src/types/Region.ts"],"sourcesContent":[],"mappings":";;;;;;AAGa,cAAA,WAAA,GAAA,CAAA;AAKb;AAKA;;cALa,aAAA;;ACPiB;;AAgBtB,cDJK,WAAA,GCIL,CAAA;;;;ADdR;AAKA;AAKA;;UCLyB;;AAPK;;EAgBtB,IAAA,EAAA,OALM,aAKN;EAKI;;;EAiCD,KAAA,EAtCH,CAsCG;EAAA;;;aAjCC;ECrBgB;;;EAoBP,WAAA,EDMP,YCNO,GAAA,IAAA;EAAA;;;eDWP;EE9Be;;;;;;EA2BhB,MAAA,EAAA,OAAA;EAQI;;;;;ACnCW;;EAehB,QAAA,EAAA,OAAA;EAKF;;;EAoBQ,QAAA,EHaP,YGbO,GAAA,IAAA;EAAA;;;;;;;;AJvClB;AAKA;AAKA;UENyB,WAAA;;;ADNK;EAWhB,IAAA,EAAA,OCDA,WDCA;EAKN;;;EAeM,WAAA,EChBA,YDgBA,GAAA,IAAA;EAuBH;;;sBClCU;;AApBO;;EAed,IAAA,CAAA,EAAA,MAAA;;;;AFbd;AAKA;AAKA;;UGLyB,YAAA;;AFPK;;EAgBtB,MAAA,EELC,WFKD,GELe,QFKf;EAKI;;;EAiCD,MAAA,EEtCF,QFsCE,GEtCS,MFsCT;EAAA;;;;ECtDiB,UAMH,ECgBZ,YDhBY,GAAA,IAAA;EAIX;;;;cCkBD;;;AA3BgB;;;;EAeT,cAAA,EAoBH,YApBG,GAAA,IAAA;EAMP;;;;;;;ACrBe;;;EAoBlB,MAAA,EAAA,OAAA;EAKI;;;EAeI,IAAA,CAAA,EAAA,MAAA;;;;AJvClB;AAKA;AAKA;UINyB,MAAA;;;AHNK;EAWhB,IAAA,EAAA,OGDA,WHCA;EAKN;;;;EAsCG,GAAA,EAAA,GAAA,GGtCC,OHsCD,GAAA,IAAA;EAAA;;;WGjCD;EFrBkB;;;EAoBP,WAAA,EEMP,YFNO,GAAA,IAAA;EAAA,UAAA,EEWR,MFXQ,GAAA,IAAA;;;;ECnBQ,MAMJ,EAAA,MAAA;EAIhB;;;EAKW,eAAA,ECyBF,MDzBE,GAAA,IAAA;EAMP;;;EAcI,QAAA,EAAA,OAAA;;;;ECnCW,IAKH,CAAA,EAAA,MAAA;;;;UCPA,MAAA;aACb;WACF;ELCV,cAAa,EKCI,MLDJ,GAAA,IAAA;EAKb,UAAa,EKHA,MLGA,GAAA,IAAA;EAKb,KAAa,EAAA,MAAA;;;;ACZiB;EAWhB,UAAA,EIAD,GJAC,CIAG,SJAH,CAAA,GAAA,IAAA;EAKN;;;EAeM,IAAA,CAAA,EAAA,MAAA"}
package/dist/compile.cjs CHANGED
@@ -300,6 +300,28 @@ function nextVarName(name, status) {
300
300
  return varName;
301
301
  }
302
302
 
303
+ //#endregion
304
+ //#region src/compile/build/client/addMappedTextWithOffsets.ts
305
+ function addMappedTextWithOffsets(preText, text, postText, spans, offsets, lengths, status, b) {
306
+ if (status.options.mapped === true) {
307
+ let mappedStart = b.toString().length + preText.length;
308
+ let functionBody = preText + text + postText;
309
+ b.append(functionBody);
310
+ for (let i = 0; i < spans.length; i++) {
311
+ let start = mappedStart + offsets[i];
312
+ let end = start + lengths[i];
313
+ status.map.push({
314
+ script: functionBody,
315
+ source: spans[i],
316
+ compiled: {
317
+ start,
318
+ end
319
+ }
320
+ });
321
+ }
322
+ } else b.append(preText + text + postText);
323
+ }
324
+
303
325
  //#endregion
304
326
  //#region src/compile/build/client/buildAddFragment.ts
305
327
  function buildAddFragment(node, status, b, parentName, anchorName) {
@@ -310,19 +332,7 @@ function buildAddFragment(node, status, b, parentName, anchorName) {
310
332
  if (fragment.effects.length > 0) {
311
333
  status.imports.add("$run");
312
334
  b.append("$run(() => {");
313
- if (status.options.mapped === true) for (let effect of fragment.effects) for (let i = 0; i < effect.spans.length; i++) {
314
- let start = b.toString().length + effect.offsets[i];
315
- b.append(effect.functionBody);
316
- let end = start + effect.lengths[i];
317
- status.map.push({
318
- script: effect.functionBody,
319
- source: effect.spans[i],
320
- compiled: {
321
- start,
322
- end
323
- }
324
- });
325
- }
335
+ if (status.options.mapped === true) for (let effect of fragment.effects) addMappedTextWithOffsets("", effect.functionBody, "", effect.spans, effect.offsets, effect.lengths, status, b);
326
336
  else b.append(fragment.effects.map((e) => e.functionBody).join("\n"));
327
337
  b.append(`}${status.options.dev === true ? `, "setAttributes"` : ""});`);
328
338
  }
@@ -705,6 +715,81 @@ function buildRun(functionName, functionBody, status, b) {
705
715
  addPopDevBoundary(status, b);
706
716
  }
707
717
 
718
+ //#endregion
719
+ //#region src/compile/utils/endOfString.ts
720
+ function endOfString(char, content, start) {
721
+ for (let j = start + 1; j < content.length; j++) if (content[j] === char && content[j - 1] !== "\\") return j;
722
+ return content.length;
723
+ }
724
+
725
+ //#endregion
726
+ //#region src/compile/build/client/getAttributeOffsets.ts
727
+ function getAttributeOffsets(value, span) {
728
+ value = trimQuotes(value);
729
+ let spans = [];
730
+ let offsets = [];
731
+ let lengths = [];
732
+ let textContent = "";
733
+ let reactiveStart = 0;
734
+ let level = 0;
735
+ for (let i = 0; i < value.length; i++) {
736
+ const char = value[i];
737
+ const nextChar = value[i + 1];
738
+ if (char === "{") {
739
+ level++;
740
+ if (level === 1) {
741
+ textContent += "${";
742
+ reactiveStart = textContent.length;
743
+ spans.push({
744
+ start: span.start + i + 2,
745
+ end: -1
746
+ });
747
+ offsets.push(reactiveStart + 1);
748
+ continue;
749
+ }
750
+ } else if (char === "}") {
751
+ level--;
752
+ if (level === 0) {
753
+ spans.at(-1).end = span.start + i + 2;
754
+ lengths.push(textContent.length - reactiveStart);
755
+ textContent += "}";
756
+ continue;
757
+ }
758
+ } else if (char === "`" && level === 0) textContent += "\\";
759
+ else if (level > 0) {
760
+ if (char === "/" && nextChar === "/") {
761
+ let start = i;
762
+ i = value.indexOf("\n", i);
763
+ textContent += value.substring(start, i + 1);
764
+ continue;
765
+ } else if (char === "/" && nextChar === "*") {
766
+ let start = i;
767
+ i = value.indexOf("*/", i) + 1;
768
+ textContent += value.substring(start, i + 1);
769
+ continue;
770
+ } else if (char === "\"" || char === "'") {
771
+ let start = i;
772
+ i = endOfString(char, value, i);
773
+ textContent += value.substring(start, i + 1);
774
+ continue;
775
+ } else if (char === "`") {
776
+ let start = i;
777
+ i = endOfTemplateString(value, i);
778
+ textContent += value.substring(start, i + 1);
779
+ continue;
780
+ }
781
+ }
782
+ textContent += value[i];
783
+ }
784
+ value = `\`${textContent}\``;
785
+ return {
786
+ newValue: value,
787
+ spans,
788
+ offsets,
789
+ lengths
790
+ };
791
+ }
792
+
708
793
  //#endregion
709
794
  //#region src/compile/build/client/buildComponentNode.ts
710
795
  function buildComponentNode(node, status, b, root = false) {
@@ -717,51 +802,125 @@ function buildComponentNode(node, status, b, root = false) {
717
802
  let props = [];
718
803
  let runs = [];
719
804
  let bindingRuns = [];
720
- for (let { name, value, reactive, fullyReactive, span } of node.attributes) if (name === "self" && node.tagName === "@component") {} else if (name.startsWith("&") && value != null && fullyReactive) {
805
+ for (let { name, value, reactive, fullyReactive, span } of node.attributes) if (name === "self" && node.tagName === "@component") {} else if (value != null && fullyReactive) if (name.startsWith("&")) {
721
806
  name = name.substring(1);
722
807
  props.push({
723
808
  name,
809
+ preText: "",
724
810
  value,
725
- span
811
+ postText: "",
812
+ spans: [span],
813
+ offsets: [],
814
+ lengths: []
726
815
  });
727
816
  runs.push(`${propsName}["${name}"] = ${value};`);
728
817
  bindingRuns.push(`${value} = ${propsName}["${name}"];`);
729
- } else if (name === "class" && value != null) {
818
+ } else if (name === "class") {
730
819
  status.imports.add("t_class");
731
820
  const params = [value];
732
821
  if (node.scopeStyles) params.push(`"torp-${status.styleHash}"`);
733
- value = `t_class(${params.join(", ")})`;
822
+ value = params.join(", ");
734
823
  props.push({
735
824
  name,
825
+ preText: "t_class(",
736
826
  value,
737
- span
827
+ postText: ")",
828
+ spans: [span],
829
+ offsets: [],
830
+ lengths: []
738
831
  });
739
- runs.push(`${propsName}["${name}"] = ${value};`);
740
- } else if (name === "style" && value != null) {
832
+ runs.push(`${propsName}["${name}"] = t_class(${value});`);
833
+ } else if (name === "style") {
741
834
  status.imports.add("t_style");
742
- value = `t_style(${value})`;
743
835
  props.push({
744
836
  name,
837
+ preText: "t_style(",
745
838
  value,
746
- span
839
+ postText: ")",
840
+ spans: [span],
841
+ offsets: [],
842
+ lengths: []
843
+ });
844
+ runs.push(`${propsName}["${name}"] = t_style(${value});`);
845
+ } else {
846
+ props.push({
847
+ name,
848
+ preText: "",
849
+ value,
850
+ postText: "",
851
+ spans: [span],
852
+ offsets: [],
853
+ lengths: []
747
854
  });
748
855
  runs.push(`${propsName}["${name}"] = ${value};`);
856
+ }
857
+ else if (value != null && reactive) {
858
+ const { newValue, spans, offsets, lengths } = getAttributeOffsets(value, span);
859
+ value = newValue;
860
+ if (name === "class") {
861
+ status.imports.add("t_class");
862
+ const params = [value];
863
+ if (node.scopeStyles) params.push(`"torp-${status.styleHash}"`);
864
+ value = params.join(", ");
865
+ props.push({
866
+ name,
867
+ preText: "t_class(",
868
+ value,
869
+ postText: ")",
870
+ spans,
871
+ offsets,
872
+ lengths
873
+ });
874
+ runs.push(`${propsName}["${name}"] = t_class(${value});`);
875
+ } else if (name === "style") {
876
+ status.imports.add("t_style");
877
+ props.push({
878
+ name,
879
+ preText: "t_style(",
880
+ value,
881
+ postText: ")",
882
+ spans,
883
+ offsets,
884
+ lengths
885
+ });
886
+ runs.push(`${propsName}["${name}"] = t_style(${value});`);
887
+ } else {
888
+ props.push({
889
+ name,
890
+ preText: "",
891
+ value,
892
+ postText: "",
893
+ spans,
894
+ offsets,
895
+ lengths
896
+ });
897
+ runs.push(`${propsName}["${name}"] = ${value};`);
898
+ }
749
899
  } else if (value != null) {
900
+ if (name === "class" && node.scopeStyles) value = `"${trimQuotes(value)} torp-${status.styleHash}"`;
750
901
  props.push({
751
902
  name,
903
+ preText: "",
752
904
  value,
753
- span
905
+ postText: "",
906
+ spans: [span],
907
+ offsets: [],
908
+ lengths: []
754
909
  });
755
- if (reactive) runs.push(`${propsName}["${name}"] = ${value};`);
756
910
  } else props.push({
757
911
  name,
912
+ preText: "",
758
913
  value: "true",
759
- span
914
+ postText: "",
915
+ spans: [span],
916
+ offsets: [],
917
+ lengths: []
760
918
  });
761
919
  b.append(`const ${propsName} = $watch({`);
762
920
  for (let p of props) {
763
921
  let value = replaceForVarNames(p.value, status);
764
- addMappedText(`${p.name}: `, value, ",", p.span, status, b);
922
+ if (p.spans.length === 1) addMappedText(`${p.name}: ` + p.preText, value, p.postText + ",", p.spans[0], status, b);
923
+ else addMappedTextWithOffsets(`${p.name}: ` + p.preText, value, p.postText + ",", p.spans, p.offsets, p.lengths, status, b);
765
924
  }
766
925
  b.append("});");
767
926
  if (runs.length) buildRun("setProps", replaceForVarNames(runs.join("\n"), status), status, b);
@@ -1100,7 +1259,7 @@ function buildIfNode(node, status, b) {
1100
1259
  b.append(`
1101
1260
  const ${regionName} = t_region(${status.options.dev === true ? `"if"` : ""});
1102
1261
  let ${indexName} = -1;
1103
- t_run_control(${regionName}, ${anchorName}, (t_before) => {`);
1262
+ t_run_control(${regionName}, ${anchorName}, (${status.inHead ? "" : "t_before"}) => {`);
1104
1263
  let index = 0;
1105
1264
  for (let branch of branches) buildIfBranch(branch, status, b, parentName, regionName, indexName, index++);
1106
1265
  b.append(`}${status.options.dev === true ? `, "runIf"` : ""});`);
@@ -1209,7 +1368,7 @@ function buildSwitchNode(node, status, b) {
1209
1368
  b.append(`
1210
1369
  const ${regionName} = t_region(${status.options.dev === true ? `"switch"` : ""});
1211
1370
  let ${indexName} = -1;
1212
- t_run_control(${regionName}, ${anchorName}, (t_before) => {`);
1371
+ t_run_control(${regionName}, ${anchorName}, (${status.inHead ? "" : "t_before"}) => {`);
1213
1372
  addMappedText("", `${replaceForVarNames(node.statement, status)}`, " {", node.span, status, b);
1214
1373
  let index = 0;
1215
1374
  for (let branch of branches) buildSwitchBranch(branch, status, b, parentName, regionName, indexName, index++);
@@ -1331,6 +1490,26 @@ function stashRun(fragment, functionStart, value, functionEnd, span, status) {
1331
1490
  });
1332
1491
  }
1333
1492
 
1493
+ //#endregion
1494
+ //#region src/compile/build/client/stashRunWithOffsets.ts
1495
+ function stashRunWithOffsets(fragment, functionStart, value, functionEnd, spans, offsets, lengths, status) {
1496
+ let functionBody = functionStart + value + functionEnd;
1497
+ for (let i = 0; i < offsets.length; i++) {
1498
+ offsets[i] += functionStart.length;
1499
+ const oldLength = functionBody.length;
1500
+ functionBody = functionBody.substring(0, offsets[i]) + replaceForVarNames(functionBody.substring(offsets[i], offsets[i] + lengths[i]), status) + functionBody.substring(offsets[i] + lengths[i]);
1501
+ const changedLength = functionBody.length - oldLength;
1502
+ lengths[i] += changedLength;
1503
+ for (let j = i + 1; j < offsets.length; j++) offsets[j] += changedLength;
1504
+ }
1505
+ fragment.effects.push({
1506
+ functionBody,
1507
+ spans,
1508
+ offsets,
1509
+ lengths
1510
+ });
1511
+ }
1512
+
1334
1513
  //#endregion
1335
1514
  //#region src/compile/build/client/buildElementNode.ts
1336
1515
  function buildElementNode(node, status, b, parentName, root = false) {
@@ -1420,26 +1599,46 @@ function buildElementAttributes$1(node, varName, status, b) {
1420
1599
  let { value, fullyReactive } = refAttribute;
1421
1600
  if (value != null && fullyReactive) b.append(`${value} = ${varName};`);
1422
1601
  }
1423
- for (let { name, value, reactive, span: range } of node.attributes) if (name === "self" && node.tagName === "@element") {} else if (name === "&ref") {} else if (value != null && reactive) if (name === "&group") buildBindGroupAttribute(node, varName, value, status, b);
1602
+ for (let { name, value, reactive, fullyReactive, span } of node.attributes) if (name === "self" && node.tagName === "@element") {} else if (name === "&ref") {} else if (value != null && fullyReactive) if (name === "&group") buildBindGroupAttribute(node, varName, value, status, b);
1424
1603
  else if (name === "&value" || name === "&checked") buildBindAttribute(node, varName, name, value, status, b);
1425
1604
  else if (name === "onmount") buildMount("elMount", `return (${trimEnd(value.trim(), ";")})(${varName});`, status, b);
1426
- else if (name.startsWith("on")) buildEventAttribute(varName, name, value, range, status, b);
1605
+ else if (name.startsWith("on")) buildEventAttribute(varName, name, value, span, status, b);
1427
1606
  else if (name.startsWith("transition")) buildTransitionAttribute(node, varName, name, value, status, b);
1428
1607
  else if (name === "class") {
1429
1608
  status.imports.add("t_class");
1430
1609
  const params = [value];
1431
1610
  if (node.scopeStyles) params.push(`"torp-${status.styleHash}"`);
1432
1611
  const propName = status.ns ? "className.baseVal" : "className";
1433
- stashRun(fragment, `${status.ns ? "// @ts-ignore\n" : ""}${varName}.${propName} = t_class(`, params.join(", "), ");", range, status);
1612
+ stashRun(fragment, `${status.ns ? "// @ts-ignore\n" : ""}${varName}.${propName} = t_class(`, params.join(", "), ");", span, status);
1434
1613
  } else if (name === "style") {
1435
1614
  status.imports.add("t_style");
1436
- stashRun(fragment, `${varName}.setAttribute("style", t_style(`, value, "));", range, status);
1615
+ stashRun(fragment, `${varName}.setAttribute("style", t_style(`, value, "));", span, status);
1437
1616
  } else if (name.includes("-")) {
1438
1617
  status.imports.add("t_attribute");
1439
- stashRun(fragment, `t_attribute(${varName}, "${name}", `, value, ");", range, status);
1618
+ stashRun(fragment, `t_attribute(${varName}, "${name}", `, value, ");", span, status);
1440
1619
  } else {
1441
1620
  status.imports.add("t_attribute");
1442
- stashRun(fragment, `t_attribute(${varName}, "${name}", `, value, ");", range, status);
1621
+ stashRun(fragment, `t_attribute(${varName}, "${name}", `, value, ");", span, status);
1622
+ }
1623
+ else if (value != null && reactive) {
1624
+ const { newValue, spans, offsets, lengths } = getAttributeOffsets(value, span);
1625
+ value = newValue;
1626
+ if (name === "class") {
1627
+ status.imports.add("t_class");
1628
+ const params = [value];
1629
+ if (node.scopeStyles) params.push(`"torp-${status.styleHash}"`);
1630
+ const propName = status.ns ? "className.baseVal" : "className";
1631
+ stashRunWithOffsets(fragment, `${status.ns ? "// @ts-ignore\n" : ""}${varName}.${propName} = t_class(`, params.join(", "), ");", spans, offsets, lengths, status);
1632
+ } else if (name === "style") {
1633
+ status.imports.add("t_style");
1634
+ stashRunWithOffsets(fragment, `${varName}.setAttribute("style", t_style(`, value, "));", spans, offsets, lengths, status);
1635
+ } else if (name.includes("-")) {
1636
+ status.imports.add("t_attribute");
1637
+ stashRunWithOffsets(fragment, `t_attribute(${varName}, "${name}", `, value, ");", spans, offsets, lengths, status);
1638
+ } else {
1639
+ status.imports.add("t_attribute");
1640
+ stashRunWithOffsets(fragment, `t_attribute(${varName}, "${name}", `, value, ");", spans, offsets, lengths, status);
1641
+ }
1443
1642
  }
1444
1643
  }
1445
1644
  function buildBindGroupAttribute(node, varName, value, status, b) {
@@ -1603,31 +1802,6 @@ function buildSpecialNode(node, status, b, parentName, root = false) {
1603
1802
  return "";
1604
1803
  }
1605
1804
 
1606
- //#endregion
1607
- //#region src/compile/utils/endOfString.ts
1608
- function endOfString(char, content, start) {
1609
- for (let j = start + 1; j < content.length; j++) if (content[j] === char && content[j - 1] !== "\\") return j;
1610
- return content.length;
1611
- }
1612
-
1613
- //#endregion
1614
- //#region src/compile/build/client/stashRunWithOffsets.ts
1615
- function stashRunWithOffsets(fragment, functionBody, spans, offsets, lengths, status) {
1616
- for (let i = 0; i < offsets.length; i++) {
1617
- const oldLength = functionBody.length;
1618
- functionBody = functionBody.substring(0, offsets[i]) + replaceForVarNames(functionBody.substring(offsets[i], offsets[i] + lengths[i]), status) + functionBody.substring(offsets[i] + lengths[i]);
1619
- const changedLength = functionBody.length - oldLength;
1620
- lengths[i] += changedLength;
1621
- for (let j = i + 1; j < offsets.length; j++) offsets[j] += changedLength;
1622
- }
1623
- fragment.effects.push({
1624
- functionBody,
1625
- spans,
1626
- offsets,
1627
- lengths
1628
- });
1629
- }
1630
-
1631
1805
  //#endregion
1632
1806
  //#region src/compile/build/client/buildTextNode.ts
1633
1807
  function buildTextNode(node, status) {
@@ -1697,11 +1871,8 @@ function buildTextNode(node, status) {
1697
1871
  offsetChange = 1;
1698
1872
  }
1699
1873
  status.imports.add("t_fmt");
1700
- let functionBody = `${node.varName}.textContent = `;
1701
- offsetChange += functionBody.length;
1702
1874
  offsets.map((_, i) => offsets[i] += offsetChange);
1703
- functionBody += `${textContent};`;
1704
- stashRunWithOffsets(fragment, functionBody, node.spans, offsets, lengths, status);
1875
+ stashRunWithOffsets(fragment, `${node.varName}.textContent = `, textContent, ";", node.spans, offsets, lengths, status);
1705
1876
  }
1706
1877
  }
1707
1878
 
@@ -2269,7 +2440,7 @@ function buildElementAttributes(node, status) {
2269
2440
  }
2270
2441
  else if (value != null && reactive) {
2271
2442
  status.imports.add("t_attr");
2272
- attributes.push(`${name}="${trimQuotes(value).replaceAll("${", "${t_attr(").replaceAll("}", ")}")}"`);
2443
+ attributes.push(`${name}="${trimQuotes(value).replaceAll("{", "${t_attr(").replaceAll("}", ")}")}"`);
2273
2444
  } else if (name === "class" && node.scopeStyles) {
2274
2445
  value = value ? `"${trimQuotes(value)} torp-${status.styleHash}"` : `"torp-${status.styleHash}"`;
2275
2446
  attributes.push(`${name}="${trimQuotes(value).replaceAll("\"", "&quot;")}"`);
@@ -2719,7 +2890,7 @@ function parseTag(status) {
2719
2890
  accept("<", status);
2720
2891
  let closeTag = accept("/", status);
2721
2892
  consumeSpace(status);
2722
- let tagStart = status.i;
2893
+ let tagStart = status.i + 1;
2723
2894
  let snailed = accept("@", status);
2724
2895
  let tagName = consumeAlphaNumeric(status);
2725
2896
  let tagEnd = status.i;
@@ -2783,7 +2954,7 @@ function parseAttribute(status) {
2783
2954
  value = value.substring(1, value.length - 1);
2784
2955
  valueStart++;
2785
2956
  valueEnd--;
2786
- } else if (reactive) value = `\`${trimQuotes(value).replaceAll("{", "${")}\``;
2957
+ }
2787
2958
  } else if (name.startsWith("{") && name.endsWith("}")) {
2788
2959
  value = name.substring(1, name.length - 1);
2789
2960
  valueStart++;
@@ -3801,5 +3972,4 @@ function parse(source) {
3801
3972
  //#endregion
3802
3973
  exports.build = build;
3803
3974
  exports.buildType = buildType;
3804
- exports.parse = parse;
3805
- //# sourceMappingURL=compile.cjs.map
3975
+ exports.parse = parse;
@@ -1,4 +1,4 @@
1
- import { t as Component } from "./Component-BDUCwkBQ.cjs";
1
+ import { t as Component } from "./Component-kGLRFYg2.cjs";
2
2
 
3
3
  //#region src/compile/types/Import.d.ts
4
4
  interface Import {
@@ -1,4 +1,4 @@
1
- import { t as Component } from "./Component-JVwSemf-.js";
1
+ import { t as Component } from "./Component-DmWGMgak.mjs";
2
2
 
3
3
  //#region src/compile/types/Import.d.ts
4
4
  interface Import {
@@ -216,4 +216,4 @@ interface ParseResult {
216
216
  declare function parse(source: string): ParseResult;
217
217
  //#endregion
218
218
  export { type Component, type Template, build, buildType, parse };
219
- //# sourceMappingURL=compile.d.ts.map
219
+ //# sourceMappingURL=compile.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.d.mts","names":[],"sources":["../src/compile/types/Import.ts","../src/compile/types/SourceSpan.ts","../src/compile/types/ScriptChunk.ts","../src/compile/types/nodes/Fragment.ts","../src/compile/types/nodes/NodeType.ts","../src/compile/types/nodes/TemplateNode.ts","../src/compile/types/nodes/ParentNode.ts","../src/compile/types/nodes/RootNode.ts","../src/compile/types/styles/Attribute.ts","../src/compile/types/styles/StyleBlock.ts","../src/compile/types/styles/Style.ts","../src/types/TemplateComponent.ts","../src/types/Template.ts","../src/compile/types/BuildOptions.ts","../src/compile/types/SourceMapping.ts","../src/compile/types/BuildResult.ts","../src/compile/build.ts","../src/compile/buildType.ts","../src/compile/types/CompileError.ts","../src/compile/types/ParseResult.ts","../src/compile/parse.ts"],"sourcesContent":[],"mappings":";;;UAAyB,MAAA;;;MAAA,EAAA,MAAA;;;;;;UCAA,UAAA;;;;;;UCEA,WAAA;;MFFA,EEIlB,UFJkB;;;;UGEA,QAAA;;MHFA,EAAA,MAAA;;;;SCAA,EEQhB,UFRgB,EAAA;;;;ECAG,MAEH,EAAA;;;;ECFG,CAAA,EAEH;;;;;;KCFpB,QAAA;;;UCEoB,YAAA;QAClB;aLHkB,CAAA,EAAA,OAAA;;;;;;UMGA,UAAA,SAAmB;MNHnB,EMIlB,QNJkB;YMKd;;;;ANLc,UOIA,QAAA,SAAiB,UPJjB,CAAA;;YOMd;aAGC;;;;UCTa,SAAA;;;;;;UCEA,UAAA;;YTFA,ESIZ,STJY,EAAA;YSKd;;;;UCHc,KAAA;;QVFA,EUIhB,UVJgB,EAAA;;;;;UWGA,iBAAA;OXHA,CAAA,EAAA,MAAA;;;;UCAA,CAAA,EAAA,OAAA;;;;ECAG,aAEH,CAAA,EAAA,MAAA;;;WSaf;ERfkB,IAEH,CAAA,EQcjB,QRdiB;UQehB;;;;;;;ENjBiB;;;;;;;;UOOD,QAAA;SXPA,EWQf,MXRe,EAAA;UWShB;cACI;;;;UCVY,YAAA;;;;;;;;;;;AXAG;;;;ACAA;;;;kBCAvB,CAAA,EAAA,OAAA;;;;ECAqB,YAED,CAAA,EAAA,MAAA;;;;USAA,aAAA;;QdFA,EcIhB,UdJgB;YcKd;;;;UCHc,WAAA;;QfFA,EAAA;;;;KCAA,EcQnB,adRmB,EAAA;;;;;;;;;;;iBeeD,KAAA,WAAgB,oBAAoB,eAAe;;;;;;;;;;;iBCHnD,SAAA,WAAoB,oBAAoB;;;UCZvC,YAAA;;;WlBAA,EAAA,MAAA;;;;SCAA,EAAA,MAAA;;;;UkBGA,WAAA;MnBHA,OAAA;UmBKhB;aACG;;;;;;;;;;;;iBCKY,KAAA,kBAAuB"}