@morlay/ui-conversation-manager 0.1.10 → 0.1.11-alpha.2

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