@morlay/ui-conversation-manager 0.1.9 → 0.1.11-alpha.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.
package/dist/client.cjs CHANGED
@@ -4,7 +4,7 @@ window.__ModuleLoader__.load({
4
4
  var module = { exports: {} };
5
5
  var exports = module.exports;
6
6
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
7
- //#region \0rolldown/runtime.js
7
+ // \0rolldown/runtime.js
8
8
  var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -29,13 +29,12 @@ window.__ModuleLoader__.load({
29
29
  return to;
30
30
  };
31
31
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
32
- //#endregion
33
32
  let react = require("react");
34
33
  let _deepseek_ai_dsh_client_store = require("@deepseek-ai/dsh-client-store");
35
34
  let _deepseek_ai_cordis = require("@deepseek-ai/cordis");
36
35
  let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
37
36
  let react_jsx_runtime = require("react/jsx-runtime");
38
- //#region src/client/controller.ts
37
+ // src/client/controller.ts
39
38
  const SESSION_DELETE_PATH = "/api/morlay/v1/session/delete";
40
39
  const SESSION_IMPORT_PATH = "/api/morlay/v1/session/import";
41
40
  const SESSION_EXPORT_PATH = "/api/morlay/v1/session/export";
@@ -653,8 +652,7 @@ window.__ModuleLoader__.load({
653
652
  }
654
653
  return node.variants[0];
655
654
  }
656
- //#endregion
657
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/draft.ts
655
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/draft.ts
658
656
  function failureOf(error) {
659
657
  const raw = error instanceof Error ? error.message : String(error);
660
658
  const path = (error.options?.path ?? []).filter((segment) => typeof segment === "string" || typeof segment === "number").map(String);
@@ -941,8 +939,7 @@ window.__ModuleLoader__.load({
941
939
  }
942
940
  return next;
943
941
  }
944
- //#endregion
945
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/controller.ts
942
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/controller.ts
946
943
  function declaredSource(node) {
947
944
  const extra = node?.meta.extra;
948
945
  if (typeof extra !== "object" || extra === null) return void 0;
@@ -1145,79 +1142,78 @@ window.__ModuleLoader__.load({
1145
1142
  };
1146
1143
  }
1147
1144
  };
1148
- //#endregion
1149
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/hints.ts
1145
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/hints.ts
1150
1146
  var SchemaFormHints = class extends _deepseek_ai_cordis.Service {
1151
- #readers = /* @__PURE__ */ new Map();
1152
- #texts = /* @__PURE__ */ new Map();
1153
- #selects = /* @__PURE__ */ new Map();
1154
- #sources = /* @__PURE__ */ new Map();
1155
- #listeners = /* @__PURE__ */ new Set();
1147
+ readers = /* @__PURE__ */ new Map();
1148
+ texts = /* @__PURE__ */ new Map();
1149
+ selects = /* @__PURE__ */ new Map();
1150
+ sources = /* @__PURE__ */ new Map();
1151
+ listeners = /* @__PURE__ */ new Set();
1156
1152
  constructor(ctx) {
1157
1153
  super(ctx, "schemaFormHints");
1158
1154
  }
1159
1155
  keysFor(ns, path) {
1160
- return lookup(this.#readers, ns, path)?.() ?? [];
1156
+ return lookup(this.readers, ns, path)?.() ?? [];
1161
1157
  }
1162
1158
  textFor(ns, path) {
1163
- return lookup(this.#texts, ns, path)?.() ?? {};
1159
+ return lookup(this.texts, ns, path)?.() ?? {};
1164
1160
  }
1165
1161
  select(ns, path, spec) {
1166
1162
  const key = locationKey(ns, path);
1167
- this.#selects.set(key, spec);
1168
- this.#publish();
1163
+ this.selects.set(key, spec);
1164
+ this.publish();
1169
1165
  return () => {
1170
- if (this.#selects.get(key) !== spec) return;
1171
- this.#selects.delete(key);
1172
- this.#publish();
1166
+ if (this.selects.get(key) !== spec) return;
1167
+ this.selects.delete(key);
1168
+ this.publish();
1173
1169
  };
1174
1170
  }
1175
1171
  selectFor(ns, path) {
1176
- return lookup(this.#selects, ns, path);
1172
+ return lookup(this.selects, ns, path);
1177
1173
  }
1178
1174
  source(name, spec) {
1179
- this.#sources.set(name, spec);
1180
- this.#publish();
1175
+ this.sources.set(name, spec);
1176
+ this.publish();
1181
1177
  return () => {
1182
- if (this.#sources.get(name) !== spec) return;
1183
- this.#sources.delete(name);
1184
- this.#publish();
1178
+ if (this.sources.get(name) !== spec) return;
1179
+ this.sources.delete(name);
1180
+ this.publish();
1185
1181
  };
1186
1182
  }
1187
1183
  sourceFor(name) {
1188
- return this.#sources.get(name);
1184
+ return this.sources.get(name);
1189
1185
  }
1190
1186
  describe(ns, path, read) {
1191
1187
  const key = locationKey(ns, path);
1192
- this.#texts.set(key, read);
1193
- this.#publish();
1188
+ this.texts.set(key, read);
1189
+ this.publish();
1194
1190
  return () => {
1195
- if (this.#texts.get(key) !== read) return;
1196
- this.#texts.delete(key);
1197
- this.#publish();
1191
+ if (this.texts.get(key) !== read) return;
1192
+ this.texts.delete(key);
1193
+ this.publish();
1198
1194
  };
1199
1195
  }
1200
1196
  suggestKeys(ns, path, read) {
1201
1197
  const key = locationKey(ns, path);
1202
- this.#readers.set(key, read);
1203
- this.#publish();
1198
+ this.readers.set(key, read);
1199
+ this.publish();
1204
1200
  return () => {
1205
- if (this.#readers.get(key) !== read) return;
1206
- this.#readers.delete(key);
1207
- this.#publish();
1201
+ if (this.readers.get(key) !== read) return;
1202
+ this.readers.delete(key);
1203
+ this.publish();
1208
1204
  };
1209
1205
  }
1210
1206
  subscribe(listener) {
1211
- this.#listeners.add(listener);
1207
+ this.listeners.add(listener);
1212
1208
  return () => {
1213
- this.#listeners.delete(listener);
1209
+ this.listeners.delete(listener);
1214
1210
  };
1215
1211
  }
1216
1212
  refresh() {
1217
- this.#publish();
1213
+ this.publish();
1218
1214
  }
1219
- #publish() {
1220
- for (const listener of this.#listeners) listener();
1215
+ publish() {
1216
+ for (const listener of this.listeners) listener();
1221
1217
  }
1222
1218
  };
1223
1219
  function locationKey(ns, path) {
@@ -1235,8 +1231,7 @@ window.__ModuleLoader__.load({
1235
1231
  const wildcardable = Math.max(0, path.length - 1);
1236
1232
  for (let bits = (1 << wildcardable) - 1; bits > 0; bits--) yield path.map((segment, index) => index > 0 && (bits & 1 << index - 1) !== 0 ? "*" : segment);
1237
1233
  }
1238
- //#endregion
1239
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/locales.ts
1234
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/locales.ts
1240
1235
  const zh$1 = {
1241
1236
  unavailable: "该插件当前未加载,暂时无法配置。",
1242
1237
  readOnly: "本部署的设置为只读。",
@@ -1345,8 +1340,7 @@ window.__ModuleLoader__.load({
1345
1340
  duplicateItem: "Duplicate {key}: {value}",
1346
1341
  missingItem: "Every item needs a {key}"
1347
1342
  };
1348
- //#endregion
1349
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/rows.ts
1343
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/rows.ts
1350
1344
  function rowRegistrations(namespaces, bundles) {
1351
1345
  const owners = /* @__PURE__ */ new Map();
1352
1346
  for (const bundle of bundles) for (const row of bundle.rows) owners.set(row.rowId, bundle.name);
@@ -1418,16 +1412,14 @@ window.__ModuleLoader__.load({
1418
1412
  }
1419
1413
  }
1420
1414
  };
1421
- //#endregion
1422
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/labels.ts
1415
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/labels.ts
1423
1416
  function fieldHint(node, resolveText) {
1424
1417
  const parts = [];
1425
1418
  if (node.meta.description !== void 0) parts.push(resolveText(node.meta.description));
1426
1419
  if (node.meta.comment !== void 0) parts.push(node.meta.comment);
1427
1420
  return parts.length === 0 ? void 0 : parts.join(" ");
1428
1421
  }
1429
- //#endregion
1430
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/lines.ts
1422
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/lines.ts
1431
1423
  function containerShape(node, value) {
1432
1424
  switch (variantOf(node, value).type) {
1433
1425
  case "object":
@@ -1596,9 +1588,8 @@ window.__ModuleLoader__.load({
1596
1588
  if (prefix.length > path.length) return false;
1597
1589
  return prefix.every((segment, index) => path[index] === segment);
1598
1590
  }
1599
- //#endregion
1600
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/schema-form/schema-form.module.css.mjs
1601
- const css$15 = ".N3kx7G_editorRoot{width:100%;color:var(--dsw-alias-label-primary);flex-direction:column;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:14px;line-height:22px;display:flex}.N3kx7G_lineRow{white-space:nowrap;align-items:flex-start;gap:6px;min-height:22px;padding-right:8px;display:flex}.N3kx7G_lineRow:hover{background:var(--dsw-alias-bg-layer-2)}.N3kx7G_lineRow[data-selected=true]{background:var(--dsw-alias-bg-layer-3)}.N3kx7G_lineRow[data-dirty=true]{box-shadow:inset 2px 0 0 var(--dsw-alias-brand-primary)}.N3kx7G_lineRow[data-overridden=true]{box-shadow:inset 2px 0 0 var(--dsw-elevation-stroke-color)}.N3kx7G_lineRow[data-dirty=true] [data-role=key],.N3kx7G_lineRow[data-overridden=true] [data-role=key]{color:var(--dsw-alias-brand-primary)}.N3kx7G_lineRow[data-invalid=true]{background:color-mix(in srgb, var(--dsw-alias-state-error-secondary) 12%, transparent);box-shadow:inset 2px 0 0 var(--dsw-alias-state-error-primary)}.N3kx7G_lineRow[data-invalid=true] [data-role=key]{color:var(--dsw-alias-state-error-primary)}.N3kx7G_lineRow:hover [data-role=actions]{opacity:1}.N3kx7G_lineBody{flex:1;align-items:center;gap:6px;min-width:0;min-height:22px;display:flex}.N3kx7G_lineNumber{text-align:right;width:32px;color:var(--dsw-alias-label-caption);user-select:none;cursor:pointer;flex:none;line-height:22px}.N3kx7G_lineFold{width:14px;height:22px;color:var(--dsw-alias-label-caption);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.N3kx7G_lineFold:hover{color:var(--dsw-alias-label-secondary)}.N3kx7G_lineFoldSpacer{flex:none;width:14px}.N3kx7G_lineKey{color:var(--dsw-alias-label-primary);flex:none}.N3kx7G_lineKey[data-index=true]{color:var(--dsw-alias-label-caption)}.N3kx7G_lineToken{color:var(--dsw-alias-label-caption);flex:none}.N3kx7G_lineValue{text-overflow:ellipsis;cursor:text;min-width:0;color:var(--dsw-alias-state-business-primary);display:block;overflow:hidden}.N3kx7G_lineValue[data-tone=number]{color:var(--dsw-alias-state-warn-primary)}.N3kx7G_lineValue[data-tone=boolean]{color:var(--dsw-alias-state-success-primary)}.N3kx7G_lineValue[data-tone=empty]{color:var(--dsw-alias-label-caption)}.N3kx7G_valueSlot{flex:0 auto;min-width:0;display:block;overflow:hidden}.N3kx7G_valueTrigger{min-width:0;font:inherit;text-align:left;cursor:pointer;color:var(--dsw-alias-label-caption);background:0 0;border:0;align-items:center;gap:2px;padding:0;display:inline-flex}.N3kx7G_valueTrigger:disabled{cursor:default}.N3kx7G_valueTrigger:focus-visible{outline:none}.N3kx7G_compactInput{flex:auto;min-width:0;display:inline-flex}.N3kx7G_compactInput>span{border-radius:4px;width:100%;height:22px;padding:0 6px}.N3kx7G_compactInput input{font-size:14px;line-height:22px}.N3kx7G_compactTextField{background:var(--dsw-alias-bg-layer-1);min-width:0;box-shadow:0 0 0 .5px var(--dsw-elevation-stroke-color);border:0;border-radius:4px;flex:auto;padding:0 6px;display:inline-flex}.N3kx7G_compactTextField:focus-within{--dsw-elevation-stroke-color:var(--dsw-alias-brand-primary)}.N3kx7G_compactTextField>textarea{resize:none;field-sizing:content;width:100%;min-height:20px;max-height:240px;color:var(--dsw-alias-label-primary);background:0 0;border:0;outline:none;flex:1;padding:0;font-family:inherit;font-size:14px;line-height:22px}.N3kx7G_lineComment{text-overflow:ellipsis;min-width:0;color:var(--dsw-alias-label-tertiary);flex:auto;font-family:inherit;font-size:12px;overflow:hidden}.N3kx7G_lineInvalid{text-overflow:ellipsis;min-width:0;color:var(--dsw-alias-state-error-primary);flex:0 auto;font-family:inherit;font-size:12px;overflow:hidden}.N3kx7G_lineActions{opacity:0;flex:none;align-items:center;gap:4px;display:inline-flex}.N3kx7G_lineActions>button{width:20px;height:20px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.N3kx7G_lineActions>button:hover{background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-primary)}.N3kx7G_lineActions>button:disabled{cursor:not-allowed;color:var(--dsw-alias-label-dimmed)}.N3kx7G_hoverActions[data-editing=true]{opacity:1;gap:6px}.N3kx7G_hoverActions[data-editing=true]>button{box-shadow:0 0 0 .5px var(--dsw-elevation-stroke-color);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary)}.N3kx7G_hoverActions[data-editing=true]>button:first-of-type{color:var(--dsw-alias-state-success-primary)}.N3kx7G_addWrap{flex:auto;align-items:center;gap:6px;min-width:0;margin-left:6px;display:inline-flex;position:relative}.N3kx7G_addWrap[data-invalid=true] input{border-color:var(--dsw-alias-state-error-primary)}.N3kx7G_hint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}";
1591
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/schema-form/schema-form.module.css.mjs
1592
+ const css$15 = ".oZhWGq_editorRoot{width:100%;color:var(--dsw-alias-label-primary);flex-direction:column;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:14px;line-height:22px;display:flex}.oZhWGq_lineRow{white-space:nowrap;align-items:flex-start;gap:6px;min-height:22px;padding-right:8px;display:flex}.oZhWGq_lineRow:hover{background:var(--dsw-alias-bg-layer-2)}.oZhWGq_lineRow[data-selected=true]{background:var(--dsw-alias-bg-layer-3)}.oZhWGq_lineRow[data-dirty=true]{box-shadow:inset 2px 0 0 var(--dsw-alias-brand-primary)}.oZhWGq_lineRow[data-overridden=true]{box-shadow:inset 2px 0 0 var(--dsw-elevation-stroke-color)}.oZhWGq_lineRow[data-dirty=true] [data-role=key],.oZhWGq_lineRow[data-overridden=true] [data-role=key]{color:var(--dsw-alias-brand-primary)}.oZhWGq_lineRow[data-invalid=true]{background:color-mix(in srgb, var(--dsw-alias-state-error-secondary) 12%, transparent);box-shadow:inset 2px 0 0 var(--dsw-alias-state-error-primary)}.oZhWGq_lineRow[data-invalid=true] [data-role=key]{color:var(--dsw-alias-state-error-primary)}.oZhWGq_lineRow:hover [data-role=actions]{opacity:1}.oZhWGq_lineBody{flex:1;align-items:center;gap:6px;min-width:0;min-height:22px;display:flex}.oZhWGq_lineNumber{text-align:right;width:32px;color:var(--dsw-alias-label-caption);user-select:none;cursor:pointer;flex:none;line-height:22px}.oZhWGq_lineFold{width:14px;height:22px;color:var(--dsw-alias-label-caption);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.oZhWGq_lineFold:hover{color:var(--dsw-alias-label-secondary)}.oZhWGq_lineFoldSpacer{flex:none;width:14px}.oZhWGq_lineKey{color:var(--dsw-alias-label-primary);flex:none}.oZhWGq_lineKey[data-index=true]{color:var(--dsw-alias-label-caption)}.oZhWGq_lineToken{color:var(--dsw-alias-label-caption);flex:none}.oZhWGq_lineValue{text-overflow:ellipsis;cursor:text;min-width:0;color:var(--dsw-alias-state-business-primary);display:block;overflow:hidden}.oZhWGq_lineValue[data-tone=number]{color:var(--dsw-alias-state-warn-primary)}.oZhWGq_lineValue[data-tone=boolean]{color:var(--dsw-alias-state-success-primary)}.oZhWGq_lineValue[data-tone=empty]{color:var(--dsw-alias-label-caption)}.oZhWGq_valueSlot{flex:0 auto;min-width:0;display:block;overflow:hidden}.oZhWGq_valueTrigger{min-width:0;font:inherit;text-align:left;cursor:pointer;color:var(--dsw-alias-label-caption);background:0 0;border:0;align-items:center;gap:2px;padding:0;display:inline-flex}.oZhWGq_valueTrigger:disabled{cursor:default}.oZhWGq_valueTrigger:focus-visible{outline:none}.oZhWGq_compactInput{flex:auto;min-width:0;display:inline-flex}.oZhWGq_compactInput>span{border-radius:4px;width:100%;height:22px;padding:0 6px}.oZhWGq_compactInput input{font-size:14px;line-height:22px}.oZhWGq_compactTextField{background:var(--dsw-alias-bg-layer-1);min-width:0;box-shadow:0 0 0 .5px var(--dsw-elevation-stroke-color);border:0;border-radius:4px;flex:auto;padding:0 6px;display:inline-flex}.oZhWGq_compactTextField:focus-within{--dsw-elevation-stroke-color:var(--dsw-alias-brand-primary)}.oZhWGq_compactTextField>textarea{resize:none;field-sizing:content;width:100%;min-height:20px;max-height:240px;color:var(--dsw-alias-label-primary);background:0 0;border:0;outline:none;flex:1;padding:0;font-family:inherit;font-size:14px;line-height:22px}.oZhWGq_lineComment{text-overflow:ellipsis;min-width:0;color:var(--dsw-alias-label-tertiary);flex:auto;font-family:inherit;font-size:12px;overflow:hidden}.oZhWGq_lineInvalid{text-overflow:ellipsis;min-width:0;color:var(--dsw-alias-state-error-primary);flex:0 auto;font-family:inherit;font-size:12px;overflow:hidden}.oZhWGq_lineActions{opacity:0;flex:none;align-items:center;gap:4px;display:inline-flex}.oZhWGq_lineActions>button{width:20px;height:20px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.oZhWGq_lineActions>button:hover{background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-primary)}.oZhWGq_lineActions>button:disabled{cursor:not-allowed;color:var(--dsw-alias-label-dimmed)}.oZhWGq_hoverActions[data-editing=true]{opacity:1;gap:6px}.oZhWGq_hoverActions[data-editing=true]>button{box-shadow:0 0 0 .5px var(--dsw-elevation-stroke-color);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary)}.oZhWGq_hoverActions[data-editing=true]>button:first-of-type{color:var(--dsw-alias-state-success-primary)}.oZhWGq_addWrap{flex:auto;align-items:center;gap:6px;min-width:0;margin-left:6px;display:inline-flex;position:relative}.oZhWGq_addWrap[data-invalid=true] input{border-color:var(--dsw-alias-state-error-primary)}.oZhWGq_hint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}";
1602
1593
  const tagId$15 = "@morlay/ui-conversation-manager/schema-form.module.css";
1603
1594
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/schema-form.module.css\"]") === null) {
1604
1595
  const tag = document.createElement("style");
@@ -1608,28 +1599,27 @@ window.__ModuleLoader__.load({
1608
1599
  document.head.appendChild(tag);
1609
1600
  }
1610
1601
  var schema_form_module_css_default = {
1611
- "lineInvalid": "N3kx7G_lineInvalid",
1612
- "lineFoldSpacer": "N3kx7G_lineFoldSpacer",
1613
- "lineKey": "N3kx7G_lineKey",
1614
- "lineBody": "N3kx7G_lineBody",
1615
- "lineValue": "N3kx7G_lineValue",
1616
- "editorRoot": "N3kx7G_editorRoot",
1617
- "compactInput": "N3kx7G_compactInput",
1618
- "compactTextField": "N3kx7G_compactTextField",
1619
- "hint": "N3kx7G_hint",
1620
- "lineRow": "N3kx7G_lineRow",
1621
- "lineActions": "N3kx7G_lineActions",
1622
- "hoverActions": "N3kx7G_hoverActions",
1623
- "lineNumber": "N3kx7G_lineNumber",
1624
- "valueSlot": "N3kx7G_valueSlot",
1625
- "lineComment": "N3kx7G_lineComment",
1626
- "addWrap": "N3kx7G_addWrap",
1627
- "lineFold": "N3kx7G_lineFold",
1628
- "valueTrigger": "N3kx7G_valueTrigger",
1629
- "lineToken": "N3kx7G_lineToken"
1602
+ "editorRoot": "oZhWGq_editorRoot",
1603
+ "lineNumber": "oZhWGq_lineNumber",
1604
+ "lineFold": "oZhWGq_lineFold",
1605
+ "lineActions": "oZhWGq_lineActions",
1606
+ "hoverActions": "oZhWGq_hoverActions",
1607
+ "lineToken": "oZhWGq_lineToken",
1608
+ "valueSlot": "oZhWGq_valueSlot",
1609
+ "addWrap": "oZhWGq_addWrap",
1610
+ "lineBody": "oZhWGq_lineBody",
1611
+ "hint": "oZhWGq_hint",
1612
+ "lineInvalid": "oZhWGq_lineInvalid",
1613
+ "valueTrigger": "oZhWGq_valueTrigger",
1614
+ "lineRow": "oZhWGq_lineRow",
1615
+ "lineValue": "oZhWGq_lineValue",
1616
+ "compactInput": "oZhWGq_compactInput",
1617
+ "compactTextField": "oZhWGq_compactTextField",
1618
+ "lineFoldSpacer": "oZhWGq_lineFoldSpacer",
1619
+ "lineComment": "oZhWGq_lineComment",
1620
+ "lineKey": "oZhWGq_lineKey"
1630
1621
  };
1631
- //#endregion
1632
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/TruncatedTooltip.tsx
1622
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/TruncatedTooltip.tsx
1633
1623
  function TruncatedTooltip({ label, children }) {
1634
1624
  const node = (0, react.useRef)(null);
1635
1625
  const watch = (0, react.useRef)(null);
@@ -1657,8 +1647,7 @@ window.__ModuleLoader__.load({
1657
1647
  children: (0, react.cloneElement)(children, { ref: anchor })
1658
1648
  });
1659
1649
  }
1660
- //#endregion
1661
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/value.tsx
1650
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/value.tsx
1662
1651
  function valueText(value) {
1663
1652
  if (value === void 0 || value === null) return "";
1664
1653
  if (typeof value === "string") return value;
@@ -1749,8 +1738,7 @@ window.__ModuleLoader__.load({
1749
1738
  function SchemaFieldDefault({ owner }) {
1750
1739
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InlineValue, { owner });
1751
1740
  }
1752
- //#endregion
1753
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/fields.tsx
1741
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/fields.tsx
1754
1742
  function parseFor(node, t) {
1755
1743
  switch (node.type) {
1756
1744
  case "number": return (text) => {
@@ -1862,13 +1850,11 @@ window.__ModuleLoader__.load({
1862
1850
  });
1863
1851
  }
1864
1852
  }
1865
- //#endregion
1866
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/classes.ts
1853
+ // ../../client/dsh-client-ui-primitives/src/client/controls/classes.ts
1867
1854
  function classes(...names) {
1868
1855
  return names.filter((name) => typeof name === "string" && name !== "").join(" ");
1869
1856
  }
1870
- //#endregion
1871
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/Editor.tsx
1857
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/Editor.tsx
1872
1858
  function Editor(props) {
1873
1859
  const { ns, state, face, t, resolveText, renderField } = props;
1874
1860
  const [toggled, setToggled] = (0, react.useState)(() => /* @__PURE__ */ new Set());
@@ -2407,8 +2393,7 @@ window.__ModuleLoader__.load({
2407
2393
  ]
2408
2394
  });
2409
2395
  }
2410
- //#endregion
2411
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/SchemaForm.tsx
2396
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/SchemaForm.tsx
2412
2397
  function SchemaForm(props) {
2413
2398
  const { ns, face, t, resolveText, renderSlotChain } = props;
2414
2399
  const store = face.hooks.schemaForm;
@@ -2457,8 +2442,7 @@ window.__ModuleLoader__.load({
2457
2442
  owner.onEditText(text, parse ?? parseFor(owner.node, t));
2458
2443
  };
2459
2444
  }
2460
- //#endregion
2461
- //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/index.ts
2445
+ // ../../client/dsh-client-ui-primitives/src/client/schema-form/index.ts
2462
2446
  var schema_form_exports = /* @__PURE__ */ __exportAll({
2463
2447
  InlineValue: () => InlineValue,
2464
2448
  NS: () => NS$1,
@@ -2502,11 +2486,11 @@ window.__ModuleLoader__.load({
2502
2486
  });
2503
2487
  }
2504
2488
  function install(ctx) {
2489
+ const hints = new SchemaFormHints(ctx.root);
2505
2490
  ctx.effect(() => ctx.locale.register(NS$1, {
2506
2491
  zh: zh$1,
2507
2492
  en: en$1
2508
2493
  }), "ui-schema-form: dictionaries");
2509
- const hints = new SchemaFormHints(ctx);
2510
2494
  ctx.effect(() => ctx.slots.registerFactory({
2511
2495
  name: "settings.schema-form.form",
2512
2496
  scope: "root",
@@ -2596,8 +2580,7 @@ window.__ModuleLoader__.load({
2596
2580
  };
2597
2581
  }, "ui-schema-form: row registrations");
2598
2582
  }
2599
- //#endregion
2600
- //#region ../../client/dsh-client-ui-primitives/src/client/markdown-labels.ts
2583
+ // ../../client/dsh-client-ui-primitives/src/client/markdown-labels.ts
2601
2584
  function markdownLabels(t) {
2602
2585
  return {
2603
2586
  code: {
@@ -2607,9 +2590,8 @@ window.__ModuleLoader__.load({
2607
2590
  footnotes: t("markdown.footnotes")
2608
2591
  };
2609
2592
  }
2610
- //#endregion
2611
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/layout/layout.module.css.mjs
2612
- const css$14 = "._7Ar2dq_stack{flex-direction:column;min-width:0;display:flex}._7Ar2dq_row{flex-direction:row;align-items:center;min-width:0;display:flex}._7Ar2dq_gap0{gap:0}._7Ar2dq_gap2{gap:2px}._7Ar2dq_gap4{gap:4px}._7Ar2dq_gap6{gap:6px}._7Ar2dq_gap8{gap:8px}._7Ar2dq_gap10{gap:10px}._7Ar2dq_gap12{gap:12px}._7Ar2dq_gap14{gap:14px}._7Ar2dq_gap16{gap:16px}._7Ar2dq_alignStart{align-items:flex-start}._7Ar2dq_alignCenter{align-items:center}._7Ar2dq_alignEnd{align-items:flex-end}._7Ar2dq_justifyBetween{justify-content:space-between}._7Ar2dq_justifyEnd{justify-content:flex-end}._7Ar2dq_justifyCenter{justify-content:center}._7Ar2dq_wrap{flex-wrap:wrap}._7Ar2dq_grow{flex:auto;min-width:0}._7Ar2dq_push{margin-left:auto}._7Ar2dq_fill{box-sizing:border-box;width:100%;height:100%;overflow:hidden}._7Ar2dq_scroll{flex:auto;min-height:0;overflow-y:auto}._7Ar2dq_plain{margin:0;padding:0;list-style:none}._7Ar2dq_padNone{padding:0}._7Ar2dq_padCard{padding:8px 12px}._7Ar2dq_padBody{padding:8px 0}._7Ar2dq_padPage{padding:24px 28px}._7Ar2dq_padRow{padding:10px 12px}._7Ar2dq_padBlocking{padding:32px 40px}._7Ar2dq_text{margin:0}._7Ar2dq_sizeXs{font-size:11px;line-height:1.5}._7Ar2dq_sizeSm{font-size:12px;line-height:18px}._7Ar2dq_sizeMd{font-size:13px;line-height:20px}._7Ar2dq_sizeBase{font-size:14px;line-height:24px}._7Ar2dq_sizeLg{font-size:16px;line-height:24px}._7Ar2dq_tonePrimary{color:var(--dsw-alias-label-primary)}._7Ar2dq_toneSecondary{color:var(--dsw-alias-label-secondary)}._7Ar2dq_toneTertiary{color:var(--dsw-alias-label-tertiary)}._7Ar2dq_toneDanger{color:var(--dsw-alias-label-error,var(--dsw-alias-label-primary))}._7Ar2dq_weightMedium{font-weight:500}._7Ar2dq_strong{font-weight:600}._7Ar2dq_mono{word-break:break-all;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}._7Ar2dq_truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._7Ar2dq_tabular{font-variant-numeric:tabular-nums}._7Ar2dq_boxed{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);border-radius:10px}._7Ar2dq_fixed{flex:none}._7Ar2dq_gapWide{gap:6px 20px}._7Ar2dq_narrow{min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%)}._7Ar2dq_wSearch{flex:none;width:360px;max-width:100%}";
2593
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/layout/layout.module.css.mjs
2594
+ const css$14 = ".uxI0LG_stack{flex-direction:column;min-width:0;display:flex}.uxI0LG_row{flex-direction:row;align-items:center;min-width:0;display:flex}.uxI0LG_gap0{gap:0}.uxI0LG_gap2{gap:2px}.uxI0LG_gap4{gap:4px}.uxI0LG_gap6{gap:6px}.uxI0LG_gap8{gap:8px}.uxI0LG_gap10{gap:10px}.uxI0LG_gap12{gap:12px}.uxI0LG_gap14{gap:14px}.uxI0LG_gap16{gap:16px}.uxI0LG_alignStart{align-items:flex-start}.uxI0LG_alignCenter{align-items:center}.uxI0LG_alignEnd{align-items:flex-end}.uxI0LG_justifyBetween{justify-content:space-between}.uxI0LG_justifyEnd{justify-content:flex-end}.uxI0LG_justifyCenter{justify-content:center}.uxI0LG_wrap{flex-wrap:wrap}.uxI0LG_grow{flex:auto;min-width:0}.uxI0LG_push{margin-left:auto}.uxI0LG_fill{box-sizing:border-box;width:100%;height:100%;overflow:hidden}.uxI0LG_scroll{flex:auto;min-height:0;overflow-y:auto}.uxI0LG_plain{margin:0;padding:0;list-style:none}.uxI0LG_padNone{padding:0}.uxI0LG_padCard{padding:8px 12px}.uxI0LG_padBody{padding:8px 0}.uxI0LG_padPage{padding:24px 28px}.uxI0LG_padRow{padding:10px 12px}.uxI0LG_padBlocking{padding:32px 40px}.uxI0LG_text{margin:0}.uxI0LG_sizeXs{font-size:11px;line-height:1.5}.uxI0LG_sizeSm{font-size:12px;line-height:18px}.uxI0LG_sizeMd{font-size:13px;line-height:20px}.uxI0LG_sizeBase{font-size:14px;line-height:24px}.uxI0LG_sizeLg{font-size:16px;line-height:24px}.uxI0LG_tonePrimary{color:var(--dsw-alias-label-primary)}.uxI0LG_toneSecondary{color:var(--dsw-alias-label-secondary)}.uxI0LG_toneTertiary{color:var(--dsw-alias-label-tertiary)}.uxI0LG_toneDanger{color:var(--dsw-alias-label-error,var(--dsw-alias-label-primary))}.uxI0LG_weightMedium{font-weight:500}.uxI0LG_strong{font-weight:600}.uxI0LG_mono{word-break:break-all;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.uxI0LG_truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uxI0LG_tabular{font-variant-numeric:tabular-nums}.uxI0LG_boxed{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);border-radius:10px}.uxI0LG_fixed{flex:none}.uxI0LG_gapWide{gap:6px 20px}.uxI0LG_narrow{min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%)}.uxI0LG_wSearch{flex:none;width:360px;max-width:100%}";
2613
2595
  const tagId$14 = "@morlay/ui-conversation-manager/layout.module.css";
2614
2596
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/layout.module.css\"]") === null) {
2615
2597
  const tag = document.createElement("style");
@@ -2619,58 +2601,57 @@ window.__ModuleLoader__.load({
2619
2601
  document.head.appendChild(tag);
2620
2602
  }
2621
2603
  var layout_module_css_default = {
2622
- "justifyBetween": "_7Ar2dq_justifyBetween",
2623
- "text": "_7Ar2dq_text",
2624
- "gap10": "_7Ar2dq_gap10",
2625
- "gap8": "_7Ar2dq_gap8",
2626
- "padRow": "_7Ar2dq_padRow",
2627
- "padPage": "_7Ar2dq_padPage",
2628
- "stack": "_7Ar2dq_stack",
2629
- "padBlocking": "_7Ar2dq_padBlocking",
2630
- "push": "_7Ar2dq_push",
2631
- "toneSecondary": "_7Ar2dq_toneSecondary",
2632
- "gap14": "_7Ar2dq_gap14",
2633
- "fill": "_7Ar2dq_fill",
2634
- "justifyCenter": "_7Ar2dq_justifyCenter",
2635
- "toneDanger": "_7Ar2dq_toneDanger",
2636
- "weightMedium": "_7Ar2dq_weightMedium",
2637
- "fixed": "_7Ar2dq_fixed",
2638
- "row": "_7Ar2dq_row",
2639
- "alignStart": "_7Ar2dq_alignStart",
2640
- "grow": "_7Ar2dq_grow",
2641
- "padCard": "_7Ar2dq_padCard",
2642
- "gapWide": "_7Ar2dq_gapWide",
2643
- "gap16": "_7Ar2dq_gap16",
2644
- "narrow": "_7Ar2dq_narrow",
2645
- "wrap": "_7Ar2dq_wrap",
2646
- "sizeXs": "_7Ar2dq_sizeXs",
2647
- "sizeMd": "_7Ar2dq_sizeMd",
2648
- "gap12": "_7Ar2dq_gap12",
2649
- "alignCenter": "_7Ar2dq_alignCenter",
2650
- "padBody": "_7Ar2dq_padBody",
2651
- "alignEnd": "_7Ar2dq_alignEnd",
2652
- "sizeSm": "_7Ar2dq_sizeSm",
2653
- "sizeBase": "_7Ar2dq_sizeBase",
2654
- "toneTertiary": "_7Ar2dq_toneTertiary",
2655
- "gap4": "_7Ar2dq_gap4",
2656
- "plain": "_7Ar2dq_plain",
2657
- "strong": "_7Ar2dq_strong",
2658
- "mono": "_7Ar2dq_mono",
2659
- "padNone": "_7Ar2dq_padNone",
2660
- "boxed": "_7Ar2dq_boxed",
2661
- "gap2": "_7Ar2dq_gap2",
2662
- "gap6": "_7Ar2dq_gap6",
2663
- "gap0": "_7Ar2dq_gap0",
2664
- "scroll": "_7Ar2dq_scroll",
2665
- "sizeLg": "_7Ar2dq_sizeLg",
2666
- "truncate": "_7Ar2dq_truncate",
2667
- "wSearch": "_7Ar2dq_wSearch",
2668
- "tabular": "_7Ar2dq_tabular",
2669
- "tonePrimary": "_7Ar2dq_tonePrimary",
2670
- "justifyEnd": "_7Ar2dq_justifyEnd"
2604
+ "toneDanger": "uxI0LG_toneDanger",
2605
+ "padCard": "uxI0LG_padCard",
2606
+ "fixed": "uxI0LG_fixed",
2607
+ "padRow": "uxI0LG_padRow",
2608
+ "plain": "uxI0LG_plain",
2609
+ "gapWide": "uxI0LG_gapWide",
2610
+ "row": "uxI0LG_row",
2611
+ "justifyBetween": "uxI0LG_justifyBetween",
2612
+ "tabular": "uxI0LG_tabular",
2613
+ "fill": "uxI0LG_fill",
2614
+ "alignCenter": "uxI0LG_alignCenter",
2615
+ "toneTertiary": "uxI0LG_toneTertiary",
2616
+ "sizeLg": "uxI0LG_sizeLg",
2617
+ "padBody": "uxI0LG_padBody",
2618
+ "truncate": "uxI0LG_truncate",
2619
+ "justifyCenter": "uxI0LG_justifyCenter",
2620
+ "padNone": "uxI0LG_padNone",
2621
+ "gap0": "uxI0LG_gap0",
2622
+ "gap2": "uxI0LG_gap2",
2623
+ "alignStart": "uxI0LG_alignStart",
2624
+ "scroll": "uxI0LG_scroll",
2625
+ "gap4": "uxI0LG_gap4",
2626
+ "sizeMd": "uxI0LG_sizeMd",
2627
+ "padBlocking": "uxI0LG_padBlocking",
2628
+ "mono": "uxI0LG_mono",
2629
+ "alignEnd": "uxI0LG_alignEnd",
2630
+ "gap8": "uxI0LG_gap8",
2631
+ "gap14": "uxI0LG_gap14",
2632
+ "text": "uxI0LG_text",
2633
+ "gap16": "uxI0LG_gap16",
2634
+ "strong": "uxI0LG_strong",
2635
+ "boxed": "uxI0LG_boxed",
2636
+ "weightMedium": "uxI0LG_weightMedium",
2637
+ "stack": "uxI0LG_stack",
2638
+ "gap6": "uxI0LG_gap6",
2639
+ "narrow": "uxI0LG_narrow",
2640
+ "wrap": "uxI0LG_wrap",
2641
+ "wSearch": "uxI0LG_wSearch",
2642
+ "sizeSm": "uxI0LG_sizeSm",
2643
+ "sizeBase": "uxI0LG_sizeBase",
2644
+ "sizeXs": "uxI0LG_sizeXs",
2645
+ "gap12": "uxI0LG_gap12",
2646
+ "push": "uxI0LG_push",
2647
+ "toneSecondary": "uxI0LG_toneSecondary",
2648
+ "gap10": "uxI0LG_gap10",
2649
+ "grow": "uxI0LG_grow",
2650
+ "padPage": "uxI0LG_padPage",
2651
+ "justifyEnd": "uxI0LG_justifyEnd",
2652
+ "tonePrimary": "uxI0LG_tonePrimary"
2671
2653
  };
2672
- //#endregion
2673
- //#region ../../client/dsh-client-ui-primitives/src/client/layout/scales.ts
2654
+ // ../../client/dsh-client-ui-primitives/src/client/layout/scales.ts
2674
2655
  function gapClass(css, gap) {
2675
2656
  if (gap === void 0) return void 0;
2676
2657
  return gap === "wide" ? css.gapWide : css[`gap${gap}`];
@@ -2710,8 +2691,7 @@ window.__ModuleLoader__.load({
2710
2691
  if (weight === void 0) return void 0;
2711
2692
  return weight === "medium" ? css.weightMedium : css.strong;
2712
2693
  }
2713
- //#endregion
2714
- //#region ../../client/dsh-client-ui-primitives/src/client/layout/Row.tsx
2694
+ // ../../client/dsh-client-ui-primitives/src/client/layout/Row.tsx
2715
2695
  const Row = (0, react.forwardRef)(function Row({ as: Element = "div", gap, align, justify, wrap = false, grow = false, boxed = false, fixed = false, narrow = false, push = false, plain = false, pad, className, children, ...rest }, ref) {
2716
2696
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Element, {
2717
2697
  ref,
@@ -2720,8 +2700,7 @@ window.__ModuleLoader__.load({
2720
2700
  children
2721
2701
  });
2722
2702
  });
2723
- //#endregion
2724
- //#region ../../client/dsh-client-ui-primitives/src/client/layout/Stack.tsx
2703
+ // ../../client/dsh-client-ui-primitives/src/client/layout/Stack.tsx
2725
2704
  const Stack = (0, react.forwardRef)(function Stack({ as: Element = "div", gap, align, pad, grow = false, boxed = false, fixed = false, narrow = false, fill = false, scroll = false, plain = false, className, children, ...rest }, ref) {
2726
2705
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Element, {
2727
2706
  ref,
@@ -2730,17 +2709,15 @@ window.__ModuleLoader__.load({
2730
2709
  children
2731
2710
  });
2732
2711
  });
2733
- //#endregion
2734
- //#region ../../client/dsh-client-ui-primitives/src/client/layout/Text.tsx
2712
+ // ../../client/dsh-client-ui-primitives/src/client/layout/Text.tsx
2735
2713
  function Text({ as: Element = "span", size, tone, weight, mono = false, truncate = false, tabular = false, className, children }) {
2736
2714
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Element, {
2737
2715
  className: classes(layout_module_css_default.text, sizeClass(layout_module_css_default, size), toneClass(layout_module_css_default, tone), weightClass(layout_module_css_default, weight), mono ? layout_module_css_default.mono : void 0, truncate ? layout_module_css_default.truncate : void 0, tabular ? layout_module_css_default.tabular : void 0, className),
2738
2716
  children
2739
2717
  });
2740
2718
  }
2741
- //#endregion
2742
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/settings-form/SettingsFieldRow.module.css.mjs
2743
- const css$13 = ".Il1Dtq_row{flex-direction:column;display:flex}.Il1Dtq_row[data-divider=true]{border-top:.5px solid var(--dsw-alias-border-l2)}.Il1Dtq_body{flex-direction:column;gap:6px;padding:12px 0;display:flex}.Il1Dtq_inline{flex-direction:row;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.Il1Dtq_text{flex-direction:column;gap:2px;min-width:0;display:flex}.Il1Dtq_label{color:var(--dsw-alias-label-primary);align-items:center;gap:8px;font-size:13px;font-weight:500;line-height:1.5;display:flex}.Il1Dtq_badge{corner-shape:round;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-module-platform);border-radius:999px;align-items:center;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px;display:inline-flex}.Il1Dtq_reset{font:inherit;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1.5}.Il1Dtq_reset:hover:not(:disabled){color:var(--dsw-alias-label-primary)}.Il1Dtq_reset:disabled{cursor:default}.Il1Dtq_hint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}.Il1Dtq_invalid{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:1.5}";
2719
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/settings-form/SettingsFieldRow.module.css.mjs
2720
+ const css$13 = "._0Kpzea_row{flex-direction:column;display:flex}._0Kpzea_row[data-divider=true]{border-top:.5px solid var(--dsw-alias-border-l2)}._0Kpzea_body{flex-direction:column;gap:6px;padding:12px 0;display:flex}._0Kpzea_inline{flex-direction:row;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}._0Kpzea_text{flex-direction:column;gap:2px;min-width:0;display:flex}._0Kpzea_label{color:var(--dsw-alias-label-primary);align-items:center;gap:8px;font-size:13px;font-weight:500;line-height:1.5;display:flex}._0Kpzea_badge{corner-shape:round;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-module-platform);border-radius:999px;align-items:center;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px;display:inline-flex}._0Kpzea_reset{font:inherit;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;line-height:1.5}._0Kpzea_reset:hover:not(:disabled){color:var(--dsw-alias-label-primary)}._0Kpzea_reset:disabled{cursor:default}._0Kpzea_hint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}._0Kpzea_invalid{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:1.5}";
2744
2721
  const tagId$13 = "@morlay/ui-conversation-manager/SettingsFieldRow.module.css";
2745
2722
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/SettingsFieldRow.module.css\"]") === null) {
2746
2723
  const tag = document.createElement("style");
@@ -2750,18 +2727,17 @@ window.__ModuleLoader__.load({
2750
2727
  document.head.appendChild(tag);
2751
2728
  }
2752
2729
  var SettingsFieldRow_module_css_default = {
2753
- "reset": "Il1Dtq_reset",
2754
- "row": "Il1Dtq_row",
2755
- "text": "Il1Dtq_text",
2756
- "label": "Il1Dtq_label",
2757
- "invalid": "Il1Dtq_invalid",
2758
- "inline": "Il1Dtq_inline",
2759
- "body": "Il1Dtq_body",
2760
- "badge": "Il1Dtq_badge",
2761
- "hint": "Il1Dtq_hint"
2730
+ "invalid": "_0Kpzea_invalid",
2731
+ "inline": "_0Kpzea_inline",
2732
+ "badge": "_0Kpzea_badge",
2733
+ "text": "_0Kpzea_text",
2734
+ "label": "_0Kpzea_label",
2735
+ "body": "_0Kpzea_body",
2736
+ "reset": "_0Kpzea_reset",
2737
+ "row": "_0Kpzea_row",
2738
+ "hint": "_0Kpzea_hint"
2762
2739
  };
2763
- //#endregion
2764
- //#region ../../client/dsh-client-ui-primitives/src/client/settings-form/SettingsFieldRow.tsx
2740
+ // ../../client/dsh-client-ui-primitives/src/client/settings-form/SettingsFieldRow.tsx
2765
2741
  function SettingsFieldRow({ label, hint, layout = "stack", divider = false, overriddenLabel, resetLabel, onReset, invalid, children, className, ...rest }) {
2766
2742
  const labelNode = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
2767
2743
  className: SettingsFieldRow_module_css_default.label,
@@ -2816,9 +2792,8 @@ window.__ModuleLoader__.load({
2816
2792
  }), invalidNode]
2817
2793
  });
2818
2794
  }
2819
- //#endregion
2820
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/Bubble.module.css.mjs
2821
- const css$12 = ".Iy2DYG_bubble{background:var(--dsw-specific-bubble);border-radius:var(--dsw-radius-xl);max-width:100%;font-size:var(--dsh-content-font-size,14px);line-height:calc(22px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;padding:10px 16px}";
2795
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/Bubble.module.css.mjs
2796
+ const css$12 = ".LQ5bkq_bubble{background:var(--dsw-specific-bubble);border-radius:var(--dsw-radius-xl);max-width:100%;font-size:var(--dsh-content-font-size,14px);line-height:calc(22px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;padding:10px 16px}";
2822
2797
  const tagId$12 = "@morlay/ui-conversation-manager/Bubble.module.css";
2823
2798
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/Bubble.module.css\"]") === null) {
2824
2799
  const tag = document.createElement("style");
@@ -2827,9 +2802,8 @@ window.__ModuleLoader__.load({
2827
2802
  tag.textContent = css$12;
2828
2803
  document.head.appendChild(tag);
2829
2804
  }
2830
- var Bubble_module_css_default = { "bubble": "Iy2DYG_bubble" };
2831
- //#endregion
2832
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/Bubble.tsx
2805
+ var Bubble_module_css_default = { "bubble": "LQ5bkq_bubble" };
2806
+ // ../../client/dsh-client-ui-primitives/src/client/controls/Bubble.tsx
2833
2807
  function Bubble({ className, children, ...rest }) {
2834
2808
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2835
2809
  className: classes(Bubble_module_css_default.bubble, className),
@@ -2837,9 +2811,8 @@ window.__ModuleLoader__.load({
2837
2811
  children
2838
2812
  });
2839
2813
  }
2840
- //#endregion
2841
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/Button.module.css.mjs
2842
- const css$11 = ".LWgVXW_label{white-space:nowrap}.LWgVXW_danger{--dsw-alias-button-primary-fill:var(--dsw-alias-state-error-primary)}";
2814
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/Button.module.css.mjs
2815
+ const css$11 = ".SBA8ka_label{white-space:nowrap}.SBA8ka_danger{--dsw-alias-button-primary-fill:var(--dsw-alias-state-error-primary)}";
2843
2816
  const tagId$11 = "@morlay/ui-conversation-manager/Button.module.css";
2844
2817
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/Button.module.css\"]") === null) {
2845
2818
  const tag = document.createElement("style");
@@ -2849,11 +2822,10 @@ window.__ModuleLoader__.load({
2849
2822
  document.head.appendChild(tag);
2850
2823
  }
2851
2824
  var Button_module_css_default = {
2852
- "label": "LWgVXW_label",
2853
- "danger": "LWgVXW_danger"
2825
+ "label": "SBA8ka_label",
2826
+ "danger": "SBA8ka_danger"
2854
2827
  };
2855
- //#endregion
2856
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/Button.tsx
2828
+ // ../../client/dsh-client-ui-primitives/src/client/controls/Button.tsx
2857
2829
  const Button$1 = (0, react.forwardRef)(function Button({ className, tone, ...rest }, ref) {
2858
2830
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
2859
2831
  ref,
@@ -2862,9 +2834,8 @@ window.__ModuleLoader__.load({
2862
2834
  ...rest
2863
2835
  });
2864
2836
  });
2865
- //#endregion
2866
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/DisclosureRow.module.css.mjs
2867
- const css$10 = "._2HN-kW_content{flex:auto;min-width:0}._2HN-kW_contentLayout{align-items:center;gap:8px;width:100%;min-width:0;display:flex}";
2837
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/DisclosureRow.module.css.mjs
2838
+ const css$10 = ".BDL1HG_content{flex:auto;min-width:0}.BDL1HG_contentLayout{align-items:center;gap:8px;width:100%;min-width:0;display:flex}";
2868
2839
  const tagId$10 = "@morlay/ui-conversation-manager/DisclosureRow.module.css";
2869
2840
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/DisclosureRow.module.css\"]") === null) {
2870
2841
  const tag = document.createElement("style");
@@ -2874,11 +2845,10 @@ window.__ModuleLoader__.load({
2874
2845
  document.head.appendChild(tag);
2875
2846
  }
2876
2847
  var DisclosureRow_module_css_default = {
2877
- "content": "_2HN-kW_content",
2878
- "contentLayout": "_2HN-kW_contentLayout"
2848
+ "content": "BDL1HG_content",
2849
+ "contentLayout": "BDL1HG_contentLayout"
2879
2850
  };
2880
- //#endregion
2881
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/DisclosureRow.tsx
2851
+ // ../../client/dsh-client-ui-primitives/src/client/controls/DisclosureRow.tsx
2882
2852
  function DisclosureRow(props) {
2883
2853
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
2884
2854
  contentClassName: DisclosureRow_module_css_default.content,
@@ -2886,9 +2856,8 @@ window.__ModuleLoader__.load({
2886
2856
  ...props
2887
2857
  });
2888
2858
  }
2889
- //#endregion
2890
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/SeatButton.module.css.mjs
2891
- const css$9 = ".JqQ4qG_seat{border-radius:var(--dsw-radius-sm);min-width:0;max-width:min(100%,240px);min-height:28px;color:var(--dsw-alias-label-primary);white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.JqQ4qG_seat:not(:disabled):hover,.JqQ4qG_seat[aria-expanded=true],.JqQ4qG_expanded{background:var(--dsw-alias-interactive-bg-hover)}.JqQ4qG_seat:disabled{cursor:default;color:var(--dsw-alias-label-quaternary)}.JqQ4qG_icon{color:var(--dsw-alias-label-primary);flex:none;align-items:center;display:inline-flex}.JqQ4qG_label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.JqQ4qG_chevron{color:var(--dsw-alias-label-caption);flex:none;display:inline-flex}";
2859
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/SeatButton.module.css.mjs
2860
+ const css$9 = ".io5HbW_seat{border-radius:var(--dsw-radius-sm);min-width:0;max-width:min(100%,240px);min-height:28px;color:var(--dsw-alias-label-primary);white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.io5HbW_seat:not(:disabled):hover,.io5HbW_seat[aria-expanded=true],.io5HbW_expanded{background:var(--dsw-alias-interactive-bg-hover)}.io5HbW_seat:disabled{cursor:default;color:var(--dsw-alias-label-quaternary)}.io5HbW_icon{color:var(--dsw-alias-label-primary);flex:none;align-items:center;display:inline-flex}.io5HbW_label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.io5HbW_chevron{color:var(--dsw-alias-label-caption);flex:none;display:inline-flex}";
2892
2861
  const tagId$9 = "@morlay/ui-conversation-manager/SeatButton.module.css";
2893
2862
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/SeatButton.module.css\"]") === null) {
2894
2863
  const tag = document.createElement("style");
@@ -2898,14 +2867,13 @@ window.__ModuleLoader__.load({
2898
2867
  document.head.appendChild(tag);
2899
2868
  }
2900
2869
  var SeatButton_module_css_default = {
2901
- "chevron": "JqQ4qG_chevron",
2902
- "seat": "JqQ4qG_seat",
2903
- "expanded": "JqQ4qG_expanded",
2904
- "label": "JqQ4qG_label",
2905
- "icon": "JqQ4qG_icon"
2870
+ "icon": "io5HbW_icon",
2871
+ "expanded": "io5HbW_expanded",
2872
+ "label": "io5HbW_label",
2873
+ "chevron": "io5HbW_chevron",
2874
+ "seat": "io5HbW_seat"
2906
2875
  };
2907
- //#endregion
2908
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/SeatButton.tsx
2876
+ // ../../client/dsh-client-ui-primitives/src/client/controls/SeatButton.tsx
2909
2877
  function SeatButton({ icon, label, expanded = false, chevron, type = "button", className, ...rest }) {
2910
2878
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
2911
2879
  type,
@@ -2927,9 +2895,8 @@ window.__ModuleLoader__.load({
2927
2895
  ]
2928
2896
  });
2929
2897
  }
2930
- //#endregion
2931
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/Spinner.module.css.mjs
2932
- const css$8 = "._1uNobG_spinner{border:2px solid var(--dsw-alias-border-l2);border-top-color:var(--dsw-alias-label-primary);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite _1uNobG_spin}@keyframes _1uNobG_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}";
2898
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/Spinner.module.css.mjs
2899
+ const css$8 = ".If7fBq_spinner{border:2px solid var(--dsw-alias-border-l2);border-top-color:var(--dsw-alias-label-primary);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite If7fBq_spin}@keyframes If7fBq_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}";
2933
2900
  const tagId$8 = "@morlay/ui-conversation-manager/Spinner.module.css";
2934
2901
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/Spinner.module.css\"]") === null) {
2935
2902
  const tag = document.createElement("style");
@@ -2939,11 +2906,10 @@ window.__ModuleLoader__.load({
2939
2906
  document.head.appendChild(tag);
2940
2907
  }
2941
2908
  var Spinner_module_css_default = {
2942
- "spinner": "_1uNobG_spinner",
2943
- "spin": "_1uNobG_spin"
2909
+ "spinner": "If7fBq_spinner",
2910
+ "spin": "If7fBq_spin"
2944
2911
  };
2945
- //#endregion
2946
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/Spinner.tsx
2912
+ // ../../client/dsh-client-ui-primitives/src/client/controls/Spinner.tsx
2947
2913
  function Spinner({ label }) {
2948
2914
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2949
2915
  className: Spinner_module_css_default.spinner,
@@ -2951,9 +2917,8 @@ window.__ModuleLoader__.load({
2951
2917
  "aria-label": label
2952
2918
  });
2953
2919
  }
2954
- //#endregion
2955
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/TimeLabel.module.css.mjs
2956
- const css$7 = ".P8Yiia_label{color:var(--dsw-alias-label-tertiary);white-space:nowrap;opacity:0;padding:0;font-size:14px;line-height:24px;transition:opacity 80ms}[data-time-hover-root]:hover .P8Yiia_label,[data-time-hover-root]:focus-within .P8Yiia_label{opacity:1}";
2920
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/TimeLabel.module.css.mjs
2921
+ const css$7 = ".rbYIyq_label{color:var(--dsw-alias-label-tertiary);white-space:nowrap;opacity:0;padding:0;font-size:14px;line-height:24px;transition:opacity 80ms}[data-time-hover-root]:hover .rbYIyq_label,[data-time-hover-root]:focus-within .rbYIyq_label{opacity:1}";
2957
2922
  const tagId$7 = "@morlay/ui-conversation-manager/TimeLabel.module.css";
2958
2923
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/TimeLabel.module.css\"]") === null) {
2959
2924
  const tag = document.createElement("style");
@@ -2962,9 +2927,8 @@ window.__ModuleLoader__.load({
2962
2927
  tag.textContent = css$7;
2963
2928
  document.head.appendChild(tag);
2964
2929
  }
2965
- var TimeLabel_module_css_default = { "label": "P8Yiia_label" };
2966
- //#endregion
2967
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/TimeLabel.tsx
2930
+ var TimeLabel_module_css_default = { "label": "rbYIyq_label" };
2931
+ // ../../client/dsh-client-ui-primitives/src/client/controls/TimeLabel.tsx
2968
2932
  function TimeLabel({ className, children, ...rest }) {
2969
2933
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2970
2934
  className: classes(TimeLabel_module_css_default.label, className),
@@ -2972,9 +2936,8 @@ window.__ModuleLoader__.load({
2972
2936
  children
2973
2937
  });
2974
2938
  }
2975
- //#endregion
2976
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/VisuallyHidden.module.css.mjs
2977
- const css$6 = ".d5ueOG_hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}";
2939
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/VisuallyHidden.module.css.mjs
2940
+ const css$6 = ".UjjB8a_hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}";
2978
2941
  const tagId$6 = "@morlay/ui-conversation-manager/VisuallyHidden.module.css";
2979
2942
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/VisuallyHidden.module.css\"]") === null) {
2980
2943
  const tag = document.createElement("style");
@@ -2983,9 +2946,8 @@ window.__ModuleLoader__.load({
2983
2946
  tag.textContent = css$6;
2984
2947
  document.head.appendChild(tag);
2985
2948
  }
2986
- var VisuallyHidden_module_css_default = { "hidden": "d5ueOG_hidden" };
2987
- //#endregion
2988
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/VisuallyHidden.tsx
2949
+ var VisuallyHidden_module_css_default = { "hidden": "UjjB8a_hidden" };
2950
+ // ../../client/dsh-client-ui-primitives/src/client/controls/VisuallyHidden.tsx
2989
2951
  function VisuallyHidden({ children, ...rest }) {
2990
2952
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2991
2953
  className: VisuallyHidden_module_css_default.hidden,
@@ -2993,9 +2955,8 @@ window.__ModuleLoader__.load({
2993
2955
  children
2994
2956
  });
2995
2957
  }
2996
- //#endregion
2997
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/IconButton.module.css.mjs
2998
- const css$5 = ".AibFna_iconButton{box-sizing:border-box;width:28px;height:28px;color:var(--dsw-alias-label-secondary);border-radius:var(--dsw-radius-sm);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.AibFna_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.AibFna_iconButton:disabled{cursor:not-allowed;opacity:.4}.AibFna_iconButton:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.AibFna_sm{width:20px;height:20px;padding:0}.AibFna_circle{color:var(--dsw-alias-label-tertiary);border-radius:28px;padding:6px}.AibFna_circle:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}";
2958
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/IconButton.module.css.mjs
2959
+ const css$5 = ".G842ma_iconButton{box-sizing:border-box;width:28px;height:28px;color:var(--dsw-alias-label-secondary);border-radius:var(--dsw-radius-sm);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.G842ma_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.G842ma_iconButton:disabled{cursor:not-allowed;opacity:.4}.G842ma_iconButton:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.G842ma_sm{width:20px;height:20px;padding:0}.G842ma_circle{color:var(--dsw-alias-label-tertiary);border-radius:28px;padding:6px}.G842ma_circle:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}";
2999
2960
  const tagId$5 = "@morlay/ui-conversation-manager/IconButton.module.css";
3000
2961
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/IconButton.module.css\"]") === null) {
3001
2962
  const tag = document.createElement("style");
@@ -3005,12 +2966,11 @@ window.__ModuleLoader__.load({
3005
2966
  document.head.appendChild(tag);
3006
2967
  }
3007
2968
  var IconButton_module_css_default = {
3008
- "iconButton": "AibFna_iconButton",
3009
- "sm": "AibFna_sm",
3010
- "circle": "AibFna_circle"
2969
+ "sm": "G842ma_sm",
2970
+ "iconButton": "G842ma_iconButton",
2971
+ "circle": "G842ma_circle"
3011
2972
  };
3012
- //#endregion
3013
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/IconButton.tsx
2973
+ // ../../client/dsh-client-ui-primitives/src/client/controls/IconButton.tsx
3014
2974
  function IconButton({ label, children, type = "button", shape = "square", size = "md", className, ...rest }) {
3015
2975
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
3016
2976
  type,
@@ -3021,9 +2981,8 @@ window.__ModuleLoader__.load({
3021
2981
  children
3022
2982
  });
3023
2983
  }
3024
- //#endregion
3025
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/ModelRouteList.module.css.mjs
3026
- const css$4 = "._1vK46q_list{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-lg);gap:6px;min-width:0;max-height:280px;margin:0;padding:10px;display:grid;overflow:auto}._1vK46q_group{gap:6px;display:grid}._1vK46q_group+._1vK46q_group{border-top:.5px solid var(--dsw-alias-border-l3);margin-top:4px;padding-top:10px}._1vK46q_provider{color:var(--dsw-alias-label-tertiary);padding:0 6px;font-size:11px;font-weight:500}._1vK46q_item{border-radius:var(--dsw-radius-md);cursor:pointer;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:6px;display:grid}._1vK46q_item:hover{background:var(--dsw-alias-bg-layer-4)}._1vK46q_item:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}._1vK46q_item[aria-disabled=true]{cursor:not-allowed;opacity:.4}._1vK46q_picked{background:var(--dsw-alias-interactive-bg-hover)}._1vK46q_text{min-width:0}._1vK46q_name{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);font-size:13px;display:block;overflow:hidden}._1vK46q_id{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary);margin-top:2px;font-size:11px;display:block;overflow:hidden}._1vK46q_notice{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}._1vK46q_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:1.5}";
2984
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/ModelRouteList.module.css.mjs
2985
+ const css$4 = ".aGmQkW_list{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-lg);gap:6px;min-width:0;max-height:280px;margin:0;padding:10px;display:grid;overflow:auto}.aGmQkW_group{gap:6px;display:grid}.aGmQkW_group+.aGmQkW_group{border-top:.5px solid var(--dsw-alias-border-l3);margin-top:4px;padding-top:10px}.aGmQkW_provider{color:var(--dsw-alias-label-tertiary);padding:0 6px;font-size:11px;font-weight:500}.aGmQkW_item{border-radius:var(--dsw-radius-md);cursor:pointer;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:6px;display:grid}.aGmQkW_item:hover{background:var(--dsw-alias-bg-layer-4)}.aGmQkW_item:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.aGmQkW_item[aria-disabled=true]{cursor:not-allowed;opacity:.4}.aGmQkW_picked{background:var(--dsw-alias-interactive-bg-hover)}.aGmQkW_text{min-width:0}.aGmQkW_name{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);font-size:13px;display:block;overflow:hidden}.aGmQkW_id{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary);margin-top:2px;font-size:11px;display:block;overflow:hidden}.aGmQkW_notice{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}.aGmQkW_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:1.5}";
3027
2986
  const tagId$4 = "@morlay/ui-conversation-manager/ModelRouteList.module.css";
3028
2987
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/ModelRouteList.module.css\"]") === null) {
3029
2988
  const tag = document.createElement("style");
@@ -3033,19 +2992,18 @@ window.__ModuleLoader__.load({
3033
2992
  document.head.appendChild(tag);
3034
2993
  }
3035
2994
  var ModelRouteList_module_css_default = {
3036
- "error": "_1vK46q_error",
3037
- "name": "_1vK46q_name",
3038
- "notice": "_1vK46q_notice",
3039
- "text": "_1vK46q_text",
3040
- "group": "_1vK46q_group",
3041
- "id": "_1vK46q_id",
3042
- "item": "_1vK46q_item",
3043
- "picked": "_1vK46q_picked",
3044
- "provider": "_1vK46q_provider",
3045
- "list": "_1vK46q_list"
2995
+ "list": "aGmQkW_list",
2996
+ "error": "aGmQkW_error",
2997
+ "id": "aGmQkW_id",
2998
+ "group": "aGmQkW_group",
2999
+ "provider": "aGmQkW_provider",
3000
+ "picked": "aGmQkW_picked",
3001
+ "name": "aGmQkW_name",
3002
+ "item": "aGmQkW_item",
3003
+ "text": "aGmQkW_text",
3004
+ "notice": "aGmQkW_notice"
3046
3005
  };
3047
- //#endregion
3048
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/ModelRouteList.tsx
3006
+ // ../../client/dsh-client-ui-primitives/src/client/controls/ModelRouteList.tsx
3049
3007
  function ModelRouteList({ label, candidates, selectedKey, disabled = false, status, loadingLabel, errorLabel, emptyLabel, onSelect }) {
3050
3008
  if (status === "loading") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
3051
3009
  className: ModelRouteList_module_css_default.notice,
@@ -3115,9 +3073,8 @@ window.__ModuleLoader__.load({
3115
3073
  }, provider))
3116
3074
  });
3117
3075
  }
3118
- //#endregion
3119
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/MultilineField.module.css.mjs
3120
- const css$3 = ".V0rRdq_multiline{box-sizing:border-box;width:100%;min-height:64px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);resize:vertical;padding:6px 12px;font-family:inherit;font-size:13px;line-height:1.5}.V0rRdq_multiline:disabled{cursor:not-allowed;opacity:.4}.V0rRdq_multiline:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}";
3076
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/MultilineField.module.css.mjs
3077
+ const css$3 = ".tafk7W_multiline{box-sizing:border-box;width:100%;min-height:64px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);resize:vertical;padding:6px 12px;font-family:inherit;font-size:13px;line-height:1.5}.tafk7W_multiline:disabled{cursor:not-allowed;opacity:.4}.tafk7W_multiline:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}";
3121
3078
  const tagId$3 = "@morlay/ui-conversation-manager/MultilineField.module.css";
3122
3079
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/MultilineField.module.css\"]") === null) {
3123
3080
  const tag = document.createElement("style");
@@ -3126,9 +3083,8 @@ window.__ModuleLoader__.load({
3126
3083
  tag.textContent = css$3;
3127
3084
  document.head.appendChild(tag);
3128
3085
  }
3129
- var MultilineField_module_css_default = { "multiline": "V0rRdq_multiline" };
3130
- //#endregion
3131
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/MultilineField.tsx
3086
+ var MultilineField_module_css_default = { "multiline": "tafk7W_multiline" };
3087
+ // ../../client/dsh-client-ui-primitives/src/client/controls/MultilineField.tsx
3132
3088
  function MultilineField({ rows = 3, className, ...rest }) {
3133
3089
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
3134
3090
  rows,
@@ -3137,9 +3093,8 @@ window.__ModuleLoader__.load({
3137
3093
  ...rest
3138
3094
  });
3139
3095
  }
3140
- //#endregion
3141
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/SearchSelect.module.css.mjs
3142
- const css$2 = ".kEYv4q_trigger{white-space:nowrap;height:32px}.kEYv4q_searchRow{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;padding:4px 8px 8px;display:flex}.kEYv4q_searchInput{width:100%;color:var(--dsw-alias-label-primary);background:0 0;border:none;outline:none;padding:2px 0;font-family:inherit;font-size:13px;line-height:1.5}.kEYv4q_empty{color:var(--dsw-alias-label-tertiary);margin:0;padding:8px;font-size:12px;line-height:1.5}";
3096
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/SearchSelect.module.css.mjs
3097
+ const css$2 = ".pNIIcq_trigger{white-space:nowrap;height:32px}.pNIIcq_searchRow{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;padding:4px 8px 8px;display:flex}.pNIIcq_searchInput{width:100%;color:var(--dsw-alias-label-primary);background:0 0;border:none;outline:none;padding:2px 0;font-family:inherit;font-size:13px;line-height:1.5}.pNIIcq_empty{color:var(--dsw-alias-label-tertiary);margin:0;padding:8px;font-size:12px;line-height:1.5}";
3143
3098
  const tagId$2 = "@morlay/ui-conversation-manager/SearchSelect.module.css";
3144
3099
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/SearchSelect.module.css\"]") === null) {
3145
3100
  const tag = document.createElement("style");
@@ -3149,13 +3104,12 @@ window.__ModuleLoader__.load({
3149
3104
  document.head.appendChild(tag);
3150
3105
  }
3151
3106
  var SearchSelect_module_css_default = {
3152
- "trigger": "kEYv4q_trigger",
3153
- "searchRow": "kEYv4q_searchRow",
3154
- "searchInput": "kEYv4q_searchInput",
3155
- "empty": "kEYv4q_empty"
3107
+ "empty": "pNIIcq_empty",
3108
+ "searchInput": "pNIIcq_searchInput",
3109
+ "trigger": "pNIIcq_trigger",
3110
+ "searchRow": "pNIIcq_searchRow"
3156
3111
  };
3157
- //#endregion
3158
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/SearchSelect.tsx
3112
+ // ../../client/dsh-client-ui-primitives/src/client/controls/SearchSelect.tsx
3159
3113
  function SearchSelect({ label, value, emptyLabel, options, disabled = false, searchLabel, noMatchLabel, onSelect }) {
3160
3114
  const [open, setOpen] = (0, react.useState)(false);
3161
3115
  const [query, setQuery] = (0, react.useState)("");
@@ -3232,8 +3186,7 @@ window.__ModuleLoader__.load({
3232
3186
  ]
3233
3187
  });
3234
3188
  }
3235
- //#endregion
3236
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/tags.ts
3189
+ // ../../client/dsh-client-ui-primitives/src/client/controls/tags.ts
3237
3190
  function parseTagList(text) {
3238
3191
  const seen = /* @__PURE__ */ new Set();
3239
3192
  const names = [];
@@ -3253,9 +3206,8 @@ window.__ModuleLoader__.load({
3253
3206
  }
3254
3207
  return merged;
3255
3208
  }
3256
- //#endregion
3257
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/dsh-client-ui-primitives/src/client/controls/TagInput.module.css.mjs
3258
- const css$1 = ".Qg7I9G_row{align-items:flex-start;gap:8px;width:100%;display:flex}.Qg7I9G_anchor{flex:auto;width:100%;min-width:0;display:flex}.Qg7I9G_box{box-sizing:border-box;background:var(--dsw-alias-bg-layer-3);border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);flex-flow:wrap;align-items:center;gap:4px 6px;width:100%;min-height:32px;padding:4px 8px;display:flex}.Qg7I9G_input{min-width:120px;color:var(--dsw-alias-label-primary);background:0 0;border:none;outline:none;flex:120px;padding:2px 0;font-family:inherit;font-size:13px;line-height:1.5}.Qg7I9G_chip{corner-shape:round;white-space:nowrap;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-module-platform);border-radius:999px;align-items:center;gap:2px;padding:1px 4px 1px 8px;font-size:11px;font-weight:500;line-height:17px;display:inline-flex}.Qg7I9G_chipRemove{box-sizing:border-box;width:14px;height:14px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.Qg7I9G_chipRemove:hover:not(:disabled){color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Qg7I9G_chipRemove:disabled{cursor:not-allowed;opacity:.4}.Qg7I9G_chipRemove:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:0}.Qg7I9G_empty{color:var(--dsw-alias-label-tertiary);margin:0;padding:8px;font-size:12px;line-height:1.5}";
3209
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/client/dsh-client-ui-primitives/src/client/controls/TagInput.module.css.mjs
3210
+ const css$1 = "._0uSpIq_row{align-items:flex-start;gap:8px;width:100%;display:flex}._0uSpIq_anchor{flex:auto;width:100%;min-width:0;display:flex}._0uSpIq_box{box-sizing:border-box;background:var(--dsw-alias-bg-layer-3);border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);flex-flow:wrap;align-items:center;gap:4px 6px;width:100%;min-height:32px;padding:4px 8px;display:flex}._0uSpIq_input{min-width:120px;color:var(--dsw-alias-label-primary);background:0 0;border:none;outline:none;flex:120px;padding:2px 0;font-family:inherit;font-size:13px;line-height:1.5}._0uSpIq_chip{corner-shape:round;white-space:nowrap;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-module-platform);border-radius:999px;align-items:center;gap:2px;padding:1px 4px 1px 8px;font-size:11px;font-weight:500;line-height:17px;display:inline-flex}._0uSpIq_chipRemove{box-sizing:border-box;width:14px;height:14px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}._0uSpIq_chipRemove:hover:not(:disabled){color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._0uSpIq_chipRemove:disabled{cursor:not-allowed;opacity:.4}._0uSpIq_chipRemove:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:0}._0uSpIq_empty{color:var(--dsw-alias-label-tertiary);margin:0;padding:8px;font-size:12px;line-height:1.5}";
3259
3211
  const tagId$1 = "@morlay/ui-conversation-manager/TagInput.module.css";
3260
3212
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/TagInput.module.css\"]") === null) {
3261
3213
  const tag = document.createElement("style");
@@ -3265,16 +3217,15 @@ window.__ModuleLoader__.load({
3265
3217
  document.head.appendChild(tag);
3266
3218
  }
3267
3219
  var TagInput_module_css_default = {
3268
- "chipRemove": "Qg7I9G_chipRemove",
3269
- "anchor": "Qg7I9G_anchor",
3270
- "empty": "Qg7I9G_empty",
3271
- "chip": "Qg7I9G_chip",
3272
- "row": "Qg7I9G_row",
3273
- "input": "Qg7I9G_input",
3274
- "box": "Qg7I9G_box"
3220
+ "anchor": "_0uSpIq_anchor",
3221
+ "box": "_0uSpIq_box",
3222
+ "input": "_0uSpIq_input",
3223
+ "chip": "_0uSpIq_chip",
3224
+ "empty": "_0uSpIq_empty",
3225
+ "row": "_0uSpIq_row",
3226
+ "chipRemove": "_0uSpIq_chipRemove"
3275
3227
  };
3276
- //#endregion
3277
- //#region ../../client/dsh-client-ui-primitives/src/client/controls/TagInput.tsx
3228
+ // ../../client/dsh-client-ui-primitives/src/client/controls/TagInput.tsx
3278
3229
  function TagInput({ value, onChange, options, placeholder, label, disabled = false, noMatchLabel = "", removeLabel }) {
3279
3230
  const [draft, setDraft] = (0, react.useState)("");
3280
3231
  const [open, setOpen] = (0, react.useState)(false);
@@ -3362,8 +3313,7 @@ window.__ModuleLoader__.load({
3362
3313
  })
3363
3314
  });
3364
3315
  }
3365
- //#endregion
3366
- //#region ../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
3316
+ // ../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js
3367
3317
  /**
3368
3318
  * @typedef {import('mdast').Nodes} Nodes
3369
3319
  *
@@ -3444,8 +3394,7 @@ window.__ModuleLoader__.load({
3444
3394
  function node(value) {
3445
3395
  return Boolean(value && typeof value === "object");
3446
3396
  }
3447
- //#endregion
3448
- //#region ../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.dom.js
3397
+ // ../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.dom.js
3449
3398
  const element = document.createElement("i");
3450
3399
  /**
3451
3400
  * @param {string} value
@@ -3458,8 +3407,7 @@ window.__ModuleLoader__.load({
3458
3407
  if (character.charCodeAt(character.length - 1) === 59 && value !== "semi") return false;
3459
3408
  return character === characterReference ? false : character;
3460
3409
  }
3461
- //#endregion
3462
- //#region ../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js
3410
+ // ../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js
3463
3411
  /**
3464
3412
  * Like `Array#splice`, but smarter for giant arrays.
3465
3413
  *
@@ -3528,8 +3476,7 @@ window.__ModuleLoader__.load({
3528
3476
  }
3529
3477
  return items;
3530
3478
  }
3531
- //#endregion
3532
- //#region ../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
3479
+ // ../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js
3533
3480
  /**
3534
3481
  * @import {
3535
3482
  * Extension,
@@ -3599,8 +3546,7 @@ window.__ModuleLoader__.load({
3599
3546
  while (++index < list.length) (list[index].add === "after" ? existing : before).push(list[index]);
3600
3547
  splice(existing, 0, 0, before);
3601
3548
  }
3602
- //#endregion
3603
- //#region ../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js
3549
+ // ../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js
3604
3550
  /**
3605
3551
  * Turn the number (in string form as either hexa- or plain decimal) coming from
3606
3552
  * a numeric character reference into a character.
@@ -3620,8 +3566,7 @@ window.__ModuleLoader__.load({
3620
3566
  if (code < 9 || code === 11 || code > 13 && code < 32 || code > 126 && code < 160 || code > 55295 && code < 57344 || code > 64975 && code < 65008 || (code & 65535) === 65535 || (code & 65535) === 65534 || code > 1114111) return "�";
3621
3567
  return String.fromCodePoint(code);
3622
3568
  }
3623
- //#endregion
3624
- //#region ../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js
3569
+ // ../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js
3625
3570
  /**
3626
3571
  * Normalize an identifier (as found in references, definitions).
3627
3572
  *
@@ -3644,8 +3589,7 @@ window.__ModuleLoader__.load({
3644
3589
  function normalizeIdentifier(value) {
3645
3590
  return value.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase();
3646
3591
  }
3647
- //#endregion
3648
- //#region ../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js
3592
+ // ../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js
3649
3593
  /**
3650
3594
  * @import {Code} from 'micromark-util-types'
3651
3595
  */
@@ -3873,8 +3817,7 @@ window.__ModuleLoader__.load({
3873
3817
  }
3874
3818
  }
3875
3819
  ({}).hasOwnProperty;
3876
- //#endregion
3877
- //#region ../../../node_modules/.pnpm/micromark-factory-space@2.1.0/node_modules/micromark-factory-space/index.js
3820
+ // ../../../node_modules/.pnpm/micromark-factory-space@2.1.0/node_modules/micromark-factory-space/index.js
3878
3821
  /**
3879
3822
  * @import {Effects, State, TokenType} from 'micromark-util-types'
3880
3823
  */
@@ -3980,8 +3923,7 @@ window.__ModuleLoader__.load({
3980
3923
  return size >= min ? ok(code) : nok(code);
3981
3924
  }
3982
3925
  }
3983
- //#endregion
3984
- //#region ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/initialize/content.js
3926
+ // ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/initialize/content.js
3985
3927
  /**
3986
3928
  * @import {
3987
3929
  * InitialConstruct,
@@ -4047,8 +3989,7 @@ window.__ModuleLoader__.load({
4047
3989
  return data;
4048
3990
  }
4049
3991
  }
4050
- //#endregion
4051
- //#region ../../../node_modules/.pnpm/micromark-util-edit-map@1.0.0/node_modules/micromark-util-edit-map/index.js
3992
+ // ../../../node_modules/.pnpm/micromark-util-edit-map@1.0.0/node_modules/micromark-util-edit-map/index.js
4052
3993
  /**
4053
3994
  * @import {Event} from 'micromark-util-types'
4054
3995
  */
@@ -4193,8 +4134,7 @@ window.__ModuleLoader__.load({
4193
4134
  editMap.map.push(change);
4194
4135
  editMap.index.set(at, change);
4195
4136
  }
4196
- //#endregion
4197
- //#region ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/initialize/document.js
4137
+ // ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/initialize/document.js
4198
4138
  /**
4199
4139
  * @import {
4200
4140
  * Construct,
@@ -4413,8 +4353,7 @@ window.__ModuleLoader__.load({
4413
4353
  function tokenizeContainer(effects, ok, nok) {
4414
4354
  return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), "linePrefix", this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4);
4415
4355
  }
4416
- //#endregion
4417
- //#region ../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js
4356
+ // ../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js
4418
4357
  /**
4419
4358
  * @import {Code} from 'micromark-util-types'
4420
4359
  */
@@ -4436,8 +4375,7 @@ window.__ModuleLoader__.load({
4436
4375
  if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) return 1;
4437
4376
  if (unicodePunctuation(code)) return 2;
4438
4377
  }
4439
- //#endregion
4440
- //#region ../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
4378
+ // ../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js
4441
4379
  /**
4442
4380
  * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'
4443
4381
  */
@@ -4466,8 +4404,7 @@ window.__ModuleLoader__.load({
4466
4404
  }
4467
4405
  return events;
4468
4406
  }
4469
- //#endregion
4470
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/attention.js
4407
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/attention.js
4471
4408
  /**
4472
4409
  * @import {
4473
4410
  * Code,
@@ -4674,8 +4611,7 @@ window.__ModuleLoader__.load({
4674
4611
  point.offset += offset;
4675
4612
  point._bufferIndex += offset;
4676
4613
  }
4677
- //#endregion
4678
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/autolink.js
4614
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/autolink.js
4679
4615
  /**
4680
4616
  * @import {
4681
4617
  * Construct,
@@ -4885,8 +4821,7 @@ window.__ModuleLoader__.load({
4885
4821
  return nok(code);
4886
4822
  }
4887
4823
  }
4888
- //#endregion
4889
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/blank-line.js
4824
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/blank-line.js
4890
4825
  /**
4891
4826
  * @import {
4892
4827
  * Construct,
@@ -4942,8 +4877,7 @@ window.__ModuleLoader__.load({
4942
4877
  return code === null || markdownLineEnding(code) ? ok(code) : nok(code);
4943
4878
  }
4944
4879
  }
4945
- //#endregion
4946
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/block-quote.js
4880
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/block-quote.js
4947
4881
  /**
4948
4882
  * @import {
4949
4883
  * Construct,
@@ -5069,8 +5003,7 @@ window.__ModuleLoader__.load({
5069
5003
  function exit$1(effects) {
5070
5004
  effects.exit("blockQuote");
5071
5005
  }
5072
- //#endregion
5073
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/character-escape.js
5006
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/character-escape.js
5074
5007
  /**
5075
5008
  * @import {
5076
5009
  * Construct,
@@ -5129,8 +5062,7 @@ window.__ModuleLoader__.load({
5129
5062
  return nok(code);
5130
5063
  }
5131
5064
  }
5132
- //#endregion
5133
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/character-reference.js
5065
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/character-reference.js
5134
5066
  /**
5135
5067
  * @import {
5136
5068
  * Code,
@@ -5267,8 +5199,7 @@ window.__ModuleLoader__.load({
5267
5199
  return nok(code);
5268
5200
  }
5269
5201
  }
5270
- //#endregion
5271
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js
5202
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js
5272
5203
  /** @type {Construct} */
5273
5204
  const nonLazyContinuation = {
5274
5205
  partial: true,
@@ -5315,8 +5246,7 @@ window.__ModuleLoader__.load({
5315
5246
  return self.parser.lazy[self.now().line] ? nok(code) : ok(code);
5316
5247
  }
5317
5248
  }
5318
- //#endregion
5319
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-fenced.js
5249
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-fenced.js
5320
5250
  /**
5321
5251
  * @import {
5322
5252
  * Code,
@@ -5696,8 +5626,7 @@ window.__ModuleLoader__.load({
5696
5626
  }
5697
5627
  }
5698
5628
  }
5699
- //#endregion
5700
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-indented.js
5629
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-indented.js
5701
5630
  /**
5702
5631
  * @import {
5703
5632
  * Construct,
@@ -5828,8 +5757,7 @@ window.__ModuleLoader__.load({
5828
5757
  return markdownLineEnding(code) ? furtherStart(code) : nok(code);
5829
5758
  }
5830
5759
  }
5831
- //#endregion
5832
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-text.js
5760
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/code-text.js
5833
5761
  /**
5834
5762
  * @import {
5835
5763
  * Construct,
@@ -6013,8 +5941,7 @@ window.__ModuleLoader__.load({
6013
5941
  return data(code);
6014
5942
  }
6015
5943
  }
6016
- //#endregion
6017
- //#region ../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js
5944
+ // ../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js
6018
5945
  /**
6019
5946
  * Some of the internal operations of micromark do lots of editing
6020
5947
  * operations on very large arrays. This runs into problems with two
@@ -6243,8 +6170,7 @@ window.__ModuleLoader__.load({
6243
6170
  chunkStart += 1e4;
6244
6171
  }
6245
6172
  }
6246
- //#endregion
6247
- //#region ../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js
6173
+ // ../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js
6248
6174
  /**
6249
6175
  * @import {Chunk, Event, Token} from 'micromark-util-types'
6250
6176
  */
@@ -6398,8 +6324,7 @@ window.__ModuleLoader__.load({
6398
6324
  }
6399
6325
  return gaps;
6400
6326
  }
6401
- //#endregion
6402
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/content.js
6327
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/content.js
6403
6328
  /**
6404
6329
  * @import {
6405
6330
  * Construct,
@@ -6531,8 +6456,7 @@ window.__ModuleLoader__.load({
6531
6456
  return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);
6532
6457
  }
6533
6458
  }
6534
- //#endregion
6535
- //#region ../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js
6459
+ // ../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js
6536
6460
  /**
6537
6461
  * @import {Effects, State, TokenType} from 'micromark-util-types'
6538
6462
  */
@@ -6715,8 +6639,7 @@ window.__ModuleLoader__.load({
6715
6639
  return raw(code);
6716
6640
  }
6717
6641
  }
6718
- //#endregion
6719
- //#region ../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js
6642
+ // ../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js
6720
6643
  /**
6721
6644
  * @import {
6722
6645
  * Effects,
@@ -6849,8 +6772,7 @@ window.__ModuleLoader__.load({
6849
6772
  return labelInside(code);
6850
6773
  }
6851
6774
  }
6852
- //#endregion
6853
- //#region ../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js
6775
+ // ../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js
6854
6776
  /**
6855
6777
  * @import {
6856
6778
  * Code,
@@ -6994,8 +6916,7 @@ window.__ModuleLoader__.load({
6994
6916
  return inside(code);
6995
6917
  }
6996
6918
  }
6997
- //#endregion
6998
- //#region ../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js
6919
+ // ../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js
6999
6920
  /**
7000
6921
  * @import {Effects, State} from 'micromark-util-types'
7001
6922
  */
@@ -7034,8 +6955,7 @@ window.__ModuleLoader__.load({
7034
6955
  return ok(code);
7035
6956
  }
7036
6957
  }
7037
- //#endregion
7038
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/definition.js
6958
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/definition.js
7039
6959
  /**
7040
6960
  * @import {
7041
6961
  * Construct,
@@ -7249,8 +7169,7 @@ window.__ModuleLoader__.load({
7249
7169
  return code === null || markdownLineEnding(code) ? ok(code) : nok(code);
7250
7170
  }
7251
7171
  }
7252
- //#endregion
7253
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/hard-break-escape.js
7172
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/hard-break-escape.js
7254
7173
  /**
7255
7174
  * @import {
7256
7175
  * Construct,
@@ -7306,8 +7225,7 @@ window.__ModuleLoader__.load({
7306
7225
  return nok(code);
7307
7226
  }
7308
7227
  }
7309
- //#endregion
7310
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/heading-atx.js
7228
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/heading-atx.js
7311
7229
  /**
7312
7230
  * @import {
7313
7231
  * Construct,
@@ -7487,8 +7405,7 @@ window.__ModuleLoader__.load({
7487
7405
  return data;
7488
7406
  }
7489
7407
  }
7490
- //#endregion
7491
- //#region ../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
7408
+ // ../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js
7492
7409
  /**
7493
7410
  * List of lowercase HTML “block” tag names.
7494
7411
  *
@@ -7586,8 +7503,7 @@ window.__ModuleLoader__.load({
7586
7503
  "style",
7587
7504
  "textarea"
7588
7505
  ];
7589
- //#endregion
7590
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/html-flow.js
7506
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/html-flow.js
7591
7507
  /**
7592
7508
  * @import {
7593
7509
  * Code,
@@ -8312,8 +8228,7 @@ window.__ModuleLoader__.load({
8312
8228
  return effects.attempt(blankLine, ok, nok);
8313
8229
  }
8314
8230
  }
8315
- //#endregion
8316
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/html-text.js
8231
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/html-text.js
8317
8232
  /**
8318
8233
  * @import {
8319
8234
  * Code,
@@ -8926,8 +8841,7 @@ window.__ModuleLoader__.load({
8926
8841
  return returnState(code);
8927
8842
  }
8928
8843
  }
8929
- //#endregion
8930
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-end.js
8844
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-end.js
8931
8845
  /**
8932
8846
  * @import {
8933
8847
  * Construct,
@@ -9395,8 +9309,7 @@ window.__ModuleLoader__.load({
9395
9309
  return nok(code);
9396
9310
  }
9397
9311
  }
9398
- //#endregion
9399
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-start-image.js
9312
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-start-image.js
9400
9313
  /**
9401
9314
  * @import {
9402
9315
  * Construct,
@@ -9494,8 +9407,7 @@ window.__ModuleLoader__.load({
9494
9407
  return ok(code);
9495
9408
  }
9496
9409
  }
9497
- //#endregion
9498
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-start-link.js
9410
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/label-start-link.js
9499
9411
  /**
9500
9412
  * @import {
9501
9413
  * Construct,
@@ -9548,8 +9460,7 @@ window.__ModuleLoader__.load({
9548
9460
  return ok(code);
9549
9461
  }
9550
9462
  }
9551
- //#endregion
9552
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/line-ending.js
9463
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/line-ending.js
9553
9464
  /**
9554
9465
  * @import {
9555
9466
  * Construct,
@@ -9578,8 +9489,7 @@ window.__ModuleLoader__.load({
9578
9489
  return factorySpace(effects, ok, "linePrefix");
9579
9490
  }
9580
9491
  }
9581
- //#endregion
9582
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/thematic-break.js
9492
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/thematic-break.js
9583
9493
  /**
9584
9494
  * @import {
9585
9495
  * Code,
@@ -9673,8 +9583,7 @@ window.__ModuleLoader__.load({
9673
9583
  return markdownSpace(code) ? factorySpace(effects, atBreak, "whitespace")(code) : atBreak(code);
9674
9584
  }
9675
9585
  }
9676
- //#endregion
9677
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/list.js
9586
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/list.js
9678
9587
  /**
9679
9588
  * @import {
9680
9589
  * Code,
@@ -9845,8 +9754,7 @@ window.__ModuleLoader__.load({
9845
9754
  return !markdownSpace(code) && tail && tail[1].type === "listItemPrefixWhitespace" ? ok(code) : nok(code);
9846
9755
  }
9847
9756
  }
9848
- //#endregion
9849
- //#region ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/setext-underline.js
9757
+ // ../../../node_modules/.pnpm/micromark-core-commonmark@2.0.4/node_modules/micromark-core-commonmark/lib/setext-underline.js
9850
9758
  /**
9851
9759
  * @import {
9852
9760
  * Code,
@@ -9999,8 +9907,7 @@ window.__ModuleLoader__.load({
9999
9907
  return nok(code);
10000
9908
  }
10001
9909
  }
10002
- //#endregion
10003
- //#region ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/initialize/flow.js
9910
+ // ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/initialize/flow.js
10004
9911
  /**
10005
9912
  * @import {
10006
9913
  * InitialConstruct,
@@ -10046,8 +9953,7 @@ window.__ModuleLoader__.load({
10046
9953
  return initial;
10047
9954
  }
10048
9955
  }
10049
- //#endregion
10050
- //#region ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/initialize/text.js
9956
+ // ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/initialize/text.js
10051
9957
  /**
10052
9958
  * @import {
10053
9959
  * Code,
@@ -10222,8 +10128,7 @@ window.__ModuleLoader__.load({
10222
10128
  editMap.consume(events);
10223
10129
  return events;
10224
10130
  }
10225
- //#endregion
10226
- //#region ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/constructs.js
10131
+ // ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/constructs.js
10227
10132
  /**
10228
10133
  * @import {Extension} from 'micromark-util-types'
10229
10134
  */
@@ -10300,8 +10205,7 @@ window.__ModuleLoader__.load({
10300
10205
  const attentionMarkers = { null: [42, 95] };
10301
10206
  /** @satisfies {Extension['disable']} */
10302
10207
  const disable = { null: [] };
10303
- //#endregion
10304
- //#region ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/create-tokenizer.js
10208
+ // ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/create-tokenizer.js
10305
10209
  /**
10306
10210
  * @import {
10307
10211
  * Chunk,
@@ -10767,8 +10671,7 @@ window.__ModuleLoader__.load({
10767
10671
  }
10768
10672
  return result.join("");
10769
10673
  }
10770
- //#endregion
10771
- //#region ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/parse.js
10674
+ // ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/parse.js
10772
10675
  /**
10773
10676
  * @import {
10774
10677
  * Create,
@@ -10811,8 +10714,7 @@ window.__ModuleLoader__.load({
10811
10714
  }
10812
10715
  }
10813
10716
  }
10814
- //#endregion
10815
- //#region ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/postprocess.js
10717
+ // ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/postprocess.js
10816
10718
  /**
10817
10719
  * @import {Event} from 'micromark-util-types'
10818
10720
  */
@@ -10826,8 +10728,7 @@ window.__ModuleLoader__.load({
10826
10728
  while (!subtokenize(events));
10827
10729
  return events;
10828
10730
  }
10829
- //#endregion
10830
- //#region ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/preprocess.js
10731
+ // ../../../node_modules/.pnpm/micromark@4.0.3_supports-color@9.4.0/node_modules/micromark/lib/preprocess.js
10831
10732
  /**
10832
10733
  * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'
10833
10734
  */
@@ -10918,8 +10819,7 @@ window.__ModuleLoader__.load({
10918
10819
  return chunks;
10919
10820
  }
10920
10821
  }
10921
- //#endregion
10922
- //#region ../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js
10822
+ // ../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js
10923
10823
  const characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
10924
10824
  /**
10925
10825
  * Decode markdown strings (which occur in places such as fenced code info
@@ -10955,8 +10855,7 @@ window.__ModuleLoader__.load({
10955
10855
  }
10956
10856
  return decodeNamedCharacterReference($2) || $0;
10957
10857
  }
10958
- //#endregion
10959
- //#region ../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
10858
+ // ../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js
10960
10859
  /**
10961
10860
  * @typedef {import('unist').Node} Node
10962
10861
  * @typedef {import('unist').Point} Point
@@ -11019,8 +10918,7 @@ window.__ModuleLoader__.load({
11019
10918
  function index(value) {
11020
10919
  return value && typeof value === "number" ? value : 1;
11021
10920
  }
11022
- //#endregion
11023
- //#region ../../../node_modules/.pnpm/mdast-util-from-markdown@2.1.0_supports-color@9.4.0/node_modules/mdast-util-from-markdown/lib/index.js
10921
+ // ../../../node_modules/.pnpm/mdast-util-from-markdown@2.1.0_supports-color@9.4.0/node_modules/mdast-util-from-markdown/lib/index.js
11024
10922
  /**
11025
10923
  * @import {
11026
10924
  * Break,
@@ -12066,8 +11964,7 @@ window.__ModuleLoader__.load({
12066
11964
  end: right.end
12067
11965
  }) + ") is still open");
12068
11966
  }
12069
- //#endregion
12070
- //#region ../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js
11967
+ // ../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js
12071
11968
  /**
12072
11969
  * Count how often a character (or substring) is used in a string.
12073
11970
  *
@@ -12089,14 +11986,12 @@ window.__ModuleLoader__.load({
12089
11986
  }
12090
11987
  return count;
12091
11988
  }
12092
- //#endregion
12093
- //#region ../../../node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js
11989
+ // ../../../node_modules/.pnpm/escape-string-regexp@5.0.0/node_modules/escape-string-regexp/index.js
12094
11990
  function escapeStringRegexp(string) {
12095
11991
  if (typeof string !== "string") throw new TypeError("Expected a string");
12096
11992
  return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
12097
11993
  }
12098
- //#endregion
12099
- //#region ../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js
11994
+ // ../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js
12100
11995
  /**
12101
11996
  * Generate an assertion from a test.
12102
11997
  *
@@ -12209,17 +12104,19 @@ window.__ModuleLoader__.load({
12209
12104
  function looksLikeANode(value) {
12210
12105
  return value !== null && typeof value === "object" && "type" in value;
12211
12106
  }
12212
- //#endregion
12213
- //#region ../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.js
12107
+ // ../../../node_modules/.pnpm/unist-util-visit-parents@6.1.0/node_modules/unist-util-visit-parents/lib/color.js
12214
12108
  /**
12109
+ * Color a string.
12110
+ *
12215
12111
  * @param {string} d
12112
+ * Value.
12216
12113
  * @returns {string}
12114
+ * Colored value.
12217
12115
  */
12218
12116
  function color(d) {
12219
12117
  return d;
12220
12118
  }
12221
- //#endregion
12222
- //#region ../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js
12119
+ // ../../../node_modules/.pnpm/unist-util-visit-parents@6.1.0/node_modules/unist-util-visit-parents/lib/index.js
12223
12120
  /**
12224
12121
  * @import {Node as UnistNode, Parent as UnistParent} from 'unist'
12225
12122
  */
@@ -12377,45 +12274,95 @@ window.__ModuleLoader__.load({
12377
12274
  * List with one or two values, the first an action, the second an index.
12378
12275
  *
12379
12276
  * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult
12380
- * Any value that can be returned from a visitor.
12277
+ * Any value that can be returned from an enter visitor.
12278
+ *
12279
+ * Like `VisitorResultExit`,
12280
+ * but `SKIP` can also be returned,
12281
+ * to not walk the children of the node,
12282
+ * and `ActionTuple` can be used to combine an action with an index.
12283
+ *
12284
+ * @typedef {Index | boolean | null | undefined | void} VisitorResultExit
12285
+ * Any value that can be returned from an exit visitor.
12381
12286
  */
12382
12287
  /**
12383
12288
  * @callback Visitor
12384
- * Handle a node (matching `test`, if given).
12289
+ * Handle a node (matching `test`, if given) before its children.
12385
12290
  *
12386
- * Visitors are free to transform `node`.
12387
- * They can also transform the parent of node (the last of `ancestors`).
12388
- *
12389
- * Replacing `node` itself, if `SKIP` is not returned, still causes its
12390
- * descendants to be walked (which is a bug).
12391
- *
12392
- * When adding or removing previous siblings of `node` (or next siblings, in
12393
- * case of reverse), the `Visitor` should return a new `Index` to specify the
12394
- * sibling to traverse after `node` is traversed.
12395
- * Adding or removing next siblings of `node` (or previous siblings, in case
12396
- * of reverse) is handled as expected without needing to return a new `Index`.
12397
- *
12398
- * Removing the children property of an ancestor still results in them being
12399
- * traversed.
12291
+ * Changes inside `node` are walked next.
12292
+ * Replacing or removing it is easier in `exit`.
12293
+ * When replacing or removing it here,
12294
+ * return `SKIP` (as otherwise its old children are walked),
12295
+ * or `[SKIP, index]` to continue with the node now at `index`.
12296
+ * Changing next siblings (in walk order) is fine;
12297
+ * changing previous siblings needs a new `Index`.
12298
+ * Removing an ancestor or changing its previous siblings is not supported.
12400
12299
  * @param {Visited} node
12401
12300
  * Found node.
12402
12301
  * @param {Array<VisitedParents>} ancestors
12403
12302
  * Ancestors of `node`.
12303
+ * @param {number | undefined} index
12304
+ * Index of `node` in its parent (the last of `ancestors`),
12305
+ * or `undefined` for the tree itself.
12404
12306
  * @returns {VisitorResult}
12405
12307
  * What to do next.
12406
12308
  *
12407
- * An `Index` is treated as a tuple of `[CONTINUE, Index]`.
12408
- * An `Action` is treated as a tuple of `[Action]`.
12309
+ * Like `VisitorExit`,
12310
+ * but `SKIP` can also be returned,
12311
+ * to not walk the children of `node`.
12312
+ * Passing a tuple back (`ActionTuple`) only makes sense as `[SKIP, Index]`.
12313
+ * @template {UnistNode} [Visited=UnistNode]
12314
+ * Visited node type.
12315
+ * @template {UnistParent} [VisitedParents=UnistParent]
12316
+ * Ancestor type.
12317
+ */
12318
+ /**
12319
+ * @callback VisitorExit
12320
+ * Handle a node (matching `test`, if given) after its children.
12409
12321
  *
12410
- * Passing a tuple back only makes sense if the `Action` is `SKIP`.
12411
- * When the `Action` is `EXIT`, that action can be returned.
12412
- * When the `Action` is `CONTINUE`, `Index` can be returned.
12322
+ * Changes inside `node` are not walked,
12323
+ * which makes this a good place to change `node` based on its children,
12324
+ * or to replace or remove it.
12325
+ * When removing `node` or changing previous siblings (in walk order),
12326
+ * return a new `Index`.
12327
+ * Removing an ancestor or changing its previous siblings is not supported.
12328
+ * @param {Visited} node
12329
+ * Found node.
12330
+ * @param {Array<VisitedParents>} ancestors
12331
+ * Ancestors of `node`.
12332
+ * @param {number | undefined} index
12333
+ * Index of `node` in its parent (the last of `ancestors`),
12334
+ * or `undefined` for the tree itself.
12335
+ * @returns {VisitorResultExit}
12336
+ * What to do next.
12337
+ *
12338
+ * `CONTINUE` (`true`, nothing) continues as normal,
12339
+ * `EXIT` (`false`) stops traversing,
12340
+ * and `Index` continues at that sibling.
12413
12341
  * @template {UnistNode} [Visited=UnistNode]
12414
12342
  * Visited node type.
12415
12343
  * @template {UnistParent} [VisitedParents=UnistParent]
12416
12344
  * Ancestor type.
12417
12345
  */
12418
12346
  /**
12347
+ * @template {UnistNode} [Visited=UnistNode]
12348
+ * Visited node type.
12349
+ * @template {UnistParent} [VisitedParents=UnistParent]
12350
+ * Ancestor type.
12351
+ * @typedef Visitors
12352
+ * Handle nodes when entering and exiting them.
12353
+ * The `enter` visitor is optional while `exit` is required.
12354
+ *
12355
+ * Pass an `enter` visitor directly to only handle nodes when entering them.
12356
+ *
12357
+ * `enter` is called before children (if any) are walked and `exit` after that.
12358
+ * `exit` is still called when `enter` returns `SKIP`.
12359
+ * Both `enter` and `exit` are only called for nodes that match an optional `test`.
12360
+ * @property {Visitor<Visited, VisitedParents> | null | undefined} [enter]
12361
+ * Handle a node before its children (optional).
12362
+ * @property {VisitorExit<Visited, VisitedParents>} exit
12363
+ * Handle a node after its children.
12364
+ */
12365
+ /**
12419
12366
  * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor
12420
12367
  * Build a typed `Visitor` function from a tree and a test.
12421
12368
  *
@@ -12425,16 +12372,34 @@ window.__ModuleLoader__.load({
12425
12372
  * @template {Test} [Check=Test]
12426
12373
  * Test type.
12427
12374
  */
12375
+ /**
12376
+ * @typedef {Visitors<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitors
12377
+ * Build typed `Visitors` from a tree and a test.
12378
+ *
12379
+ * It will infer which values are passed as `node` and which as `parents`.
12380
+ * @template {UnistNode} [Tree=UnistNode]
12381
+ * Tree type.
12382
+ * @template {Test} [Check=Test]
12383
+ * Test type.
12384
+ */
12428
12385
  /** @type {Readonly<ActionTuple>} */
12429
12386
  const empty = [];
12430
12387
  /**
12388
+ * Do not traverse this node’s children.
12389
+ * Only works when entering a node.
12390
+ */
12391
+ const SKIP = "skip";
12392
+ /**
12431
12393
  * Visit nodes, with ancestral information.
12432
12394
  *
12433
12395
  * This algorithm performs *depth-first* *tree traversal* in *preorder*
12434
- * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
12396
+ * (**NLR**) or if `reverse` is given,
12397
+ * in *reverse preorder* (**NRL**).
12398
+ * An `exit` visitor is called in *postorder* (**LRN**)
12399
+ * or if `reverse` is given, in *reverse postorder* (**RLN**).
12435
12400
  *
12436
- * You can choose for which nodes `visitor` is called by passing a `test`.
12437
- * For complex tests, you should test yourself in `visitor`, as it will be
12401
+ * You can choose which nodes are visited by passing a `test`.
12402
+ * For complex tests, you should test yourself in a visitor, as it will be
12438
12403
  * faster and will have improved type information.
12439
12404
  *
12440
12405
  * Walking the tree is an intensive task.
@@ -12443,29 +12408,72 @@ window.__ModuleLoader__.load({
12443
12408
  * to check if a node matches, and then perform different operations.
12444
12409
  *
12445
12410
  * You can change the tree.
12446
- * See `Visitor` for more info.
12411
+ * Changes inside a node made when entering it are walked,
12412
+ * changes made when exiting it are not.
12413
+ * See `Visitor` and `VisitorExit` for more info.
12414
+ *
12415
+ * @overload
12416
+ * @param {Tree} tree
12417
+ * Tree to traverse.
12418
+ * @param {Check} check
12419
+ * `unist-util-is`-compatible test.
12420
+ * @param {BuildVisitor<Tree, Check>} enter
12421
+ * Handle each node when entering it.
12422
+ * @param {boolean | null | undefined} [reverse]
12423
+ * Walk children from last to first;
12424
+ * for `enter`, reverse preorder (NRL) instead of preorder (NLR);
12425
+ * for `exit`, reverse postorder (RLN) instead of postorder (LRN).
12426
+ * @returns {undefined}
12427
+ * Nothing.
12447
12428
  *
12448
12429
  * @overload
12449
12430
  * @param {Tree} tree
12431
+ * Tree to traverse.
12450
12432
  * @param {Check} check
12451
- * @param {BuildVisitor<Tree, Check>} visitor
12433
+ * `unist-util-is`-compatible test.
12434
+ * @param {BuildVisitors<Tree, Check>} visitors
12435
+ * Handle each node when exiting it, and optionally when entering it.
12436
+ * @param {boolean | null | undefined} [reverse]
12437
+ * Walk children from last to first;
12438
+ * for `enter`, reverse preorder (NRL) instead of preorder (NLR);
12439
+ * for `exit`, reverse postorder (RLN) instead of postorder (LRN).
12440
+ * @returns {undefined}
12441
+ * Nothing.
12442
+ *
12443
+ * @overload
12444
+ * @param {Tree} tree
12445
+ * Tree to traverse.
12446
+ * @param {BuildVisitor<Tree>} enter
12447
+ * Handle each node when entering it.
12452
12448
  * @param {boolean | null | undefined} [reverse]
12449
+ * Walk children from last to first;
12450
+ * for `enter`, reverse preorder (NRL) instead of preorder (NLR);
12451
+ * for `exit`, reverse postorder (RLN) instead of postorder (LRN).
12453
12452
  * @returns {undefined}
12453
+ * Nothing.
12454
12454
  *
12455
12455
  * @overload
12456
12456
  * @param {Tree} tree
12457
- * @param {BuildVisitor<Tree>} visitor
12457
+ * Tree to traverse.
12458
+ * @param {BuildVisitors<Tree>} visitors
12459
+ * Handle each node when exiting it, and optionally when entering it.
12458
12460
  * @param {boolean | null | undefined} [reverse]
12461
+ * Walk children from last to first;
12462
+ * for `enter`, reverse preorder (NRL) instead of preorder (NLR);
12463
+ * for `exit`, reverse postorder (RLN) instead of postorder (LRN).
12459
12464
  * @returns {undefined}
12465
+ * Nothing.
12460
12466
  *
12461
12467
  * @param {UnistNode} tree
12462
12468
  * Tree to traverse.
12463
- * @param {Visitor | Test} test
12464
- * `unist-util-is`-compatible test
12465
- * @param {Visitor | boolean | null | undefined} [visitor]
12466
- * Handle each node.
12469
+ * @param {Visitor | Visitors | Test} testOrEnterOrVisitors
12470
+ * `unist-util-is`-compatible test, `enter`, or `visitors`.
12471
+ * @param {Visitor | Visitors | boolean | null | undefined} [enterOrVisitorsOrReverse]
12472
+ * `enter`, `visitors`, or `reverse` after a test.
12467
12473
  * @param {boolean | null | undefined} [reverse]
12468
- * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
12474
+ * Walk children from last to first;
12475
+ * for `enter`, reverse preorder (NRL) instead of preorder (NLR);
12476
+ * for `exit`, reverse postorder (RLN) instead of postorder (LRN).
12469
12477
  * @returns {undefined}
12470
12478
  * Nothing.
12471
12479
  *
@@ -12474,20 +12482,46 @@ window.__ModuleLoader__.load({
12474
12482
  * @template {Test} Check
12475
12483
  * `unist-util-is`-compatible test.
12476
12484
  */
12477
- function visitParents(tree, test, visitor, reverse) {
12485
+ function visitParents(tree, testOrEnterOrVisitors, enterOrVisitorsOrReverse, reverse) {
12486
+ if (!tree || typeof tree !== "object") throw new Error("Unexpected value `" + tree + "` for `tree`, expected node");
12487
+ let preorder = true;
12478
12488
  /** @type {Test} */
12479
12489
  let check;
12480
- if (typeof test === "function" && typeof visitor !== "function") {
12481
- reverse = visitor;
12482
- visitor = test;
12483
- } else check = test;
12490
+ /** @type {Visitors | Visitor} */
12491
+ let visitors;
12492
+ /** @type {Visitor | null | undefined} */
12493
+ let enter;
12494
+ /** @type {VisitorExit | null | undefined} */
12495
+ let exit;
12496
+ if (typeof enterOrVisitorsOrReverse === "function" || enterOrVisitorsOrReverse && typeof enterOrVisitorsOrReverse === "object") {
12497
+ check = testOrEnterOrVisitors;
12498
+ visitors = enterOrVisitorsOrReverse;
12499
+ if (reverse) preorder = false;
12500
+ } else {
12501
+ visitors = testOrEnterOrVisitors;
12502
+ if (enterOrVisitorsOrReverse) preorder = false;
12503
+ }
12504
+ if (typeof visitors === "function") enter = visitors;
12505
+ else if (visitors && typeof visitors === "object") {
12506
+ if (visitors.enter === null || visitors.enter === void 0) {} else if (typeof visitors.enter === "function") enter = visitors.enter;
12507
+ else throw new Error("Unexpected value `" + visitors.enter + "` for `visitors.enter`, expected optional visitor");
12508
+ if (typeof visitors.exit === "function") exit = visitors.exit;
12509
+ else throw new Error("Unexpected value `" + visitors.exit + "` for `visitors.exit`, expected visitor (pass a visitor directly if you only want an enter visitor)");
12510
+ } else throw new Error("Unexpected value `" + visitors + "` for `enter` or `visitors`, expected visitor or object with visitors");
12484
12511
  const is = convert(check);
12485
- const step = reverse ? -1 : 1;
12512
+ const step = preorder ? 1 : -1;
12486
12513
  factory(tree, void 0, [])();
12487
12514
  /**
12515
+ * Create a function to visit a node.
12516
+ *
12488
12517
  * @param {UnistNode} node
12518
+ * Node to visit.
12489
12519
  * @param {number | undefined} index
12520
+ * Index of `node` in its parent.
12490
12521
  * @param {Array<UnistParent>} parents
12522
+ * Ancestors of `node`.
12523
+ * @returns {() => Readonly<ActionTuple>}
12524
+ * Visit `node`.
12491
12525
  */
12492
12526
  function factory(node, index, parents) {
12493
12527
  const value = node && typeof node === "object" ? node : {};
@@ -12497,31 +12531,31 @@ window.__ModuleLoader__.load({
12497
12531
  }
12498
12532
  return visit;
12499
12533
  function visit() {
12534
+ const matches = !check || is(node, index, parents[parents.length - 1] || void 0);
12500
12535
  /** @type {Readonly<ActionTuple>} */
12501
12536
  let result = empty;
12502
- /** @type {Readonly<ActionTuple>} */
12503
- let subresult;
12504
- /** @type {number} */
12505
- let offset;
12506
- /** @type {Array<UnistParent>} */
12507
- let grandparents;
12508
- if (!test || is(node, index, parents[parents.length - 1] || void 0)) {
12509
- result = toResult(visitor(node, parents));
12537
+ if (enter && matches) {
12538
+ result = toResult(enter(node, parents, index));
12510
12539
  if (result[0] === false) return result;
12511
12540
  }
12512
12541
  if ("children" in node && node.children) {
12513
12542
  const nodeAsParent = node;
12514
12543
  if (nodeAsParent.children && result[0] !== "skip") {
12515
- offset = (reverse ? nodeAsParent.children.length : -1) + step;
12516
- grandparents = parents.concat(nodeAsParent);
12544
+ let offset = (preorder ? -1 : nodeAsParent.children.length) + step;
12545
+ const grandparents = [...parents, nodeAsParent];
12517
12546
  while (offset > -1 && offset < nodeAsParent.children.length) {
12518
12547
  const child = nodeAsParent.children[offset];
12519
- subresult = factory(child, offset, grandparents)();
12548
+ const subresult = factory(child, offset, grandparents)();
12520
12549
  if (subresult[0] === false) return subresult;
12521
12550
  offset = typeof subresult[1] === "number" ? subresult[1] : offset + step;
12522
12551
  }
12523
12552
  }
12524
12553
  }
12554
+ if (exit && matches) {
12555
+ const exitResult = toResult(exit(node, parents, index));
12556
+ if (exitResult[0] === "skip") throw new Error("Unexpected value `" + exitResult[0] + "` from `exit`, expected `CONTINUE`, `EXIT`, index, or nothing");
12557
+ if (exitResult[0] === false || typeof exitResult[1] === "number") return exitResult;
12558
+ }
12525
12559
  return result;
12526
12560
  }
12527
12561
  }
@@ -12539,8 +12573,7 @@ window.__ModuleLoader__.load({
12539
12573
  if (typeof value === "number") return [true, value];
12540
12574
  return value === null || value === void 0 ? empty : [value];
12541
12575
  }
12542
- //#endregion
12543
- //#region ../../../node_modules/.pnpm/mdast-util-find-and-replace@3.0.3/node_modules/mdast-util-find-and-replace/lib/index.js
12576
+ // ../../../node_modules/.pnpm/mdast-util-find-and-replace@3.0.4/node_modules/mdast-util-find-and-replace/lib/index.js
12544
12577
  /**
12545
12578
  * @import {Nodes, Parents, PhrasingContent, Root, Text} from 'mdast'
12546
12579
  * @import {BuildVisitor, Test, VisitorResult} from 'unist-util-visit-parents'
@@ -12608,7 +12641,7 @@ window.__ModuleLoader__.load({
12608
12641
  * @param {FindAndReplaceList | FindAndReplaceTuple} list
12609
12642
  * Patterns to find.
12610
12643
  * @param {Options | null | undefined} [options]
12611
- * Configuration (when `find` is not `Find`).
12644
+ * Configuration (optional).
12612
12645
  * @returns {undefined}
12613
12646
  * Nothing.
12614
12647
  */
@@ -12616,24 +12649,15 @@ window.__ModuleLoader__.load({
12616
12649
  const ignored = convert((options || {}).ignore || []);
12617
12650
  const pairs = toPairs(list);
12618
12651
  let pairIndex = -1;
12619
- while (++pairIndex < pairs.length) visitParents(tree, "text", visitor);
12652
+ while (++pairIndex < pairs.length) visitParents(tree, visitor);
12620
12653
  /**
12621
- * Visit a text node, and handle it if it is not in an ignored parent.
12654
+ * Handle text nodes and skip ignored nodes.
12622
12655
  *
12623
- * @type {BuildVisitor<Root, 'text'>}
12656
+ * @type {BuildVisitor<Root>}
12624
12657
  */
12625
- function visitor(node, parents) {
12626
- let index = -1;
12627
- /** @type {Parents | undefined} */
12628
- let grandparent;
12629
- while (++index < parents.length) {
12630
- const parent = parents[index];
12631
- /** @type {Array<Nodes> | undefined} */
12632
- const siblings = grandparent ? grandparent.children : void 0;
12633
- if (ignored(parent, siblings ? siblings.indexOf(parent) : void 0, grandparent)) return;
12634
- grandparent = parent;
12635
- }
12636
- if (grandparent) return handler(node, parents);
12658
+ function visitor(node, parents, index) {
12659
+ if (node.type === "text" && typeof index === "number") return handler(node, parents, index);
12660
+ if (ignored(node, index, parents[parents.length - 1])) return SKIP;
12637
12661
  }
12638
12662
  /**
12639
12663
  * Handle a text node which is not in an ignored parent.
@@ -12642,15 +12666,16 @@ window.__ModuleLoader__.load({
12642
12666
  * Text node to search in.
12643
12667
  * @param {Array<Parents>} parents
12644
12668
  * Ancestors of `node`.
12669
+ * @param {number} index
12670
+ * Index of `node` in its parent.
12645
12671
  * @returns {VisitorResult}
12646
12672
  * Where to continue visiting.
12647
12673
  */
12648
- function handler(node, parents) {
12674
+ function handler(node, parents, index) {
12649
12675
  const parent = parents[parents.length - 1];
12650
12676
  const find = pairs[pairIndex][0];
12651
12677
  const replace = pairs[pairIndex][1];
12652
12678
  let start = 0;
12653
- const index = parent.children.indexOf(node);
12654
12679
  let change = false;
12655
12680
  /** @type {Array<PhrasingContent>} */
12656
12681
  let nodes = [];
@@ -12718,7 +12743,6 @@ window.__ModuleLoader__.load({
12718
12743
  if (!Array.isArray(tupleOrList)) throw new TypeError("Expected find and replace tuple or list of tuples");
12719
12744
  /** @type {Pairs} */
12720
12745
  const result = [];
12721
- /** @type {FindAndReplaceList} */
12722
12746
  const list = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];
12723
12747
  let index = -1;
12724
12748
  while (++index < list.length) {
@@ -12751,8 +12775,7 @@ window.__ModuleLoader__.load({
12751
12775
  return replace;
12752
12776
  };
12753
12777
  }
12754
- //#endregion
12755
- //#region ../../../node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1/node_modules/mdast-util-gfm-autolink-literal/lib/index.js
12778
+ // ../../../node_modules/.pnpm/mdast-util-gfm-autolink-literal@2.0.1_patch_hash=7fa6fc7927128a45c3f148d31faf388806895e2de39c14a144200edbc1e7aaa0/node_modules/mdast-util-gfm-autolink-literal/lib/index.js
12756
12779
  /**
12757
12780
  * @import {RegExpMatchObject, ReplaceFunction} from 'mdast-util-find-and-replace'
12758
12781
  * @import {CompileContext, Extension as FromMarkdownExtension, Handle as FromMarkdownHandle, Transform as FromMarkdownTransform} from 'mdast-util-from-markdown'
@@ -12835,7 +12858,7 @@ window.__ModuleLoader__.load({
12835
12858
  }
12836
12859
  /** @type {FromMarkdownTransform} */
12837
12860
  function transformGfmAutolinkLiterals(tree) {
12838
- findAndReplace(tree, [[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi, findUrl], [/(?<=^|\s|\p{P}|\p{S})([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/gu, findEmail]], { ignore: ["link", "linkReference"] });
12861
+ findAndReplace(tree, [[/(https?:\/\/|www(?=\.))([-.\w]+)((?:[!-~]|(?![\p{P}\p{S}\s])[^ \t\r\n])*)/giu, findUrl], [/(?<=^|\s|\p{P}|\p{S})([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/gu, findEmail]], { ignore: ["link", "linkReference"] });
12839
12862
  }
12840
12863
  /**
12841
12864
  * @type {ReplaceFunction}
@@ -12931,8 +12954,7 @@ window.__ModuleLoader__.load({
12931
12954
  const code = match.input.charCodeAt(match.index - 1);
12932
12955
  return (match.index === 0 || unicodeWhitespace(code) || unicodePunctuation(code)) && (!email || code !== 47);
12933
12956
  }
12934
- //#endregion
12935
- //#region ../../../node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0_supports-color@9.4.0/node_modules/mdast-util-gfm-footnote/lib/index.js
12957
+ // ../../../node_modules/.pnpm/mdast-util-gfm-footnote@2.1.0_supports-color@9.4.0/node_modules/mdast-util-gfm-footnote/lib/index.js
12936
12958
  /**
12937
12959
  * @import {
12938
12960
  * CompileContext,
@@ -13066,8 +13088,7 @@ window.__ModuleLoader__.load({
13066
13088
  }
13067
13089
  };
13068
13090
  }
13069
- //#endregion
13070
- //#region ../../../node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.1_supports-color@9.4.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js
13091
+ // ../../../node_modules/.pnpm/mdast-util-gfm-strikethrough@2.0.1_supports-color@9.4.0/node_modules/mdast-util-gfm-strikethrough/lib/index.js
13071
13092
  handleDelete.attention = attentionDelete;
13072
13093
  handleDelete.peek = peekDelete;
13073
13094
  /**
@@ -13167,8 +13188,7 @@ window.__ModuleLoader__.load({
13167
13188
  ]);
13168
13189
  ({}).hasOwnProperty;
13169
13190
  ({}).hasOwnProperty;
13170
- //#endregion
13171
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/util/check-quote.js
13191
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/util/check-quote.js
13172
13192
  /**
13173
13193
  * @import {Options, State} from 'mdast-util-to-markdown'
13174
13194
  */
@@ -13185,8 +13205,7 @@ window.__ModuleLoader__.load({
13185
13205
  if (marker !== "\"" && marker !== "'") throw new Error("Cannot serialize title with `" + marker + "` for `options.quote`, expected `\"`, or `'`");
13186
13206
  return marker;
13187
13207
  }
13188
- //#endregion
13189
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js
13208
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js
13190
13209
  /**
13191
13210
  * @import {Options, State} from 'mdast-util-to-markdown'
13192
13211
  */
@@ -13203,8 +13222,674 @@ window.__ModuleLoader__.load({
13203
13222
  if (marker !== "*" && marker !== "_") throw new Error("Cannot serialize emphasis with `" + marker + "` for `options.emphasis`, expected `*`, or `_`");
13204
13223
  return marker;
13205
13224
  }
13206
- //#endregion
13207
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js
13225
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/util/character.js
13226
+ /**
13227
+ * Get the first character of a value.
13228
+ *
13229
+ * Is aware of astral characters (such as emoji).
13230
+ *
13231
+ * @param {string} value
13232
+ * Value.
13233
+ * @returns {string}
13234
+ * First character; empty if `value` is empty.
13235
+ */
13236
+ function firstCharacter(value) {
13237
+ const code = value.codePointAt(0);
13238
+ return code === void 0 ? "" : String.fromCodePoint(code);
13239
+ }
13240
+ /**
13241
+ * Get the last character of a value.
13242
+ *
13243
+ * Is aware of astral characters (such as emoji).
13244
+ *
13245
+ * @param {string} value
13246
+ * Value.
13247
+ * @returns {string}
13248
+ * Last character; empty if `value` is empty.
13249
+ */
13250
+ function lastCharacter(value) {
13251
+ const code = value.codePointAt(value.length - 2);
13252
+ return code !== void 0 && code > 65535 ? value.slice(-2) : value.slice(-1);
13253
+ }
13254
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.js
13255
+ /**
13256
+ * Encode a code point as a character reference.
13257
+ *
13258
+ * @param {number} code
13259
+ * Code point to encode.
13260
+ * @returns {string}
13261
+ * Encoded character reference.
13262
+ */
13263
+ function encodeCharacterReference(code) {
13264
+ return "&#x" + code.toString(16).toUpperCase() + ";";
13265
+ }
13266
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/util/encode-info.js
13267
+ /**
13268
+ * @import {EncodeSides} from '../types.js'
13269
+ */
13270
+ /**
13271
+ * Check whether to encode (as a character reference) the characters
13272
+ * surrounding an attention run.
13273
+ *
13274
+ * Which characters are around an attention run influence whether it works or
13275
+ * not.
13276
+ *
13277
+ * See <https://github.com/orgs/syntax-tree/discussions/60> for more info.
13278
+ * See this markdown in a particular renderer to see what works:
13279
+ *
13280
+ * ```markdown
13281
+ * | | A (letter inside) | B (punctuation inside) | C (whitespace inside) | D (nothing inside) |
13282
+ * | ----------------------- | ----------------- | ---------------------- | --------------------- | ------------------ |
13283
+ * | 1 (letter outside) | x*y*z | x*.*z | x* *z | x**z |
13284
+ * | 2 (punctuation outside) | .*y*. | .*.*. | .* *. | .**. |
13285
+ * | 3 (whitespace outside) | x *y* z | x *.* z | x * * z | x ** z |
13286
+ * | 4 (nothing outside) | *x* | *.* | * * | ** |
13287
+ * ```
13288
+ *
13289
+ * @param {number} outside
13290
+ * Code point on the outer side of the run.
13291
+ * @param {number} inside
13292
+ * Code point on the inner side of the run.
13293
+ * @param {string} marker
13294
+ * Marker of the run.
13295
+ * Underscores are handled more strictly (they form less often) than
13296
+ * asterisks.
13297
+ * @returns {EncodeSides}
13298
+ * Whether to encode characters.
13299
+ */
13300
+ function encodeInfo(outside, inside, marker) {
13301
+ const outsideKind = classifyCharacter(outside);
13302
+ const insideKind = classifyCharacter(inside);
13303
+ if (outsideKind === void 0) return insideKind === void 0 ? marker === "_" ? {
13304
+ inside: true,
13305
+ outside: true
13306
+ } : {
13307
+ inside: false,
13308
+ outside: false
13309
+ } : insideKind === 1 ? {
13310
+ inside: true,
13311
+ outside: true
13312
+ } : {
13313
+ inside: false,
13314
+ outside: true
13315
+ };
13316
+ if (outsideKind === 1) return insideKind === void 0 ? {
13317
+ inside: false,
13318
+ outside: false
13319
+ } : insideKind === 1 ? {
13320
+ inside: true,
13321
+ outside: true
13322
+ } : {
13323
+ inside: false,
13324
+ outside: false
13325
+ };
13326
+ return insideKind === void 0 ? {
13327
+ inside: false,
13328
+ outside: false
13329
+ } : insideKind === 1 ? {
13330
+ inside: true,
13331
+ outside: false
13332
+ } : {
13333
+ inside: false,
13334
+ outside: false
13335
+ };
13336
+ }
13337
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/util/html-kind.js
13338
+ /**
13339
+ * @typedef {1 | 2 | 3 | 4 | 5 | 6 | 7} Kind
13340
+ * Kind of HTML (flow) element.
13341
+ */
13342
+ /**
13343
+ * Infer the kind of HTML that `value` is.
13344
+ *
13345
+ * This works on valid trees as produced by `micromark`.
13346
+ * Kinds:
13347
+ *
13348
+ * 1. raw
13349
+ * 2. comment
13350
+ * 3. instruction
13351
+ * 4. declaration
13352
+ * 5. cdata
13353
+ * 6. block
13354
+ * 7. other
13355
+ *
13356
+ * See: <https://spec.commonmark.org/0.31.2/#html-blocks>.
13357
+ *
13358
+ * @param {string} value
13359
+ * HTML.
13360
+ * @returns {Kind | undefined}
13361
+ * Kind; `undefined` if unknown.
13362
+ */
13363
+ function htmlKind(value) {
13364
+ if (value.charCodeAt(0) !== 60) return;
13365
+ const next = value.charCodeAt(1);
13366
+ if (next === 33) {
13367
+ const code = value.charCodeAt(2);
13368
+ if (code === 45) return 2;
13369
+ if (code === 91) return 5;
13370
+ if (asciiAlpha(code)) return 4;
13371
+ return;
13372
+ }
13373
+ if (next === 63) return 3;
13374
+ const closing = next === 47;
13375
+ const start = closing ? 2 : 1;
13376
+ let end = start;
13377
+ let code = value.charCodeAt(end);
13378
+ if (!asciiAlpha(code)) return;
13379
+ while (code === 45 || asciiAlphanumeric(code)) code = value.charCodeAt(++end);
13380
+ const name = value.slice(start, end).toLowerCase();
13381
+ if (!closing && code !== 47 && htmlRawNames.includes(name)) return 1;
13382
+ return htmlBlockNames.includes(name) ? 6 : 7;
13383
+ }
13384
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js
13385
+ /**
13386
+ * @import {Attention, Handle, Info, State, Tracker} from 'mdast-util-to-markdown'
13387
+ * @import {PhrasingParents} from '../types.js'
13388
+ */
13389
+ /**
13390
+ * Markers for builtin attention (emphasis, strong) to whether they are stricter:
13391
+ * whether they cannot open and close inside words.
13392
+ *
13393
+ * Builtin runs pair following CommonMark rules for emphasis and strong:
13394
+ * they are split,
13395
+ * using one or two markers at a time,
13396
+ * with the rule of 3.
13397
+ * Other markers pair like GFM strikethrough:
13398
+ * whole runs pair with a run of the same size.
13399
+ *
13400
+ * @type {Map<string, boolean>}
13401
+ */
13402
+ const builtins = /* @__PURE__ */ new Map([["*", false], ["_", true]]);
13403
+ /**
13404
+ * @typedef AttentionResult
13405
+ * Attention, of which the sequence is chosen later.
13406
+ * @property {Array<Item>} children
13407
+ * Serialized children.
13408
+ * @property {Array<string>} sequences
13409
+ * Sequences that can be used, in order of preference.
13410
+ */
13411
+ /**
13412
+ * @typedef Improvement
13413
+ * Improvement of attention sequences.
13414
+ * @property {Map<AttentionResult, string>} chosen
13415
+ * Chosen sequences for each attention.
13416
+ * @property {Array<Token>} tokens
13417
+ * Tokens involved in the improvement.
13418
+ * @property {Mistake | undefined} mistake
13419
+ * Mistake that led to this improvement, if any.
13420
+ */
13421
+ /**
13422
+ * @typedef {AttentionResult | string} Item
13423
+ * Serialized phrasing.
13424
+ */
13425
+ /**
13426
+ * @typedef Mistake
13427
+ * Sequence that does not form its attention.
13428
+ * @property {Array<AttentionResult>} attention
13429
+ * Attention to try other sequences for.
13430
+ * @property {number} index
13431
+ * Index of the token.
13432
+ */
13433
+ /**
13434
+ * @typedef Run
13435
+ * Sequences next to each other with the same marker.
13436
+ * @property {boolean} close
13437
+ * Whether it can close.
13438
+ * @property {number} end
13439
+ * Index after the last marker not used (to open).
13440
+ * @property {Array<Token>} markers
13441
+ * Sequence of each marker.
13442
+ * @property {boolean} open
13443
+ * Whether it can open.
13444
+ * @property {boolean} split
13445
+ * Whether it can be split (built-in attention).
13446
+ * @property {number} start
13447
+ * Index of the first marker not used (to close).
13448
+ * @property {Array<Token>} tokens
13449
+ * Sequences.
13450
+ */
13451
+ /**
13452
+ * @typedef Token
13453
+ * Rendered phrasing.
13454
+ * @property {AttentionResult | undefined} attention
13455
+ * Attention, if this is one of its sequences.
13456
+ * @property {string} value
13457
+ * Value.
13458
+ */
13459
+ /**
13460
+ * Get candidates for a mistake:
13461
+ * attention to try other sequences for,
13462
+ * later first.
13463
+ *
13464
+ * @param {Array<Token>} tokens
13465
+ * Tokens.
13466
+ * @param {Array<Token>} involved
13467
+ * Sequences involved in the mistake.
13468
+ * @param {Map<Token, Run>} runOf
13469
+ * Run of each sequence.
13470
+ * @returns {Array<AttentionResult>}
13471
+ * Candidates.
13472
+ */
13473
+ function candidates(tokens, involved, runOf) {
13474
+ /** @type {Set<AttentionResult | undefined>} */
13475
+ const related = /* @__PURE__ */ new Set();
13476
+ for (const token of tokens) {
13477
+ const siblings = runOf.get(token);
13478
+ if (siblings && token.attention && involved.some((d) => d.attention === token.attention)) for (const sibling of siblings.tokens) related.add(sibling.attention);
13479
+ }
13480
+ /** @type {Array<AttentionResult>} */
13481
+ const ordered = [];
13482
+ for (const token of tokens) if (token.attention && related.delete(token.attention)) ordered.push(token.attention);
13483
+ ordered.reverse();
13484
+ return ordered;
13485
+ }
13486
+ /**
13487
+ * Check whether sequences form their attention, like `micromark`.
13488
+ *
13489
+ * Sequences of `*` and `_` pair like emphasis and strong in CommonMark,
13490
+ * others like strikethrough in GFM.
13491
+ *
13492
+ * @param {Array<Token>} tokens
13493
+ * Tokens.
13494
+ * @param {string} before
13495
+ * Characters before.
13496
+ * @param {string} after
13497
+ * Characters after.
13498
+ * @returns {Mistake | undefined}
13499
+ * First mistake, if any.
13500
+ */
13501
+ function check(tokens, before, after) {
13502
+ /** @type {Array<Run>} */
13503
+ const runs = [];
13504
+ /** @type {Map<Token, Array<Token>>} */
13505
+ const wrong = /* @__PURE__ */ new Map();
13506
+ /** @type {Map<Token, Run>} */
13507
+ const runOf = /* @__PURE__ */ new Map();
13508
+ let index = 0;
13509
+ while (index < tokens.length) {
13510
+ if (!tokens[index].attention) {
13511
+ index++;
13512
+ continue;
13513
+ }
13514
+ const marker = tokens[index].value.charAt(0);
13515
+ const strict = builtins.get(marker);
13516
+ let end = index + 1;
13517
+ while (end < tokens.length && tokens[end].attention && tokens[end].value.charAt(0) === marker) end++;
13518
+ const head = index ? tokens[index - 1].value : before;
13519
+ const previous = classifyCharacter(head.charCodeAt(head.length - 1));
13520
+ const next = classifyCharacter((end < tokens.length ? tokens[end].value : after).charCodeAt(0));
13521
+ const open = !next || next === 2 && Boolean(previous);
13522
+ const close = !previous || previous === 2 && Boolean(next);
13523
+ /** @type {Run} */
13524
+ const run = {
13525
+ tokens: tokens.slice(index, end),
13526
+ markers: [],
13527
+ start: 0,
13528
+ end: 0,
13529
+ open: strict ? open && (Boolean(previous) || !close) : open,
13530
+ close: strict ? close && (Boolean(next) || !open) : close,
13531
+ split: strict !== void 0
13532
+ };
13533
+ for (const token of run.tokens) {
13534
+ wrong.set(token, [...run.tokens]);
13535
+ runOf.set(token, run);
13536
+ let size = token.value.length;
13537
+ while (size--) run.markers.push(token);
13538
+ }
13539
+ run.end = run.markers.length;
13540
+ runs.push(run);
13541
+ index = end;
13542
+ }
13543
+ pair(runs, wrong);
13544
+ index = -1;
13545
+ while (++index < tokens.length) {
13546
+ const involved = wrong.get(tokens[index]);
13547
+ if (involved) return {
13548
+ attention: candidates(tokens, involved, runOf),
13549
+ index
13550
+ };
13551
+ }
13552
+ }
13553
+ /**
13554
+ * Encode the first or last character of tokens as a character reference,
13555
+ * if it is text.
13556
+ *
13557
+ * @param {Array<Token>} tokens
13558
+ * Tokens.
13559
+ * @param {boolean} start
13560
+ * Whether to encode the first or last character.
13561
+ * @returns {undefined}
13562
+ * Nothing.
13563
+ */
13564
+ function encode(tokens, start) {
13565
+ const token = tokens[start ? 0 : tokens.length - 1];
13566
+ if (!token || token.attention) return;
13567
+ const character = start ? firstCharacter(token.value) : lastCharacter(token.value);
13568
+ const reference = encodeCharacterReference(character.codePointAt(0));
13569
+ if (start) token.value = reference + token.value.slice(character.length);
13570
+ else {
13571
+ let value = token.value.slice(0, token.value.length - character.length);
13572
+ let escapes = 0;
13573
+ while (value.charCodeAt(value.length - 1 - escapes) === 92) escapes++;
13574
+ if (escapes % 2) value += "\\";
13575
+ token.value = value + reference;
13576
+ }
13577
+ }
13578
+ /**
13579
+ * Try other sequences for the candidates of a mistake and use the first that
13580
+ * moves the mistake further.
13581
+ *
13582
+ * @param {Array<Item>} items
13583
+ * Items.
13584
+ * @param {Map<AttentionResult, string>} chosen
13585
+ * Sequences to use instead of preferred sequences.
13586
+ * @param {Mistake} mistake
13587
+ * Mistake.
13588
+ * @param {string} before
13589
+ * Characters before.
13590
+ * @param {string} after
13591
+ * Characters after.
13592
+ * @returns {Improvement | undefined}
13593
+ * Result if better.
13594
+ */
13595
+ function improve(items, chosen, mistake, before, after) {
13596
+ for (const attention of mistake.attention) {
13597
+ const current = chosen.get(attention) || attention.sequences[0];
13598
+ for (const sequence of attention.sequences) {
13599
+ if (sequence === current) continue;
13600
+ const trial = new Map(chosen);
13601
+ trial.set(attention, sequence);
13602
+ const tokens = render(items, trial, before, after);
13603
+ const next = check(tokens, before, after);
13604
+ if (!next || next.index > mistake.index) return {
13605
+ chosen: trial,
13606
+ mistake: next,
13607
+ tokens
13608
+ };
13609
+ }
13610
+ }
13611
+ }
13612
+ /**
13613
+ * Pair runs like `micromark` and mark sequences that do form their attention
13614
+ * as fine.
13615
+ *
13616
+ * Each pair uses markers from the end of an opener and the start of a closer.
13617
+ * It forms the intended attention if those markers are exactly the whole
13618
+ * opening and closing sequence of one attention.
13619
+ * Otherwise attention is mixed up:
13620
+ * either sequences of different attention pair,
13621
+ * part of a sequence is used (such as `**` of strong as `*`),
13622
+ * or several sequences are used together (such as `*` and `*` as `**`).
13623
+ * Then the sequences involved are recorded with each other.
13624
+ *
13625
+ * @param {Array<Run>} runs
13626
+ * Runs.
13627
+ * @param {Map<Token, Array<Token>>} wrong
13628
+ * Sequences that are wrong, with the sequences involved.
13629
+ * @returns {undefined}
13630
+ * Nothing, `wrong` is changed.
13631
+ */
13632
+ function pair(runs, wrong) {
13633
+ /** @type {Map<string, Array<Run>>} */
13634
+ const openersByMarker = /* @__PURE__ */ new Map();
13635
+ for (const closer of runs) {
13636
+ const marker = closer.tokens[0].value.charAt(0);
13637
+ let openers = openersByMarker.get(marker);
13638
+ if (!openers) {
13639
+ openers = [];
13640
+ openersByMarker.set(marker, openers);
13641
+ }
13642
+ let open = closer.close ? openers.length : 0;
13643
+ while (open-- && closer.start < closer.end) {
13644
+ const opener = openers[open];
13645
+ const openerSize = opener.end - opener.start;
13646
+ const closerSize = closer.end - closer.start;
13647
+ if (closer.split ? (opener.close || closer.open) && closerSize % 3 && !((openerSize + closerSize) % 3) : openerSize !== opener.markers.length || openerSize !== closerSize) continue;
13648
+ const size = closer.split ? openerSize > 1 && closerSize > 1 ? 2 : 1 : closerSize;
13649
+ const opening = opener.markers.slice(opener.end - size, opener.end);
13650
+ const closing = closer.markers.slice(closer.start, closer.start + size);
13651
+ const openToken = opening[0];
13652
+ const closeToken = closing[0];
13653
+ if (openToken === opening[size - 1] && openToken.value.length === size && closeToken === closing[size - 1] && closeToken.value.length === size && openToken.attention === closeToken.attention) {
13654
+ wrong.delete(openToken);
13655
+ wrong.delete(closeToken);
13656
+ } else {
13657
+ const involved = [.../* @__PURE__ */ new Set([...opening, ...closing])];
13658
+ for (const token of involved) {
13659
+ const list = wrong.get(token);
13660
+ if (list) list.push(...involved);
13661
+ }
13662
+ }
13663
+ opener.end -= size;
13664
+ closer.start += size;
13665
+ if (opener.start === opener.end) openers.splice(open, 1);
13666
+ open = openers.length;
13667
+ }
13668
+ if (closer.open && closer.start < closer.end) openers.push(closer);
13669
+ }
13670
+ }
13671
+ /**
13672
+ * Get the sequences that can be used for attention, in order of preference.
13673
+ *
13674
+ * @param {string} type
13675
+ * Node type.
13676
+ * @param {Array<string>} markers
13677
+ * Markers.
13678
+ * @param {Array<number>} sizes
13679
+ * Sizes.
13680
+ * @returns {Array<string>}
13681
+ * Sequences.
13682
+ */
13683
+ function attentionSequences(type, markers, sizes) {
13684
+ if (markers.length === 0) throw new Error("Cannot serialize `" + type + "` as attention without markers, expected one or more markers");
13685
+ if (sizes.length === 0) throw new Error("Cannot serialize `" + type + "` as attention without sizes, expected one or more sizes");
13686
+ for (const size of sizes) if (!Number.isSafeInteger(size) || size < 1) throw new Error("Cannot serialize `" + type + "` as attention with `" + size + "` as size, expected positive integer");
13687
+ /** @type {Array<string>} */
13688
+ const sequences = [];
13689
+ for (const marker of markers) {
13690
+ if (marker.length !== 1) throw new Error("Cannot serialize `" + type + "` as attention with `" + marker + "` as marker, expected a single ascii character");
13691
+ if (!asciiPunctuation(marker.charCodeAt(0))) throw new Error("Cannot serialize `" + type + "` as attention with `" + marker + "` as marker, expected ascii punctuation");
13692
+ for (const size of sizes) sequences.push(marker.repeat(size));
13693
+ }
13694
+ return sequences;
13695
+ }
13696
+ /**
13697
+ * Serialize the children of a parent that contains phrasing children,
13698
+ * keeping attention separate,
13699
+ * so that its markers can be chosen later.
13700
+ *
13701
+ * @param {PhrasingParents} parent
13702
+ * Parent of phrasing nodes.
13703
+ * @param {State} state
13704
+ * Info passed around about the current state.
13705
+ * @param {Info} info
13706
+ * Info on where we are in the document we are generating.
13707
+ * @returns {Array<Item>}
13708
+ * Items.
13709
+ */
13710
+ function phrasing(parent, state, info) {
13711
+ const indexStack = state.indexStack;
13712
+ const children = parent.children || [];
13713
+ /** @type {Array<Item>} */
13714
+ const results = [];
13715
+ let index = -1;
13716
+ let before = info.before;
13717
+ indexStack.push(-1);
13718
+ let tracker = state.createTracker(info);
13719
+ while (++index < children.length) {
13720
+ const child = children[index];
13721
+ /** @type {string} */
13722
+ let after;
13723
+ indexStack[indexStack.length - 1] = index;
13724
+ if (index + 1 < children.length) {
13725
+ /** @type {Handle} */
13726
+ let handle = state.handle.handlers[children[index + 1].type];
13727
+ if (handle && handle.peek) handle = handle.peek;
13728
+ after = handle ? firstCharacter(handle(children[index + 1], parent, state, {
13729
+ before: "",
13730
+ after: "",
13731
+ ...tracker.current()
13732
+ })) : "";
13733
+ } else after = info.after;
13734
+ const previous = results[results.length - 1];
13735
+ if (typeof previous === "string" && (before === "\r" || before === "\n") && child.type === "html" && htmlKind(child.value) !== 7) {
13736
+ results[results.length - 1] = previous.replace(/(\r?\n|\r)$/, " ");
13737
+ before = " ";
13738
+ tracker = state.createTracker(info);
13739
+ tracker.move(serialize(results, info.before, info.after));
13740
+ }
13741
+ /** @type {(Handle & {attention?: Attention | undefined}) | undefined} */
13742
+ const handle = state.handle.handlers[child.type];
13743
+ if (handle && handle.attention) {
13744
+ const item = attentionItem(child, handle.attention, state, tracker);
13745
+ results.push(item);
13746
+ before = lastCharacter(item.sequences[0]);
13747
+ } else {
13748
+ const value = state.handle(child, parent, state, {
13749
+ ...tracker.current(),
13750
+ after,
13751
+ before
13752
+ });
13753
+ if (!value) continue;
13754
+ tracker.move(value);
13755
+ results.push(value);
13756
+ before = lastCharacter(value);
13757
+ }
13758
+ }
13759
+ indexStack.pop();
13760
+ return results;
13761
+ }
13762
+ /**
13763
+ * Serialize a node as attention,
13764
+ * with its sequence chosen later.
13765
+ *
13766
+ * @param {PhrasingParents} node
13767
+ * Node.
13768
+ * @param {Attention} attention
13769
+ * Attention of the node.
13770
+ * @param {State} state
13771
+ * Info passed around about the current state.
13772
+ * @param {Tracker} tracker
13773
+ * Tracker.
13774
+ * @returns {AttentionResult}
13775
+ * Attention.
13776
+ */
13777
+ function attentionItem(node, attention, state, tracker) {
13778
+ const { construct, markers, sizes } = attention(node, state);
13779
+ const sequences = attentionSequences(node.type, markers, sizes);
13780
+ const sequence = sequences[0];
13781
+ const exit = state.enter(construct);
13782
+ tracker.move(sequence);
13783
+ const children = phrasing(node, state, {
13784
+ ...tracker.current(),
13785
+ before: sequence,
13786
+ after: sequence
13787
+ });
13788
+ tracker.move(serialize(children, sequence, sequence));
13789
+ tracker.move(sequence);
13790
+ exit();
13791
+ return {
13792
+ children,
13793
+ sequences
13794
+ };
13795
+ }
13796
+ /**
13797
+ * Render items with sequences;
13798
+ * encoding characters around attention where needed.
13799
+ *
13800
+ * @param {Array<Item>} items
13801
+ * Serialized phrasing.
13802
+ * @param {Map<AttentionResult, string>} chosen
13803
+ * Sequences to use instead of preferred sequences.
13804
+ * @param {string} before
13805
+ * Characters before.
13806
+ * @param {string} after
13807
+ * Characters after.
13808
+ * @returns {Array<Token>}
13809
+ * Tokens.
13810
+ */
13811
+ function render(items, chosen, before, after) {
13812
+ /** @type {Array<Token>} */
13813
+ const tokens = [];
13814
+ /** @type {string | undefined} */
13815
+ let encodeAfter;
13816
+ let previous = lastCharacter(before);
13817
+ let index = -1;
13818
+ while (++index < items.length) {
13819
+ const item = items[index];
13820
+ if (typeof item === "string") {
13821
+ /** @type {Token} */
13822
+ const token = {
13823
+ value: item,
13824
+ attention: void 0
13825
+ };
13826
+ if (encodeAfter && encodeAfter === firstCharacter(item)) encode([token], true);
13827
+ encodeAfter = void 0;
13828
+ tokens.push(token);
13829
+ if (token.value) previous = lastCharacter(token.value);
13830
+ continue;
13831
+ }
13832
+ const sequence = chosen.get(item) || item.sequences[0];
13833
+ const marker = sequence.charAt(0);
13834
+ const next = items[index + 1];
13835
+ const outsideBefore = previous;
13836
+ const outsideAfter = firstCharacter(next === void 0 ? after : typeof next === "string" ? next : chosen.get(next) || next.sequences[0]);
13837
+ const inside = render(item.children, chosen, sequence, sequence);
13838
+ const head = inside.length > 0 ? inside[0].value : "";
13839
+ const open = encodeInfo(outsideBefore.charCodeAt(outsideBefore.length - 1), head.charCodeAt(0), marker);
13840
+ if (open.inside) encode(inside, true);
13841
+ const tail = inside.length > 0 ? lastCharacter(inside[inside.length - 1].value) : "";
13842
+ const close = encodeInfo(outsideAfter.charCodeAt(0), tail.charCodeAt(tail.length - 1), marker);
13843
+ if (close.inside) encode(inside, false);
13844
+ if (open.outside && outsideBefore !== "\n" && outsideBefore !== "\r") encode(tokens, false);
13845
+ if (close.outside) encodeAfter = outsideAfter;
13846
+ tokens.push({
13847
+ value: sequence,
13848
+ attention: item
13849
+ }, ...inside, {
13850
+ value: sequence,
13851
+ attention: item
13852
+ });
13853
+ previous = sequence.charAt(sequence.length - 1);
13854
+ }
13855
+ return tokens;
13856
+ }
13857
+ /**
13858
+ * Serialize phrasing with attention.
13859
+ *
13860
+ * Whether attention forms depends on everything around it.
13861
+ * This checks that it does and tries other sequences if not.
13862
+ *
13863
+ * @param {Array<Item>} items
13864
+ * Phrasing items.
13865
+ * @param {string} before
13866
+ * Characters before.
13867
+ * @param {string} after
13868
+ * Characters after.
13869
+ * @returns {string}
13870
+ * Serialized markdown.
13871
+ */
13872
+ function serialize(items, before, after) {
13873
+ /** @type {Map<AttentionResult, string>} */
13874
+ let chosen = /* @__PURE__ */ new Map();
13875
+ const initial = render(items, chosen, before, after);
13876
+ let tokens = initial;
13877
+ let mistake = check(tokens, before, after);
13878
+ while (mistake) {
13879
+ const next = improve(items, chosen, mistake, before, after);
13880
+ if (!next) {
13881
+ tokens = initial;
13882
+ break;
13883
+ }
13884
+ chosen = next.chosen;
13885
+ tokens = next.tokens;
13886
+ mistake = next.mistake;
13887
+ }
13888
+ let result = "";
13889
+ for (const token of tokens) result += token.value;
13890
+ return result;
13891
+ }
13892
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js
13208
13893
  /**
13209
13894
  * @import {AttentionInfo, Info, State} from 'mdast-util-to-markdown'
13210
13895
  * @import {Emphasis, Parents} from 'mdast'
@@ -13229,10 +13914,7 @@ window.__ModuleLoader__.load({
13229
13914
  */
13230
13915
  function emphasis(node, _, state, info) {
13231
13916
  const exit = state.enter("phrasing");
13232
- const value = state.containerPhrasing({
13233
- type: "root",
13234
- children: [node]
13235
- }, info);
13917
+ const value = serialize([attentionItem(node, attention$1, state, state.createTracker(info))], info.before, info.after);
13236
13918
  exit();
13237
13919
  return value;
13238
13920
  }
@@ -13268,8 +13950,7 @@ window.__ModuleLoader__.load({
13268
13950
  function peek$1(_, _1, state) {
13269
13951
  return state.options.emphasis || "*";
13270
13952
  }
13271
- //#endregion
13272
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/html.js
13953
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/handle/html.js
13273
13954
  /**
13274
13955
  * @import {Html} from 'mdast'
13275
13956
  */
@@ -13294,8 +13975,7 @@ window.__ModuleLoader__.load({
13294
13975
  function htmlPeek() {
13295
13976
  return "<";
13296
13977
  }
13297
- //#endregion
13298
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/image.js
13978
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/handle/image.js
13299
13979
  /**
13300
13980
  * @import {Info, State} from 'mdast-util-to-markdown'
13301
13981
  * @import {Image, Parents} from 'mdast'
@@ -13371,8 +14051,7 @@ window.__ModuleLoader__.load({
13371
14051
  function imagePeek() {
13372
14052
  return "!";
13373
14053
  }
13374
- //#endregion
13375
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js
14054
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js
13376
14055
  /**
13377
14056
  * @import {Info, State} from 'mdast-util-to-markdown'
13378
14057
  * @import {ImageReference, Parents} from 'mdast'
@@ -13432,8 +14111,7 @@ window.__ModuleLoader__.load({
13432
14111
  function imageReferencePeek() {
13433
14112
  return "!";
13434
14113
  }
13435
- //#endregion
13436
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js
14114
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js
13437
14115
  /**
13438
14116
  * @import {State} from 'mdast-util-to-markdown'
13439
14117
  * @import {InlineCode, Parents} from 'mdast'
@@ -13480,8 +14158,7 @@ window.__ModuleLoader__.load({
13480
14158
  function inlineCodePeek() {
13481
14159
  return "`";
13482
14160
  }
13483
- //#endregion
13484
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js
14161
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js
13485
14162
  /**
13486
14163
  * @import {State} from 'mdast-util-to-markdown'
13487
14164
  * @import {Link} from 'mdast'
@@ -13500,8 +14177,7 @@ window.__ModuleLoader__.load({
13500
14177
  const raw = toString(node);
13501
14178
  return Boolean(!state.options.resourceLink && node.url && !node.title && node.children && node.children.length === 1 && node.children[0].type === "text" && (raw === node.url || "mailto:" + raw === node.url) && /^[a-z][+\-.a-z]+:/i.test(node.url) && !/[\0- <>\u007F]/.test(node.url));
13502
14179
  }
13503
- //#endregion
13504
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/link.js
14180
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/handle/link.js
13505
14181
  /**
13506
14182
  * @import {Info, State} from 'mdast-util-to-markdown'
13507
14183
  * @import {Link, Parents} from 'mdast'
@@ -13546,14 +14222,23 @@ window.__ModuleLoader__.load({
13546
14222
  const exit = state.enter("link");
13547
14223
  let subexit = state.enter("label");
13548
14224
  let value = tracker.move("[");
13549
- value += tracker.move(state.containerPhrasing(node, {
14225
+ const text = state.containerPhrasing(node, {
13550
14226
  before: value,
13551
14227
  after: "](",
13552
14228
  ...tracker.current()
13553
- }));
13554
- value += tracker.move("](");
14229
+ });
14230
+ value += tracker.move(text);
13555
14231
  subexit();
13556
- if (!node.url && node.title || /[\0- \u007F]/.test(node.url)) {
14232
+ value += tracker.move("](");
14233
+ const enclose = /[\0- \u007F]/.test(node.url);
14234
+ const last = info.before.charAt(info.before.length - 1);
14235
+ let title = node.title || void 0;
14236
+ if (!title && !enclose && (last === "\n" || last === "\r")) {
14237
+ let index = 0;
14238
+ while (index < text.length && text.charCodeAt(index) !== 93) index += text.charCodeAt(index) === 92 ? 2 : 1;
14239
+ if (text.charCodeAt(index + 1) === 58) title = "";
14240
+ }
14241
+ if (!node.url && typeof title === "string" || enclose) {
13557
14242
  subexit = state.enter("destinationLiteral");
13558
14243
  value += tracker.move("<");
13559
14244
  value += tracker.move(state.safe(node.url, {
@@ -13566,15 +14251,15 @@ window.__ModuleLoader__.load({
13566
14251
  subexit = state.enter("destinationRaw");
13567
14252
  value += tracker.move(state.safe(node.url, {
13568
14253
  before: value,
13569
- after: node.title ? " " : ")",
14254
+ after: typeof title === "string" ? " " : ")",
13570
14255
  ...tracker.current()
13571
14256
  }));
13572
14257
  }
13573
14258
  subexit();
13574
- if (node.title) {
14259
+ if (typeof title === "string") {
13575
14260
  subexit = state.enter(`title${suffix}`);
13576
14261
  value += tracker.move(" " + quote);
13577
- value += tracker.move(state.safe(node.title, {
14262
+ value += tracker.move(state.safe(title, {
13578
14263
  before: value,
13579
14264
  after: quote,
13580
14265
  ...tracker.current()
@@ -13601,8 +14286,7 @@ window.__ModuleLoader__.load({
13601
14286
  function linkPeek(node, _, state) {
13602
14287
  return formatLinkAsAutolink(node, state) ? "<" : "[";
13603
14288
  }
13604
- //#endregion
13605
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js
14289
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js
13606
14290
  /**
13607
14291
  * @import {Info, State} from 'mdast-util-to-markdown'
13608
14292
  * @import {LinkReference, Parents} from 'mdast'
@@ -13662,8 +14346,7 @@ window.__ModuleLoader__.load({
13662
14346
  function linkReferencePeek() {
13663
14347
  return "[";
13664
14348
  }
13665
- //#endregion
13666
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/util/check-strong.js
14349
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/util/check-strong.js
13667
14350
  /**
13668
14351
  * @import {Options, State} from 'mdast-util-to-markdown'
13669
14352
  */
@@ -13680,8 +14363,7 @@ window.__ModuleLoader__.load({
13680
14363
  if (marker !== "*" && marker !== "_") throw new Error("Cannot serialize strong with `" + marker + "` for `options.strong`, expected `*`, or `_`");
13681
14364
  return marker;
13682
14365
  }
13683
- //#endregion
13684
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/strong.js
14366
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/handle/strong.js
13685
14367
  /**
13686
14368
  * @import {AttentionInfo, Info, State} from 'mdast-util-to-markdown'
13687
14369
  * @import {Parents, Strong} from 'mdast'
@@ -13706,10 +14388,7 @@ window.__ModuleLoader__.load({
13706
14388
  */
13707
14389
  function strong(node, _, state, info) {
13708
14390
  const exit = state.enter("phrasing");
13709
- const value = state.containerPhrasing({
13710
- type: "root",
13711
- children: [node]
13712
- }, info);
14391
+ const value = serialize([attentionItem(node, attention, state, state.createTracker(info))], info.before, info.after);
13713
14392
  exit();
13714
14393
  return value;
13715
14394
  }
@@ -13745,8 +14424,7 @@ window.__ModuleLoader__.load({
13745
14424
  function peek(_, _1, state) {
13746
14425
  return state.options.strong || "*";
13747
14426
  }
13748
- //#endregion
13749
- //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/unsafe.js
14427
+ // ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.1/node_modules/mdast-util-to-markdown/lib/unsafe.js
13750
14428
  /**
13751
14429
  * @import {ConstructName, Unsafe} from 'mdast-util-to-markdown'
13752
14430
  */
@@ -13860,7 +14538,17 @@ window.__ModuleLoader__.load({
13860
14538
  {
13861
14539
  character: "&",
13862
14540
  after: "[#A-Za-z]",
13863
- inConstruct: "phrasing"
14541
+ inConstruct: [
14542
+ "codeFencedLangGraveAccent",
14543
+ "codeFencedLangTilde",
14544
+ "codeFencedMetaGraveAccent",
14545
+ "codeFencedMetaTilde",
14546
+ "destinationLiteral",
14547
+ "destinationRaw",
14548
+ "phrasing",
14549
+ "titleApostrophe",
14550
+ "titleQuote"
14551
+ ]
13864
14552
  },
13865
14553
  {
13866
14554
  character: "'",
@@ -14005,8 +14693,7 @@ window.__ModuleLoader__.load({
14005
14693
  inConstruct: "autolink"
14006
14694
  });
14007
14695
  ({}).hasOwnProperty;
14008
- //#endregion
14009
- //#region ../../../node_modules/.pnpm/mdast-util-gfm-table@2.0.0_supports-color@9.4.0/node_modules/mdast-util-gfm-table/lib/index.js
14696
+ // ../../../node_modules/.pnpm/mdast-util-gfm-table@2.0.0_supports-color@9.4.0/node_modules/mdast-util-gfm-table/lib/index.js
14010
14697
  /**
14011
14698
  * @typedef {import('mdast').InlineCode} InlineCode
14012
14699
  * @typedef {import('mdast').Table} Table
@@ -14130,8 +14817,7 @@ window.__ModuleLoader__.load({
14130
14817
  function replace($0, $1) {
14131
14818
  return $1 === "|" ? $1 : $0;
14132
14819
  }
14133
- //#endregion
14134
- //#region ../../../node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0_supports-color@9.4.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js
14820
+ // ../../../node_modules/.pnpm/mdast-util-gfm-task-list-item@2.0.0_supports-color@9.4.0/node_modules/mdast-util-gfm-task-list-item/lib/index.js
14135
14821
  /**
14136
14822
  * @typedef {import('mdast').ListItem} ListItem
14137
14823
  * @typedef {import('mdast').Paragraph} Paragraph
@@ -14199,8 +14885,7 @@ window.__ModuleLoader__.load({
14199
14885
  }
14200
14886
  this.exit(token);
14201
14887
  }
14202
- //#endregion
14203
- //#region ../../../node_modules/.pnpm/mdast-util-gfm@3.1.0_supports-color@9.4.0/node_modules/mdast-util-gfm/lib/index.js
14888
+ // ../../../node_modules/.pnpm/mdast-util-gfm@3.1.0_supports-color@9.4.0/node_modules/mdast-util-gfm/lib/index.js
14204
14889
  /**
14205
14890
  * @import {Extension as FromMarkdownExtension} from 'mdast-util-from-markdown'
14206
14891
  * @import {Options} from 'mdast-util-gfm'
@@ -14223,8 +14908,7 @@ window.__ModuleLoader__.load({
14223
14908
  gfmTaskListItemFromMarkdown()
14224
14909
  ];
14225
14910
  }
14226
- //#endregion
14227
- //#region ../../../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js
14911
+ // ../../../node_modules/.pnpm/micromark-extension-gfm-autolink-literal@2.1.0_patch_hash=906ae7c0cd1f69e7ee308a41bc054_3cbe234c53027bed16ba7d28e78f0ec4/node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js
14228
14912
  /**
14229
14913
  * @import {Code, ConstructRecord, Event, Extension, Previous, State, TokenizeContext, Tokenizer} from 'micromark-util-types'
14230
14914
  */
@@ -14244,6 +14928,10 @@ window.__ModuleLoader__.load({
14244
14928
  tokenize: tokenizeTrail,
14245
14929
  partial: true
14246
14930
  };
14931
+ const astralPunctuation = {
14932
+ tokenize: tokenizeAstralPunctuation,
14933
+ partial: true
14934
+ };
14247
14935
  const emailDomainDotTrail = {
14248
14936
  tokenize: tokenizeEmailDomainDotTrail,
14249
14937
  partial: true
@@ -14711,7 +15399,8 @@ window.__ModuleLoader__.load({
14711
15399
  }
14712
15400
  if (code === 41 && sizeClose < sizeOpen) return pathAtPunctuation(code);
14713
15401
  if (code === 33 || code === 34 || code === 38 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 60 || code === 63 || code === 93 || code === 95 || code === 126) return effects.check(trail, ok, pathAtPunctuation)(code);
14714
- if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) return ok(code);
15402
+ if (highSurrogate(code)) return effects.check(astralPunctuation, ok, pathAtPunctuation)(code);
15403
+ if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || nonAsciiPunctuation(code)) return ok(code);
14715
15404
  effects.consume(code);
14716
15405
  return pathInside;
14717
15406
  }
@@ -14771,7 +15460,8 @@ window.__ModuleLoader__.load({
14771
15460
  effects.consume(code);
14772
15461
  return trailBracketAfter;
14773
15462
  }
14774
- if (code === 60 || code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) return ok(code);
15463
+ if (code === 60 || code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || nonAsciiPunctuation(code)) return ok(code);
15464
+ if (highSurrogate(code)) return effects.check(astralPunctuation, ok, nok)(code);
14775
15465
  return nok(code);
14776
15466
  }
14777
15467
  /**
@@ -14897,6 +15587,47 @@ window.__ModuleLoader__.load({
14897
15587
  return !(code === 47 || gfmAtext(code));
14898
15588
  }
14899
15589
  /**
15590
+ * Non-ASCII punctuation or symbol, such as `。` or `,`, which ends a literal
15591
+ * in CJK prose.
15592
+ *
15593
+ * @param {Code} code
15594
+ * @returns {boolean}
15595
+ */
15596
+ function nonAsciiPunctuation(code) {
15597
+ return code !== null && code > 127 && unicodePunctuation(code);
15598
+ }
15599
+ /**
15600
+ * Whether `code` is a UTF-16 high surrogate, which starts a character outside
15601
+ * the BMP such as `😀`.
15602
+ *
15603
+ * @param {Code} code
15604
+ * @returns {boolean}
15605
+ */
15606
+ function highSurrogate(code) {
15607
+ return code !== null && code >= 55296 && code <= 56319;
15608
+ }
15609
+ /**
15610
+ * Check whether a surrogate pair is punctuation or a symbol.
15611
+ *
15612
+ * @this {TokenizeContext}
15613
+ * @type {Tokenizer}
15614
+ */
15615
+ function tokenizeAstralPunctuation(effects, ok, nok) {
15616
+ /** @type {number} */
15617
+ let high;
15618
+ return start;
15619
+ /** @type {State} */
15620
+ function start(code) {
15621
+ high = code;
15622
+ effects.consume(code);
15623
+ return low;
15624
+ }
15625
+ /** @type {State} */
15626
+ function low(code) {
15627
+ return code !== null && code >= 56320 && code <= 57343 && /[\p{P}\p{S}]/u.test(String.fromCharCode(high, code)) ? ok(code) : nok(code);
15628
+ }
15629
+ }
15630
+ /**
14900
15631
  * @param {Code} code
14901
15632
  * @returns {boolean}
14902
15633
  */
@@ -14924,8 +15655,7 @@ window.__ModuleLoader__.load({
14924
15655
  if (events.length > 0 && !result) events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;
14925
15656
  return result;
14926
15657
  }
14927
- //#endregion
14928
- //#region ../../../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/syntax.js
15658
+ // ../../../node_modules/.pnpm/micromark-extension-gfm-footnote@2.1.0/node_modules/micromark-extension-gfm-footnote/lib/syntax.js
14929
15659
  /**
14930
15660
  * @import {Event, Exiter, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
14931
15661
  */
@@ -15344,8 +16074,7 @@ window.__ModuleLoader__.load({
15344
16074
  }
15345
16075
  }
15346
16076
  ({}).hasOwnProperty;
15347
- //#endregion
15348
- //#region ../../../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js
16077
+ // ../../../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js
15349
16078
  /**
15350
16079
  * @import {Options} from 'micromark-extension-gfm-strikethrough'
15351
16080
  * @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
@@ -15485,8 +16214,7 @@ window.__ModuleLoader__.load({
15485
16214
  }
15486
16215
  }
15487
16216
  }
15488
- //#endregion
15489
- //#region ../../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.2/node_modules/micromark-extension-gfm-table/lib/edit-map.js
16217
+ // ../../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.2/node_modules/micromark-extension-gfm-table/lib/edit-map.js
15490
16218
  /**
15491
16219
  * @import {Event} from 'micromark-util-types'
15492
16220
  */
@@ -15596,8 +16324,7 @@ window.__ModuleLoader__.load({
15596
16324
  editMap.map.push(change);
15597
16325
  editMap.index.set(at, change);
15598
16326
  }
15599
- //#endregion
15600
- //#region ../../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.2/node_modules/micromark-extension-gfm-table/lib/infer.js
16327
+ // ../../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.2/node_modules/micromark-extension-gfm-table/lib/infer.js
15601
16328
  /**
15602
16329
  * @import {Event} from 'micromark-util-types'
15603
16330
  */
@@ -15634,8 +16361,7 @@ window.__ModuleLoader__.load({
15634
16361
  }
15635
16362
  return align;
15636
16363
  }
15637
- //#endregion
15638
- //#region ../../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.2/node_modules/micromark-extension-gfm-table/lib/syntax.js
16364
+ // ../../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.2/node_modules/micromark-extension-gfm-table/lib/syntax.js
15639
16365
  /**
15640
16366
  * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
15641
16367
  */
@@ -16352,8 +17078,7 @@ window.__ModuleLoader__.load({
16352
17078
  return event[1][side];
16353
17079
  }
16354
17080
  new RegExp("^" + /<(\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\t\n\f\r />])/gi.source, "i");
16355
- //#endregion
16356
- //#region ../../../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js
17081
+ // ../../../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js
16357
17082
  /**
16358
17083
  * @import {Extension, State, TokenizeContext, Tokenizer} from 'micromark-util-types'
16359
17084
  */
@@ -16471,8 +17196,7 @@ window.__ModuleLoader__.load({
16471
17196
  return code === null ? nok(code) : ok(code);
16472
17197
  }
16473
17198
  }
16474
- //#endregion
16475
- //#region ../../../node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js
17199
+ // ../../../node_modules/.pnpm/micromark-extension-gfm@3.0.0/node_modules/micromark-extension-gfm/index.js
16476
17200
  /**
16477
17201
  * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions
16478
17202
  * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options
@@ -16499,8 +17223,7 @@ window.__ModuleLoader__.load({
16499
17223
  gfmTaskListItem()
16500
17224
  ]);
16501
17225
  }
16502
- //#endregion
16503
- //#region ../../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
17226
+ // ../../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
16504
17227
  /**
16505
17228
  * Character codes.
16506
17229
  *
@@ -16657,8 +17380,7 @@ window.__ModuleLoader__.load({
16657
17380
  byteOrderMarker: 65279,
16658
17381
  replacementCharacter: 65533
16659
17382
  };
16660
- //#endregion
16661
- //#region ../../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/types.js
17383
+ // ../../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/types.js
16662
17384
  /**
16663
17385
  * This module is compiled away!
16664
17386
  *
@@ -16774,8 +17496,7 @@ window.__ModuleLoader__.load({
16774
17496
  chunkText: "chunkText",
16775
17497
  chunkString: "chunkString"
16776
17498
  };
16777
- //#endregion
16778
- //#region ../../client/dsh-client-ui-primitives/src/reference.ts
17499
+ // ../../client/dsh-client-ui-primitives/src/reference.ts
16779
17500
  const DEFAULT_PROTOCOL = "file";
16780
17501
  const EXTERNAL_PROTOCOLS = [
16781
17502
  "http",
@@ -17215,8 +17936,7 @@ window.__ModuleLoader__.load({
17215
17936
  return;
17216
17937
  }
17217
17938
  }
17218
- //#endregion
17219
- //#region ../../client/dsh-client-ui-primitives/src/reference-markdown.tsx
17939
+ // ../../client/dsh-client-ui-primitives/src/reference-markdown.tsx
17220
17940
  function referenceMentions(actions, tokens) {
17221
17941
  return { resolve: (value) => {
17222
17942
  const reference = tokens?.get(value) ?? parseReferenceToken(value);
@@ -17274,8 +17994,7 @@ window.__ModuleLoader__.load({
17274
17994
  }
17275
17995
  if (reference.protocol === "file") actions.openFile(path);
17276
17996
  }
17277
- //#endregion
17278
- //#region ../../client/dsh-client-ui-primitives/src/client/index.ts
17997
+ // ../../client/dsh-client-ui-primitives/src/client/index.ts
17279
17998
  var client_exports = /* @__PURE__ */ __exportAll({
17280
17999
  Bubble: () => Bubble,
17281
18000
  Button: () => Button$1,
@@ -17320,9 +18039,8 @@ window.__ModuleLoader__.load({
17320
18039
  function apply$1(ctx) {
17321
18040
  apply$2(ctx);
17322
18041
  }
17323
- //#endregion
17324
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/session/ui-conversation-manager/src/client/ConversationManagerPage.module.css.mjs
17325
- const css = ".AmU5Dq_page{width:100%;min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-base);font-size:14px;line-height:1.6;display:flex;overflow:hidden}.AmU5Dq_listPane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.AmU5Dq_pageScroll{scrollbar-gutter:stable;flex:1;min-height:0;overflow:auto}.AmU5Dq_pageContent{max-width:960px;margin:0 auto;padding:0 clamp(24px,4vw,48px) 48px}.AmU5Dq_pageHeading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-top:28px;display:flex}[data-platform=darwin] .AmU5Dq_pageHeading{padding-top:calc(28px + var(--dsh-frame-top-clearance,0px))}.AmU5Dq_pageHeading h1{flex:1;min-width:0;margin:0;font-size:20px;font-weight:500;line-height:28px}.AmU5Dq_headingActions{flex:none;align-items:center;gap:8px;display:flex}.AmU5Dq_filters{flex-wrap:wrap;align-items:center;gap:8px 20px;margin-bottom:14px;display:flex}.AmU5Dq_filterTabs{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.AmU5Dq_filterTab{height:28px;color:var(--dsw-alias-label-tertiary);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:14px;flex:none;align-items:center;padding:0 10px;font-size:14px;line-height:22px;display:inline-flex}.AmU5Dq_filterTab:hover{background:var(--dsw-alias-interactive-bg-hover)}.AmU5Dq_filterTabActive{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.AmU5Dq_searchField{border:.5px solid var(--dsw-alias-border-l3);height:36px;color:var(--dsw-alias-label-tertiary);border-radius:12px;align-items:center;margin:0 0 16px;padding:0 10px;transition:border-color .15s;display:flex}.AmU5Dq_searchField:hover{border-color:var(--dsw-alias-border-l2)}.AmU5Dq_searchField:focus-within{border-color:var(--dsw-alias-state-business-primary)}.AmU5Dq_searchField>:first-child{background:0 0;border:0;border-radius:0;flex:1;min-width:0;height:100%;padding:0}.AmU5Dq_searchField>:first-child:focus-within{border-color:#0000}.AmU5Dq_searchField>:first-child svg{width:14px;height:14px}.AmU5Dq_searchField input::placeholder{color:var(--dsw-alias-label-caption)}.AmU5Dq_searchField input:focus-visible{outline:none}.AmU5Dq_searchField input::-webkit-search-cancel-button{display:none}.AmU5Dq_searchClear{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);flex:none;margin-right:-6px;padding:0}.AmU5Dq_searchClear svg{width:14px;height:14px}.AmU5Dq_list{flex-direction:column;gap:4px;min-width:0;display:flex}.AmU5Dq_status{text-align:center;flex:1;place-items:center;min-width:0;min-height:0;padding:24px;display:grid}.AmU5Dq_statusBody{flex-direction:column;align-items:center;gap:12px;display:flex}.AmU5Dq_statusText{color:var(--dsw-alias-label-tertiary);margin:0;font-size:14px;line-height:22px}.AmU5Dq_statusFailure{color:var(--dsw-alias-state-error-primary)}.AmU5Dq_listStatus{text-align:center;place-items:center;padding:32px 0;display:grid}";
18042
+ // \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin-main/packages/session/ui-conversation-manager/src/client/ConversationManagerPage.module.css.mjs
18043
+ const css = ".hENcOW_page{width:100%;min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-base);font-size:14px;line-height:1.6;display:flex;overflow:hidden}.hENcOW_listPane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.hENcOW_pageScroll{scrollbar-gutter:stable;flex:1;min-height:0;overflow:auto}.hENcOW_pageContent{max-width:960px;margin:0 auto;padding:0 clamp(24px,4vw,48px) 48px}.hENcOW_pageHeading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding-top:28px;display:flex}[data-platform=darwin] .hENcOW_pageHeading{padding-top:calc(28px + var(--dsh-frame-top-clearance,0px))}.hENcOW_pageHeading h1{flex:1;min-width:0;margin:0;font-size:20px;font-weight:500;line-height:28px}.hENcOW_headingActions{flex:none;align-items:center;gap:8px;display:flex}.hENcOW_filters{flex-wrap:wrap;align-items:center;gap:8px 20px;margin-bottom:14px;display:flex}.hENcOW_filterTabs{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.hENcOW_filterTab{height:28px;color:var(--dsw-alias-label-tertiary);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:14px;flex:none;align-items:center;padding:0 10px;font-size:14px;line-height:22px;display:inline-flex}.hENcOW_filterTab:hover{background:var(--dsw-alias-interactive-bg-hover)}.hENcOW_filterTabActive{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.hENcOW_searchField{border:.5px solid var(--dsw-alias-border-l3);height:36px;color:var(--dsw-alias-label-tertiary);border-radius:12px;align-items:center;margin:0 0 16px;padding:0 10px;transition:border-color .15s;display:flex}.hENcOW_searchField:hover{border-color:var(--dsw-alias-border-l2)}.hENcOW_searchField:focus-within{border-color:var(--dsw-alias-state-business-primary)}.hENcOW_searchField>:first-child{background:0 0;border:0;border-radius:0;flex:1;min-width:0;height:100%;padding:0}.hENcOW_searchField>:first-child:focus-within{border-color:#0000}.hENcOW_searchField>:first-child svg{width:14px;height:14px}.hENcOW_searchField input::placeholder{color:var(--dsw-alias-label-caption)}.hENcOW_searchField input:focus-visible{outline:none}.hENcOW_searchField input::-webkit-search-cancel-button{display:none}.hENcOW_searchClear{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);flex:none;margin-right:-6px;padding:0}.hENcOW_searchClear svg{width:14px;height:14px}.hENcOW_list{flex-direction:column;gap:4px;min-width:0;display:flex}.hENcOW_status{text-align:center;flex:1;place-items:center;min-width:0;min-height:0;padding:24px;display:grid}.hENcOW_statusBody{flex-direction:column;align-items:center;gap:12px;display:flex}.hENcOW_statusText{color:var(--dsw-alias-label-tertiary);margin:0;font-size:14px;line-height:22px}.hENcOW_statusFailure{color:var(--dsw-alias-state-error-primary)}.hENcOW_listStatus{text-align:center;place-items:center;padding:32px 0;display:grid}";
17326
18044
  const tagId = "@morlay/ui-conversation-manager/ConversationManagerPage.module.css";
17327
18045
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/ui-conversation-manager/ConversationManagerPage.module.css\"]") === null) {
17328
18046
  const tag = document.createElement("style");
@@ -17332,27 +18050,26 @@ window.__ModuleLoader__.load({
17332
18050
  document.head.appendChild(tag);
17333
18051
  }
17334
18052
  var ConversationManagerPage_module_css_default = {
17335
- "pageScroll": "AmU5Dq_pageScroll",
17336
- "filterTabs": "AmU5Dq_filterTabs",
17337
- "statusBody": "AmU5Dq_statusBody",
17338
- "statusText": "AmU5Dq_statusText",
17339
- "filterTab": "AmU5Dq_filterTab",
17340
- "filterTabActive": "AmU5Dq_filterTabActive",
17341
- "listPane": "AmU5Dq_listPane",
17342
- "headingActions": "AmU5Dq_headingActions",
17343
- "searchClear": "AmU5Dq_searchClear",
17344
- "status": "AmU5Dq_status",
17345
- "searchField": "AmU5Dq_searchField",
17346
- "pageContent": "AmU5Dq_pageContent",
17347
- "listStatus": "AmU5Dq_listStatus",
17348
- "pageHeading": "AmU5Dq_pageHeading",
17349
- "filters": "AmU5Dq_filters",
17350
- "statusFailure": "AmU5Dq_statusFailure",
17351
- "page": "AmU5Dq_page",
17352
- "list": "AmU5Dq_list"
18053
+ "statusText": "hENcOW_statusText",
18054
+ "list": "hENcOW_list",
18055
+ "listStatus": "hENcOW_listStatus",
18056
+ "listPane": "hENcOW_listPane",
18057
+ "statusBody": "hENcOW_statusBody",
18058
+ "searchField": "hENcOW_searchField",
18059
+ "headingActions": "hENcOW_headingActions",
18060
+ "pageHeading": "hENcOW_pageHeading",
18061
+ "filterTab": "hENcOW_filterTab",
18062
+ "filterTabActive": "hENcOW_filterTabActive",
18063
+ "pageContent": "hENcOW_pageContent",
18064
+ "statusFailure": "hENcOW_statusFailure",
18065
+ "filterTabs": "hENcOW_filterTabs",
18066
+ "page": "hENcOW_page",
18067
+ "status": "hENcOW_status",
18068
+ "pageScroll": "hENcOW_pageScroll",
18069
+ "searchClear": "hENcOW_searchClear",
18070
+ "filters": "hENcOW_filters"
17353
18071
  };
17354
- //#endregion
17355
- //#region src/client/format.ts
18072
+ // src/client/format.ts
17356
18073
  function trim(value) {
17357
18074
  return value >= 100 ? String(Math.round(value)) : value.toFixed(1).replace(/\.0$/u, "");
17358
18075
  }
@@ -17371,8 +18088,7 @@ window.__ModuleLoader__.load({
17371
18088
  if (!Number.isFinite(value) || value <= 0) return "0%";
17372
18089
  return `${value >= 100 ? Math.round(value) : Math.round(value * 10) / 10}%`;
17373
18090
  }
17374
- //#endregion
17375
- //#region src/client/ConversationManagerPage.tsx
18091
+ // src/client/ConversationManagerPage.tsx
17376
18092
  const PAGE_SIZE = 20;
17377
18093
  const USAGE_SESSION_ROWS = 20;
17378
18094
  function timeLabel(updatedAt, now, t) {
@@ -18195,13 +18911,11 @@ window.__ModuleLoader__.load({
18195
18911
  ]
18196
18912
  });
18197
18913
  }
18198
- //#endregion
18199
- //#region src/client/ConversationManagerIcon.tsx
18914
+ // src/client/ConversationManagerIcon.tsx
18200
18915
  function ConversationManagerIcon({ size }) {
18201
18916
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconArchiveOutlineRegular, { size });
18202
18917
  }
18203
- //#endregion
18204
- //#region src/client/locales.ts
18918
+ // src/client/locales.ts
18205
18919
  const zh = {
18206
18920
  panel: "对话管理",
18207
18921
  title: "对话管理",
@@ -18360,8 +19074,7 @@ window.__ModuleLoader__.load({
18360
19074
  "time.months": "{n}mo",
18361
19075
  "time.years": "{n}y"
18362
19076
  };
18363
- //#endregion
18364
- //#region src/client/index.ts
19077
+ // src/client/index.ts
18365
19078
  const NS = "conversationManager";
18366
19079
  const PANEL_ID = "conversations";
18367
19080
  const PANEL_ORDER = 1;
@@ -18400,7 +19113,6 @@ window.__ModuleLoader__.load({
18400
19113
  locale: NS
18401
19114
  }, ConversationManagerIcon));
18402
19115
  }
18403
- //#endregion
18404
19116
  exports.ConversationManagerController = ConversationManagerController;
18405
19117
  exports.ConversationManagerRequestError = ConversationManagerRequestError;
18406
19118
  exports.NS = NS;