@diagrammo/dgmo 0.92.0 → 0.93.0

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 (166) hide show
  1. package/dist/advanced.d.ts +85 -21
  2. package/dist/advanced.js +455 -422
  3. package/dist/block.d.ts +2 -2
  4. package/dist/block.js +75 -70
  5. package/dist/{chart-meta-BBqLnv5q.d.ts → chart-meta-BbjsRY7o.d.ts} +2 -2
  6. package/dist/chart-meta.d.ts +3 -3
  7. package/dist/chart-meta.js +25 -19
  8. package/dist/{chart-types-CbXlZFLd.d.ts → chart-types-Cppnp31G.d.ts} +173 -4
  9. package/dist/{charts-d3-QUUDVETP.js → charts-d3-ERYYVGP6.js} +7 -6
  10. package/dist/{chunk-HIWHIYLD.js → chunk-2TFXRBCD.js} +19 -19
  11. package/dist/{chunk-F7326NVM.js → chunk-3GCASUWA.js} +58 -25
  12. package/dist/{chunk-ZJAK6C7Y.js → chunk-3PP746YM.js} +6 -1
  13. package/dist/{chunk-WLLO3PZ3.js → chunk-472EOHVW.js} +17 -17
  14. package/dist/{chunk-LMP6Y7QO.js → chunk-4WQX55VX.js} +56 -24
  15. package/dist/{chunk-JLU52ZDT.js → chunk-5CBX66KB.js} +10 -10
  16. package/dist/{chunk-DEFBUZWV.js → chunk-5HAYT43L.js} +70 -54
  17. package/dist/{chunk-S7W75MIM.js → chunk-65GPEV5V.js} +21 -3
  18. package/dist/{chunk-Q6W2K33N.js → chunk-6XLMTAEX.js} +1 -1
  19. package/dist/{chunk-JKST4RTT.js → chunk-7OWK5K5C.js} +6 -6
  20. package/dist/{chunk-73EYNV4O.js → chunk-A5WIAMCT.js} +4 -6
  21. package/dist/{chunk-X5BUX2GK.js → chunk-ADVGV3P7.js} +1 -1
  22. package/dist/{chunk-45QUTYPD.js → chunk-CYDM2XII.js} +17 -17
  23. package/dist/chunk-CYTFO2LF.js +209 -0
  24. package/dist/{chunk-JRWUHLRP.js → chunk-D6PVMUCX.js} +51 -8
  25. package/dist/{chunk-BRSM6Z34.js → chunk-DAHQL57W.js} +14 -14
  26. package/dist/{chunk-RBFJT23E.js → chunk-EQWC76GQ.js} +6 -6
  27. package/dist/{chunk-ADNIO3XY.js → chunk-FIYW7JW4.js} +5 -5
  28. package/dist/{chunk-7ENDOHAA.js → chunk-FMAVHTYB.js} +919 -927
  29. package/dist/{chunk-3PFMGNOM.js → chunk-GJXMG4S3.js} +26 -11
  30. package/dist/chunk-GXCDD6NG.js +24 -0
  31. package/dist/{chunk-RJ2JW3FG.js → chunk-IESUM4N5.js} +2331 -2236
  32. package/dist/{chunk-62BP7AJU.js → chunk-IIV4SMJL.js} +18 -18
  33. package/dist/{chunk-5EBYPETE.js → chunk-J43OCO22.js} +3 -5
  34. package/dist/{chunk-L5NW3PVL.js → chunk-J6AEKIRQ.js} +1 -1
  35. package/dist/{chunk-2BJW7FSF.js → chunk-KBEWVCK3.js} +1 -1
  36. package/dist/{chunk-LRP5FXST.js → chunk-KCHQVED5.js} +18 -17
  37. package/dist/{chunk-Q6ZQX2HX.js → chunk-KCMGIYPO.js} +4 -6
  38. package/dist/{chunk-MDVJYRJT.js → chunk-KPGPK4SK.js} +22 -22
  39. package/dist/{chunk-Q2UFOKPB.js → chunk-KPSSNGAE.js} +22 -22
  40. package/dist/{chunk-V4D2ZQBE.js → chunk-KRPLP5LP.js} +6 -1
  41. package/dist/{chunk-BZX7QCXJ.js → chunk-KRU2LCIP.js} +15 -15
  42. package/dist/{chunk-HXULJZA2.js → chunk-LDDDKWL6.js} +6 -1
  43. package/dist/{chunk-NREU4JFE.js → chunk-LNVB75QU.js} +6 -8
  44. package/dist/{chunk-MX4SZLSV.js → chunk-LUDUDBO6.js} +16 -8
  45. package/dist/{chunk-2YAFDND3.js → chunk-M4NV5PPU.js} +4 -6
  46. package/dist/{chunk-26BBJUBW.js → chunk-M6ZQAFPD.js} +4 -6
  47. package/dist/{chunk-NPWVOFB3.js → chunk-MB2SQF7N.js} +1 -1
  48. package/dist/{chunk-6ZL2XYM7.js → chunk-MLY5ALOV.js} +6 -6
  49. package/dist/chunk-NJJCTEBM.js +416 -0
  50. package/dist/{chunk-OQW4ETJX.js → chunk-NM5V5EKY.js} +6 -1
  51. package/dist/{chunk-ONYO5WJW.js → chunk-NMK7KJZZ.js} +21 -21
  52. package/dist/{chunk-6BNNLVAR.js → chunk-NPDVWFAQ.js} +6 -1
  53. package/dist/{chunk-FTUMRSGT.js → chunk-P5FUWXPW.js} +4 -286
  54. package/dist/chunk-P7TRFL4P.js +54 -0
  55. package/dist/{chunk-A4PNWAUW.js → chunk-PGSGJLUR.js} +6 -1
  56. package/dist/{chunk-DRFGIOZ6.js → chunk-Q7Y6JQ3R.js} +4 -6
  57. package/dist/{chunk-J2E7EUER.js → chunk-QDRCWVV3.js} +17 -17
  58. package/dist/{chunk-MXAP37W6.js → chunk-TNV4F5WA.js} +16 -7
  59. package/dist/{chunk-EBSFSOJC.js → chunk-U7U64UUN.js} +22 -22
  60. package/dist/chunk-UCHZJJIT.js +421 -0
  61. package/dist/{chunk-FSJ3ZA6N.js → chunk-UG7AQQNR.js} +12 -12
  62. package/dist/{chunk-WFA6IULY.js → chunk-URRAWU5D.js} +5 -0
  63. package/dist/{chunk-VOR32OHN.js → chunk-USAGHYRD.js} +13 -15
  64. package/dist/{chunk-QUGC7GWB.js → chunk-UVX3IYXF.js} +15 -15
  65. package/dist/{chunk-B5PEKSRH.js → chunk-VSAKEMDD.js} +6 -1
  66. package/dist/{chunk-YRYKTYMQ.js → chunk-VSOZZYLK.js} +106 -12
  67. package/dist/{chunk-5SSTVFPX.js → chunk-WK5QEYFA.js} +5 -7
  68. package/dist/{chunk-KTGZDMDX.js → chunk-XUTR7GNT.js} +76 -28
  69. package/dist/{chunk-6WVX4KNP.js → chunk-YDZIVDVR.js} +97 -297
  70. package/dist/{chunk-URQIWIKX.js → chunk-YXXIRM4C.js} +3 -3
  71. package/dist/{chunk-H5UEVW6Q.js → chunk-ZD3QCNB7.js} +1 -1
  72. package/dist/{chunk-DUPZ2BBY.js → chunk-ZTLMEBAC.js} +66 -4
  73. package/dist/clock.js +168 -0
  74. package/dist/completion-registry.js +3 -1
  75. package/dist/countdown.js +36 -395
  76. package/dist/{dgmo-router-4UAPPIKN.js → dgmo-router-CZN36TR3.js} +50 -43
  77. package/dist/{dimensions-SCNVYLRF.js → dimensions-7HHKO5BS.js} +3 -3
  78. package/dist/{d3-BThYBTQk.d.ts → export-context-Ceh3wr0E.d.ts} +2 -8
  79. package/dist/{flowchart-parser-NA75YQ77.js → flowchart-parser-4MZPWYK6.js} +8 -3
  80. package/dist/{flowchart-renderer-6MGGX4RC.js → flowchart-renderer-5XDN575E.js} +13 -17
  81. package/dist/index.d.ts +8 -7
  82. package/dist/index.js +80 -74
  83. package/dist/{layout-S3RLVPH4.js → layout-33FHGDEV.js} +10 -12
  84. package/dist/{layout-MBVBAMPA.js → layout-3TSVAGWH.js} +2 -2
  85. package/dist/{layout-WRG4APSJ.js → layout-5GHV7HNM.js} +9 -13
  86. package/dist/layout-FTOGDNUL.js +23 -0
  87. package/dist/{layout-BNLFQHSB.js → layout-QXGPY7KA.js} +7 -9
  88. package/dist/{layout-search-PMYL3VWS.js → layout-search-EMTCDC3C.js} +8 -10
  89. package/dist/{palettes-IN7ZFRJM.js → palettes-4Y7CL2QL.js} +4 -2
  90. package/dist/{parser-3MK56JZC.js → parser-4Y6PODW6.js} +2 -2
  91. package/dist/{parser-2NWH5JUS.js → parser-A3AN76RQ.js} +2 -1
  92. package/dist/{parser-LCJ76UXS.js → parser-BT4NI6JY.js} +5 -1
  93. package/dist/{parser-FXDS4JDK.js → parser-F7NDRPMA.js} +2 -2
  94. package/dist/{parser-BES6LV3G.js → parser-GDLKUBTO.js} +5 -1
  95. package/dist/{parser-SEUTXN6U.js → parser-KJPPUN4D.js} +2 -2
  96. package/dist/{parser-SIKL4PLF.js → parser-KMKVFET2.js} +5 -1
  97. package/dist/{parser-5LW5JDYG.js → parser-NL73FSFI.js} +5 -1
  98. package/dist/{parser-VA7ZQQTA.js → parser-NUU3DVW4.js} +5 -1
  99. package/dist/{parser-L6RWDXQN.js → parser-OGF2CDA6.js} +8 -3
  100. package/dist/{parser-XZUKNZPB.js → parser-R3LPEQIT.js} +7 -1
  101. package/dist/{parser-X23GRTQJ.js → parser-RCIEKN7Y.js} +5 -1
  102. package/dist/{parser-GX5YLRIP.js → parser-VKYUAT4Y.js} +8 -3
  103. package/dist/{parser-QYISOAGR.js → parser-YX72VLDZ.js} +8 -3
  104. package/dist/redraw-MSXU4ZD2.js +73 -0
  105. package/dist/redraw-T324XAF3.js +1698 -0
  106. package/dist/{renderer-5VKPB4LL.js → renderer-37PLQHVB.js} +5 -5
  107. package/dist/{renderer-ISSDGK54.js → renderer-3F47TPZ2.js} +3 -3
  108. package/dist/{renderer-3QAFDXEY.js → renderer-5ITLW7MX.js} +14 -12
  109. package/dist/{renderer-ZZ6MWVB7.js → renderer-6GJWADLO.js} +4 -4
  110. package/dist/{renderer-MM27BSBO.js → renderer-7Y3LR4R2.js} +3 -4
  111. package/dist/{renderer-2FVUPBGV.js → renderer-AM7P4LN7.js} +1 -1
  112. package/dist/{renderer-ZHGHTSNG.js → renderer-BO73LSVT.js} +13 -12
  113. package/dist/{renderer-3IHQI4A4.js → renderer-CNRQFIEI.js} +11 -10
  114. package/dist/{renderer-OAR5VPH4.js → renderer-DAZWHNLI.js} +2 -2
  115. package/dist/{renderer-NDA2FFYB.js → renderer-DD6T3C4J.js} +5 -5
  116. package/dist/{renderer-WIU5BJUK.js → renderer-DDWDCM2K.js} +2 -2
  117. package/dist/{renderer-7ZZG5HR3.js → renderer-EVKWGUGT.js} +8 -9
  118. package/dist/{renderer-3JY6JAQJ.js → renderer-FL7EOSBU.js} +5 -6
  119. package/dist/{renderer-NIE5IW24.js → renderer-GFALLIYT.js} +8 -7
  120. package/dist/{renderer-O6DY46AV.js → renderer-GFGFHYWY.js} +7 -7
  121. package/dist/{renderer-5TZVFQ7K.js → renderer-GOXAP2IE.js} +7 -8
  122. package/dist/{renderer-NHTR7IRR.js → renderer-GPAVVUET.js} +4 -5
  123. package/dist/{renderer-TO2NVJP3.js → renderer-HJ54YXT3.js} +50 -45
  124. package/dist/{renderer-LM4ICK6I.js → renderer-HYGTMBHT.js} +4 -5
  125. package/dist/{renderer-S3YCLJKL.js → renderer-IHCWBFPI.js} +17 -20
  126. package/dist/{renderer-XO57LTU4.js → renderer-ISDKO3DI.js} +5 -5
  127. package/dist/{renderer-LQP3AGEJ.js → renderer-J3QWK6IM.js} +3 -4
  128. package/dist/{renderer-J666LZXJ.js → renderer-J6H4Q3RM.js} +7 -8
  129. package/dist/{renderer-ALWVK3EJ.js → renderer-JJ4QW3SK.js} +6 -6
  130. package/dist/{renderer-DC7C5Q3G.js → renderer-NOYLNVTI.js} +2 -2
  131. package/dist/{renderer-ZGY7P4BM.js → renderer-PBKTAWQV.js} +16 -20
  132. package/dist/{renderer-XGG2UNXT.js → renderer-POBGKIUT.js} +3 -4
  133. package/dist/{renderer-QGIHLZOJ.js → renderer-RDI2RYUP.js} +9 -10
  134. package/dist/{renderer-JEJT3YET.js → renderer-TSCSZ6CL.js} +2 -3
  135. package/dist/{renderer-VPIELEE5.js → renderer-VDBNC7A6.js} +8 -9
  136. package/dist/{renderer-J67LMOD5.js → renderer-VI34SD5V.js} +15 -15
  137. package/dist/{renderer-J5FKF423.js → renderer-W4MUMXJE.js} +7 -4
  138. package/dist/{renderer-RSK6QFWN.js → renderer-XJMVG2WJ.js} +7 -9
  139. package/dist/{state-parser-TIR2ORJY.js → state-parser-NPYTMRXP.js} +8 -3
  140. package/dist/{state-renderer-G6SUXU4J.js → state-renderer-44K2KDX7.js} +15 -19
  141. package/dist/{tag-groups-DsoVpAY-.d.ts → tag-groups-DydewK3D.d.ts} +2 -173
  142. package/dist/{themes-DRNjxX7Q.d.ts → themes-DzIH3Hjv.d.ts} +3 -2
  143. package/docs/ai-integration.md +1 -1
  144. package/docs/language-reference.md +23 -2
  145. package/gallery/fixtures/map-undirected-edges.dgmo +5 -5
  146. package/gallery/fixtures/whiteboard.dgmo +3 -0
  147. package/package.json +4 -6
  148. package/dist/chunk-3Y63RFJL.js +0 -75
  149. package/dist/chunk-5DH3KYFH.js +0 -20
  150. package/dist/chunk-O753JUEZ.js +0 -67
  151. package/dist/chunk-RJNZHFNG.js +0 -51
  152. package/dist/chunk-Z6DXWULM.js +0 -23
  153. package/dist/layout-5USEVQBY.js +0 -25
  154. package/dist/{chunk-YITHYQCL.js → chunk-4FT5KQ7H.js} +7 -7
  155. package/dist/{chunk-GE7ICBX6.js → chunk-4RY5D5RE.js} +4 -4
  156. package/dist/{chunk-DGUGE67L.js → chunk-CDYV46JE.js} +3 -3
  157. package/dist/{chunk-IGKFOHBG.js → chunk-CQYFZOUC.js} +13 -13
  158. package/dist/{chunk-TKAB3FTK.js → chunk-DRQSB72S.js} +11 -11
  159. package/dist/{chunk-ZKP77MB3.js → chunk-FVTYJUXR.js} +5 -5
  160. package/dist/{chunk-MA42PIGJ.js → chunk-H5NVCOEJ.js} +4 -4
  161. package/dist/{chunk-BEA4D7OS.js → chunk-IXHWS2HI.js} +3 -3
  162. package/dist/{chunk-QKY6W4NA.js → chunk-KHL652SX.js} +25 -25
  163. package/dist/{chunk-6OIMUSDX.js → chunk-MUJVNSEW.js} +9 -9
  164. package/dist/{chunk-YO6AQU4A.js → chunk-QJOVZ4TC.js} +12 -12
  165. package/dist/{chunk-SOHZDW6N.js → chunk-UXNA2H2V.js} +3 -3
  166. package/dist/{chunk-NO3UX6AP.js → chunk-V2NQV7VL.js} +4 -4
package/dist/countdown.js CHANGED
@@ -1,399 +1,24 @@
1
- // src/countdown/resolve.ts
2
- var DAY_MS = 864e5;
3
- var WEEK_MS = 7 * DAY_MS;
4
- var ZONE_WD = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
5
- function zoneFields(ms, tz) {
6
- const d = new Date(ms);
7
- if (!tz) {
8
- return {
9
- year: d.getFullYear(),
10
- month: d.getMonth(),
11
- day: d.getDate(),
12
- hour: d.getHours(),
13
- minute: d.getMinutes(),
14
- second: d.getSeconds(),
15
- weekday: d.getDay()
16
- };
17
- }
18
- try {
19
- const o = {};
20
- new Intl.DateTimeFormat("en-US", {
21
- timeZone: tz,
22
- hour12: false,
23
- year: "numeric",
24
- month: "2-digit",
25
- day: "2-digit",
26
- hour: "2-digit",
27
- minute: "2-digit",
28
- second: "2-digit",
29
- weekday: "short"
30
- }).formatToParts(d).forEach((x) => {
31
- o[x.type] = x.value;
32
- });
33
- return {
34
- year: Number(o["year"]),
35
- month: Number(o["month"]) - 1,
36
- day: Number(o["day"]),
37
- hour: Number(o["hour"]) % 24,
38
- minute: Number(o["minute"]),
39
- second: Number(o["second"]),
40
- weekday: Math.max(0, ZONE_WD.indexOf(o["weekday"] ?? "Sun"))
41
- };
42
- } catch {
43
- return {
44
- year: d.getUTCFullYear(),
45
- month: d.getUTCMonth(),
46
- day: d.getUTCDate(),
47
- hour: d.getUTCHours(),
48
- minute: d.getUTCMinutes(),
49
- second: d.getUTCSeconds(),
50
- weekday: d.getUTCDay()
51
- };
52
- }
53
- }
54
- function zoneOffsetMs(tz, ms) {
55
- const f = zoneFields(ms, tz);
56
- const asUTC = Date.UTC(f.year, f.month, f.day, f.hour, f.minute, f.second);
57
- return asUTC - Math.floor(ms / 1e3) * 1e3;
58
- }
59
- function wallToMs(y, mo, d, h, mi, tz) {
60
- if (!tz) return new Date(y, mo, d, h, mi).getTime();
61
- const guess = Date.UTC(y, mo, d, h, mi);
62
- const off1 = zoneOffsetMs(tz, guess);
63
- const ms = guess - off1;
64
- const off2 = zoneOffsetMs(tz, ms);
65
- return off2 === off1 ? ms : guess - off2;
66
- }
67
- function zoneOffsetLabel(ms, tz) {
68
- if (!tz) return "";
69
- try {
70
- const off = new Intl.DateTimeFormat("en-US", {
71
- timeZone: tz,
72
- timeZoneName: "shortOffset"
73
- }).formatToParts(new Date(ms)).find((x) => x.type === "timeZoneName");
74
- return off ? off.value.replace("GMT", "UTC") : "";
75
- } catch {
76
- return "";
77
- }
78
- }
79
- var DATE_ONLY_RE = /^\d{4}-\d{2}-\d{2}$/;
80
- var LOCAL_DT_RE = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2}))?$/;
81
- function targetToMs(target, tz = null) {
82
- const s = target.trim();
83
- if (DATE_ONLY_RE.test(s)) {
84
- const [y, m, d] = s.split("-").map(Number);
85
- return wallToMs(y, m - 1, d, 0, 0, tz);
86
- }
87
- const dt = LOCAL_DT_RE.exec(s);
88
- if (dt) {
89
- return wallToMs(
90
- Number(dt[1]),
91
- Number(dt[2]) - 1,
92
- Number(dt[3]),
93
- Number(dt[4]),
94
- Number(dt[5]),
95
- tz
96
- );
97
- }
98
- return new Date(s).getTime();
99
- }
100
- function ordinalWord(n) {
101
- const abs = Math.abs(n);
102
- const tens = abs % 100;
103
- let suffix = "th";
104
- if (tens < 11 || tens > 13) {
105
- const ones = abs % 10;
106
- suffix = ones === 1 ? "st" : ones === 2 ? "nd" : ones === 3 ? "rd" : "th";
107
- }
108
- return `${n}${suffix}`;
109
- }
110
- function applyOrdinalTemplate(template, n) {
111
- return template.replace(/\bNth\b/g, ordinalWord(n)).replace(/\bN\b/g, String(n));
112
- }
113
- function dayStart(ms, tz = null) {
114
- const f = zoneFields(ms, tz);
115
- return wallToMs(f.year, f.month, f.day, 0, 0, tz);
116
- }
117
- function dayDelta(a, b, tz = null) {
118
- return Math.round((dayStart(b, tz) - dayStart(a, tz)) / DAY_MS);
119
- }
120
- function sameDay(a, b, tz = null) {
121
- const x = zoneFields(a, tz);
122
- const y = zoneFields(b, tz);
123
- return x.year === y.year && x.month === y.month && x.day === y.day;
124
- }
125
- function nthWeekdayOfMonth(year, month, weekday, nth, hour, minute, tz) {
126
- if (nth < 0) {
127
- const last = new Date(year, month + 1, 0).getDate();
128
- for (let d = last; d >= 1; d--) {
129
- if (new Date(year, month, d).getDay() === weekday) {
130
- return wallToMs(year, month, d, hour, minute, tz);
131
- }
132
- }
133
- return null;
134
- }
135
- const firstDow = new Date(year, month, 1).getDay();
136
- const offset = (weekday - firstDow + 7) % 7;
137
- const day = 1 + offset + (nth - 1) * 7;
138
- if (day > new Date(year, month + 1, 0).getDate()) return null;
139
- return wallToMs(year, month, day, hour, minute, tz);
140
- }
141
- function resolveNext(rule, now2) {
142
- const tz = rule.tz ?? null;
143
- const nowF = zoneFields(now2, tz);
144
- const { hour, minute } = rule;
145
- const passes = rule.allDay ? (t) => dayStart(t, tz) >= dayStart(now2, tz) : (t) => t > now2;
146
- const dayExists = (y, m, d) => new Date(y, m, d).getMonth() === m;
147
- switch (rule.kind) {
148
- case "month-day": {
149
- const month = rule.month;
150
- const day = rule.day;
151
- for (let y = nowF.year; ; y++) {
152
- if (!dayExists(y, month, day)) continue;
153
- const t = wallToMs(y, month, day, hour, minute, tz);
154
- if (passes(t)) return t;
155
- }
156
- }
157
- case "nth-weekday":
158
- case "last-weekday": {
159
- const weekday = rule.weekday;
160
- const nth = rule.kind === "last-weekday" ? -1 : rule.nth;
161
- let y = nowF.year;
162
- let m = nowF.month;
163
- for (let i = 0; i < 24; i++) {
164
- const t = nthWeekdayOfMonth(y, m, weekday, nth, hour, minute, tz);
165
- if (t !== null && passes(t)) return t;
166
- m++;
167
- if (m > 11) {
168
- m = 0;
169
- y++;
170
- }
171
- }
172
- return now2 + WEEK_MS;
173
- }
174
- case "weekly": {
175
- const weekday = rule.weekday;
176
- for (let i = 0; i < 8; i++) {
177
- const cal = new Date(nowF.year, nowF.month, nowF.day + i);
178
- if (cal.getDay() !== weekday) continue;
179
- const t = wallToMs(
180
- cal.getFullYear(),
181
- cal.getMonth(),
182
- cal.getDate(),
183
- hour,
184
- minute,
185
- tz
186
- );
187
- if (passes(t)) return t;
188
- }
189
- return now2 + WEEK_MS;
190
- }
191
- case "interval": {
192
- const n = rule.intervalN ?? 1;
193
- const anchor = rule.anchorMs ?? now2;
194
- if (rule.intervalUnit === "month") {
195
- const a = zoneFields(anchor, tz);
196
- const day = a.day;
197
- for (let k = 0; ; k++) {
198
- const y = a.year;
199
- const m = a.month + k * n;
200
- const yy = y + Math.floor(m / 12);
201
- const mm = (m % 12 + 12) % 12;
202
- if (!dayExists(yy, mm, day)) continue;
203
- const t2 = wallToMs(yy, mm, day, hour, minute, tz);
204
- if (passes(t2)) return t2;
205
- }
206
- }
207
- const step = (rule.intervalUnit === "week" ? WEEK_MS : DAY_MS) * n;
208
- let t = anchor;
209
- if (!passes(t)) {
210
- const k = Math.max(0, Math.floor((now2 - anchor) / step));
211
- t = anchor + k * step;
212
- while (!passes(t)) t += step;
213
- }
214
- return t;
215
- }
216
- }
217
- }
218
- function ordinalFor(resolvedMs, rule) {
219
- const anchor = rule.anchorMs;
220
- if (anchor === void 0) return 0;
221
- const tz = rule.tz ?? null;
222
- const a = zoneFields(anchor, tz);
223
- const r = zoneFields(resolvedMs, tz);
224
- const months = (r.year - a.year) * 12 + (r.month - a.month);
225
- const spanDays = (dayStart(resolvedMs, tz) - dayStart(anchor, tz)) / DAY_MS;
226
- switch (rule.kind) {
227
- case "month-day":
228
- return r.year - a.year;
229
- case "nth-weekday":
230
- case "last-weekday":
231
- return months;
232
- case "weekly":
233
- return Math.round(spanDays / 7);
234
- case "interval": {
235
- const n = rule.intervalN ?? 1;
236
- if (rule.intervalUnit === "month") return Math.floor(months / n);
237
- const perStep = rule.intervalUnit === "week" ? 7 : 1;
238
- return Math.round(spanDays / perStep / n);
239
- }
240
- }
241
- }
242
- function roundBy(value, mode) {
243
- return mode === "down" ? Math.floor(value) : mode === "nearest" ? Math.round(value) : Math.ceil(value);
244
- }
245
- function pad2(n) {
246
- return n < 10 ? "0" + n : String(n);
247
- }
248
- function plural(n, unit) {
249
- return `${n} ${unit}${n === 1 ? "" : "s"}`;
250
- }
251
- function formatCount(remainingMs, opts) {
252
- const { units, round, fields } = opts;
253
- if (units === "days")
254
- return plural(roundBy(remainingMs / DAY_MS, round), "day");
255
- if (units === "weeks")
256
- return plural(roundBy(remainingMs / WEEK_MS, round), "week");
257
- const totalSec = Math.floor(remainingMs / 1e3);
258
- if (units === "clock") {
259
- const h2 = Math.floor(totalSec / 3600);
260
- const m2 = Math.floor(totalSec % 3600 / 60);
261
- const s2 = totalSec % 60;
262
- return `${pad2(h2)}:${pad2(m2)}:${pad2(s2)}`;
263
- }
264
- if (units === "words") {
265
- const days2 = Math.ceil(remainingMs / DAY_MS);
266
- if (days2 <= 0) return "now";
267
- if (days2 === 1) return "tomorrow";
268
- if (days2 < 14) return `${days2} days`;
269
- if (days2 < 60) return `${Math.round(days2 / 7)} weeks`;
270
- return `${Math.round(days2 / 30)} months`;
271
- }
272
- const days = Math.floor(totalSec / 86400);
273
- const h = Math.floor(totalSec % 86400 / 3600);
274
- const m = Math.floor(totalSec % 3600 / 60);
275
- const s = totalSec % 60;
276
- const has = (f) => fields.includes(f);
277
- const clockParts = [];
278
- if (has("h")) clockParts.push(pad2(h));
279
- if (has("m")) clockParts.push(pad2(m));
280
- if (has("s")) clockParts.push(pad2(s));
281
- const clock = clockParts.join(":");
282
- const dayPrefix = has("d") && days > 0 ? `${days}d${clock ? " " : ""}` : "";
283
- return dayPrefix + clock || plural(days, "day");
284
- }
285
- function splitClockSeconds(s) {
286
- const m = /^(.+:\d{2}):(\d{2})$/.exec(s);
287
- return m ? { lead: m[1], sec: ":" + m[2] } : { lead: s, sec: null };
288
- }
289
- function formatWordsDetail(remainingMs) {
290
- const totalMin = Math.floor(Math.max(0, remainingMs) / 6e4);
291
- const d = Math.floor(totalMin / 1440);
292
- const h = Math.floor(totalMin % 1440 / 60);
293
- const m = totalMin % 60;
294
- const parts = [];
295
- if (d > 0) parts.push(`${d} day${d === 1 ? "" : "s"}`);
296
- if (d > 0 || h > 0) parts.push(`${h} hour${h === 1 ? "" : "s"}`);
297
- parts.push(`${m} minute${m === 1 ? "" : "s"}`);
298
- return parts.join(" ");
299
- }
300
- function breakdown(nowMs, targetMs, tz = null) {
301
- const n = zoneFields(nowMs, tz);
302
- const t = zoneFields(targetMs, tz);
303
- let y = t.year - n.year;
304
- let mo = t.month - n.month;
305
- let d = t.day - n.day;
306
- let h = t.hour - n.hour;
307
- let mi = t.minute - n.minute;
308
- let s = t.second - n.second;
309
- if (s < 0) {
310
- s += 60;
311
- mi--;
312
- }
313
- if (mi < 0) {
314
- mi += 60;
315
- h--;
316
- }
317
- if (h < 0) {
318
- h += 24;
319
- d--;
320
- }
321
- if (d < 0) {
322
- d += new Date(t.year, t.month, 0).getDate();
323
- mo--;
324
- }
325
- if (mo < 0) {
326
- mo += 12;
327
- y--;
328
- }
329
- return { years: y, months: mo, days: d, hours: h, minutes: mi, seconds: s };
330
- }
331
- function humanUnits(nowMs, targetMs, tz = null) {
332
- const b = breakdown(nowMs, targetMs, tz);
333
- return [
334
- [b.years, "year"],
335
- [b.months, "month"],
336
- [b.days, "day"],
337
- [b.hours, "hour"],
338
- [b.minutes, "minute"]
339
- ];
340
- }
341
- function formatHuman(nowMs, targetMs, tz = null) {
342
- const units = humanUnits(nowMs, targetMs, tz);
343
- let i = 0;
344
- while (i < units.length - 1 && units[i][0] === 0) i++;
345
- const rest = units.slice(i);
346
- const say = (arr) => arr.map(([n, u]) => `${n} ${u}${n === 1 ? "" : "s"}`).join(", ");
347
- const primary = rest.slice(0, 2).filter((p, idx) => p[0] > 0 || idx === 0);
348
- const secondary = rest.slice(2).filter((p) => p[0] > 0);
349
- return { big: say(primary) || "now", sub: say(secondary) };
350
- }
351
- function formatCompound(nowMs, targetMs, maxUnits = 2, tz = null) {
352
- const all = humanUnits(nowMs, targetMs, tz);
353
- let i = 0;
354
- while (i < all.length - 1 && all[i][0] === 0) i++;
355
- const chosen = all.slice(i, i + maxUnits).filter((p, idx) => p[0] > 0 || idx === 0);
356
- if (!chosen.length) return "now";
357
- return chosen.map(([n, u]) => `${n} ${u}${n === 1 ? "" : "s"}`).join(", ");
358
- }
359
- var WEEKDAY_ABBR = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
360
- var MONTH_ABBR = [
361
- "Jan",
362
- "Feb",
363
- "Mar",
364
- "Apr",
365
- "May",
366
- "Jun",
367
- "Jul",
368
- "Aug",
369
- "Sep",
370
- "Oct",
371
- "Nov",
372
- "Dec"
373
- ];
374
- function formatDate(ms, tz = null) {
375
- const f = zoneFields(ms, tz);
376
- return `${WEEKDAY_ABBR[f.weekday]} ${MONTH_ABBR[f.month]} ${f.day} ${f.year}`;
377
- }
378
- function formatFooter(resolvedMs, hasTime, tz = null) {
379
- const parts = [formatDate(resolvedMs, tz)];
380
- if (hasTime) {
381
- const f = zoneFields(resolvedMs, tz);
382
- parts.push(`${pad2(f.hour)}:${pad2(f.minute)}`);
383
- const label = zoneOffsetLabel(resolvedMs, tz);
384
- if (label) parts.push(label);
385
- }
386
- return parts.join(" \xB7 ");
387
- }
388
-
389
- // src/utils/now.ts
390
- var pinnedMs = null;
391
- function now() {
392
- return pinnedMs ?? Date.now();
393
- }
1
+ import {
2
+ DAY_MS,
3
+ applyOrdinalTemplate,
4
+ dayDelta,
5
+ dayKey,
6
+ dayStart,
7
+ formatCompound,
8
+ formatCount,
9
+ formatFooter,
10
+ formatHuman,
11
+ formatWordsDetail,
12
+ now,
13
+ ordinalFor,
14
+ resolveNext,
15
+ sameDay,
16
+ splitClockSeconds,
17
+ targetToMs
18
+ } from "./chunk-UCHZJJIT.js";
394
19
 
395
20
  // src/countdown/ticker.ts
396
- function pad22(n) {
21
+ function pad2(n) {
397
22
  return n < 10 ? "0" + n : String(n);
398
23
  }
399
24
  var SVG_NS = "http://www.w3.org/2000/svg";
@@ -449,7 +74,7 @@ function updateGauges(svg, remaining) {
449
74
  };
450
75
  svg.querySelectorAll("[data-dgmo-gauge-val]").forEach((el) => {
451
76
  const k = el.getAttribute("data-dgmo-gauge-val");
452
- const v = pad22(vals[k] ?? 0);
77
+ const v = pad2(vals[k] ?? 0);
453
78
  if (el.textContent !== v) el.textContent = v;
454
79
  });
455
80
  svg.querySelectorAll("[data-dgmo-gauge-arc]").forEach((el) => {
@@ -581,6 +206,22 @@ function updateNode(node, now2) {
581
206
  if (clockFinale) updateGauges(svg, remaining);
582
207
  const stamp = svg.querySelector("[data-dgmo-countdown-asof]");
583
208
  if (stamp?.parentNode) stamp.parentNode.removeChild(stamp);
209
+ redrawIfStale(node, svg, now2, resolvedMs, tz);
210
+ }
211
+ var redrawing = /* @__PURE__ */ new WeakSet();
212
+ function redrawIfStale(node, svg, now2, resolvedMs, tz) {
213
+ const drawnOn = node.getAttribute("data-dgmo-countdown-band-day");
214
+ if (drawnOn === null || redrawing.has(svg)) return;
215
+ if (drawnOn === dayKey(now2, tz) && node.getAttribute("data-dgmo-countdown-band-on") === dayKey(resolvedMs, tz)) {
216
+ return;
217
+ }
218
+ if (!svg.hasAttribute("data-dgmo-countdown-redraw")) return;
219
+ redrawing.add(svg);
220
+ void import("./redraw-T324XAF3.js").then((m) => {
221
+ m.redrawCountdown(svg, resolvedMs);
222
+ redrawing.delete(svg);
223
+ }).catch(() => {
224
+ });
584
225
  }
585
226
  function tickCountdowns(root = document) {
586
227
  if (typeof document === "undefined") return;
@@ -6,76 +6,83 @@ import {
6
6
  isExtendedChartType,
7
7
  knownChartTypeIds,
8
8
  parseDgmo
9
- } from "./chunk-6WVX4KNP.js";
10
- import "./chunk-EOYPX6SF.js";
11
- import "./chunk-2BJW7FSF.js";
12
- import "./chunk-WFA6IULY.js";
13
- import "./chunk-3DPOIW3W.js";
14
- import "./chunk-NXU4N5WT.js";
15
- import "./chunk-A2RUBBVT.js";
16
- import "./chunk-2WQ3YZMN.js";
17
- import "./chunk-JXGSTBW6.js";
18
- import "./chunk-H7AXCRO7.js";
9
+ } from "./chunk-YDZIVDVR.js";
19
10
  import "./chunk-H6BT45SN.js";
20
- import "./chunk-2CW5ZTNH.js";
21
- import "./chunk-EBVVMUAA.js";
22
- import "./chunk-6BNNLVAR.js";
23
- import "./chunk-A4PNWAUW.js";
24
- import "./chunk-ZJAK6C7Y.js";
25
- import "./chunk-OQW4ETJX.js";
11
+ import "./chunk-3PP746YM.js";
12
+ import "./chunk-NM5V5EKY.js";
26
13
  import "./chunk-3KVUFHUJ.js";
27
- import "./chunk-BRGRIZQB.js";
28
- import "./chunk-XSVWUOUZ.js";
29
- import "./chunk-7PJBJ2DU.js";
14
+ import "./chunk-EOYPX6SF.js";
15
+ import "./chunk-2ZW4NBYX.js";
30
16
  import "./chunk-AULZD45V.js";
31
- import "./chunk-73EYNV4O.js";
32
17
  import "./chunk-WZBZXZ6T.js";
33
18
  import "./chunk-NWSPPGIE.js";
34
- import "./chunk-DEFBUZWV.js";
19
+ import "./chunk-5HAYT43L.js";
20
+ import "./chunk-P7TRFL4P.js";
35
21
  import "./chunk-J7Q4AB23.js";
36
- import "./chunk-R6EGUTIV.js";
37
- import "./chunk-QQJUTGQH.js";
38
22
  import "./chunk-XIUGSUE4.js";
23
+ import "./chunk-EBVVMUAA.js";
24
+ import "./chunk-LKZCUFOW.js";
25
+ import "./chunk-UXNA2H2V.js";
26
+ import "./chunk-PGSGJLUR.js";
27
+ import "./chunk-7PJBJ2DU.js";
39
28
  import "./chunk-3GUEYQGL.js";
40
29
  import "./chunk-BQO24BDM.js";
41
- import "./chunk-2ZW4NBYX.js";
42
- import "./chunk-LKZCUFOW.js";
43
- import "./chunk-BEA4D7OS.js";
44
- import "./chunk-SOHZDW6N.js";
30
+ import "./chunk-R6EGUTIV.js";
31
+ import "./chunk-QQJUTGQH.js";
32
+ import "./chunk-2CW5ZTNH.js";
45
33
  import "./chunk-PVWIBKV2.js";
34
+ import "./chunk-NXU4N5WT.js";
35
+ import "./chunk-A2RUBBVT.js";
36
+ import "./chunk-KBEWVCK3.js";
37
+ import "./chunk-URRAWU5D.js";
38
+ import "./chunk-3DPOIW3W.js";
39
+ import "./chunk-NPDVWFAQ.js";
40
+ import "./chunk-2WQ3YZMN.js";
41
+ import "./chunk-IXHWS2HI.js";
42
+ import "./chunk-BRGRIZQB.js";
43
+ import "./chunk-XSVWUOUZ.js";
44
+ import "./chunk-JXGSTBW6.js";
45
+ import "./chunk-H7AXCRO7.js";
46
+ import "./chunk-A5WIAMCT.js";
46
47
  import {
47
48
  looksLikeC4,
48
49
  looksLikeGantt,
49
50
  parseDgmoChartType
50
- } from "./chunk-QUGC7GWB.js";
51
- import "./chunk-V4D2ZQBE.js";
51
+ } from "./chunk-UVX3IYXF.js";
52
+ import "./chunk-KRPLP5LP.js";
53
+ import "./chunk-KBDMEOLI.js";
54
+ import "./chunk-VSAKEMDD.js";
55
+ import "./chunk-5OTA2PUH.js";
56
+ import "./chunk-ZECJ7Q6C.js";
52
57
  import "./chunk-CDM6XMOT.js";
53
58
  import "./chunk-2SKMEL7V.js";
54
- import "./chunk-KBDMEOLI.js";
59
+ import "./chunk-M6ZQAFPD.js";
60
+ import "./chunk-TIVMAITN.js";
61
+ import "./chunk-M4NV5PPU.js";
62
+ import "./chunk-NXMESY4J.js";
55
63
  import "./chunk-EQW6HOP4.js";
56
64
  import "./chunk-MKSTL6DR.js";
57
- import "./chunk-7ENDOHAA.js";
58
- import "./chunk-B5PEKSRH.js";
65
+ import "./chunk-CYTFO2LF.js";
66
+ import "./chunk-Q7Y6JQ3R.js";
59
67
  import "./chunk-C3Z4DX3V.js";
60
- import "./chunk-26BBJUBW.js";
61
- import "./chunk-TIVMAITN.js";
62
- import "./chunk-2YAFDND3.js";
63
- import "./chunk-NXMESY4J.js";
64
- import "./chunk-Q6ZQX2HX.js";
65
- import "./chunk-DRFGIOZ6.js";
66
- import "./chunk-3Y63RFJL.js";
67
- import "./chunk-O753JUEZ.js";
68
- import "./chunk-N7VMGZCU.js";
69
- import "./chunk-5OTA2PUH.js";
70
- import "./chunk-ZECJ7Q6C.js";
71
68
  import "./chunk-IYULMRBE.js";
69
+ import "./chunk-KCMGIYPO.js";
70
+ import "./chunk-GXCDD6NG.js";
71
+ import "./chunk-FMAVHTYB.js";
72
+ import "./chunk-N7VMGZCU.js";
73
+ import "./chunk-NJJCTEBM.js";
72
74
  import "./chunk-NOTA6TEI.js";
75
+ import "./chunk-D6PVMUCX.js";
76
+ import "./chunk-MB2SQF7N.js";
77
+ import "./chunk-65GPEV5V.js";
78
+ import "./chunk-ICLB27PZ.js";
73
79
  import "./chunk-GI5R5B3S.js";
74
80
  import "./chunk-4WW3SGMH.js";
75
81
  import "./chunk-3UR4F7FE.js";
76
82
  import "./chunk-4SACN2C5.js";
77
83
  import "./chunk-TIIZIAGS.js";
78
84
  import "./chunk-Z6QFHH4D.js";
85
+ import "./chunk-KAO7JL4I.js";
79
86
  import "./chunk-6GXLAKUH.js";
80
87
  import "./chunk-3J7O3CU6.js";
81
88
  import "./chunk-BYU54C3S.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  mapContentAspect,
3
3
  mapExportDimensions
4
- } from "./chunk-L5NW3PVL.js";
5
- import "./chunk-GE7ICBX6.js";
4
+ } from "./chunk-J6AEKIRQ.js";
5
+ import "./chunk-4RY5D5RE.js";
6
6
  import "./chunk-AXLF3KRE.js";
7
7
  import "./chunk-KMU65FYM.js";
8
- import "./chunk-JILEYZ2V.js";
9
8
  import "./chunk-VLC6WNRD.js";
9
+ import "./chunk-JILEYZ2V.js";
10
10
  import "./chunk-4SACN2C5.js";
11
11
  import "./chunk-TIIZIAGS.js";
12
12
  import "./chunk-UOCWYLYT.js";
@@ -1,4 +1,4 @@
1
- import { T as TagGroup, D as DgmoError, a as PaletteColors, C as CompactViewState } from './tag-groups-DsoVpAY-.js';
1
+ import { T as TagGroup, D as DgmoError } from './tag-groups-DydewK3D.js';
2
2
 
3
3
  /** A POI / route-stop position: gazetteer name (+ optional ISO scope) or coords. */
4
4
  type PoiPos = {
@@ -466,10 +466,6 @@ interface ResolvedMap {
466
466
  * the map branch.
467
467
  */
468
468
  type MapDataSource = MapData | (() => Promise<MapData>);
469
- /**
470
- * Renders a D3 chart to an SVG string for export.
471
- * Creates a detached DOM element, renders into it, extracts the SVG, then cleans up.
472
- */
473
469
  type RenderForExportOptions = {
474
470
  c4Level?: 'context' | 'containers' | 'components' | 'deployment';
475
471
  c4System?: string;
@@ -502,7 +498,5 @@ type RenderForExportOptions = {
502
498
  */
503
499
  showNotes?: boolean;
504
500
  };
505
- declare function renderForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette?: PaletteColors, viewState?: CompactViewState, options?: RenderForExportOptions): Promise<string>;
506
501
 
507
- export { renderForExport as r };
508
- export type { AirportData as A, BoundaryTopology as B, Gazetteer as G, MapDataSource as M, ParsedMap as P, RegionName as R, GazetteerEntry as a, MapData as b, RegionNames as c, ResolvedMap as d, MapLayoutLegend as e, GeoExtent as f, MapDirectives as g, MapEdge as h, MapPoi as i, MapRegion as j, MapRoute as k, PoiPos as l, ProjectionFamily as m, ResolvedEdge as n, ResolvedPoi as o, ResolvedRegion as p, ResolvedRoute as q };
502
+ export type { AirportData as A, BoundaryTopology as B, Gazetteer as G, MapDataSource as M, ParsedMap as P, RegionName as R, GazetteerEntry as a, MapData as b, RegionNames as c, RenderForExportOptions as d, ResolvedMap as e, MapLayoutLegend as f, GeoExtent as g, MapDirectives as h, MapEdge as i, MapPoi as j, MapRegion as k, MapRoute as l, PoiPos as m, ProjectionFamily as n, ResolvedEdge as o, ResolvedPoi as p, ResolvedRegion as q, ResolvedRoute as r };
@@ -2,14 +2,19 @@ import {
2
2
  extractSymbols,
3
3
  looksLikeFlowchart,
4
4
  parseFlowchart
5
- } from "./chunk-26BBJUBW.js";
5
+ } from "./chunk-M6ZQAFPD.js";
6
6
  import "./chunk-TIVMAITN.js";
7
7
  import "./chunk-NXMESY4J.js";
8
- import "./chunk-3Y63RFJL.js";
9
- import "./chunk-O753JUEZ.js";
10
8
  import "./chunk-N7VMGZCU.js";
9
+ import "./chunk-NJJCTEBM.js";
11
10
  import "./chunk-NOTA6TEI.js";
11
+ import "./chunk-D6PVMUCX.js";
12
+ import "./chunk-MB2SQF7N.js";
13
+ import "./chunk-65GPEV5V.js";
14
+ import "./chunk-ICLB27PZ.js";
12
15
  import "./chunk-TIIZIAGS.js";
16
+ import "./chunk-KAO7JL4I.js";
17
+ import "./chunk-6GXLAKUH.js";
13
18
  import "./chunk-3J7O3CU6.js";
14
19
  import "./chunk-BYU54C3S.js";
15
20
  import "./chunk-YLJ4XMA6.js";
@@ -1,34 +1,30 @@
1
1
  import {
2
2
  renderFlowchart,
3
3
  renderFlowchartForExport
4
- } from "./chunk-WLLO3PZ3.js";
4
+ } from "./chunk-472EOHVW.js";
5
5
  import "./chunk-26EVL454.js";
6
- import "./chunk-5SSTVFPX.js";
6
+ import "./chunk-WK5QEYFA.js";
7
+ import "./chunk-LDDDKWL6.js";
7
8
  import "./chunk-XBJJP2HN.js";
8
- import "./chunk-HXULJZA2.js";
9
- import "./chunk-X5BUX2GK.js";
9
+ import "./chunk-ADVGV3P7.js";
10
10
  import "./chunk-EJS3K44P.js";
11
- import "./chunk-FTUMRSGT.js";
12
- import "./chunk-RJNZHFNG.js";
13
- import "./chunk-JRWUHLRP.js";
14
- import "./chunk-5DH3KYFH.js";
11
+ import "./chunk-P5FUWXPW.js";
15
12
  import "./chunk-QT3KDDXK.js";
16
- import "./chunk-NPWVOFB3.js";
17
- import "./chunk-S7W75MIM.js";
18
- import "./chunk-Z6DXWULM.js";
19
13
  import "./chunk-EPDBWATV.js";
20
- import "./chunk-24YPR5EH.js";
21
- import "./chunk-XCKNFFKM.js";
22
14
  import "./chunk-CYRB2JTN.js";
15
+ import "./chunk-24YPR5EH.js";
23
16
  import "./chunk-VLC6WNRD.js";
24
- import "./chunk-ICLB27PZ.js";
25
- import "./chunk-26BBJUBW.js";
17
+ import "./chunk-XCKNFFKM.js";
18
+ import "./chunk-M6ZQAFPD.js";
26
19
  import "./chunk-TIVMAITN.js";
27
20
  import "./chunk-NXMESY4J.js";
28
- import "./chunk-3Y63RFJL.js";
29
- import "./chunk-O753JUEZ.js";
30
21
  import "./chunk-N7VMGZCU.js";
22
+ import "./chunk-NJJCTEBM.js";
31
23
  import "./chunk-NOTA6TEI.js";
24
+ import "./chunk-D6PVMUCX.js";
25
+ import "./chunk-MB2SQF7N.js";
26
+ import "./chunk-65GPEV5V.js";
27
+ import "./chunk-ICLB27PZ.js";
32
28
  import "./chunk-TIIZIAGS.js";
33
29
  import "./chunk-UOCWYLYT.js";
34
30
  import "./chunk-KAO7JL4I.js";