yamlite 0.41.1 → 0.43.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.
@@ -842,14 +842,21 @@ var Qr = () => Le({
842
842
  ti = e;
843
843
  }, ri, ii = (e) => {
844
844
  ri = e;
845
- }, ai = () => ri;
846
- function oi(e, t = document.baseURI) {
845
+ }, ai = () => () => {};
846
+ function oi(e) {
847
+ let t = ri;
848
+ return (0, I.useSyncExternalStore)(t?.subscribe ?? ai, () => t?.get(e) ?? null);
849
+ }
850
+ var si, ci = (e) => {
851
+ si = e;
852
+ }, li = () => si;
853
+ function ui(e, t = document.baseURI) {
847
854
  return ti === null ? null : ti ? ti(e) : new URL(`-/apps/${encodeURIComponent(e)}/`, t).toString();
848
855
  }
849
856
  //#endregion
850
857
  //#region ui/src/components/FormField.tsx
851
- var q = (e) => e.join("."), si = (0, I.lazy)(() => import("./MarkdownField-DTAEh2oz.js"));
852
- function ci({ path: e, value: t, problem: n, onChange: r, onValidity: a, readOnly: o }) {
858
+ var q = (e) => e.join("."), di = (0, I.lazy)(() => import("./MarkdownField-DTAEh2oz.js"));
859
+ function fi({ path: e, value: t, problem: n, onChange: r, onValidity: a, readOnly: o }) {
853
860
  let [s, c] = (0, I.useState)(() => JSON.stringify(t, null, 2)), [l, u] = (0, I.useState)(null), d = i(), f = (0, I.useRef)(JSON.stringify(t)), p = (0, I.useRef)(a);
854
861
  p.current = a;
855
862
  let m = q(e);
@@ -881,7 +888,7 @@ function ci({ path: e, value: t, problem: n, onChange: r, onValidity: a, readOnl
881
888
  })] });
882
889
  }
883
890
  var J = (e) => e === !0 ? "1" : e === !1 ? "0" : e == null ? "" : String(e);
884
- function li({ path: e, value: t, allowed: n, onChange: r, readOnly: i }) {
891
+ function pi({ path: e, value: t, allowed: n, onChange: r, readOnly: i }) {
885
892
  let a = J(t), o = a !== "" && !n.some((e) => J(e) === a);
886
893
  return /* @__PURE__ */ (0, z.jsxs)("select", {
887
894
  "aria-label": q(e),
@@ -911,7 +918,7 @@ function li({ path: e, value: t, allowed: n, onChange: r, readOnly: i }) {
911
918
  ]
912
919
  });
913
920
  }
914
- function ui({ path: e, value: t, type: n, reference: r, onChange: i }) {
921
+ function mi({ path: e, value: t, type: n, reference: r, onChange: i }) {
915
922
  let a = ei(), o = r?.table ?? "", s = r?.key, { data: c } = _({
916
923
  queryKey: ["refKeys", o],
917
924
  queryFn: () => w.rows(o, {
@@ -931,7 +938,7 @@ function ui({ path: e, value: t, type: n, reference: r, onChange: i }) {
931
938
  let t = e.target.value;
932
939
  if (t === "") return i(null);
933
940
  let r = Number(t);
934
- i(n === "INTEGER" && mi.test(t) && Number.isSafeInteger(r) ? r : t);
941
+ i(n === "INTEGER" && vi.test(t) && Number.isSafeInteger(r) ? r : t);
935
942
  }
936
943
  }), r && u !== "" && !a && /* @__PURE__ */ (0, z.jsx)(Zr, {
937
944
  reference: r,
@@ -944,7 +951,7 @@ function ui({ path: e, value: t, type: n, reference: r, onChange: i }) {
944
951
  children: s !== void 0 && [...new Set(c?.rows.flatMap((e) => e[s] == null ? [] : [String(e[s])]))].map((e) => /* @__PURE__ */ (0, z.jsx)("option", { value: e }, e))
945
952
  })] });
946
953
  }
947
- function di(e) {
954
+ function hi(e) {
948
955
  let { path: t, value: n, problem: r, onChange: i } = e, a = Object.entries(n ?? {}), [o, s] = (0, I.useState)(null);
949
956
  return /* @__PURE__ */ (0, z.jsxs)("div", {
950
957
  className: `rounded-lg border bg-panel px-2.5 pt-2.5 pb-1 ${Y(r)}`,
@@ -955,7 +962,7 @@ function di(e) {
955
962
  className: "pt-1.5 font-mono text-[11px] text-syn-key max-md:text-[12.5px]",
956
963
  children: r
957
964
  }),
958
- /* @__PURE__ */ (0, z.jsx)(vi, {
965
+ /* @__PURE__ */ (0, z.jsx)(Si, {
959
966
  ...e,
960
967
  path: [...t, r],
961
968
  value: a,
@@ -1002,7 +1009,7 @@ function di(e) {
1002
1009
  });
1003
1010
  }
1004
1011
  var Y = (e) => e ? "border-warn" : "";
1005
- function fi({ path: e, value: t, min: n, max: r, problem: i, onChange: a }) {
1012
+ function gi({ path: e, value: t, min: n, max: r, problem: i, onChange: a }) {
1006
1013
  return /* @__PURE__ */ (0, z.jsx)(W, {
1007
1014
  type: "date",
1008
1015
  "aria-label": q(e),
@@ -1013,7 +1020,7 @@ function fi({ path: e, value: t, min: n, max: r, problem: i, onChange: a }) {
1013
1020
  onChange: (e) => a(e.target.value === "" ? null : e.target.value)
1014
1021
  });
1015
1022
  }
1016
- function pi({ path: e, value: t, min: n, max: r, problem: i, onChange: a }) {
1023
+ function _i({ path: e, value: t, min: n, max: r, problem: i, onChange: a }) {
1017
1024
  let o = typeof t == "string" ? t : "", s = o === "" ? null : jr(o), c = G(o)?.offset ?? null, l = o === "" ? Mr((/* @__PURE__ */ new Date()).toISOString().slice(0, 10), "12", "00") : c, u = (0, I.useRef)(o);
1018
1025
  return o !== "" && (u.current = o), /* @__PURE__ */ (0, z.jsxs)("div", {
1019
1026
  className: "flex items-center gap-1.5 max-md:flex-wrap",
@@ -1036,8 +1043,8 @@ function pi({ path: e, value: t, min: n, max: r, problem: i, onChange: a }) {
1036
1043
  })]
1037
1044
  });
1038
1045
  }
1039
- var mi = /^-?\d+$/, hi = /^-?(\d+\.?\d*|\.\d+)(e[+-]?\d+)?$/i;
1040
- function gi(e) {
1046
+ var vi = /^-?\d+$/, yi = /^-?(\d+\.?\d*|\.\d+)(e[+-]?\d+)?$/i;
1047
+ function bi(e) {
1041
1048
  let { path: t, value: n, type: r, format: i, reference: a, problem: o, onChange: s } = e, c = i === "date" || i === "datetime", [l, u] = (0, I.useState)(() => Ur(n, r, a !== void 0, i)), [d, f] = (0, I.useState)(n == null ? "" : String(n)), p = n == null ? "" : String(n), m = (e, t) => {
1042
1049
  l === "unset" && (u(t ?? Ur(e, r, !1, i)), f(e == null ? "" : String(e))), s(e);
1043
1050
  }, h = (e) => /* @__PURE__ */ (0, z.jsx)("button", {
@@ -1050,7 +1057,7 @@ function gi(e) {
1050
1057
  onClick: () => u(e === "text" ? "text" : Ur(n, r, !1, i)),
1051
1058
  children: e === "text" ? /* @__PURE__ */ (0, z.jsx)(nr, { className: "size-3.5" }) : i === "date" ? /* @__PURE__ */ (0, z.jsx)(Xn, { className: "size-3.5" }) : /* @__PURE__ */ (0, z.jsx)(Qn, { className: "size-3.5" })
1052
1059
  });
1053
- if (e.allowed && r !== "JSON") return /* @__PURE__ */ (0, z.jsx)(li, {
1060
+ if (e.allowed && r !== "JSON") return /* @__PURE__ */ (0, z.jsx)(pi, {
1054
1061
  ...e,
1055
1062
  allowed: e.allowed
1056
1063
  });
@@ -1071,16 +1078,16 @@ function gi(e) {
1071
1078
  f(t);
1072
1079
  let n = t.trim();
1073
1080
  if (r === "INTEGER") {
1074
- if (!mi.test(n)) return;
1081
+ if (!vi.test(n)) return;
1075
1082
  let e = Number(n);
1076
1083
  s(Number.isSafeInteger(e) ? e : n);
1077
- } else hi.test(n) && Number.isFinite(Number(n)) && s(Number(n));
1084
+ } else yi.test(n) && Number.isFinite(Number(n)) && s(Number(n));
1078
1085
  }
1079
1086
  });
1080
1087
  case "date":
1081
1088
  case "datetime": return /* @__PURE__ */ (0, z.jsxs)("div", {
1082
1089
  className: "flex items-center gap-1.5",
1083
- children: [l === "date" ? /* @__PURE__ */ (0, z.jsx)(fi, { ...e }) : /* @__PURE__ */ (0, z.jsx)(pi, { ...e }), h("text")]
1090
+ children: [l === "date" ? /* @__PURE__ */ (0, z.jsx)(gi, { ...e }) : /* @__PURE__ */ (0, z.jsx)(_i, { ...e }), h("text")]
1084
1091
  });
1085
1092
  case "text": {
1086
1093
  let e = /* @__PURE__ */ (0, z.jsx)(W, {
@@ -1110,17 +1117,17 @@ function gi(e) {
1110
1117
  value: p,
1111
1118
  readOnly: !0
1112
1119
  }),
1113
- children: /* @__PURE__ */ (0, z.jsx)(si, { ...e })
1120
+ children: /* @__PURE__ */ (0, z.jsx)(di, { ...e })
1114
1121
  });
1115
- case "ref": return /* @__PURE__ */ (0, z.jsx)(ui, { ...e });
1122
+ case "ref": return /* @__PURE__ */ (0, z.jsx)(mi, { ...e });
1116
1123
  case "chips": return /* @__PURE__ */ (0, z.jsx)(Yr, {
1117
1124
  label: q(t),
1118
1125
  value: n ?? [],
1119
1126
  onChange: s,
1120
1127
  invalid: o
1121
1128
  });
1122
- case "map": return /* @__PURE__ */ (0, z.jsx)(di, { ...e });
1123
- case "json": return /* @__PURE__ */ (0, z.jsx)(ci, { ...e });
1129
+ case "map": return /* @__PURE__ */ (0, z.jsx)(hi, { ...e });
1130
+ case "json": return /* @__PURE__ */ (0, z.jsx)(fi, { ...e });
1124
1131
  case "unset":
1125
1132
  if (r === "JSON") {
1126
1133
  let e = [
@@ -1166,8 +1173,8 @@ function gi(e) {
1166
1173
  });
1167
1174
  }
1168
1175
  }
1169
- var _i = (e) => e == null || (Array.isArray(e) ? e.length === 0 : typeof e == "object" && Object.keys(e).length === 0);
1170
- function vi(e) {
1176
+ var xi = (e) => e == null || (Array.isArray(e) ? e.length === 0 : typeof e == "object" && Object.keys(e).length === 0);
1177
+ function Si(e) {
1171
1178
  let { label: t, value: n, type: r, readOnly: i, onChange: a } = e, o = Jr(n, e.format, e.min, e.max), [s] = (0, I.useState)(() => r === "JSON" && n == null && e.format !== "map"), [c, l] = (0, I.useState)(0);
1172
1179
  return /* @__PURE__ */ (0, z.jsxs)("div", {
1173
1180
  "data-problem": o ?? void 0,
@@ -1179,12 +1186,12 @@ function vi(e) {
1179
1186
  "aria-label": at({ field: q(e.path) }),
1180
1187
  className: "inline-flex shrink-0 items-center gap-1 rounded px-1 text-[12px] font-semibold text-muted-foreground max-md:text-[13px] font-medium hover:text-foreground",
1181
1188
  onClick: () => {
1182
- (_i(n) || window.confirm(nt())) && (a(null), l((e) => e + 1));
1189
+ (xi(n) || window.confirm(nt())) && (a(null), l((e) => e + 1));
1183
1190
  },
1184
1191
  children: [/* @__PURE__ */ (0, z.jsx)(ge, { className: "size-3" }), tt()]
1185
1192
  })]
1186
1193
  }),
1187
- /* @__PURE__ */ (0, z.jsx)(gi, {
1194
+ /* @__PURE__ */ (0, z.jsx)(bi, {
1188
1195
  ...e,
1189
1196
  problem: o !== null
1190
1197
  }, c),
@@ -1197,7 +1204,7 @@ function vi(e) {
1197
1204
  }
1198
1205
  //#endregion
1199
1206
  //#region ui/src/lib/recordHistory.ts
1200
- function yi(e, t) {
1207
+ function Ci(e, t) {
1201
1208
  let n = Math.max(0, Math.round((t - Date.parse(e)) / 1e3));
1202
1209
  if (n < 60) return _t();
1203
1210
  let i = new Intl.RelativeTimeFormat(r(), { numeric: "always" }), a = Math.round(n / 60);
@@ -1207,25 +1214,25 @@ function yi(e, t) {
1207
1214
  let s = Math.round(o / 24);
1208
1215
  return s < 30 ? i.format(-s, "day") : e.slice(0, 10);
1209
1216
  }
1210
- var bi = (e) => e == null ? wt() : typeof e == "string" ? e : JSON.stringify(e), xi = (e, t, n) => Object.defineProperty(e, t, {
1217
+ var wi = (e) => e == null ? wt() : typeof e == "string" ? e : JSON.stringify(e), Ti = (e, t, n) => Object.defineProperty(e, t, {
1211
1218
  value: n,
1212
1219
  enumerable: !0,
1213
1220
  writable: !0,
1214
1221
  configurable: !0
1215
1222
  });
1216
- function Si(e, t, n) {
1223
+ function Ei(e, t, n) {
1217
1224
  let r = {};
1218
- for (let t of Object.keys(e)) xi(r, t, null);
1219
- for (let [e, n] of Object.entries(t)) xi(r, e, n);
1220
- return xi(r, n, e[n]), r;
1225
+ for (let t of Object.keys(e)) Ti(r, t, null);
1226
+ for (let [e, n] of Object.entries(t)) Ti(r, e, n);
1227
+ return Ti(r, n, e[n]), r;
1221
1228
  }
1222
- function Ci(e) {
1229
+ function Di(e) {
1223
1230
  let t = e?.at(-1);
1224
1231
  if (!e || !t || t.state !== "ok") return null;
1225
1232
  let n = e.reduce((e, t) => e + (t.state === "ok" ? t.entries.filter((e) => e.kind === "commit").length : 0), 0);
1226
1233
  return t.next === null ? String(n) : `${n}+`;
1227
1234
  }
1228
- function wi(e, t, n) {
1235
+ function Oi(e, t, n) {
1229
1236
  return Ve({
1230
1237
  queryKey: [
1231
1238
  "history",
@@ -1240,8 +1247,8 @@ function wi(e, t, n) {
1240
1247
  }
1241
1248
  //#endregion
1242
1249
  //#region ui/src/components/RecordHistory.tsx
1243
- var Ti = (e) => e.slice(0, 7), Ei = (e) => e.sha ?? "wip";
1244
- function Di({ title: e, children: t }) {
1250
+ var ki = (e) => e.slice(0, 7), Ai = (e) => e.sha ?? "wip";
1251
+ function ji({ title: e, children: t }) {
1245
1252
  return /* @__PURE__ */ (0, z.jsxs)("div", {
1246
1253
  className: "px-2 py-10 text-center text-[13px] text-muted-foreground",
1247
1254
  children: [/* @__PURE__ */ (0, z.jsx)("p", {
@@ -1250,13 +1257,13 @@ function Di({ title: e, children: t }) {
1250
1257
  }), t]
1251
1258
  });
1252
1259
  }
1253
- function Oi({ children: e }) {
1260
+ function Mi({ children: e }) {
1254
1261
  return /* @__PURE__ */ (0, z.jsx)("span", {
1255
1262
  className: "rounded border px-1.5 font-mono text-[11px] text-muted-foreground",
1256
1263
  children: e
1257
1264
  });
1258
1265
  }
1259
- function ki({ table: e, recordKey: t, rev: n }) {
1266
+ function Ni({ table: e, recordKey: t, rev: n }) {
1260
1267
  let { data: r, error: i } = _({
1261
1268
  queryKey: [
1262
1269
  "history",
@@ -1281,8 +1288,8 @@ function ki({ table: e, recordKey: t, rev: n }) {
1281
1288
  children: Ge()
1282
1289
  });
1283
1290
  }
1284
- function Ai({ entry: e, ...t }) {
1285
- let [n, r] = (0, I.useState)("fields"), i = e.record, a = i !== null && K(t.current, Si(t.current, i, t.keyColumn)).length > 0, o = n === "yaml" || e.changes.length === 0;
1291
+ function Pi({ entry: e, ...t }) {
1292
+ let [n, r] = (0, I.useState)("fields"), i = e.record, a = i !== null && K(t.current, Ei(t.current, i, t.keyColumn)).length > 0, o = n === "yaml" || e.changes.length === 0;
1286
1293
  return /* @__PURE__ */ (0, z.jsxs)("div", {
1287
1294
  className: "rounded-b-lg border border-t-0 p-3",
1288
1295
  children: [/* @__PURE__ */ (0, z.jsxs)("div", {
@@ -1308,10 +1315,10 @@ function Ai({ entry: e, ...t }) {
1308
1315
  onClick: () => t.onRestore(i, e.sha),
1309
1316
  children: Tt()
1310
1317
  })]
1311
- }), o ? /* @__PURE__ */ (0, z.jsx)(ki, {
1318
+ }), o ? /* @__PURE__ */ (0, z.jsx)(Ni, {
1312
1319
  table: t.table,
1313
1320
  recordKey: t.recordKey,
1314
- rev: Ei(e)
1321
+ rev: Ai(e)
1315
1322
  }) : e.changes.map((e) => /* @__PURE__ */ (0, z.jsxs)("div", {
1316
1323
  className: "grid grid-cols-[7rem_1fr] gap-2 border-b border-dashed py-2 last:border-b-0",
1317
1324
  children: [/* @__PURE__ */ (0, z.jsx)("span", {
@@ -1321,16 +1328,16 @@ function Ai({ entry: e, ...t }) {
1321
1328
  className: "flex min-w-0 flex-col gap-1 font-mono text-[12px]",
1322
1329
  children: [e.from !== null && /* @__PURE__ */ (0, z.jsx)("span", {
1323
1330
  className: "rounded bg-err-soft px-2 py-0.5 break-all text-err line-through",
1324
- children: bi(e.from)
1331
+ children: wi(e.from)
1325
1332
  }), /* @__PURE__ */ (0, z.jsx)("span", {
1326
1333
  className: "rounded bg-ok/15 px-2 py-0.5 break-all text-ok",
1327
- children: bi(e.to)
1334
+ children: wi(e.to)
1328
1335
  })]
1329
1336
  })]
1330
1337
  }, e.path))]
1331
1338
  });
1332
1339
  }
1333
- function ji(e) {
1340
+ function Fi(e) {
1334
1341
  let { query: t } = e, [n, r] = (0, I.useState)(null);
1335
1342
  if (t.error) return /* @__PURE__ */ (0, z.jsx)("p", {
1336
1343
  className: "text-[13px] text-err",
@@ -1341,11 +1348,11 @@ function ji(e) {
1341
1348
  className: "text-[13px] text-muted-foreground",
1342
1349
  children: Ge()
1343
1350
  });
1344
- if (i.state === "nogit") return /* @__PURE__ */ (0, z.jsx)(Di, {
1351
+ if (i.state === "nogit") return /* @__PURE__ */ (0, z.jsx)(ji, {
1345
1352
  title: xt(),
1346
1353
  children: St()
1347
1354
  });
1348
- if (i.state === "untracked") return /* @__PURE__ */ (0, z.jsx)(Di, {
1355
+ if (i.state === "untracked") return /* @__PURE__ */ (0, z.jsx)(ji, {
1349
1356
  title: yt(),
1350
1357
  children: bt()
1351
1358
  });
@@ -1357,7 +1364,7 @@ function ji(e) {
1357
1364
  return /* @__PURE__ */ (0, z.jsxs)("div", { children: [/* @__PURE__ */ (0, z.jsx)("ol", {
1358
1365
  className: "relative m-0 list-none p-0 before:absolute before:top-3.5 before:bottom-3.5 before:left-[11px] before:w-0.5 before:bg-border",
1359
1366
  children: a.map((t) => {
1360
- let i = Ei(t), a = n === i;
1367
+ let i = Ai(t), a = n === i;
1361
1368
  return /* @__PURE__ */ (0, z.jsxs)("li", {
1362
1369
  className: "relative mb-1.5 pl-8",
1363
1370
  children: [
@@ -1387,10 +1394,10 @@ function ji(e) {
1387
1394
  children: [
1388
1395
  t.sha && /* @__PURE__ */ (0, z.jsx)("span", {
1389
1396
  className: "font-mono text-foreground",
1390
- children: Ti(t.sha)
1397
+ children: ki(t.sha)
1391
1398
  }),
1392
1399
  t.author && /* @__PURE__ */ (0, z.jsx)("span", { children: t.author }),
1393
- /* @__PURE__ */ (0, z.jsx)("span", { children: yi(t.date, o) })
1400
+ /* @__PURE__ */ (0, z.jsx)("span", { children: Ci(t.date, o) })
1394
1401
  ]
1395
1402
  }),
1396
1403
  t.renamedFrom ? /* @__PURE__ */ (0, z.jsxs)("span", {
@@ -1403,14 +1410,14 @@ function ji(e) {
1403
1410
  }) : /* @__PURE__ */ (0, z.jsxs)("span", {
1404
1411
  className: "mt-1.5 flex flex-wrap gap-1",
1405
1412
  children: [
1406
- t.event === "created" && /* @__PURE__ */ (0, z.jsx)(Oi, { children: mt() }),
1407
- t.event === "deleted" && /* @__PURE__ */ (0, z.jsx)(Oi, { children: ht() }),
1408
- t.changes.map((e) => /* @__PURE__ */ (0, z.jsx)(Oi, { children: e.path }, e.path))
1413
+ t.event === "created" && /* @__PURE__ */ (0, z.jsx)(Mi, { children: mt() }),
1414
+ t.event === "deleted" && /* @__PURE__ */ (0, z.jsx)(Mi, { children: ht() }),
1415
+ t.changes.map((e) => /* @__PURE__ */ (0, z.jsx)(Mi, { children: e.path }, e.path))
1409
1416
  ]
1410
1417
  })
1411
1418
  ]
1412
1419
  }),
1413
- a && /* @__PURE__ */ (0, z.jsx)(Ai, {
1420
+ a && /* @__PURE__ */ (0, z.jsx)(Pi, {
1414
1421
  ...e,
1415
1422
  entry: t
1416
1423
  })
@@ -1427,7 +1434,7 @@ function ji(e) {
1427
1434
  }
1428
1435
  //#endregion
1429
1436
  //#region ui/src/components/ReflectBadge.tsx
1430
- function Mi({ table: e, recordKey: t }) {
1437
+ function Ii({ table: e, recordKey: t }) {
1431
1438
  let n = ue(e, t);
1432
1439
  if (!n) return null;
1433
1440
  let r = n.state === "pending" ? sn() : n.state === "applied" ? on({ file: n.file }) : n.state === "failed" ? tn({ reason: n.reason }) : nn(), i = n.state === "applied" ? "text-ok" : n.state === "failed" ? "text-err" : "text-muted-foreground";
@@ -1439,25 +1446,25 @@ function Mi({ table: e, recordKey: t }) {
1439
1446
  }
1440
1447
  //#endregion
1441
1448
  //#region ui/src/lib/panelWidth.ts
1442
- var Ni = {
1449
+ var Li = {
1443
1450
  min: 320,
1444
1451
  max: () => Math.max(320, Math.floor(window.innerWidth * .7))
1445
- }, Pi = {
1452
+ }, Ri = {
1446
1453
  min: 180,
1447
1454
  max: () => Math.max(180, Math.min(480, Math.floor(window.innerWidth * .4)))
1448
- }, Fi = (e, t) => Math.min(t.max(), Math.max(t.min, Math.round(e)));
1449
- function Ii(e, t, n) {
1455
+ }, zi = (e, t) => Math.min(t.max(), Math.max(t.min, Math.round(e)));
1456
+ function Bi(e, t, n) {
1450
1457
  try {
1451
1458
  let r = localStorage.getItem(e);
1452
- return r !== null && Number.isFinite(Number(r)) ? Fi(Number(r), n) : t;
1459
+ return r !== null && Number.isFinite(Number(r)) ? zi(Number(r), n) : t;
1453
1460
  } catch {
1454
1461
  return t;
1455
1462
  }
1456
1463
  }
1457
- function Li(e, t, n = Ni) {
1458
- let [r, i] = (0, I.useState)(() => Ii(e, t, n));
1464
+ function Vi(e, t, n = Li) {
1465
+ let [r, i] = (0, I.useState)(() => Bi(e, t, n));
1459
1466
  return [r, (r) => {
1460
- let a = r === null ? t : Fi(r, n);
1467
+ let a = r === null ? t : zi(r, n);
1461
1468
  i(a);
1462
1469
  try {
1463
1470
  r === null ? localStorage.removeItem(e) : localStorage.setItem(e, String(a));
@@ -1466,20 +1473,20 @@ function Li(e, t, n = Ni) {
1466
1473
  }
1467
1474
  //#endregion
1468
1475
  //#region ui/src/lib/viewportHeight.ts
1469
- var Ri = (e) => {
1476
+ var Hi = (e) => {
1470
1477
  let t = window.visualViewport;
1471
1478
  return t?.addEventListener("resize", e), t?.addEventListener("scroll", e), () => {
1472
1479
  t?.removeEventListener("resize", e), t?.removeEventListener("scroll", e);
1473
1480
  };
1474
1481
  };
1475
- function zi(e) {
1476
- let t = (0, I.useSyncExternalStore)(Ri, () => window.visualViewport?.height);
1482
+ function Ui(e) {
1483
+ let t = (0, I.useSyncExternalStore)(Hi, () => window.visualViewport?.height);
1477
1484
  return e ? t : void 0;
1478
1485
  }
1479
1486
  //#endregion
1480
1487
  //#region ui/src/components/PanelResizeHandle.tsx
1481
- var Bi = 16;
1482
- function Vi({ width: e, label: t, onResize: n, edge: r = "left", bounds: i = Ni }) {
1488
+ var Wi = 16;
1489
+ function Gi({ width: e, label: t, onResize: n, edge: r = "left", bounds: i = Li }) {
1483
1490
  let a = r === "left" ? -1 : 1;
1484
1491
  return /* @__PURE__ */ (0, z.jsx)("div", {
1485
1492
  role: "separator",
@@ -1507,7 +1514,7 @@ function Vi({ width: e, label: t, onResize: n, edge: r = "left", bounds: i = Ni
1507
1514
  },
1508
1515
  onDoubleClick: () => n(null),
1509
1516
  onKeyDown: (t) => {
1510
- let r = t.key === "ArrowLeft" ? -a * Bi : t.key === "ArrowRight" ? a * Bi : 0;
1517
+ let r = t.key === "ArrowLeft" ? -a * Wi : t.key === "ArrowRight" ? a * Wi : 0;
1511
1518
  r !== 0 && (t.preventDefault(), n(e + r));
1512
1519
  },
1513
1520
  className: m("absolute inset-y-0 z-10 w-1 cursor-col-resize outline-none hover:bg-primary/40 focus-visible:bg-primary/40", r === "left" ? "-left-0.5" : "-right-0.5")
@@ -1515,24 +1522,24 @@ function Vi({ width: e, label: t, onResize: n, edge: r = "left", bounds: i = Ni
1515
1522
  }
1516
1523
  //#endregion
1517
1524
  //#region ui/src/components/SidePanel.tsx
1518
- var Hi = {
1525
+ var Ki = {
1519
1526
  overlay: "absolute inset-y-0 right-0 z-20 shadow-xl",
1520
1527
  docked: "relative"
1521
1528
  };
1522
- function Ui({ layout: e, widthKey: t, defaultWidth: n, resizeLabel: r, className: i, children: a, ...o }) {
1523
- let s = fe(), [c, l] = Li(t, n), u = zi(s), d = s ? u ? { height: u } : void 0 : { width: c };
1529
+ function qi({ layout: e, widthKey: t, defaultWidth: n, resizeLabel: r, className: i, children: a, ...o }) {
1530
+ let s = fe(), [c, l] = Vi(t, n), u = Ui(s), d = s ? u ? { height: u } : void 0 : { width: c };
1524
1531
  return /* @__PURE__ */ (0, z.jsxs)("aside", {
1525
1532
  ...o,
1526
- className: m("flex min-h-0 flex-col border-l bg-background", Hi[e], "max-md:fixed max-md:inset-0 max-md:z-40 max-md:h-dvh max-md:border-l-0 max-md:shadow-none max-md:animate-[y-slide-up_160ms_ease-out]", i),
1533
+ className: m("flex min-h-0 flex-col border-l bg-background", Ki[e], "max-md:fixed max-md:inset-0 max-md:z-40 max-md:h-dvh max-md:border-l-0 max-md:shadow-none max-md:animate-[y-slide-up_160ms_ease-out]", i),
1527
1534
  style: d,
1528
- children: [!s && /* @__PURE__ */ (0, z.jsx)(Vi, {
1535
+ children: [!s && /* @__PURE__ */ (0, z.jsx)(Gi, {
1529
1536
  width: c,
1530
1537
  label: r,
1531
1538
  onResize: l
1532
1539
  }), a]
1533
1540
  });
1534
1541
  }
1535
- function Wi({ onClose: e, className: t, children: n }) {
1542
+ function Ji({ onClose: e, className: t, children: n }) {
1536
1543
  let r = fe();
1537
1544
  return /* @__PURE__ */ (0, z.jsxs)("header", {
1538
1545
  className: m("flex items-center gap-2 border-b px-3.5 py-2.5 max-md:gap-1 max-md:px-2 max-md:pt-[calc(0.625rem+env(safe-area-inset-top))]", t),
@@ -1555,7 +1562,7 @@ function Wi({ onClose: e, className: t, children: n }) {
1555
1562
  ]
1556
1563
  });
1557
1564
  }
1558
- function Gi({ className: e, ...t }) {
1565
+ function Yi({ className: e, ...t }) {
1559
1566
  return /* @__PURE__ */ (0, z.jsx)("div", {
1560
1567
  ...t,
1561
1568
  className: m("flex items-center gap-2 border-t px-3.5 py-2.5 max-md:pb-[calc(0.625rem+env(safe-area-inset-bottom))]", e)
@@ -1695,36 +1702,36 @@ var X = class {
1695
1702
  new class extends X {}();
1696
1703
  //#endregion
1697
1704
  //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/util/string.js
1698
- function Ki(e, t) {
1705
+ function Xi(e, t) {
1699
1706
  let n = 0;
1700
1707
  for (; n < e.length && n < t.length; n++) if (e[n] != t[n]) return e.slice(0, n);
1701
1708
  return e.slice(0, n);
1702
1709
  }
1703
- function qi(e, t) {
1710
+ function Zi(e, t) {
1704
1711
  let n;
1705
1712
  if (!e || !t || e[e.length - 1] != t[t.length - 1]) return "";
1706
1713
  for (n = 0; n < e.length && n < t.length; n++) if (e[e.length - (n + 1)] != t[t.length - (n + 1)]) return e.slice(-n);
1707
1714
  return e.slice(-n);
1708
1715
  }
1709
- function Ji(e, t, n) {
1716
+ function Qi(e, t, n) {
1710
1717
  if (e.slice(0, t.length) != t) throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);
1711
1718
  return n + e.slice(t.length);
1712
1719
  }
1713
- function Yi(e, t, n) {
1720
+ function $i(e, t, n) {
1714
1721
  if (!t) return e + n;
1715
1722
  if (e.slice(-t.length) != t) throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);
1716
1723
  return e.slice(0, -t.length) + n;
1717
1724
  }
1718
1725
  function Z(e, t) {
1719
- return Ji(e, t, "");
1726
+ return Qi(e, t, "");
1720
1727
  }
1721
- function Xi(e, t) {
1722
- return Yi(e, t, "");
1728
+ function ea(e, t) {
1729
+ return $i(e, t, "");
1723
1730
  }
1724
- function Zi(e, t) {
1725
- return t.slice(0, Qi(e, t));
1731
+ function ta(e, t) {
1732
+ return t.slice(0, na(e, t));
1726
1733
  }
1727
- function Qi(e, t) {
1734
+ function na(e, t) {
1728
1735
  let n = 0;
1729
1736
  e.length > t.length && (n = e.length - t.length);
1730
1737
  let r = t.length;
@@ -1742,7 +1749,7 @@ function Qi(e, t) {
1742
1749
  }
1743
1750
  return a;
1744
1751
  }
1745
- function $i(e, t) {
1752
+ function ra(e, t) {
1746
1753
  let n = [];
1747
1754
  for (let r of Array.from(t.segment(e))) {
1748
1755
  let e = r.segment;
@@ -1750,7 +1757,7 @@ function $i(e, t) {
1750
1757
  }
1751
1758
  return n;
1752
1759
  }
1753
- function ea(e, t) {
1760
+ function ia(e, t) {
1754
1761
  if (t) return $(e, t)[1];
1755
1762
  let n;
1756
1763
  for (n = e.length - 1; n >= 0 && e[n].match(/\s/); n--);
@@ -1762,14 +1769,14 @@ function Q(e, t) {
1762
1769
  return n ? n[0] : "";
1763
1770
  }
1764
1771
  function $(e, t) {
1765
- if (!t) return [Q(e), ea(e)];
1772
+ if (!t) return [Q(e), ia(e)];
1766
1773
  if (t.resolvedOptions().granularity != "word") throw Error("The segmenter passed must have a granularity of \"word\"");
1767
- let n = $i(e, t), r = n[0], i = n[n.length - 1];
1774
+ let n = ra(e, t), r = n[0], i = n[n.length - 1];
1768
1775
  return [/\s/.test(r) ? r : "", /\s/.test(i) ? i : ""];
1769
1776
  }
1770
1777
  //#endregion
1771
1778
  //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/word.js
1772
- var ta = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}", na = RegExp(`[${ta}]+|\\s+|[^${ta}]`, "ug"), ra = new class extends X {
1779
+ var aa = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}", oa = RegExp(`[${aa}]+|\\s+|[^${aa}]`, "ug"), sa = new class extends X {
1773
1780
  equals(e, t, n) {
1774
1781
  return n.ignoreCase && (e = e.toLowerCase(), t = t.toLowerCase()), e.trim() === t.trim();
1775
1782
  }
@@ -1778,8 +1785,8 @@ var ta = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8
1778
1785
  if (t.intlSegmenter) {
1779
1786
  let r = t.intlSegmenter;
1780
1787
  if (r.resolvedOptions().granularity != "word") throw Error("The segmenter passed must have a granularity of \"word\"");
1781
- n = $i(e, r);
1782
- } else n = e.match(na) || [];
1788
+ n = ra(e, r);
1789
+ } else n = e.match(oa) || [];
1783
1790
  let r = [], i = null;
1784
1791
  return n.forEach((e) => {
1785
1792
  /\s/.test(e) ? i == null ? r.push(e) : r.push(r.pop() + e) : i != null && /\s/.test(i) ? r[r.length - 1] == i ? r.push(r.pop() + e) : r.push(i + e) : r.push(e), i = e;
@@ -1792,23 +1799,23 @@ var ta = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8
1792
1799
  if (!e || t.oneChangePerToken) return e;
1793
1800
  let n = null, r = null, i = null;
1794
1801
  return e.forEach((e) => {
1795
- e.added ? r = e : e.removed ? i = e : ((r || i) && aa(n, i, r, e, t.intlSegmenter), n = e, r = null, i = null);
1796
- }), (r || i) && aa(n, i, r, null, t.intlSegmenter), e;
1802
+ e.added ? r = e : e.removed ? i = e : ((r || i) && la(n, i, r, e, t.intlSegmenter), n = e, r = null, i = null);
1803
+ }), (r || i) && la(n, i, r, null, t.intlSegmenter), e;
1797
1804
  }
1798
1805
  }();
1799
- function ia(e, t, n) {
1800
- return n?.ignoreWhitespace != null && !n.ignoreWhitespace ? sa(e, t, n) : ra.diff(e, t, n);
1806
+ function ca(e, t, n) {
1807
+ return n?.ignoreWhitespace != null && !n.ignoreWhitespace ? da(e, t, n) : sa.diff(e, t, n);
1801
1808
  }
1802
- function aa(e, t, n, r, i) {
1809
+ function la(e, t, n, r, i) {
1803
1810
  if (t && n) {
1804
1811
  let [a, o] = $(t.value, i), [s, c] = $(n.value, i);
1805
1812
  if (e) {
1806
- let r = Ki(a, s);
1807
- e.value = Yi(e.value, s, r), t.value = Z(t.value, r), n.value = Z(n.value, r);
1813
+ let r = Xi(a, s);
1814
+ e.value = $i(e.value, s, r), t.value = Z(t.value, r), n.value = Z(n.value, r);
1808
1815
  }
1809
1816
  if (r) {
1810
- let e = qi(o, c);
1811
- r.value = Ji(r.value, c, e), t.value = Xi(t.value, e), n.value = Xi(n.value, e);
1817
+ let e = Zi(o, c);
1818
+ r.value = Qi(r.value, c, e), t.value = ea(t.value, e), n.value = ea(n.value, e);
1812
1819
  }
1813
1820
  } else if (n) {
1814
1821
  if (e) {
@@ -1820,39 +1827,39 @@ function aa(e, t, n, r, i) {
1820
1827
  r.value = r.value.substring(e.length);
1821
1828
  }
1822
1829
  } else if (e && r) {
1823
- let n = Q(r.value, i), [a, o] = $(t.value, i), s = Ki(n, a);
1830
+ let n = Q(r.value, i), [a, o] = $(t.value, i), s = Xi(n, a);
1824
1831
  t.value = Z(t.value, s);
1825
- let c = qi(Z(n, s), o);
1826
- t.value = Xi(t.value, c), r.value = Ji(r.value, n, c), e.value = Yi(e.value, n, n.slice(0, n.length - c.length));
1832
+ let c = Zi(Z(n, s), o);
1833
+ t.value = ea(t.value, c), r.value = Qi(r.value, n, c), e.value = $i(e.value, n, n.slice(0, n.length - c.length));
1827
1834
  } else if (r) {
1828
- let e = Q(r.value, i), n = Zi(ea(t.value, i), e);
1829
- t.value = Xi(t.value, n);
1835
+ let e = Q(r.value, i), n = ta(ia(t.value, i), e);
1836
+ t.value = ea(t.value, n);
1830
1837
  } else if (e) {
1831
- let n = Zi(ea(e.value, i), Q(t.value, i));
1838
+ let n = ta(ia(e.value, i), Q(t.value, i));
1832
1839
  t.value = Z(t.value, n);
1833
1840
  }
1834
1841
  }
1835
- var oa = new class extends X {
1842
+ var ua = new class extends X {
1836
1843
  tokenize(e) {
1837
- let t = RegExp(`(\\r?\\n)|[${ta}]+|[^\\S\\n\\r]+|[^${ta}]`, "ug");
1844
+ let t = RegExp(`(\\r?\\n)|[${aa}]+|[^\\S\\n\\r]+|[^${aa}]`, "ug");
1838
1845
  return e.match(t) || [];
1839
1846
  }
1840
1847
  }();
1841
- function sa(e, t, n) {
1842
- return oa.diff(e, t, n);
1848
+ function da(e, t, n) {
1849
+ return ua.diff(e, t, n);
1843
1850
  }
1844
- var ca = new class extends X {
1851
+ var fa = new class extends X {
1845
1852
  constructor() {
1846
- super(...arguments), this.tokenize = ua;
1853
+ super(...arguments), this.tokenize = ma;
1847
1854
  }
1848
1855
  equals(e, t, n) {
1849
1856
  return n.ignoreWhitespace ? ((!n.newlineIsToken || !e.includes("\n")) && (e = e.trim()), (!n.newlineIsToken || !t.includes("\n")) && (t = t.trim())) : n.ignoreNewlineAtEof && !n.newlineIsToken && (e.endsWith("\n") && (e = e.slice(0, -1)), t.endsWith("\n") && (t = t.slice(0, -1))), super.equals(e, t, n);
1850
1857
  }
1851
1858
  }();
1852
- function la(e, t, n) {
1853
- return ca.diff(e, t, n);
1859
+ function pa(e, t, n) {
1860
+ return fa.diff(e, t, n);
1854
1861
  }
1855
- function ua(e, t) {
1862
+ function ma(e, t) {
1856
1863
  t.stripTrailingCr && (e = e.replace(/\r\n/g, "\n"));
1857
1864
  let n = [], r = e.split(/(\n|\r\n)/);
1858
1865
  r[r.length - 1] || r.pop();
@@ -1864,7 +1871,7 @@ function ua(e, t) {
1864
1871
  }
1865
1872
  //#endregion
1866
1873
  //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/sentence.js
1867
- function da(e) {
1874
+ function ha(e) {
1868
1875
  return e == "." || e == "!" || e == "?";
1869
1876
  }
1870
1877
  new class extends X {
@@ -1875,7 +1882,7 @@ new class extends X {
1875
1882
  t.push(e.slice(n));
1876
1883
  break;
1877
1884
  }
1878
- if (da(e[r]) && e[r + 1].match(/\s/)) {
1885
+ if (ha(e[r]) && e[r + 1].match(/\s/)) {
1879
1886
  for (t.push(e.slice(n, r + 1)), r = n = r + 1; e[r + 1]?.match(/\s/);) r++;
1880
1887
  t.push(e.slice(n, r + 1)), n = r + 1;
1881
1888
  }
@@ -1888,26 +1895,26 @@ new class extends X {
1888
1895
  }
1889
1896
  }(), new class extends X {
1890
1897
  constructor() {
1891
- super(...arguments), this.tokenize = ua;
1898
+ super(...arguments), this.tokenize = ma;
1892
1899
  }
1893
1900
  get useLongestToken() {
1894
1901
  return !0;
1895
1902
  }
1896
1903
  castInput(e, t) {
1897
1904
  let { undefinedReplacement: n, stringifyReplacer: r = (e, t) => t === void 0 ? n : t } = t;
1898
- return typeof e == "string" ? e : JSON.stringify(fa(e, null, null, r), null, " ");
1905
+ return typeof e == "string" ? e : JSON.stringify(ga(e, null, null, r), null, " ");
1899
1906
  }
1900
1907
  equals(e, t, n) {
1901
1908
  return super.equals(e.replace(/,([\r\n])/g, "$1"), t.replace(/,([\r\n])/g, "$1"), n);
1902
1909
  }
1903
1910
  }();
1904
- function fa(e, t, n, r, i) {
1911
+ function ga(e, t, n, r, i) {
1905
1912
  t ||= [], n ||= [], r && (e = r(i === void 0 ? "" : i, e));
1906
1913
  let a = 0;
1907
1914
  for (; a < t.length; a += 1) if (t[a] === e) return n[a];
1908
1915
  let o;
1909
1916
  if (Object.prototype.toString.call(e) === "[object Array]") {
1910
- for (t.push(e), o = Array(e.length), n.push(o), a = 0; a < e.length; a += 1) o[a] = fa(e[a], t, n, r, String(a));
1917
+ for (t.push(e), o = Array(e.length), n.push(o), a = 0; a < e.length; a += 1) o[a] = ga(e[a], t, n, r, String(a));
1911
1918
  return t.pop(), n.pop(), o;
1912
1919
  }
1913
1920
  if (e && e.toJSON && (e = e.toJSON()), typeof e == "object" && e) {
@@ -1916,7 +1923,7 @@ function fa(e, t, n, r, i) {
1916
1923
  for (s in e)
1917
1924
  /* istanbul ignore else */
1918
1925
  Object.prototype.hasOwnProperty.call(e, s) && i.push(s);
1919
- for (i.sort(), a = 0; a < i.length; a += 1) s = i[a], o[s] = fa(e[s], t, n, r, s);
1926
+ for (i.sort(), a = 0; a < i.length; a += 1) s = i[a], o[s] = ga(e[s], t, n, r, s);
1920
1927
  t.pop(), n.pop();
1921
1928
  } else o = e;
1922
1929
  return o;
@@ -1934,15 +1941,15 @@ new class extends X {
1934
1941
  }();
1935
1942
  //#endregion
1936
1943
  //#region ui/src/lib/textdiff.ts
1937
- var pa = 2, ma = new Intl.Segmenter(void 0, { granularity: "word" }), ha = (e) => typeof e == "string" && (e.includes("\n") || e.length > 120), ga = (e) => e.replace(/\n$/, "").split("\n"), _a = (e, t) => ({
1944
+ var _a = 2, va = new Intl.Segmenter(void 0, { granularity: "word" }), ya = (e) => typeof e == "string" && (e.includes("\n") || e.length > 120), ba = (e) => e.replace(/\n$/, "").split("\n"), xa = (e, t) => ({
1938
1945
  kind: e,
1939
1946
  segments: [{
1940
1947
  text: t,
1941
1948
  mark: !1
1942
1949
  }]
1943
1950
  });
1944
- function va(e, t) {
1945
- let n = ia(e, t, { intlSegmenter: ma });
1951
+ function Sa(e, t) {
1952
+ let n = ca(e, t, { intlSegmenter: va });
1946
1953
  return [{
1947
1954
  kind: "del",
1948
1955
  segments: n.filter((e) => !e.added).map((e) => ({
@@ -1957,21 +1964,21 @@ function va(e, t) {
1957
1964
  }))
1958
1965
  }];
1959
1966
  }
1960
- function ya(e, t) {
1961
- let n = la(e, t), r = [];
1967
+ function Ca(e, t) {
1968
+ let n = pa(e, t), r = [];
1962
1969
  for (let e = 0; e < n.length; e++) {
1963
- let t = n[e], i = ga(t.value), a = n[e + 1];
1970
+ let t = n[e], i = ba(t.value), a = n[e + 1];
1964
1971
  if (t.removed && a?.added) {
1965
- let t = ga(a.value), n = Math.min(i.length, t.length), o = Array.from({ length: n }, (e, n) => va(i[n], t[n]));
1966
- r.push(...o.map(([e]) => e), ...i.slice(n).map((e) => _a("del", e))), r.push(...o.map(([, e]) => e), ...t.slice(n).map((e) => _a("add", e))), e++;
1967
- } else r.push(...i.map((e) => _a(t.added ? "add" : t.removed ? "del" : "same", e)));
1972
+ let t = ba(a.value), n = Math.min(i.length, t.length), o = Array.from({ length: n }, (e, n) => Sa(i[n], t[n]));
1973
+ r.push(...o.map(([e]) => e), ...i.slice(n).map((e) => xa("del", e))), r.push(...o.map(([, e]) => e), ...t.slice(n).map((e) => xa("add", e))), e++;
1974
+ } else r.push(...i.map((e) => xa(t.added ? "add" : t.removed ? "del" : "same", e)));
1968
1975
  }
1969
1976
  return r;
1970
1977
  }
1971
- function ba(e) {
1978
+ function wa(e) {
1972
1979
  let t = e.map(() => !1);
1973
1980
  e.forEach((n, r) => {
1974
- if (n.kind !== "same") for (let n = Math.max(0, r - pa); n <= Math.min(e.length - 1, r + pa); n++) t[n] = !0;
1981
+ if (n.kind !== "same") for (let n = Math.max(0, r - _a); n <= Math.min(e.length - 1, r + _a); n++) t[n] = !0;
1975
1982
  });
1976
1983
  let n = [];
1977
1984
  return e.forEach((e, r) => {
@@ -1984,41 +1991,41 @@ function ba(e) {
1984
1991
  }
1985
1992
  //#endregion
1986
1993
  //#region ui/src/components/TextDiff.tsx
1987
- var xa = {
1994
+ var Ta = {
1988
1995
  same: " ",
1989
1996
  add: "+",
1990
1997
  del: "-"
1991
1998
  };
1992
- function Sa({ line: e }) {
1999
+ function Ea({ line: e }) {
1993
2000
  return e.segments.map((t, n) => t.mark ? /* @__PURE__ */ (0, z.jsx)("mark", {
1994
2001
  className: m("rounded-sm text-inherit", e.kind === "add" ? "bg-ok/30" : "bg-err/25"),
1995
2002
  children: t.text
1996
2003
  }, n) : t.text);
1997
2004
  }
1998
- function Ca({ line: e }) {
2005
+ function Da({ line: e }) {
1999
2006
  return /* @__PURE__ */ (0, z.jsxs)("div", {
2000
2007
  className: m("flex gap-2 px-2.5", e.kind === "add" && "bg-ok/15", e.kind === "del" && "bg-err-soft", e.kind === "same" && "text-muted-foreground"),
2001
2008
  children: [/* @__PURE__ */ (0, z.jsx)("span", {
2002
2009
  "aria-hidden": !0,
2003
2010
  className: m("shrink-0 select-none", e.kind === "add" ? "text-ok" : e.kind === "del" && "text-err"),
2004
- children: xa[e.kind]
2011
+ children: Ta[e.kind]
2005
2012
  }), /* @__PURE__ */ (0, z.jsxs)("span", {
2006
2013
  className: "min-w-0 whitespace-pre-wrap [overflow-wrap:anywhere]",
2007
- children: [/* @__PURE__ */ (0, z.jsx)(Sa, { line: e }), e.segments.every((e) => e.text === "") && "\xA0"]
2014
+ children: [/* @__PURE__ */ (0, z.jsx)(Ea, { line: e }), e.segments.every((e) => e.text === "") && "\xA0"]
2008
2015
  })]
2009
2016
  });
2010
2017
  }
2011
- function wa({ hunk: e }) {
2018
+ function Oa({ hunk: e }) {
2012
2019
  let [t, n] = (0, I.useState)(!1);
2013
- return t ? e.lines.map((e, t) => /* @__PURE__ */ (0, z.jsx)(Ca, { line: e }, t)) : /* @__PURE__ */ (0, z.jsx)("button", {
2020
+ return t ? e.lines.map((e, t) => /* @__PURE__ */ (0, z.jsx)(Da, { line: e }, t)) : /* @__PURE__ */ (0, z.jsx)("button", {
2014
2021
  type: "button",
2015
2022
  onClick: () => n(!0),
2016
2023
  className: "block w-full bg-panel px-2.5 py-0.5 text-left font-sans text-[13px] text-muted-foreground hover:text-foreground",
2017
2024
  children: Pt({ count: e.lines.length })
2018
2025
  });
2019
2026
  }
2020
- function Ta({ field: e, before: t, after: n, legend: r }) {
2021
- let i = (0, I.useMemo)(() => ba(ya(t, n)), [t, n]);
2027
+ function ka({ field: e, before: t, after: n, legend: r }) {
2028
+ let i = (0, I.useMemo)(() => wa(Ca(t, n)), [t, n]);
2022
2029
  return /* @__PURE__ */ (0, z.jsxs)("div", {
2023
2030
  role: "group",
2024
2031
  "aria-label": e,
@@ -2035,7 +2042,7 @@ function Ta({ field: e, before: t, after: n, legend: r }) {
2035
2042
  children: [
2036
2043
  /* @__PURE__ */ (0, z.jsx)("span", {
2037
2044
  className: "font-mono text-err",
2038
- children: xa.del
2045
+ children: Ta.del
2039
2046
  }),
2040
2047
  " ",
2041
2048
  /* @__PURE__ */ (0, z.jsx)("span", {
@@ -2049,7 +2056,7 @@ function Ta({ field: e, before: t, after: n, legend: r }) {
2049
2056
  children: [
2050
2057
  /* @__PURE__ */ (0, z.jsx)("span", {
2051
2058
  className: "font-mono text-ok",
2052
- children: xa.add
2059
+ children: Ta.add
2053
2060
  }),
2054
2061
  " ",
2055
2062
  /* @__PURE__ */ (0, z.jsx)("span", {
@@ -2061,26 +2068,26 @@ function Ta({ field: e, before: t, after: n, legend: r }) {
2061
2068
  ]
2062
2069
  }), /* @__PURE__ */ (0, z.jsx)("div", {
2063
2070
  className: "overflow-hidden rounded-md border font-mono text-[13px] leading-relaxed",
2064
- children: i.map((e, t) => e.kind === "skip" ? /* @__PURE__ */ (0, z.jsx)(wa, { hunk: e }, t) : e.lines.map((e, n) => /* @__PURE__ */ (0, z.jsx)(Ca, { line: e }, `${t}:${n}`)))
2071
+ children: i.map((e, t) => e.kind === "skip" ? /* @__PURE__ */ (0, z.jsx)(Oa, { hunk: e }, t) : e.lines.map((e, n) => /* @__PURE__ */ (0, z.jsx)(Da, { line: e }, `${t}:${n}`)))
2065
2072
  })]
2066
2073
  });
2067
2074
  }
2068
2075
  //#endregion
2069
2076
  //#region ui/src/components/FieldDiff.tsx
2070
- var Ea = (e) => typeof e == "string" ? e : e == null ? "" : JSON.stringify(e), Da = (e) => !e.dim && e.a !== e.b && (ha(e.a) || ha(e.b));
2071
- function Oa(e, t) {
2077
+ var Aa = (e) => typeof e == "string" ? e : e == null ? "" : JSON.stringify(e), ja = (e) => !e.dim && e.a !== e.b && (ya(e.a) || ya(e.b));
2078
+ function Ma(e, t) {
2072
2079
  let n = t(e.a), r = t(e.b);
2073
2080
  if (e.dim || typeof e.a != "string" || typeof e.b != "string" || e.a === e.b) return {
2074
2081
  a: n,
2075
2082
  b: r
2076
2083
  };
2077
- let [i, a] = va(n, r);
2084
+ let [i, a] = Sa(n, r);
2078
2085
  return {
2079
- a: /* @__PURE__ */ (0, z.jsx)(Sa, { line: i }),
2080
- b: /* @__PURE__ */ (0, z.jsx)(Sa, { line: a })
2086
+ a: /* @__PURE__ */ (0, z.jsx)(Ea, { line: i }),
2087
+ b: /* @__PURE__ */ (0, z.jsx)(Ea, { line: a })
2081
2088
  };
2082
2089
  }
2083
- function ka({ labels: e, rows: t, note: n, className: r }) {
2090
+ function Na({ labels: e, rows: t, note: n, className: r }) {
2084
2091
  return fe() ? /* @__PURE__ */ (0, z.jsxs)("div", {
2085
2092
  "data-testid": "field-diff",
2086
2093
  className: m("flex flex-col gap-2 font-mono text-[13px]", r),
@@ -2142,30 +2149,30 @@ function ka({ labels: e, rows: t, note: n, className: r }) {
2142
2149
  ]
2143
2150
  });
2144
2151
  }
2145
- function Aa({ labels: e, rows: t, format: n, note: r, className: i }) {
2146
- let a = t.filter((e) => !Da(e)), o = t.filter(Da);
2152
+ function Pa({ labels: e, rows: t, format: n, note: r, className: i }) {
2153
+ let a = t.filter((e) => !ja(e)), o = t.filter(ja);
2147
2154
  return /* @__PURE__ */ (0, z.jsxs)("div", {
2148
2155
  className: "flex min-w-0 flex-col gap-3",
2149
- children: [(a.length > 0 || r) && /* @__PURE__ */ (0, z.jsx)(ka, {
2156
+ children: [(a.length > 0 || r) && /* @__PURE__ */ (0, z.jsx)(Na, {
2150
2157
  labels: e,
2151
2158
  note: r,
2152
2159
  className: i,
2153
2160
  rows: a.map((e) => ({
2154
2161
  field: e.field,
2155
- ...Oa(e, n),
2162
+ ...Ma(e, n),
2156
2163
  dim: e.dim
2157
2164
  }))
2158
- }), o.map((t) => /* @__PURE__ */ (0, z.jsx)(Ta, {
2165
+ }), o.map((t) => /* @__PURE__ */ (0, z.jsx)(ka, {
2159
2166
  field: t.field,
2160
2167
  legend: e,
2161
- before: Ea(t.a),
2162
- after: Ea(t.b)
2168
+ before: Aa(t.a),
2169
+ after: Aa(t.b)
2163
2170
  }, t.field))]
2164
2171
  });
2165
2172
  }
2166
2173
  //#endregion
2167
2174
  //#region ui/src/components/StaleDialog.tsx
2168
- function ja({ stale: e, current: t, draft: n, onReload: r, onOverwrite: i, onClose: a }) {
2175
+ function Fa({ stale: e, current: t, draft: n, onReload: r, onOverwrite: i, onClose: a }) {
2169
2176
  let o = (0, I.useRef)(null);
2170
2177
  return /* @__PURE__ */ (0, z.jsx)(ir, {
2171
2178
  open: !0,
@@ -2176,7 +2183,7 @@ function ja({ stale: e, current: t, draft: n, onReload: r, onOverwrite: i, onClo
2176
2183
  },
2177
2184
  children: [
2178
2185
  /* @__PURE__ */ (0, z.jsxs)(ur, { children: [/* @__PURE__ */ (0, z.jsx)(pr, { children: _n() }), /* @__PURE__ */ (0, z.jsx)(mr, { children: mn() })] }),
2179
- /* @__PURE__ */ (0, z.jsx)(Aa, {
2186
+ /* @__PURE__ */ (0, z.jsx)(Pa, {
2180
2187
  labels: [gn(), hn()],
2181
2188
  format: (e) => JSON.stringify(e ?? null),
2182
2189
  rows: e.map((e) => ({
@@ -2200,13 +2207,13 @@ function ja({ stale: e, current: t, draft: n, onReload: r, onOverwrite: i, onClo
2200
2207
  }
2201
2208
  //#endregion
2202
2209
  //#region ui/src/components/RecordDrawer.tsx
2203
- var Ma = (e, t) => Object.hasOwn(e.columns, t) ? e.columns[t] : void 0, Na = (e, t) => Object.hasOwn(e.formats, t) ? e.formats[t] : void 0, Pa = (e) => e.files?.endsWith(".mdx") ?? !1, Fa = (e, t) => Object.hasOwn(e.values, t) ? e.values[t] : void 0, Ia = (e, t) => Object.hasOwn(e, t) ? e[t] : void 0, La = {
2210
+ var Ia = (e, t) => Object.hasOwn(e.columns, t) ? e.columns[t] : void 0, La = (e, t) => Object.hasOwn(e.formats, t) ? e.formats[t] : void 0, Ra = (e) => e.files?.endsWith(".mdx") ?? !1, za = (e, t) => Object.hasOwn(e.values, t) ? e.values[t] : void 0, Ba = (e, t) => Object.hasOwn(e, t) ? e[t] : void 0, Va = {
2204
2211
  layout: "overlay",
2205
2212
  widthKey: "yamlite-drawer-width",
2206
2213
  defaultWidth: 360,
2207
2214
  "data-record-drawer": ""
2208
- }, Ra = "flex-1 text-[14px]";
2209
- function za(e, t = !0) {
2215
+ }, Ha = "flex-1 text-[14px]";
2216
+ function Ua(e, t = !0) {
2210
2217
  let n = (0, I.useRef)(void 0);
2211
2218
  (0, I.useEffect)(() => {
2212
2219
  t && (n.current = window.event);
@@ -2224,7 +2231,7 @@ function za(e, t = !0) {
2224
2231
  };
2225
2232
  });
2226
2233
  }
2227
- function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2234
+ function Wa({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2228
2235
  let a = i(), o = me(), s = se(), c = h(), { connected: l } = ee(), u = l && !S(), { data: d, error: f } = _({
2229
2236
  queryKey: [
2230
2237
  "record",
@@ -2232,7 +2239,7 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2232
2239
  t
2233
2240
  ],
2234
2241
  queryFn: () => w.record(e.name, t)
2235
- }), [p, g] = (0, I.useState)(null), [v, y] = (0, I.useState)(null), [b, x] = (0, I.useState)(/* @__PURE__ */ new Set()), [C, T] = (0, I.useState)(null), [ne, re] = (0, I.useState)(!1), [ie, E] = (0, I.useState)(null), [D, ae] = (0, I.useState)("form"), [O, oe] = (0, I.useState)(null), ce = wi(e.name, t, D === "history" && !S()), [le, ue] = (0, I.useState)(0), A = p !== null && v !== null && K(p, v).length > 0, j = fe();
2242
+ }), [p, g] = (0, I.useState)(null), [v, y] = (0, I.useState)(null), [b, x] = (0, I.useState)(/* @__PURE__ */ new Set()), [C, T] = (0, I.useState)(null), [ne, re] = (0, I.useState)(!1), [ie, E] = (0, I.useState)(null), [D, ae] = (0, I.useState)("form"), [O, oe] = (0, I.useState)(null), ce = Oi(e.name, t, D === "history" && !S()), [le, ue] = (0, I.useState)(0), A = p !== null && v !== null && K(p, v).length > 0, j = fe();
2236
2243
  (0, I.useEffect)(() => {
2237
2244
  d && !A && (v && K(v, d.row).length === 0 ? g(d.row) : de(d.row));
2238
2245
  }, [d, A]);
@@ -2240,7 +2247,7 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2240
2247
  g(e), y(e), x(/* @__PURE__ */ new Set()), E(null), ue((e) => e + 1), oe(null);
2241
2248
  }
2242
2249
  function pe(t, n) {
2243
- p && (y(Si(p, t, e.key)), x(/* @__PURE__ */ new Set()), ue((e) => e + 1), oe(n.slice(0, 7)), ae("form"));
2250
+ p && (y(Ei(p, t, e.key)), x(/* @__PURE__ */ new Set()), ue((e) => e + 1), oe(n.slice(0, 7)), ae("form"));
2244
2251
  }
2245
2252
  let M = Be({
2246
2253
  mutationFn: ({ values: n, base: r }) => w.update(e.name, t, n, r),
@@ -2308,26 +2315,26 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2308
2315
  key: void 0
2309
2316
  })
2310
2317
  });
2311
- if (za(ge, !A), (0, I.useEffect)(() => {
2318
+ if (Ua(ge, !A), (0, I.useEffect)(() => {
2312
2319
  let e = (e) => {
2313
2320
  e.key === "s" && (e.metaKey || e.ctrlKey) && !S() && (e.preventDefault(), he());
2314
2321
  };
2315
2322
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
2316
- }), f) return /* @__PURE__ */ (0, z.jsx)(Ui, {
2317
- ...La,
2323
+ }), f) return /* @__PURE__ */ (0, z.jsx)(qi, {
2324
+ ...Va,
2318
2325
  resizeLabel: R(),
2319
2326
  "aria-label": Xt(),
2320
2327
  className: "p-4 text-err",
2321
2328
  children: f.message
2322
2329
  });
2323
- if (!v || !p || !d) return /* @__PURE__ */ (0, z.jsx)(Ui, {
2324
- ...La,
2330
+ if (!v || !p || !d) return /* @__PURE__ */ (0, z.jsx)(qi, {
2331
+ ...Va,
2325
2332
  resizeLabel: R(),
2326
2333
  "aria-label": Xt()
2327
2334
  });
2328
- let _e = Object.keys(e.columns).filter((t) => t !== e.key), ve = Object.keys(v).filter((t) => t !== e.key && !_e.includes(t)), ye = new Set(K(p, v)), be = ye.size, xe = Ci(ce.data?.pages);
2329
- return /* @__PURE__ */ (0, z.jsxs)(Ui, {
2330
- ...La,
2335
+ let _e = Object.keys(e.columns).filter((t) => t !== e.key), ve = Object.keys(v).filter((t) => t !== e.key && !_e.includes(t)), ye = new Set(K(p, v)), be = ye.size, xe = Di(ce.data?.pages);
2336
+ return /* @__PURE__ */ (0, z.jsxs)(qi, {
2337
+ ...Va,
2331
2338
  resizeLabel: R(),
2332
2339
  "aria-label": Xt(),
2333
2340
  children: [
@@ -2338,7 +2345,7 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2338
2345
  },
2339
2346
  className: "flex min-h-0 flex-1 flex-col",
2340
2347
  children: [
2341
- /* @__PURE__ */ (0, z.jsxs)(Wi, {
2348
+ /* @__PURE__ */ (0, z.jsxs)(Ji, {
2342
2349
  onClose: ge,
2343
2350
  children: [/* @__PURE__ */ (0, z.jsx)("span", {
2344
2351
  className: "min-w-0 flex-1 truncate font-mono font-bold",
@@ -2353,22 +2360,22 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2353
2360
  children: [
2354
2361
  /* @__PURE__ */ (0, z.jsx)(P, {
2355
2362
  value: "form",
2356
- className: Ra,
2363
+ className: Ha,
2357
2364
  children: yn()
2358
2365
  }),
2359
2366
  /* @__PURE__ */ (0, z.jsx)(P, {
2360
2367
  value: "json",
2361
- className: Ra,
2368
+ className: Ha,
2362
2369
  children: "JSON"
2363
2370
  }),
2364
2371
  /* @__PURE__ */ (0, z.jsx)(P, {
2365
2372
  value: "yaml",
2366
- className: Ra,
2373
+ className: Ha,
2367
2374
  children: vn()
2368
2375
  }),
2369
2376
  !S() && /* @__PURE__ */ (0, z.jsxs)(P, {
2370
2377
  value: "history",
2371
- className: Ra,
2378
+ className: Ha,
2372
2379
  children: [bn(), xe !== null && /* @__PURE__ */ (0, z.jsx)("span", {
2373
2380
  className: "ml-1 font-mono text-[12px] text-muted-foreground",
2374
2381
  children: xe
@@ -2392,7 +2399,7 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2392
2399
  disabled: !u,
2393
2400
  className: "m-0 min-w-0 border-0 p-0",
2394
2401
  children: [..._e, ...ve].map((t) => {
2395
- let n = e.references.find((e) => e.column === t), r = (e.captures ?? []).some((e) => e.column === t), i = /* @__PURE__ */ (0, z.jsx)(vi, {
2402
+ let n = e.references.find((e) => e.column === t), r = (e.captures ?? []).some((e) => e.column === t), i = /* @__PURE__ */ (0, z.jsx)(Si, {
2396
2403
  readOnly: !u || r,
2397
2404
  path: [t],
2398
2405
  label: /* @__PURE__ */ (0, z.jsxs)("div", {
@@ -2405,16 +2412,16 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2405
2412
  })]
2406
2413
  }), /* @__PURE__ */ (0, z.jsx)("span", {
2407
2414
  className: "font-mono text-[10px] font-medium max-md:text-[11.5px]",
2408
- children: n ? `→ ${n.table}` : Na(e, t) ?? Ma(e, t) ?? Zt()
2415
+ children: n ? `→ ${n.table}` : La(e, t) ?? Ia(e, t) ?? Zt()
2409
2416
  })]
2410
2417
  }),
2411
2418
  value: v[t],
2412
- type: Ma(e, t),
2413
- format: Na(e, t),
2414
- mdx: Pa(e),
2415
- allowed: Fa(e, t),
2416
- min: Ia(e.min, t),
2417
- max: Ia(e.max, t),
2419
+ type: Ia(e, t),
2420
+ format: La(e, t),
2421
+ mdx: Ra(e),
2422
+ allowed: za(e, t),
2423
+ min: Ba(e.min, t),
2424
+ max: Ba(e.max, t),
2418
2425
  reference: n,
2419
2426
  onChange: (e) => y({
2420
2427
  ...v,
@@ -2479,7 +2486,7 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2479
2486
  !S() && /* @__PURE__ */ (0, z.jsx)(F, {
2480
2487
  value: "history",
2481
2488
  className: "min-h-0 flex-1 overflow-auto px-4 py-3",
2482
- children: /* @__PURE__ */ (0, z.jsx)(ji, {
2489
+ children: /* @__PURE__ */ (0, z.jsx)(Fi, {
2483
2490
  table: e.name,
2484
2491
  recordKey: t,
2485
2492
  query: ce,
@@ -2491,7 +2498,7 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2491
2498
  })
2492
2499
  ]
2493
2500
  }),
2494
- !S() && /* @__PURE__ */ (0, z.jsxs)(Gi, {
2501
+ !S() && /* @__PURE__ */ (0, z.jsxs)(Yi, {
2495
2502
  className: "max-md:flex-wrap",
2496
2503
  children: [
2497
2504
  /* @__PURE__ */ (0, z.jsxs)("span", {
@@ -2499,7 +2506,7 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2499
2506
  children: [be > 0 ? O ? fn({
2500
2507
  from: O,
2501
2508
  count: be
2502
- }) : Lt({ count: be }) : /* @__PURE__ */ (0, z.jsx)(Mi, {
2509
+ }) : Lt({ count: be }) : /* @__PURE__ */ (0, z.jsx)(Ii, {
2503
2510
  table: e.name,
2504
2511
  recordKey: t
2505
2512
  }), M.isError && !(M.error instanceof te && M.error.status === 409) && /* @__PURE__ */ (0, z.jsx)("span", {
@@ -2532,7 +2539,7 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2532
2539
  })
2533
2540
  ]
2534
2541
  }),
2535
- C && /* @__PURE__ */ (0, z.jsx)(ja, {
2542
+ C && /* @__PURE__ */ (0, z.jsx)(Fa, {
2536
2543
  stale: C.fields,
2537
2544
  current: C.current,
2538
2545
  draft: v,
@@ -2580,10 +2587,10 @@ function Ba({ table: e, recordKey: t, headerActions: n, onClose: r }) {
2580
2587
  }
2581
2588
  //#endregion
2582
2589
  //#region ui/src/lib/pageFrame.ts
2583
- var Va;
2584
- function Ha(e) {
2585
- Va = e;
2590
+ var Ga;
2591
+ function Ka(e) {
2592
+ Ga = e;
2586
2593
  }
2587
- var Ua = () => Va;
2594
+ var qa = () => Ga;
2588
2595
  //#endregion
2589
- export { Gt as $, hr as A, W as B, Yr as C, yr as D, Or as E, mr as F, Fn as G, er as H, fr as I, zn as J, Mn as K, ur as L, ir as M, dr as N, gr as O, lr as P, Kt as Q, pr as R, Zr as S, qr as T, Jn as U, U as V, En as W, R as X, pn as Y, ln as Z, oi as _, za as a, He as at, ei as b, Gi as c, Le as ct, Pi as d, Ne as dt, Lt as et, Li as f, ai as g, $r as h, La as i, L as it, _r as j, vr as k, Wi as l, Ie as lt, vi as m, Ha as n, Ge as nt, Aa as o, Ve as ot, Mi as p, An as q, Ba as r, We as rt, Ui as s, Be as st, Ua as t, Ke as tt, Vi as u, Fe as ut, ii as v, K as w, Qr as x, ni as y, cr as z };
2596
+ export { ln as $, gr as A, pr as B, oi as C, qr as D, K as E, dr as F, Jn as G, W as H, lr as I, Mn as J, En as K, mr as L, hr as M, _r as N, Or as O, ir as P, R as Q, fr as R, Qr as S, Yr as T, U, cr as V, er as W, zn as X, An as Y, pn as Z, ui as _, Ua as a, We as at, ii as b, Yi as c, Ve as ct, Ri as d, Ie as dt, Kt as et, Vi as f, Fe as ft, li as g, $r as h, Va as i, Ge as it, vr as j, yr as k, Ji as l, Be as lt, Si as m, Ka as n, Lt as nt, Pa as o, L as ot, Ii as p, Ne as pt, Fn as q, Wa as r, Ke as rt, qi as s, He as st, qa as t, Gt as tt, Gi as u, Le as ut, ci as v, Zr as w, ei as x, ni as y, ur as z };