@morlay/dsh-session-mode 0.0.8 → 0.0.10

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
@@ -35,6 +35,25 @@ window.__ModuleLoader__.load({
35
35
  let react = require("react");
36
36
  let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
37
37
  let react_jsx_runtime = require("react/jsx-runtime");
38
+ //#region src/catalog-remote.ts
39
+ const CATALOG_NS = "sessionModeCatalog";
40
+ const SESSION_MODE_CATALOG_REMOTE = {
41
+ package: "@morlay/dsh-session-mode",
42
+ descriptors: [{
43
+ id: "@morlay/dsh-session-mode#sessionModeCatalog/list",
44
+ service: CATALOG_NS,
45
+ namespace: CATALOG_NS,
46
+ method: "list",
47
+ implementation: "remoteExportList",
48
+ invocation: { kind: "direct" },
49
+ parameters: [],
50
+ result: { mode: "src-json" }
51
+ }]
52
+ };
53
+ //#endregion
54
+ //#region src/shared.ts
55
+ const SESSION_MODE_PATH = "/session-mode";
56
+ const POLICY_NAMES = ["fs/write-intent", "fs/edit-intent"];
38
57
  function emptyMeta() {
39
58
  return {
40
59
  description: void 0,
@@ -529,7 +548,7 @@ window.__ModuleLoader__.load({
529
548
  return node.variants[0];
530
549
  }
531
550
  //#endregion
532
- //#region ../../client/ui-primitives/src/client/schema-form/draft.ts
551
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/draft.ts
533
552
  function failureOf(error) {
534
553
  const raw = error instanceof Error ? error.message : String(error);
535
554
  const path = (error.options?.path ?? []).filter((segment) => typeof segment === "string" || typeof segment === "number").map(String);
@@ -817,7 +836,7 @@ window.__ModuleLoader__.load({
817
836
  return next;
818
837
  }
819
838
  //#endregion
820
- //#region ../../client/ui-primitives/src/client/schema-form/controller.ts
839
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/controller.ts
821
840
  function declaredSource(node) {
822
841
  const extra = node?.meta.extra;
823
842
  if (typeof extra !== "object" || extra === null) return void 0;
@@ -1021,7 +1040,7 @@ window.__ModuleLoader__.load({
1021
1040
  }
1022
1041
  };
1023
1042
  //#endregion
1024
- //#region ../../client/ui-primitives/src/client/schema-form/hints.ts
1043
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/hints.ts
1025
1044
  var SchemaFormHints = class extends _deepseek_ai_cordis.Service {
1026
1045
  #readers = /* @__PURE__ */ new Map();
1027
1046
  #texts = /* @__PURE__ */ new Map();
@@ -1111,7 +1130,7 @@ window.__ModuleLoader__.load({
1111
1130
  for (let bits = (1 << wildcardable) - 1; bits > 0; bits--) yield path.map((segment, index) => index > 0 && (bits & 1 << index - 1) !== 0 ? "*" : segment);
1112
1131
  }
1113
1132
  //#endregion
1114
- //#region ../../client/ui-primitives/src/client/schema-form/locales.ts
1133
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/locales.ts
1115
1134
  const zh$1 = {
1116
1135
  unavailable: "该插件当前未加载,暂时无法配置。",
1117
1136
  readOnly: "本部署的设置为只读。",
@@ -1221,7 +1240,7 @@ window.__ModuleLoader__.load({
1221
1240
  missingItem: "Every item needs a {key}"
1222
1241
  };
1223
1242
  //#endregion
1224
- //#region ../../client/ui-primitives/src/client/schema-form/rows.ts
1243
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/rows.ts
1225
1244
  function rowRegistrations(namespaces, bundles) {
1226
1245
  const owners = /* @__PURE__ */ new Map();
1227
1246
  for (const bundle of bundles) for (const row of bundle.rows) owners.set(row.rowId, bundle.name);
@@ -1294,7 +1313,7 @@ window.__ModuleLoader__.load({
1294
1313
  }
1295
1314
  };
1296
1315
  //#endregion
1297
- //#region ../../client/ui-primitives/src/client/schema-form/labels.ts
1316
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/labels.ts
1298
1317
  function fieldHint(node, resolveText) {
1299
1318
  const parts = [];
1300
1319
  if (node.meta.description !== void 0) parts.push(resolveText(node.meta.description));
@@ -1302,7 +1321,7 @@ window.__ModuleLoader__.load({
1302
1321
  return parts.length === 0 ? void 0 : parts.join(" ");
1303
1322
  }
1304
1323
  //#endregion
1305
- //#region ../../client/ui-primitives/src/client/schema-form/lines.ts
1324
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/lines.ts
1306
1325
  function containerShape(node, value) {
1307
1326
  switch (variantOf(node, value).type) {
1308
1327
  case "object":
@@ -1472,39 +1491,39 @@ window.__ModuleLoader__.load({
1472
1491
  return prefix.every((segment, index) => path[index] === segment);
1473
1492
  }
1474
1493
  //#endregion
1475
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/schema-form/schema-form.module.css.mjs
1476
- const css$16 = ".B1Faoa_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}.B1Faoa_lineRow{white-space:nowrap;align-items:flex-start;gap:6px;min-height:22px;padding-right:8px;display:flex}.B1Faoa_lineRow:hover{background:var(--dsw-alias-bg-layer-2)}.B1Faoa_lineRow[data-selected=true]{background:var(--dsw-alias-bg-layer-3)}.B1Faoa_lineRow[data-dirty=true]{box-shadow:inset 2px 0 0 var(--dsw-alias-brand-primary)}.B1Faoa_lineRow[data-overridden=true]{box-shadow:inset 2px 0 0 var(--dsw-elevation-stroke-color)}.B1Faoa_lineRow[data-dirty=true] [data-role=key],.B1Faoa_lineRow[data-overridden=true] [data-role=key]{color:var(--dsw-alias-brand-primary)}.B1Faoa_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)}.B1Faoa_lineRow[data-invalid=true] [data-role=key]{color:var(--dsw-alias-state-error-primary)}.B1Faoa_lineRow:hover [data-role=actions]{opacity:1}.B1Faoa_lineBody{flex:1;align-items:center;gap:6px;min-width:0;min-height:22px;display:flex}.B1Faoa_lineNumber{text-align:right;width:32px;color:var(--dsw-alias-label-caption);user-select:none;cursor:pointer;flex:none;line-height:22px}.B1Faoa_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}.B1Faoa_lineFold:hover{color:var(--dsw-alias-label-secondary)}.B1Faoa_lineFoldSpacer{flex:none;width:14px}.B1Faoa_lineKey{color:var(--dsw-alias-label-primary);flex:none}.B1Faoa_lineKey[data-index=true]{color:var(--dsw-alias-label-caption)}.B1Faoa_lineToken{color:var(--dsw-alias-label-caption);flex:none}.B1Faoa_lineValue{text-overflow:ellipsis;cursor:text;min-width:0;color:var(--dsw-alias-state-business-primary);display:block;overflow:hidden}.B1Faoa_lineValue[data-tone=number]{color:var(--dsw-alias-state-warn-primary)}.B1Faoa_lineValue[data-tone=boolean]{color:var(--dsw-alias-state-success-primary)}.B1Faoa_lineValue[data-tone=empty]{color:var(--dsw-alias-label-caption)}.B1Faoa_valueSlot{flex:0 auto;min-width:0;display:block;overflow:hidden}.B1Faoa_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}.B1Faoa_valueTrigger:disabled{cursor:default}.B1Faoa_valueTrigger:focus-visible{outline:none}.B1Faoa_compactInput{flex:auto;min-width:0;display:inline-flex}.B1Faoa_compactInput>span{border-radius:4px;width:100%;height:22px;padding:0 6px}.B1Faoa_compactInput input{font-size:14px;line-height:22px}.B1Faoa_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}.B1Faoa_compactTextField:focus-within{--dsw-elevation-stroke-color:var(--dsw-alias-brand-primary)}.B1Faoa_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}.B1Faoa_lineComment{text-overflow:ellipsis;min-width:0;color:var(--dsw-alias-label-tertiary);flex:auto;font-family:inherit;font-size:12px;overflow:hidden}.B1Faoa_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}.B1Faoa_lineActions{opacity:0;flex:none;align-items:center;gap:4px;display:inline-flex}.B1Faoa_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}.B1Faoa_lineActions>button:hover{background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-primary)}.B1Faoa_lineActions>button:disabled{cursor:not-allowed;color:var(--dsw-alias-label-dimmed)}.B1Faoa_hoverActions[data-editing=true]{opacity:1;gap:6px}.B1Faoa_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)}.B1Faoa_hoverActions[data-editing=true]>button:first-of-type{color:var(--dsw-alias-state-success-primary)}.B1Faoa_addWrap{flex:auto;align-items:center;gap:6px;min-width:0;margin-left:6px;display:inline-flex;position:relative}.B1Faoa_addWrap[data-invalid=true] input{border-color:var(--dsw-alias-state-error-primary)}.B1Faoa_hint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}";
1477
- const tagId$16 = "@morlay/dsh-session-mode/schema-form.module.css";
1494
+ //#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
1495
+ const css$14 = ".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}";
1496
+ const tagId$14 = "@morlay/dsh-session-mode/schema-form.module.css";
1478
1497
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/schema-form.module.css\"]") === null) {
1479
1498
  const tag = document.createElement("style");
1480
1499
  tag.dataset.plugin = "@morlay/dsh-session-mode";
1481
- tag.dataset.pluginCss = tagId$16;
1482
- tag.textContent = css$16;
1500
+ tag.dataset.pluginCss = tagId$14;
1501
+ tag.textContent = css$14;
1483
1502
  document.head.appendChild(tag);
1484
1503
  }
1485
1504
  var schema_form_module_css_default = {
1486
- "addWrap": "B1Faoa_addWrap",
1487
- "valueTrigger": "B1Faoa_valueTrigger",
1488
- "hint": "B1Faoa_hint",
1489
- "valueSlot": "B1Faoa_valueSlot",
1490
- "compactInput": "B1Faoa_compactInput",
1491
- "compactTextField": "B1Faoa_compactTextField",
1492
- "editorRoot": "B1Faoa_editorRoot",
1493
- "lineFold": "B1Faoa_lineFold",
1494
- "lineToken": "B1Faoa_lineToken",
1495
- "lineValue": "B1Faoa_lineValue",
1496
- "lineNumber": "B1Faoa_lineNumber",
1497
- "lineKey": "B1Faoa_lineKey",
1498
- "lineInvalid": "B1Faoa_lineInvalid",
1499
- "lineRow": "B1Faoa_lineRow",
1500
- "lineFoldSpacer": "B1Faoa_lineFoldSpacer",
1501
- "lineComment": "B1Faoa_lineComment",
1502
- "lineBody": "B1Faoa_lineBody",
1503
- "lineActions": "B1Faoa_lineActions",
1504
- "hoverActions": "B1Faoa_hoverActions"
1505
+ "lineFoldSpacer": "N3kx7G_lineFoldSpacer",
1506
+ "lineBody": "N3kx7G_lineBody",
1507
+ "lineKey": "N3kx7G_lineKey",
1508
+ "valueTrigger": "N3kx7G_valueTrigger",
1509
+ "addWrap": "N3kx7G_addWrap",
1510
+ "lineNumber": "N3kx7G_lineNumber",
1511
+ "hint": "N3kx7G_hint",
1512
+ "lineInvalid": "N3kx7G_lineInvalid",
1513
+ "lineValue": "N3kx7G_lineValue",
1514
+ "lineActions": "N3kx7G_lineActions",
1515
+ "compactInput": "N3kx7G_compactInput",
1516
+ "hoverActions": "N3kx7G_hoverActions",
1517
+ "lineComment": "N3kx7G_lineComment",
1518
+ "editorRoot": "N3kx7G_editorRoot",
1519
+ "lineFold": "N3kx7G_lineFold",
1520
+ "lineToken": "N3kx7G_lineToken",
1521
+ "lineRow": "N3kx7G_lineRow",
1522
+ "valueSlot": "N3kx7G_valueSlot",
1523
+ "compactTextField": "N3kx7G_compactTextField"
1505
1524
  };
1506
1525
  //#endregion
1507
- //#region ../../client/ui-primitives/src/client/schema-form/TruncatedTooltip.tsx
1526
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/TruncatedTooltip.tsx
1508
1527
  function TruncatedTooltip({ label, children }) {
1509
1528
  const node = (0, react.useRef)(null);
1510
1529
  const watch = (0, react.useRef)(null);
@@ -1533,7 +1552,7 @@ window.__ModuleLoader__.load({
1533
1552
  });
1534
1553
  }
1535
1554
  //#endregion
1536
- //#region ../../client/ui-primitives/src/client/schema-form/value.tsx
1555
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/value.tsx
1537
1556
  function valueText(value) {
1538
1557
  if (value === void 0 || value === null) return "";
1539
1558
  if (typeof value === "string") return value;
@@ -1625,7 +1644,7 @@ window.__ModuleLoader__.load({
1625
1644
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InlineValue, { owner });
1626
1645
  }
1627
1646
  //#endregion
1628
- //#region ../../client/ui-primitives/src/client/schema-form/fields.tsx
1647
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/fields.tsx
1629
1648
  function parseFor(node, t) {
1630
1649
  switch (node.type) {
1631
1650
  case "number": return (text) => {
@@ -1738,12 +1757,12 @@ window.__ModuleLoader__.load({
1738
1757
  }
1739
1758
  }
1740
1759
  //#endregion
1741
- //#region ../../client/ui-primitives/src/client/controls/classes.ts
1760
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/classes.ts
1742
1761
  function classes(...names) {
1743
1762
  return names.filter((name) => typeof name === "string" && name !== "").join(" ");
1744
1763
  }
1745
1764
  //#endregion
1746
- //#region ../../client/ui-primitives/src/client/schema-form/Editor.tsx
1765
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/Editor.tsx
1747
1766
  function Editor(props) {
1748
1767
  const { ns, state, face, t, resolveText, renderField } = props;
1749
1768
  const [toggled, setToggled] = (0, react.useState)(() => /* @__PURE__ */ new Set());
@@ -2283,7 +2302,7 @@ window.__ModuleLoader__.load({
2283
2302
  });
2284
2303
  }
2285
2304
  //#endregion
2286
- //#region ../../client/ui-primitives/src/client/schema-form/SchemaForm.tsx
2305
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/SchemaForm.tsx
2287
2306
  function SchemaForm(props) {
2288
2307
  const { ns, face, t, resolveText, renderSlotChain } = props;
2289
2308
  const store = face.hooks.schemaForm;
@@ -2333,29 +2352,33 @@ window.__ModuleLoader__.load({
2333
2352
  };
2334
2353
  }
2335
2354
  //#endregion
2336
- //#region ../../client/ui-primitives/src/client/schema-form/index.ts
2355
+ //#region ../../client/dsh-client-ui-primitives/src/client/schema-form/index.ts
2337
2356
  var schema_form_exports = /* @__PURE__ */ __exportAll({
2338
2357
  InlineValue: () => InlineValue,
2339
2358
  NS: () => NS$1,
2340
2359
  SchemaFieldDefault: () => SchemaFieldDefault,
2341
2360
  SchemaFormController: () => SchemaFormController,
2342
2361
  SchemaFormHints: () => SchemaFormHints,
2362
+ addableAt: () => addableAt,
2343
2363
  apply: () => apply$2,
2344
2364
  canRender: () => canRender,
2345
2365
  containerShape: () => containerShape,
2346
2366
  editorLines: () => editorLines,
2347
2367
  failureOf: () => failureOf,
2368
+ fieldKey: () => fieldKey$1,
2348
2369
  inject: () => inject$2,
2349
2370
  optionsFor: () => optionsFor,
2350
2371
  parseFor: () => parseFor,
2351
2372
  projectNode: () => projectNode,
2352
2373
  projectRoot: () => projectRoot,
2374
+ readPath: () => readPath,
2353
2375
  rowRegistrations: () => rowRegistrations,
2354
2376
  tokenText: () => tokenText,
2355
2377
  tokenTone: () => tokenTone,
2356
2378
  valueText: () => valueText,
2357
2379
  visibleFields: () => visibleFields,
2358
- walkFields: () => walkFields
2380
+ walkFields: () => walkFields,
2381
+ zh: () => zh$1
2359
2382
  });
2360
2383
  const NS$1 = "settings.schema-form";
2361
2384
  const inject$2 = [
@@ -2468,7 +2491,7 @@ window.__ModuleLoader__.load({
2468
2491
  }, "ui-schema-form: row registrations");
2469
2492
  }
2470
2493
  //#endregion
2471
- //#region ../../client/ui-primitives/src/client/markdown-labels.ts
2494
+ //#region ../../client/dsh-client-ui-primitives/src/client/markdown-labels.ts
2472
2495
  function markdownLabels(t) {
2473
2496
  return {
2474
2497
  code: {
@@ -2479,69 +2502,69 @@ window.__ModuleLoader__.load({
2479
2502
  };
2480
2503
  }
2481
2504
  //#endregion
2482
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/layout/layout.module.css.mjs
2483
- const css$15 = ".e_G4ZW_stack{flex-direction:column;min-width:0;display:flex}.e_G4ZW_row{flex-direction:row;align-items:center;min-width:0;display:flex}.e_G4ZW_gap0{gap:0}.e_G4ZW_gap2{gap:2px}.e_G4ZW_gap4{gap:4px}.e_G4ZW_gap6{gap:6px}.e_G4ZW_gap8{gap:8px}.e_G4ZW_gap10{gap:10px}.e_G4ZW_gap12{gap:12px}.e_G4ZW_gap14{gap:14px}.e_G4ZW_gap16{gap:16px}.e_G4ZW_alignStart{align-items:flex-start}.e_G4ZW_alignCenter{align-items:center}.e_G4ZW_alignEnd{align-items:flex-end}.e_G4ZW_justifyBetween{justify-content:space-between}.e_G4ZW_justifyEnd{justify-content:flex-end}.e_G4ZW_justifyCenter{justify-content:center}.e_G4ZW_wrap{flex-wrap:wrap}.e_G4ZW_grow{flex:auto;min-width:0}.e_G4ZW_push{margin-left:auto}.e_G4ZW_fill{box-sizing:border-box;width:100%;height:100%;overflow:hidden}.e_G4ZW_scroll{flex:auto;min-height:0;overflow-y:auto}.e_G4ZW_plain{margin:0;padding:0;list-style:none}.e_G4ZW_padNone{padding:0}.e_G4ZW_padCard{padding:8px 12px}.e_G4ZW_padBody{padding:8px 0}.e_G4ZW_padPage{padding:24px 28px}.e_G4ZW_padRow{padding:10px 12px}.e_G4ZW_padBlocking{padding:32px 40px}.e_G4ZW_text{margin:0}.e_G4ZW_sizeXs{font-size:11px;line-height:1.5}.e_G4ZW_sizeSm{font-size:12px;line-height:18px}.e_G4ZW_sizeMd{font-size:13px;line-height:20px}.e_G4ZW_sizeBase{font-size:14px;line-height:24px}.e_G4ZW_sizeLg{font-size:16px;line-height:24px}.e_G4ZW_tonePrimary{color:var(--dsw-alias-label-primary)}.e_G4ZW_toneSecondary{color:var(--dsw-alias-label-secondary)}.e_G4ZW_toneTertiary{color:var(--dsw-alias-label-tertiary)}.e_G4ZW_toneDanger{color:var(--dsw-alias-label-error,var(--dsw-alias-label-primary))}.e_G4ZW_weightMedium{font-weight:500}.e_G4ZW_strong{font-weight:600}.e_G4ZW_mono{word-break:break-all;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.e_G4ZW_truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.e_G4ZW_tabular{font-variant-numeric:tabular-nums}.e_G4ZW_boxed{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);border-radius:10px}.e_G4ZW_fixed{flex:none}.e_G4ZW_gapWide{gap:6px 20px}.e_G4ZW_narrow{min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%)}.e_G4ZW_wSearch{flex:none;width:360px;max-width:100%}";
2484
- const tagId$15 = "@morlay/dsh-session-mode/layout.module.css";
2505
+ //#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
2506
+ const css$13 = "._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%}";
2507
+ const tagId$13 = "@morlay/dsh-session-mode/layout.module.css";
2485
2508
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/layout.module.css\"]") === null) {
2486
2509
  const tag = document.createElement("style");
2487
2510
  tag.dataset.plugin = "@morlay/dsh-session-mode";
2488
- tag.dataset.pluginCss = tagId$15;
2489
- tag.textContent = css$15;
2511
+ tag.dataset.pluginCss = tagId$13;
2512
+ tag.textContent = css$13;
2490
2513
  document.head.appendChild(tag);
2491
2514
  }
2492
2515
  var layout_module_css_default = {
2493
- "plain": "e_G4ZW_plain",
2494
- "gap0": "e_G4ZW_gap0",
2495
- "alignEnd": "e_G4ZW_alignEnd",
2496
- "justifyCenter": "e_G4ZW_justifyCenter",
2497
- "fill": "e_G4ZW_fill",
2498
- "gap14": "e_G4ZW_gap14",
2499
- "grow": "e_G4ZW_grow",
2500
- "padBody": "e_G4ZW_padBody",
2501
- "sizeXs": "e_G4ZW_sizeXs",
2502
- "toneDanger": "e_G4ZW_toneDanger",
2503
- "gap12": "e_G4ZW_gap12",
2504
- "gap16": "e_G4ZW_gap16",
2505
- "alignCenter": "e_G4ZW_alignCenter",
2506
- "strong": "e_G4ZW_strong",
2507
- "gap2": "e_G4ZW_gap2",
2508
- "row": "e_G4ZW_row",
2509
- "alignStart": "e_G4ZW_alignStart",
2510
- "tonePrimary": "e_G4ZW_tonePrimary",
2511
- "gap8": "e_G4ZW_gap8",
2512
- "text": "e_G4ZW_text",
2513
- "gapWide": "e_G4ZW_gapWide",
2514
- "push": "e_G4ZW_push",
2515
- "padRow": "e_G4ZW_padRow",
2516
- "padPage": "e_G4ZW_padPage",
2517
- "scroll": "e_G4ZW_scroll",
2518
- "padCard": "e_G4ZW_padCard",
2519
- "justifyBetween": "e_G4ZW_justifyBetween",
2520
- "wrap": "e_G4ZW_wrap",
2521
- "sizeSm": "e_G4ZW_sizeSm",
2522
- "gap4": "e_G4ZW_gap4",
2523
- "justifyEnd": "e_G4ZW_justifyEnd",
2524
- "stack": "e_G4ZW_stack",
2525
- "gap6": "e_G4ZW_gap6",
2526
- "padBlocking": "e_G4ZW_padBlocking",
2527
- "sizeMd": "e_G4ZW_sizeMd",
2528
- "sizeBase": "e_G4ZW_sizeBase",
2529
- "sizeLg": "e_G4ZW_sizeLg",
2530
- "gap10": "e_G4ZW_gap10",
2531
- "weightMedium": "e_G4ZW_weightMedium",
2532
- "toneSecondary": "e_G4ZW_toneSecondary",
2533
- "boxed": "e_G4ZW_boxed",
2534
- "narrow": "e_G4ZW_narrow",
2535
- "wSearch": "e_G4ZW_wSearch",
2536
- "tabular": "e_G4ZW_tabular",
2537
- "truncate": "e_G4ZW_truncate",
2538
- "padNone": "e_G4ZW_padNone",
2539
- "fixed": "e_G4ZW_fixed",
2540
- "toneTertiary": "e_G4ZW_toneTertiary",
2541
- "mono": "e_G4ZW_mono"
2516
+ "stack": "_7Ar2dq_stack",
2517
+ "padBlocking": "_7Ar2dq_padBlocking",
2518
+ "gap8": "_7Ar2dq_gap8",
2519
+ "sizeBase": "_7Ar2dq_sizeBase",
2520
+ "toneSecondary": "_7Ar2dq_toneSecondary",
2521
+ "toneTertiary": "_7Ar2dq_toneTertiary",
2522
+ "grow": "_7Ar2dq_grow",
2523
+ "weightMedium": "_7Ar2dq_weightMedium",
2524
+ "truncate": "_7Ar2dq_truncate",
2525
+ "push": "_7Ar2dq_push",
2526
+ "tabular": "_7Ar2dq_tabular",
2527
+ "gapWide": "_7Ar2dq_gapWide",
2528
+ "toneDanger": "_7Ar2dq_toneDanger",
2529
+ "row": "_7Ar2dq_row",
2530
+ "wSearch": "_7Ar2dq_wSearch",
2531
+ "sizeSm": "_7Ar2dq_sizeSm",
2532
+ "alignStart": "_7Ar2dq_alignStart",
2533
+ "gap10": "_7Ar2dq_gap10",
2534
+ "gap16": "_7Ar2dq_gap16",
2535
+ "justifyEnd": "_7Ar2dq_justifyEnd",
2536
+ "scroll": "_7Ar2dq_scroll",
2537
+ "gap4": "_7Ar2dq_gap4",
2538
+ "gap6": "_7Ar2dq_gap6",
2539
+ "gap12": "_7Ar2dq_gap12",
2540
+ "sizeMd": "_7Ar2dq_sizeMd",
2541
+ "gap14": "_7Ar2dq_gap14",
2542
+ "sizeXs": "_7Ar2dq_sizeXs",
2543
+ "padCard": "_7Ar2dq_padCard",
2544
+ "mono": "_7Ar2dq_mono",
2545
+ "justifyBetween": "_7Ar2dq_justifyBetween",
2546
+ "gap2": "_7Ar2dq_gap2",
2547
+ "boxed": "_7Ar2dq_boxed",
2548
+ "fixed": "_7Ar2dq_fixed",
2549
+ "plain": "_7Ar2dq_plain",
2550
+ "text": "_7Ar2dq_text",
2551
+ "alignCenter": "_7Ar2dq_alignCenter",
2552
+ "sizeLg": "_7Ar2dq_sizeLg",
2553
+ "alignEnd": "_7Ar2dq_alignEnd",
2554
+ "justifyCenter": "_7Ar2dq_justifyCenter",
2555
+ "padBody": "_7Ar2dq_padBody",
2556
+ "gap0": "_7Ar2dq_gap0",
2557
+ "padRow": "_7Ar2dq_padRow",
2558
+ "padPage": "_7Ar2dq_padPage",
2559
+ "fill": "_7Ar2dq_fill",
2560
+ "tonePrimary": "_7Ar2dq_tonePrimary",
2561
+ "strong": "_7Ar2dq_strong",
2562
+ "padNone": "_7Ar2dq_padNone",
2563
+ "narrow": "_7Ar2dq_narrow",
2564
+ "wrap": "_7Ar2dq_wrap"
2542
2565
  };
2543
2566
  //#endregion
2544
- //#region ../../client/ui-primitives/src/client/layout/scales.ts
2567
+ //#region ../../client/dsh-client-ui-primitives/src/client/layout/scales.ts
2545
2568
  function gapClass(css, gap) {
2546
2569
  if (gap === void 0) return void 0;
2547
2570
  return gap === "wide" ? css.gapWide : css[`gap${gap}`];
@@ -2582,7 +2605,7 @@ window.__ModuleLoader__.load({
2582
2605
  return weight === "medium" ? css.weightMedium : css.strong;
2583
2606
  }
2584
2607
  //#endregion
2585
- //#region ../../client/ui-primitives/src/client/layout/Row.tsx
2608
+ //#region ../../client/dsh-client-ui-primitives/src/client/layout/Row.tsx
2586
2609
  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) {
2587
2610
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Element, {
2588
2611
  ref,
@@ -2592,7 +2615,7 @@ window.__ModuleLoader__.load({
2592
2615
  });
2593
2616
  });
2594
2617
  //#endregion
2595
- //#region ../../client/ui-primitives/src/client/layout/Stack.tsx
2618
+ //#region ../../client/dsh-client-ui-primitives/src/client/layout/Stack.tsx
2596
2619
  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) {
2597
2620
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Element, {
2598
2621
  ref,
@@ -2602,7 +2625,7 @@ window.__ModuleLoader__.load({
2602
2625
  });
2603
2626
  });
2604
2627
  //#endregion
2605
- //#region ../../client/ui-primitives/src/client/layout/Text.tsx
2628
+ //#region ../../client/dsh-client-ui-primitives/src/client/layout/Text.tsx
2606
2629
  function Text({ as: Element = "span", size, tone, weight, mono = false, truncate = false, tabular = false, className, children }) {
2607
2630
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Element, {
2608
2631
  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),
@@ -2610,29 +2633,29 @@ window.__ModuleLoader__.load({
2610
2633
  });
2611
2634
  }
2612
2635
  //#endregion
2613
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/settings-form/SettingsFieldRow.module.css.mjs
2614
- const css$14 = "._72UBVa_row{flex-direction:column;display:flex}._72UBVa_row[data-divider=true]{border-top:.5px solid var(--dsw-alias-border-l2)}._72UBVa_body{flex-direction:column;gap:6px;padding:12px 0;display:flex}._72UBVa_inline{flex-direction:row;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}._72UBVa_text{flex-direction:column;gap:2px;min-width:0;display:flex}._72UBVa_label{color:var(--dsw-alias-label-primary);align-items:center;gap:8px;font-size:13px;font-weight:500;line-height:1.5;display:flex}._72UBVa_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}._72UBVa_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}._72UBVa_reset:hover:not(:disabled){color:var(--dsw-alias-label-primary)}._72UBVa_reset:disabled{cursor:default}._72UBVa_hint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}._72UBVa_invalid{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:1.5}";
2615
- const tagId$14 = "@morlay/dsh-session-mode/SettingsFieldRow.module.css";
2636
+ //#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
2637
+ const css$12 = ".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}";
2638
+ const tagId$12 = "@morlay/dsh-session-mode/SettingsFieldRow.module.css";
2616
2639
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/SettingsFieldRow.module.css\"]") === null) {
2617
2640
  const tag = document.createElement("style");
2618
2641
  tag.dataset.plugin = "@morlay/dsh-session-mode";
2619
- tag.dataset.pluginCss = tagId$14;
2620
- tag.textContent = css$14;
2642
+ tag.dataset.pluginCss = tagId$12;
2643
+ tag.textContent = css$12;
2621
2644
  document.head.appendChild(tag);
2622
2645
  }
2623
2646
  var SettingsFieldRow_module_css_default = {
2624
- "row": "_72UBVa_row",
2625
- "inline": "_72UBVa_inline",
2626
- "badge": "_72UBVa_badge",
2627
- "invalid": "_72UBVa_invalid",
2628
- "hint": "_72UBVa_hint",
2629
- "body": "_72UBVa_body",
2630
- "reset": "_72UBVa_reset",
2631
- "text": "_72UBVa_text",
2632
- "label": "_72UBVa_label"
2647
+ "row": "Il1Dtq_row",
2648
+ "body": "Il1Dtq_body",
2649
+ "badge": "Il1Dtq_badge",
2650
+ "text": "Il1Dtq_text",
2651
+ "hint": "Il1Dtq_hint",
2652
+ "invalid": "Il1Dtq_invalid",
2653
+ "reset": "Il1Dtq_reset",
2654
+ "label": "Il1Dtq_label",
2655
+ "inline": "Il1Dtq_inline"
2633
2656
  };
2634
2657
  //#endregion
2635
- //#region ../../client/ui-primitives/src/client/settings-form/SettingsFieldRow.tsx
2658
+ //#region ../../client/dsh-client-ui-primitives/src/client/settings-form/SettingsFieldRow.tsx
2636
2659
  function SettingsFieldRow({ label, hint, layout = "stack", divider = false, overriddenLabel, resetLabel, onReset, invalid, children, className, ...rest }) {
2637
2660
  const labelNode = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
2638
2661
  className: SettingsFieldRow_module_css_default.label,
@@ -2688,19 +2711,19 @@ window.__ModuleLoader__.load({
2688
2711
  });
2689
2712
  }
2690
2713
  //#endregion
2691
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/Bubble.module.css.mjs
2692
- const css$13 = ".dtkLCG_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}";
2693
- const tagId$13 = "@morlay/dsh-session-mode/Bubble.module.css";
2714
+ //#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
2715
+ const css$11 = ".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}";
2716
+ const tagId$11 = "@morlay/dsh-session-mode/Bubble.module.css";
2694
2717
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/Bubble.module.css\"]") === null) {
2695
2718
  const tag = document.createElement("style");
2696
2719
  tag.dataset.plugin = "@morlay/dsh-session-mode";
2697
- tag.dataset.pluginCss = tagId$13;
2698
- tag.textContent = css$13;
2720
+ tag.dataset.pluginCss = tagId$11;
2721
+ tag.textContent = css$11;
2699
2722
  document.head.appendChild(tag);
2700
2723
  }
2701
- var Bubble_module_css_default = { "bubble": "dtkLCG_bubble" };
2724
+ var Bubble_module_css_default = { "bubble": "Iy2DYG_bubble" };
2702
2725
  //#endregion
2703
- //#region ../../client/ui-primitives/src/client/controls/Bubble.tsx
2726
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/Bubble.tsx
2704
2727
  function Bubble({ className, children, ...rest }) {
2705
2728
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2706
2729
  className: classes(Bubble_module_css_default.bubble, className),
@@ -2709,22 +2732,22 @@ window.__ModuleLoader__.load({
2709
2732
  });
2710
2733
  }
2711
2734
  //#endregion
2712
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/Button.module.css.mjs
2713
- const css$12 = ".WFViLq_label{white-space:nowrap}.WFViLq_danger{--dsw-alias-button-primary-fill:var(--dsw-alias-state-error-primary)}";
2714
- const tagId$12 = "@morlay/dsh-session-mode/Button.module.css";
2735
+ //#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
2736
+ const css$10 = ".LWgVXW_label{white-space:nowrap}.LWgVXW_danger{--dsw-alias-button-primary-fill:var(--dsw-alias-state-error-primary)}";
2737
+ const tagId$10 = "@morlay/dsh-session-mode/Button.module.css";
2715
2738
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/Button.module.css\"]") === null) {
2716
2739
  const tag = document.createElement("style");
2717
2740
  tag.dataset.plugin = "@morlay/dsh-session-mode";
2718
- tag.dataset.pluginCss = tagId$12;
2719
- tag.textContent = css$12;
2741
+ tag.dataset.pluginCss = tagId$10;
2742
+ tag.textContent = css$10;
2720
2743
  document.head.appendChild(tag);
2721
2744
  }
2722
2745
  var Button_module_css_default = {
2723
- "label": "WFViLq_label",
2724
- "danger": "WFViLq_danger"
2746
+ "label": "LWgVXW_label",
2747
+ "danger": "LWgVXW_danger"
2725
2748
  };
2726
2749
  //#endregion
2727
- //#region ../../client/ui-primitives/src/client/controls/Button.tsx
2750
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/Button.tsx
2728
2751
  const Button$1 = (0, react.forwardRef)(function Button({ className, tone, ...rest }, ref) {
2729
2752
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
2730
2753
  ref,
@@ -2734,22 +2757,22 @@ window.__ModuleLoader__.load({
2734
2757
  });
2735
2758
  });
2736
2759
  //#endregion
2737
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/DisclosureRow.module.css.mjs
2738
- const css$11 = ".MBWCEG_content{flex:auto;min-width:0}.MBWCEG_contentLayout{align-items:center;gap:8px;width:100%;min-width:0;display:flex}";
2739
- const tagId$11 = "@morlay/dsh-session-mode/DisclosureRow.module.css";
2760
+ //#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
2761
+ const css$9 = "._2HN-kW_content{flex:auto;min-width:0}._2HN-kW_contentLayout{align-items:center;gap:8px;width:100%;min-width:0;display:flex}";
2762
+ const tagId$9 = "@morlay/dsh-session-mode/DisclosureRow.module.css";
2740
2763
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/DisclosureRow.module.css\"]") === null) {
2741
2764
  const tag = document.createElement("style");
2742
2765
  tag.dataset.plugin = "@morlay/dsh-session-mode";
2743
- tag.dataset.pluginCss = tagId$11;
2744
- tag.textContent = css$11;
2766
+ tag.dataset.pluginCss = tagId$9;
2767
+ tag.textContent = css$9;
2745
2768
  document.head.appendChild(tag);
2746
2769
  }
2747
2770
  var DisclosureRow_module_css_default = {
2748
- "contentLayout": "MBWCEG_contentLayout",
2749
- "content": "MBWCEG_content"
2771
+ "content": "_2HN-kW_content",
2772
+ "contentLayout": "_2HN-kW_contentLayout"
2750
2773
  };
2751
2774
  //#endregion
2752
- //#region ../../client/ui-primitives/src/client/controls/DisclosureRow.tsx
2775
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/DisclosureRow.tsx
2753
2776
  function DisclosureRow(props) {
2754
2777
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
2755
2778
  contentClassName: DisclosureRow_module_css_default.content,
@@ -2758,48 +2781,25 @@ window.__ModuleLoader__.load({
2758
2781
  });
2759
2782
  }
2760
2783
  //#endregion
2761
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/SearchInput.module.css.mjs
2762
- const css$10 = ".KiR4MG_search{flex:none;width:360px;max-width:100%}.KiR4MG_full{flex:none;width:100%}";
2763
- const tagId$10 = "@morlay/dsh-session-mode/SearchInput.module.css";
2764
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/SearchInput.module.css\"]") === null) {
2765
- const tag = document.createElement("style");
2766
- tag.dataset.plugin = "@morlay/dsh-session-mode";
2767
- tag.dataset.pluginCss = tagId$10;
2768
- tag.textContent = css$10;
2769
- document.head.appendChild(tag);
2770
- }
2771
- var SearchInput_module_css_default = {
2772
- "search": "KiR4MG_search",
2773
- "full": "KiR4MG_full"
2774
- };
2775
- //#endregion
2776
- //#region ../../client/ui-primitives/src/client/controls/SearchInput.tsx
2777
- function SearchInput({ width = "search", className, ...rest }) {
2778
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Input, {
2779
- className: classes(className, width === "search" ? SearchInput_module_css_default.search : SearchInput_module_css_default.full),
2780
- ...rest
2781
- });
2782
- }
2783
- //#endregion
2784
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/SeatButton.module.css.mjs
2785
- const css$9 = ".HcNbhG_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}.HcNbhG_seat:not(:disabled):hover,.HcNbhG_seat[aria-expanded=true],.HcNbhG_expanded{background:var(--dsw-alias-interactive-bg-hover)}.HcNbhG_seat:disabled{cursor:default;color:var(--dsw-alias-label-quaternary)}.HcNbhG_icon{color:var(--dsw-alias-label-primary);flex:none;align-items:center;display:inline-flex}.HcNbhG_label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.HcNbhG_chevron{color:var(--dsw-alias-label-caption);flex:none;display:inline-flex}";
2786
- const tagId$9 = "@morlay/dsh-session-mode/SeatButton.module.css";
2784
+ //#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
2785
+ const css$8 = ".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}";
2786
+ const tagId$8 = "@morlay/dsh-session-mode/SeatButton.module.css";
2787
2787
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/SeatButton.module.css\"]") === null) {
2788
2788
  const tag = document.createElement("style");
2789
2789
  tag.dataset.plugin = "@morlay/dsh-session-mode";
2790
- tag.dataset.pluginCss = tagId$9;
2791
- tag.textContent = css$9;
2790
+ tag.dataset.pluginCss = tagId$8;
2791
+ tag.textContent = css$8;
2792
2792
  document.head.appendChild(tag);
2793
2793
  }
2794
2794
  var SeatButton_module_css_default = {
2795
- "icon": "HcNbhG_icon",
2796
- "expanded": "HcNbhG_expanded",
2797
- "label": "HcNbhG_label",
2798
- "chevron": "HcNbhG_chevron",
2799
- "seat": "HcNbhG_seat"
2795
+ "seat": "JqQ4qG_seat",
2796
+ "chevron": "JqQ4qG_chevron",
2797
+ "expanded": "JqQ4qG_expanded",
2798
+ "label": "JqQ4qG_label",
2799
+ "icon": "JqQ4qG_icon"
2800
2800
  };
2801
2801
  //#endregion
2802
- //#region ../../client/ui-primitives/src/client/controls/SeatButton.tsx
2802
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/SeatButton.tsx
2803
2803
  function SeatButton({ icon, label, expanded = false, chevron, type = "button", className, ...rest }) {
2804
2804
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
2805
2805
  type,
@@ -2822,22 +2822,22 @@ window.__ModuleLoader__.load({
2822
2822
  });
2823
2823
  }
2824
2824
  //#endregion
2825
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/Spinner.module.css.mjs
2826
- const css$8 = ".HGVDmW_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 HGVDmW_spin}@keyframes HGVDmW_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}";
2827
- const tagId$8 = "@morlay/dsh-session-mode/Spinner.module.css";
2825
+ //#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
2826
+ const css$7 = "._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)}}";
2827
+ const tagId$7 = "@morlay/dsh-session-mode/Spinner.module.css";
2828
2828
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/Spinner.module.css\"]") === null) {
2829
2829
  const tag = document.createElement("style");
2830
2830
  tag.dataset.plugin = "@morlay/dsh-session-mode";
2831
- tag.dataset.pluginCss = tagId$8;
2832
- tag.textContent = css$8;
2831
+ tag.dataset.pluginCss = tagId$7;
2832
+ tag.textContent = css$7;
2833
2833
  document.head.appendChild(tag);
2834
2834
  }
2835
2835
  var Spinner_module_css_default = {
2836
- "spinner": "HGVDmW_spinner",
2837
- "spin": "HGVDmW_spin"
2836
+ "spin": "_1uNobG_spin",
2837
+ "spinner": "_1uNobG_spinner"
2838
2838
  };
2839
2839
  //#endregion
2840
- //#region ../../client/ui-primitives/src/client/controls/Spinner.tsx
2840
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/Spinner.tsx
2841
2841
  function Spinner({ label }) {
2842
2842
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2843
2843
  className: Spinner_module_css_default.spinner,
@@ -2846,49 +2846,8 @@ window.__ModuleLoader__.load({
2846
2846
  });
2847
2847
  }
2848
2848
  //#endregion
2849
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/Tabs.module.css.mjs
2850
- const css$7 = ".GO-36q_tabs{z-index:1;flex:none;gap:36px;margin-top:10px;padding-left:8px;display:flex;position:relative}.GO-36q_tab{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;padding:0 0 9px;font-size:13px;font-weight:500;line-height:16px;position:relative}.GO-36q_tab:after{content:\"\";background:0 0;border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.GO-36q_tabActive{color:var(--dsw-alias-state-business-primary)}.GO-36q_tabActive:after{background:var(--dsw-alias-state-business-primary)}.GO-36q_tab:disabled{cursor:not-allowed;opacity:.4}";
2851
- const tagId$7 = "@morlay/dsh-session-mode/Tabs.module.css";
2852
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/Tabs.module.css\"]") === null) {
2853
- const tag = document.createElement("style");
2854
- tag.dataset.plugin = "@morlay/dsh-session-mode";
2855
- tag.dataset.pluginCss = tagId$7;
2856
- tag.textContent = css$7;
2857
- document.head.appendChild(tag);
2858
- }
2859
- var Tabs_module_css_default = {
2860
- "tab": "GO-36q_tab",
2861
- "tabActive": "GO-36q_tabActive",
2862
- "tabs": "GO-36q_tabs"
2863
- };
2864
- //#endregion
2865
- //#region ../../client/ui-primitives/src/client/controls/Tabs.tsx
2866
- function Tabs({ label, items, value, onChange, role = "tablist", disabled = false }) {
2867
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2868
- className: Tabs_module_css_default.tabs,
2869
- role,
2870
- "aria-label": label,
2871
- children: items.map((item) => {
2872
- const active = item.value === value;
2873
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2874
- type: "button",
2875
- role: role === "tablist" ? "tab" : "radio",
2876
- "data-tab": item.value,
2877
- "aria-selected": role === "tablist" ? active : void 0,
2878
- "aria-checked": role === "tablist" ? void 0 : active,
2879
- disabled,
2880
- className: classes(Tabs_module_css_default.tab, active ? Tabs_module_css_default.tabActive : void 0),
2881
- onClick: () => {
2882
- onChange(item.value);
2883
- },
2884
- children: item.label
2885
- }, item.value);
2886
- })
2887
- });
2888
- }
2889
- //#endregion
2890
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/TimeLabel.module.css.mjs
2891
- const css$6 = "._3IuWPG_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 ._3IuWPG_label,[data-time-hover-root]:focus-within ._3IuWPG_label{opacity:1}";
2849
+ //#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
2850
+ const css$6 = ".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}";
2892
2851
  const tagId$6 = "@morlay/dsh-session-mode/TimeLabel.module.css";
2893
2852
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/TimeLabel.module.css\"]") === null) {
2894
2853
  const tag = document.createElement("style");
@@ -2897,9 +2856,9 @@ window.__ModuleLoader__.load({
2897
2856
  tag.textContent = css$6;
2898
2857
  document.head.appendChild(tag);
2899
2858
  }
2900
- var TimeLabel_module_css_default = { "label": "_3IuWPG_label" };
2859
+ var TimeLabel_module_css_default = { "label": "P8Yiia_label" };
2901
2860
  //#endregion
2902
- //#region ../../client/ui-primitives/src/client/controls/TimeLabel.tsx
2861
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/TimeLabel.tsx
2903
2862
  function TimeLabel({ className, children, ...rest }) {
2904
2863
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2905
2864
  className: classes(TimeLabel_module_css_default.label, className),
@@ -2908,8 +2867,8 @@ window.__ModuleLoader__.load({
2908
2867
  });
2909
2868
  }
2910
2869
  //#endregion
2911
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/VisuallyHidden.module.css.mjs
2912
- const css$5 = ".YAvv4W_hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}";
2870
+ //#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
2871
+ const css$5 = ".d5ueOG_hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}";
2913
2872
  const tagId$5 = "@morlay/dsh-session-mode/VisuallyHidden.module.css";
2914
2873
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/VisuallyHidden.module.css\"]") === null) {
2915
2874
  const tag = document.createElement("style");
@@ -2918,9 +2877,9 @@ window.__ModuleLoader__.load({
2918
2877
  tag.textContent = css$5;
2919
2878
  document.head.appendChild(tag);
2920
2879
  }
2921
- var VisuallyHidden_module_css_default = { "hidden": "YAvv4W_hidden" };
2880
+ var VisuallyHidden_module_css_default = { "hidden": "d5ueOG_hidden" };
2922
2881
  //#endregion
2923
- //#region ../../client/ui-primitives/src/client/controls/VisuallyHidden.tsx
2882
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/VisuallyHidden.tsx
2924
2883
  function VisuallyHidden({ children, ...rest }) {
2925
2884
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2926
2885
  className: VisuallyHidden_module_css_default.hidden,
@@ -2929,8 +2888,8 @@ window.__ModuleLoader__.load({
2929
2888
  });
2930
2889
  }
2931
2890
  //#endregion
2932
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/IconButton.module.css.mjs
2933
- const css$4 = ".I3t6Ga_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}.I3t6Ga_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.I3t6Ga_iconButton:disabled{cursor:not-allowed;opacity:.4}.I3t6Ga_iconButton:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.I3t6Ga_sm{width:20px;height:20px;padding:0}.I3t6Ga_circle{color:var(--dsw-alias-label-tertiary);border-radius:28px;padding:6px}.I3t6Ga_circle:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}";
2891
+ //#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
2892
+ const css$4 = ".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)}";
2934
2893
  const tagId$4 = "@morlay/dsh-session-mode/IconButton.module.css";
2935
2894
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/IconButton.module.css\"]") === null) {
2936
2895
  const tag = document.createElement("style");
@@ -2940,12 +2899,12 @@ window.__ModuleLoader__.load({
2940
2899
  document.head.appendChild(tag);
2941
2900
  }
2942
2901
  var IconButton_module_css_default = {
2943
- "sm": "I3t6Ga_sm",
2944
- "circle": "I3t6Ga_circle",
2945
- "iconButton": "I3t6Ga_iconButton"
2902
+ "sm": "AibFna_sm",
2903
+ "iconButton": "AibFna_iconButton",
2904
+ "circle": "AibFna_circle"
2946
2905
  };
2947
2906
  //#endregion
2948
- //#region ../../client/ui-primitives/src/client/controls/IconButton.tsx
2907
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/IconButton.tsx
2949
2908
  function IconButton({ label, children, type = "button", shape = "square", size = "md", className, ...rest }) {
2950
2909
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2951
2910
  type,
@@ -2957,8 +2916,8 @@ window.__ModuleLoader__.load({
2957
2916
  });
2958
2917
  }
2959
2918
  //#endregion
2960
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/ModelRouteList.module.css.mjs
2961
- const css$3 = "._2eBkWq_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}._2eBkWq_group{gap:6px;display:grid}._2eBkWq_group+._2eBkWq_group{border-top:.5px solid var(--dsw-alias-border-l3);margin-top:4px;padding-top:10px}._2eBkWq_provider{color:var(--dsw-alias-label-tertiary);padding:0 6px;font-size:11px;font-weight:500}._2eBkWq_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}._2eBkWq_item:hover{background:var(--dsw-alias-bg-layer-4)}._2eBkWq_item:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}._2eBkWq_item[aria-disabled=true]{cursor:not-allowed;opacity:.4}._2eBkWq_picked{background:var(--dsw-alias-interactive-bg-hover)}._2eBkWq_text{min-width:0}._2eBkWq_name{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);font-size:13px;display:block;overflow:hidden}._2eBkWq_id{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary);margin-top:2px;font-size:11px;display:block;overflow:hidden}._2eBkWq_notice{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:1.5}._2eBkWq_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:1.5}";
2919
+ //#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
2920
+ const css$3 = "._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}";
2962
2921
  const tagId$3 = "@morlay/dsh-session-mode/ModelRouteList.module.css";
2963
2922
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/ModelRouteList.module.css\"]") === null) {
2964
2923
  const tag = document.createElement("style");
@@ -2968,19 +2927,19 @@ window.__ModuleLoader__.load({
2968
2927
  document.head.appendChild(tag);
2969
2928
  }
2970
2929
  var ModelRouteList_module_css_default = {
2971
- "list": "_2eBkWq_list",
2972
- "notice": "_2eBkWq_notice",
2973
- "error": "_2eBkWq_error",
2974
- "picked": "_2eBkWq_picked",
2975
- "group": "_2eBkWq_group",
2976
- "id": "_2eBkWq_id",
2977
- "provider": "_2eBkWq_provider",
2978
- "item": "_2eBkWq_item",
2979
- "text": "_2eBkWq_text",
2980
- "name": "_2eBkWq_name"
2930
+ "text": "_1vK46q_text",
2931
+ "group": "_1vK46q_group",
2932
+ "provider": "_1vK46q_provider",
2933
+ "notice": "_1vK46q_notice",
2934
+ "picked": "_1vK46q_picked",
2935
+ "id": "_1vK46q_id",
2936
+ "list": "_1vK46q_list",
2937
+ "item": "_1vK46q_item",
2938
+ "name": "_1vK46q_name",
2939
+ "error": "_1vK46q_error"
2981
2940
  };
2982
2941
  //#endregion
2983
- //#region ../../client/ui-primitives/src/client/controls/ModelRouteList.tsx
2942
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/ModelRouteList.tsx
2984
2943
  function ModelRouteList({ label, candidates, selectedKey, disabled = false, status, loadingLabel, errorLabel, emptyLabel, onSelect }) {
2985
2944
  if (status === "loading") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2986
2945
  className: ModelRouteList_module_css_default.notice,
@@ -3051,8 +3010,8 @@ window.__ModuleLoader__.load({
3051
3010
  });
3052
3011
  }
3053
3012
  //#endregion
3054
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/MultilineField.module.css.mjs
3055
- const css$2 = "._stHfW_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}._stHfW_multiline:disabled{cursor:not-allowed;opacity:.4}._stHfW_multiline:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}";
3013
+ //#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
3014
+ const css$2 = ".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}";
3056
3015
  const tagId$2 = "@morlay/dsh-session-mode/MultilineField.module.css";
3057
3016
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/MultilineField.module.css\"]") === null) {
3058
3017
  const tag = document.createElement("style");
@@ -3061,9 +3020,9 @@ window.__ModuleLoader__.load({
3061
3020
  tag.textContent = css$2;
3062
3021
  document.head.appendChild(tag);
3063
3022
  }
3064
- var MultilineField_module_css_default = { "multiline": "_stHfW_multiline" };
3023
+ var MultilineField_module_css_default = { "multiline": "V0rRdq_multiline" };
3065
3024
  //#endregion
3066
- //#region ../../client/ui-primitives/src/client/controls/MultilineField.tsx
3025
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/MultilineField.tsx
3067
3026
  function MultilineField({ rows = 3, className, ...rest }) {
3068
3027
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
3069
3028
  rows,
@@ -3073,8 +3032,8 @@ window.__ModuleLoader__.load({
3073
3032
  });
3074
3033
  }
3075
3034
  //#endregion
3076
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/SearchSelect.module.css.mjs
3077
- const css$1 = ".BtUTmW_trigger{white-space:nowrap;height:32px}.BtUTmW_searchRow{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;padding:4px 8px 8px;display:flex}.BtUTmW_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}.BtUTmW_empty{color:var(--dsw-alias-label-tertiary);margin:0;padding:8px;font-size:12px;line-height:1.5}";
3035
+ //#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
3036
+ const css$1 = ".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}";
3078
3037
  const tagId$1 = "@morlay/dsh-session-mode/SearchSelect.module.css";
3079
3038
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/SearchSelect.module.css\"]") === null) {
3080
3039
  const tag = document.createElement("style");
@@ -3084,13 +3043,13 @@ window.__ModuleLoader__.load({
3084
3043
  document.head.appendChild(tag);
3085
3044
  }
3086
3045
  var SearchSelect_module_css_default = {
3087
- "trigger": "BtUTmW_trigger",
3088
- "searchRow": "BtUTmW_searchRow",
3089
- "searchInput": "BtUTmW_searchInput",
3090
- "empty": "BtUTmW_empty"
3046
+ "trigger": "kEYv4q_trigger",
3047
+ "searchInput": "kEYv4q_searchInput",
3048
+ "empty": "kEYv4q_empty",
3049
+ "searchRow": "kEYv4q_searchRow"
3091
3050
  };
3092
3051
  //#endregion
3093
- //#region ../../client/ui-primitives/src/client/controls/SearchSelect.tsx
3052
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/SearchSelect.tsx
3094
3053
  function SearchSelect({ label, value, emptyLabel, options, disabled = false, searchLabel, noMatchLabel, onSelect }) {
3095
3054
  const [open, setOpen] = (0, react.useState)(false);
3096
3055
  const [query, setQuery] = (0, react.useState)("");
@@ -3168,7 +3127,7 @@ window.__ModuleLoader__.load({
3168
3127
  });
3169
3128
  }
3170
3129
  //#endregion
3171
- //#region ../../client/ui-primitives/src/client/controls/tags.ts
3130
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/tags.ts
3172
3131
  function parseTagList(text) {
3173
3132
  const seen = /* @__PURE__ */ new Set();
3174
3133
  const names = [];
@@ -3189,8 +3148,8 @@ window.__ModuleLoader__.load({
3189
3148
  return merged;
3190
3149
  }
3191
3150
  //#endregion
3192
- //#region \0dsh-css-modules:/Users/morlay/src/github.com/morlay/dsh-plugin/packages/client/ui-primitives/src/client/controls/TagInput.module.css.mjs
3193
- const css = ".Is5kta_row{align-items:flex-start;gap:8px;width:100%;display:flex}.Is5kta_anchor{flex:auto;width:100%;min-width:0;display:flex}.Is5kta_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}.Is5kta_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}.Is5kta_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}.Is5kta_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}.Is5kta_chipRemove:hover:not(:disabled){color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}.Is5kta_chipRemove:disabled{cursor:not-allowed;opacity:.4}.Is5kta_chipRemove:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:0}.Is5kta_empty{color:var(--dsw-alias-label-tertiary);margin:0;padding:8px;font-size:12px;line-height:1.5}";
3151
+ //#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
3152
+ const css = ".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}";
3194
3153
  const tagId = "@morlay/dsh-session-mode/TagInput.module.css";
3195
3154
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@morlay/dsh-session-mode/TagInput.module.css\"]") === null) {
3196
3155
  const tag = document.createElement("style");
@@ -3200,16 +3159,16 @@ window.__ModuleLoader__.load({
3200
3159
  document.head.appendChild(tag);
3201
3160
  }
3202
3161
  var TagInput_module_css_default = {
3203
- "chipRemove": "Is5kta_chipRemove",
3204
- "empty": "Is5kta_empty",
3205
- "box": "Is5kta_box",
3206
- "row": "Is5kta_row",
3207
- "anchor": "Is5kta_anchor",
3208
- "input": "Is5kta_input",
3209
- "chip": "Is5kta_chip"
3162
+ "input": "Qg7I9G_input",
3163
+ "anchor": "Qg7I9G_anchor",
3164
+ "chip": "Qg7I9G_chip",
3165
+ "chipRemove": "Qg7I9G_chipRemove",
3166
+ "box": "Qg7I9G_box",
3167
+ "empty": "Qg7I9G_empty",
3168
+ "row": "Qg7I9G_row"
3210
3169
  };
3211
3170
  //#endregion
3212
- //#region ../../client/ui-primitives/src/client/controls/TagInput.tsx
3171
+ //#region ../../client/dsh-client-ui-primitives/src/client/controls/TagInput.tsx
3213
3172
  function TagInput({ value, onChange, options, placeholder, label, disabled = false, noMatchLabel = "", removeLabel }) {
3214
3173
  const [draft, setDraft] = (0, react.useState)("");
3215
3174
  const [open, setOpen] = (0, react.useState)(false);
@@ -3473,7 +3432,7 @@ window.__ModuleLoader__.load({
3473
3432
  * NormalizedExtension
3474
3433
  * } from 'micromark-util-types'
3475
3434
  */
3476
- const hasOwnProperty = {}.hasOwnProperty;
3435
+ const hasOwnProperty$1 = {}.hasOwnProperty;
3477
3436
  /**
3478
3437
  * Combine multiple syntax extensions into one.
3479
3438
  *
@@ -3504,13 +3463,13 @@ window.__ModuleLoader__.load({
3504
3463
  let hook;
3505
3464
  for (hook in extension) {
3506
3465
  /** @type {Record<string, unknown>} */
3507
- const left = (hasOwnProperty.call(all, hook) ? all[hook] : void 0) || (all[hook] = {});
3466
+ const left = (hasOwnProperty$1.call(all, hook) ? all[hook] : void 0) || (all[hook] = {});
3508
3467
  /** @type {Record<string, unknown> | undefined} */
3509
3468
  const right = extension[hook];
3510
3469
  /** @type {string} */
3511
3470
  let code;
3512
3471
  if (right) for (code in right) {
3513
- if (!hasOwnProperty.call(left, code)) left[code] = [];
3472
+ if (!hasOwnProperty$1.call(left, code)) left[code] = [];
3514
3473
  const value = right[code];
3515
3474
  constructs(left[code], Array.isArray(value) ? value : value ? [value] : []);
3516
3475
  }
@@ -3807,6 +3766,7 @@ window.__ModuleLoader__.load({
3807
3766
  return code !== null && code > -1 && regex.test(String.fromCharCode(code));
3808
3767
  }
3809
3768
  }
3769
+ ({}).hasOwnProperty;
3810
3770
  //#endregion
3811
3771
  //#region ../../../node_modules/.pnpm/micromark-factory-space@2.1.0/node_modules/micromark-factory-space/index.js
3812
3772
  /**
@@ -4416,7 +4376,7 @@ window.__ModuleLoader__.load({
4416
4376
  * } from 'micromark-util-types'
4417
4377
  */
4418
4378
  /** @type {Construct} */
4419
- const attention = {
4379
+ const attention$2 = {
4420
4380
  name: "attention",
4421
4381
  resolveAll: resolveAllAttention,
4422
4382
  tokenize: tokenizeAttention
@@ -10220,16 +10180,16 @@ window.__ModuleLoader__.load({
10220
10180
  [-3]: lineEnding,
10221
10181
  [33]: labelStartImage,
10222
10182
  [38]: characterReference,
10223
- [42]: attention,
10183
+ [42]: attention$2,
10224
10184
  [60]: [autolink, htmlText],
10225
10185
  [91]: labelStartLink,
10226
10186
  [92]: [hardBreakEscape, characterEscape],
10227
10187
  [93]: labelEnd,
10228
- [95]: attention,
10188
+ [95]: attention$2,
10229
10189
  [96]: codeText
10230
10190
  };
10231
10191
  /** @satisfies {Extension['insideSpan']} */
10232
- const insideSpan = { null: [attention, resolver] };
10192
+ const insideSpan = { null: [attention$2, resolver] };
10233
10193
  /** @satisfies {Extension['attentionMarkers']} */
10234
10194
  const attentionMarkers = { null: [42, 95] };
10235
10195
  /** @satisfies {Extension['disable']} */
@@ -10954,7 +10914,7 @@ window.__ModuleLoader__.load({
10954
10914
  return value && typeof value === "number" ? value : 1;
10955
10915
  }
10956
10916
  //#endregion
10957
- //#region ../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3_supports-color@9.4.0/node_modules/mdast-util-from-markdown/lib/index.js
10917
+ //#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
10958
10918
  /**
10959
10919
  * @import {
10960
10920
  * Break,
@@ -10995,7 +10955,7 @@ window.__ModuleLoader__.load({
10995
10955
  * Options
10996
10956
  * } from './types.js'
10997
10957
  */
10998
- const own = {}.hasOwnProperty;
10958
+ const own$4 = {}.hasOwnProperty;
10999
10959
  /**
11000
10960
  * Turn markdown into a syntax tree.
11001
10961
  *
@@ -11034,6 +10994,8 @@ window.__ModuleLoader__.load({
11034
10994
  function compiler(options) {
11035
10995
  /** @type {Config} */
11036
10996
  const config = {
10997
+ afterExit: [],
10998
+ beforeEnter: [],
11037
10999
  transforms: [],
11038
11000
  canContainEols: [
11039
11001
  "emphasis",
@@ -11153,7 +11115,8 @@ window.__ModuleLoader__.load({
11153
11115
  /** @type {Root} */
11154
11116
  let tree = {
11155
11117
  type: "root",
11156
- children: []
11118
+ children: [],
11119
+ position: void 0
11157
11120
  };
11158
11121
  /** @type {Omit<CompileContext, 'sliceSerialize'>} */
11159
11122
  const context = {
@@ -11168,15 +11131,32 @@ window.__ModuleLoader__.load({
11168
11131
  };
11169
11132
  /** @type {Array<number>} */
11170
11133
  const listStack = [];
11134
+ /** @type {Array<Event>} */
11135
+ const prepared = [];
11171
11136
  let index = -1;
11172
- while (++index < events.length) if (events[index][1].type === "listOrdered" || events[index][1].type === "listUnordered") {
11173
- if (events[index][0] === "enter") listStack.push(index);
11174
- else index = prepareList(events, listStack.pop(), index);
11137
+ while (++index < events.length) {
11138
+ prepared.push(events[index]);
11139
+ if (events[index][1].type === "listOrdered" || events[index][1].type === "listUnordered") {
11140
+ if (events[index][0] === "enter") listStack.push(prepared.length - 1);
11141
+ else prepareList(prepared, listStack.pop());
11142
+ }
11175
11143
  }
11144
+ events = prepared;
11176
11145
  index = -1;
11177
11146
  while (++index < events.length) {
11178
11147
  const handler = config[events[index][0]];
11179
- if (own.call(handler, events[index][1].type)) handler[events[index][1].type].call(Object.assign({ sliceSerialize: events[index][2].sliceSerialize }, context), events[index][1]);
11148
+ if (events[index][0] === "enter" && config.beforeEnter.length > 0) callListeners(config.beforeEnter, {
11149
+ ...context,
11150
+ sliceSerialize: events[index][2].sliceSerialize
11151
+ }, events[index][1]);
11152
+ if (own$4.call(handler, events[index][1].type)) handler[events[index][1].type].call({
11153
+ ...context,
11154
+ sliceSerialize: events[index][2].sliceSerialize
11155
+ }, events[index][1]);
11156
+ if (events[index][0] === "exit" && config.afterExit.length > 0) callListeners(config.afterExit, {
11157
+ ...context,
11158
+ sliceSerialize: events[index][2].sliceSerialize
11159
+ }, events[index][1]);
11180
11160
  }
11181
11161
  if (context.tokenStack.length > 0) {
11182
11162
  const tail = context.tokenStack[context.tokenStack.length - 1];
@@ -11199,12 +11179,28 @@ window.__ModuleLoader__.load({
11199
11179
  return tree;
11200
11180
  }
11201
11181
  /**
11182
+ * @param {Array<Handle>} listeners
11183
+ * Listeners.
11184
+ * @param {CompileContext} context
11185
+ * Context.
11186
+ * @param {Token} token
11187
+ * Token.
11188
+ * @returns {undefined}
11189
+ * Nothing.
11190
+ */
11191
+ function callListeners(listeners, context, token) {
11192
+ let index = -1;
11193
+ while (++index < listeners.length) listeners[index].call(context, token);
11194
+ }
11195
+ /**
11202
11196
  * @param {Array<Event>} events
11197
+ * Events, ending with the list to prepare.
11203
11198
  * @param {number} start
11204
- * @param {number} length
11205
- * @returns {number}
11199
+ * Index of the list enter.
11200
+ * @returns {undefined}
11206
11201
  */
11207
- function prepareList(events, start, length) {
11202
+ function prepareList(events, start) {
11203
+ const end = events.length - 1;
11208
11204
  let index = start - 1;
11209
11205
  let containerBalance = -1;
11210
11206
  let listSpread = false;
@@ -11216,7 +11212,14 @@ window.__ModuleLoader__.load({
11216
11212
  let firstBlankLineIndex;
11217
11213
  /** @type {boolean | undefined} */
11218
11214
  let atMarker;
11219
- while (++index <= length) {
11215
+ /**
11216
+ * `listItem` events to insert before the event at `at`, in walk order.
11217
+ * Merged in after the walk, as inserting while walking would shift the
11218
+ * rest of the list once per item.
11219
+ * @type {Array<{at: number, event: Event}>}
11220
+ */
11221
+ const insertions = [];
11222
+ while (++index <= end) {
11220
11223
  const event = events[index];
11221
11224
  switch (event[1].type) {
11222
11225
  case "listUnordered":
@@ -11257,13 +11260,14 @@ window.__ModuleLoader__.load({
11257
11260
  }
11258
11261
  if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) listItem._spread = true;
11259
11262
  listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);
11260
- events.splice(lineIndex || index, 0, [
11261
- "exit",
11262
- listItem,
11263
- event[2]
11264
- ]);
11265
- index++;
11266
- length++;
11263
+ insertions.push({
11264
+ at: lineIndex || index,
11265
+ event: [
11266
+ "exit",
11267
+ listItem,
11268
+ event[2]
11269
+ ]
11270
+ });
11267
11271
  }
11268
11272
  if (event[1].type === "listItemPrefix") {
11269
11273
  /** @type {Token} */
@@ -11274,20 +11278,27 @@ window.__ModuleLoader__.load({
11274
11278
  end: void 0
11275
11279
  };
11276
11280
  listItem = item;
11277
- events.splice(index, 0, [
11278
- "enter",
11279
- item,
11280
- event[2]
11281
- ]);
11282
- index++;
11283
- length++;
11281
+ insertions.push({
11282
+ at: index,
11283
+ event: [
11284
+ "enter",
11285
+ item,
11286
+ event[2]
11287
+ ]
11288
+ });
11284
11289
  firstBlankLineIndex = void 0;
11285
11290
  atMarker = true;
11286
11291
  }
11287
11292
  }
11288
11293
  }
11294
+ const listEvents = events.splice(start);
11295
+ let insertion = 0;
11296
+ index = -1;
11297
+ while (++index < listEvents.length) {
11298
+ while (insertion < insertions.length && insertions[insertion].at === start + index) events.push(insertions[insertion++].event);
11299
+ events.push(listEvents[index]);
11300
+ }
11289
11301
  events[start][1]._spread = listSpread;
11290
- return length;
11291
11302
  }
11292
11303
  /**
11293
11304
  * Create an opener handle.
@@ -11362,7 +11373,7 @@ window.__ModuleLoader__.load({
11362
11373
  start: token.start,
11363
11374
  end: token.end
11364
11375
  }) + "): it’s not open");
11365
- else if (open[0].type !== token.type) {
11376
+ if (open[0].type !== token.type) {
11366
11377
  if (onExitError) onExitError.call(this, token, open[0]);
11367
11378
  else (open[1] || defaultOnError).call(this, token, open[0]);
11368
11379
  }
@@ -11730,7 +11741,8 @@ window.__ModuleLoader__.load({
11730
11741
  function blockQuote() {
11731
11742
  return {
11732
11743
  type: "blockquote",
11733
- children: []
11744
+ children: [],
11745
+ position: void 0
11734
11746
  };
11735
11747
  }
11736
11748
  /** @returns {Code} */
@@ -11739,14 +11751,16 @@ window.__ModuleLoader__.load({
11739
11751
  type: "code",
11740
11752
  lang: null,
11741
11753
  meta: null,
11742
- value: ""
11754
+ value: "",
11755
+ position: void 0
11743
11756
  };
11744
11757
  }
11745
11758
  /** @returns {InlineCode} */
11746
11759
  function codeText() {
11747
11760
  return {
11748
11761
  type: "inlineCode",
11749
- value: ""
11762
+ value: "",
11763
+ position: void 0
11750
11764
  };
11751
11765
  }
11752
11766
  /** @returns {Definition} */
@@ -11756,14 +11770,16 @@ window.__ModuleLoader__.load({
11756
11770
  identifier: "",
11757
11771
  label: null,
11758
11772
  title: null,
11759
- url: ""
11773
+ url: "",
11774
+ position: void 0
11760
11775
  };
11761
11776
  }
11762
11777
  /** @returns {Emphasis} */
11763
11778
  function emphasis() {
11764
11779
  return {
11765
11780
  type: "emphasis",
11766
- children: []
11781
+ children: [],
11782
+ position: void 0
11767
11783
  };
11768
11784
  }
11769
11785
  /** @returns {Heading} */
@@ -11771,18 +11787,23 @@ window.__ModuleLoader__.load({
11771
11787
  return {
11772
11788
  type: "heading",
11773
11789
  depth: 0,
11774
- children: []
11790
+ children: [],
11791
+ position: void 0
11775
11792
  };
11776
11793
  }
11777
11794
  /** @returns {Break} */
11778
11795
  function hardBreak() {
11779
- return { type: "break" };
11796
+ return {
11797
+ type: "break",
11798
+ position: void 0
11799
+ };
11780
11800
  }
11781
11801
  /** @returns {Html} */
11782
11802
  function html() {
11783
11803
  return {
11784
11804
  type: "html",
11785
- value: ""
11805
+ value: "",
11806
+ position: void 0
11786
11807
  };
11787
11808
  }
11788
11809
  /** @returns {Image} */
@@ -11791,7 +11812,8 @@ window.__ModuleLoader__.load({
11791
11812
  type: "image",
11792
11813
  title: null,
11793
11814
  url: "",
11794
- alt: null
11815
+ alt: null,
11816
+ position: void 0
11795
11817
  };
11796
11818
  }
11797
11819
  /** @returns {Link} */
@@ -11800,7 +11822,8 @@ window.__ModuleLoader__.load({
11800
11822
  type: "link",
11801
11823
  title: null,
11802
11824
  url: "",
11803
- children: []
11825
+ children: [],
11826
+ position: void 0
11804
11827
  };
11805
11828
  }
11806
11829
  /**
@@ -11813,7 +11836,8 @@ window.__ModuleLoader__.load({
11813
11836
  ordered: token.type === "listOrdered",
11814
11837
  start: null,
11815
11838
  spread: token._spread,
11816
- children: []
11839
+ children: [],
11840
+ position: void 0
11817
11841
  };
11818
11842
  }
11819
11843
  /**
@@ -11825,33 +11849,40 @@ window.__ModuleLoader__.load({
11825
11849
  type: "listItem",
11826
11850
  spread: token._spread,
11827
11851
  checked: null,
11828
- children: []
11852
+ children: [],
11853
+ position: void 0
11829
11854
  };
11830
11855
  }
11831
11856
  /** @returns {Paragraph} */
11832
11857
  function paragraph() {
11833
11858
  return {
11834
11859
  type: "paragraph",
11835
- children: []
11860
+ children: [],
11861
+ position: void 0
11836
11862
  };
11837
11863
  }
11838
11864
  /** @returns {Strong} */
11839
11865
  function strong() {
11840
11866
  return {
11841
11867
  type: "strong",
11842
- children: []
11868
+ children: [],
11869
+ position: void 0
11843
11870
  };
11844
11871
  }
11845
11872
  /** @returns {Text} */
11846
11873
  function text() {
11847
11874
  return {
11848
11875
  type: "text",
11849
- value: ""
11876
+ value: "",
11877
+ position: void 0
11850
11878
  };
11851
11879
  }
11852
11880
  /** @returns {ThematicBreak} */
11853
11881
  function thematicBreak() {
11854
- return { type: "thematicBreak" };
11882
+ return {
11883
+ type: "thematicBreak",
11884
+ position: void 0
11885
+ };
11855
11886
  }
11856
11887
  }
11857
11888
  /**
@@ -11890,7 +11921,7 @@ window.__ModuleLoader__.load({
11890
11921
  function extension(combined, extension) {
11891
11922
  /** @type {keyof Extension} */
11892
11923
  let key;
11893
- for (key in extension) if (own.call(extension, key)) switch (key) {
11924
+ for (key in extension) if (own$4.call(extension, key)) switch (key) {
11894
11925
  case "canContainEols": {
11895
11926
  const right = extension[key];
11896
11927
  if (right) combined[key].push(...right);
@@ -11901,6 +11932,12 @@ window.__ModuleLoader__.load({
11901
11932
  if (right) combined[key].push(...right);
11902
11933
  break;
11903
11934
  }
11935
+ case "afterExit":
11936
+ case "beforeEnter": {
11937
+ const right = extension[key];
11938
+ if (right) combined[key].push(right);
11939
+ break;
11940
+ }
11904
11941
  case "enter":
11905
11942
  case "exit": {
11906
11943
  const right = extension[key];
@@ -11918,7 +11955,7 @@ window.__ModuleLoader__.load({
11918
11955
  start: right.start,
11919
11956
  end: right.end
11920
11957
  }) + ") is open");
11921
- else throw new Error("Cannot close document, a token (`" + right.type + "`, " + stringifyPosition({
11958
+ throw new Error("Cannot close document, a token (`" + right.type + "`, " + stringifyPosition({
11922
11959
  start: right.start,
11923
11960
  end: right.end
11924
11961
  }) + ") is still open");
@@ -12067,13 +12104,13 @@ window.__ModuleLoader__.load({
12067
12104
  return value !== null && typeof value === "object" && "type" in value;
12068
12105
  }
12069
12106
  //#endregion
12070
- //#region ../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js
12107
+ //#region ../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.js
12071
12108
  /**
12072
12109
  * @param {string} d
12073
12110
  * @returns {string}
12074
12111
  */
12075
12112
  function color(d) {
12076
- return "\x1B[33m" + d + "\x1B[39m";
12113
+ return d;
12077
12114
  }
12078
12115
  //#endregion
12079
12116
  //#region ../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js
@@ -12397,7 +12434,7 @@ window.__ModuleLoader__.load({
12397
12434
  return value === null || value === void 0 ? empty : [value];
12398
12435
  }
12399
12436
  //#endregion
12400
- //#region ../../../node_modules/.pnpm/mdast-util-find-and-replace@3.0.2/node_modules/mdast-util-find-and-replace/lib/index.js
12437
+ //#region ../../../node_modules/.pnpm/mdast-util-find-and-replace@3.0.3/node_modules/mdast-util-find-and-replace/lib/index.js
12401
12438
  /**
12402
12439
  * @import {Nodes, Parents, PhrasingContent, Root, Text} from 'mdast'
12403
12440
  * @import {BuildVisitor, Test, VisitorResult} from 'unist-util-visit-parents'
@@ -12474,7 +12511,11 @@ window.__ModuleLoader__.load({
12474
12511
  const pairs = toPairs(list);
12475
12512
  let pairIndex = -1;
12476
12513
  while (++pairIndex < pairs.length) visitParents(tree, "text", visitor);
12477
- /** @type {BuildVisitor<Root, 'text'>} */
12514
+ /**
12515
+ * Visit a text node, and handle it if it is not in an ignored parent.
12516
+ *
12517
+ * @type {BuildVisitor<Root, 'text'>}
12518
+ */
12478
12519
  function visitor(node, parents) {
12479
12520
  let index = -1;
12480
12521
  /** @type {Parents | undefined} */
@@ -12492,11 +12533,11 @@ window.__ModuleLoader__.load({
12492
12533
  * Handle a text node which is not in an ignored parent.
12493
12534
  *
12494
12535
  * @param {Text} node
12495
- * Text node.
12536
+ * Text node to search in.
12496
12537
  * @param {Array<Parents>} parents
12497
- * Parents.
12538
+ * Ancestors of `node`.
12498
12539
  * @returns {VisitorResult}
12499
- * Result.
12540
+ * Where to continue visiting.
12500
12541
  */
12501
12542
  function handler(node, parents) {
12502
12543
  const parent = parents[parents.length - 1];
@@ -12524,12 +12565,12 @@ window.__ModuleLoader__.load({
12524
12565
  } : void 0;
12525
12566
  if (value === false) find.lastIndex = position + 1;
12526
12567
  else {
12527
- if (start !== position) nodes.push({
12568
+ if (start !== position) add({
12528
12569
  type: "text",
12529
12570
  value: node.value.slice(start, position)
12530
12571
  });
12531
- if (Array.isArray(value)) nodes.push(...value);
12532
- else if (value) nodes.push(value);
12572
+ if (Array.isArray(value)) for (const child of value) add(child);
12573
+ else if (value) add(value);
12533
12574
  start = position + match[0].length;
12534
12575
  change = true;
12535
12576
  }
@@ -12537,13 +12578,26 @@ window.__ModuleLoader__.load({
12537
12578
  match = find.exec(node.value);
12538
12579
  }
12539
12580
  if (change) {
12540
- if (start < node.value.length) nodes.push({
12581
+ if (start < node.value.length) add({
12541
12582
  type: "text",
12542
12583
  value: node.value.slice(start)
12543
12584
  });
12544
12585
  parent.children.splice(index, 1, ...nodes);
12545
12586
  } else nodes = [node];
12546
12587
  return index + nodes.length;
12588
+ /**
12589
+ * Add a node.
12590
+ *
12591
+ * @param {PhrasingContent} child
12592
+ * Node to add.
12593
+ * @returns {undefined}
12594
+ * Nothing.
12595
+ */
12596
+ function add(child) {
12597
+ const previous = nodes[nodes.length - 1];
12598
+ if (previous && previous.type === "text" && child.type === "text") previous.value += child.value;
12599
+ else nodes.push(child);
12600
+ }
12547
12601
  }
12548
12602
  }
12549
12603
  /**
@@ -12555,9 +12609,9 @@ window.__ModuleLoader__.load({
12555
12609
  * Clean pairs.
12556
12610
  */
12557
12611
  function toPairs(tupleOrList) {
12612
+ if (!Array.isArray(tupleOrList)) throw new TypeError("Expected find and replace tuple or list of tuples");
12558
12613
  /** @type {Pairs} */
12559
12614
  const result = [];
12560
- if (!Array.isArray(tupleOrList)) throw new TypeError("Expected find and replace tuple or list of tuples");
12561
12615
  /** @type {FindAndReplaceList} */
12562
12616
  const list = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];
12563
12617
  let index = -1;
@@ -12571,9 +12625,9 @@ window.__ModuleLoader__.load({
12571
12625
  * Turn a find into an expression.
12572
12626
  *
12573
12627
  * @param {Find} find
12574
- * Find.
12628
+ * Pattern to find.
12575
12629
  * @returns {RegExp}
12576
- * Expression.
12630
+ * Global expression.
12577
12631
  */
12578
12632
  function toExpression(find) {
12579
12633
  return typeof find === "string" ? new RegExp(escapeStringRegexp(find), "g") : find;
@@ -12582,9 +12636,9 @@ window.__ModuleLoader__.load({
12582
12636
  * Turn a replace into a function.
12583
12637
  *
12584
12638
  * @param {Replace} replace
12585
- * Replace.
12639
+ * Thing to replace with.
12586
12640
  * @returns {ReplaceFunction}
12587
- * Function.
12641
+ * Function that returns that thing.
12588
12642
  */
12589
12643
  function toFunction(replace) {
12590
12644
  return typeof replace === "function" ? replace : function() {
@@ -12987,6 +13041,864 @@ window.__ModuleLoader__.load({
12987
13041
  function peekDelete() {
12988
13042
  return "~";
12989
13043
  }
13044
+ convert([
13045
+ "break",
13046
+ "delete",
13047
+ "emphasis",
13048
+ "footnote",
13049
+ "footnoteReference",
13050
+ "image",
13051
+ "imageReference",
13052
+ "inlineCode",
13053
+ "inlineMath",
13054
+ "link",
13055
+ "linkReference",
13056
+ "mdxJsxTextElement",
13057
+ "mdxTextExpression",
13058
+ "strong",
13059
+ "text",
13060
+ "textDirective"
13061
+ ]);
13062
+ ({}).hasOwnProperty;
13063
+ ({}).hasOwnProperty;
13064
+ //#endregion
13065
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/util/check-quote.js
13066
+ /**
13067
+ * @import {Options, State} from 'mdast-util-to-markdown'
13068
+ */
13069
+ /**
13070
+ * Checks the preferred quote option.
13071
+ *
13072
+ * @param {State} state
13073
+ * Info passed around.
13074
+ * @returns {Exclude<Options['quote'], null | undefined>}
13075
+ * Preferred quote.
13076
+ */
13077
+ function checkQuote(state) {
13078
+ const marker = state.options.quote || "\"";
13079
+ if (marker !== "\"" && marker !== "'") throw new Error("Cannot serialize title with `" + marker + "` for `options.quote`, expected `\"`, or `'`");
13080
+ return marker;
13081
+ }
13082
+ //#endregion
13083
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js
13084
+ /**
13085
+ * @import {Options, State} from 'mdast-util-to-markdown'
13086
+ */
13087
+ /**
13088
+ * Checks the preferred emphasis option.
13089
+ *
13090
+ * @param {State} state
13091
+ * Info passed around.
13092
+ * @returns {Exclude<Options['emphasis'], null | undefined>}
13093
+ * Preferred emphasis marker.
13094
+ */
13095
+ function checkEmphasis(state) {
13096
+ const marker = state.options.emphasis || "*";
13097
+ if (marker !== "*" && marker !== "_") throw new Error("Cannot serialize emphasis with `" + marker + "` for `options.emphasis`, expected `*`, or `_`");
13098
+ return marker;
13099
+ }
13100
+ //#endregion
13101
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js
13102
+ /**
13103
+ * @import {AttentionInfo, Info, State} from 'mdast-util-to-markdown'
13104
+ * @import {Emphasis, Parents} from 'mdast'
13105
+ */
13106
+ emphasis.attention = attention$1;
13107
+ emphasis.peek = peek$1;
13108
+ /**
13109
+ * Serialize an emphasis node.
13110
+ *
13111
+ * Attention is properly handled by `containerPhrasing`.
13112
+ *
13113
+ * @param {Emphasis} node
13114
+ * Node to serialize.
13115
+ * @param {Parents | undefined} _
13116
+ * Parent node.
13117
+ * @param {State} state
13118
+ * Info passed around.
13119
+ * @param {Info} info
13120
+ * Info on surrounding context.
13121
+ * @returns {string}
13122
+ * Serialized markdown.
13123
+ */
13124
+ function emphasis(node, _, state, info) {
13125
+ const exit = state.enter("phrasing");
13126
+ const value = state.containerPhrasing({
13127
+ type: "root",
13128
+ children: [node]
13129
+ }, info);
13130
+ exit();
13131
+ return value;
13132
+ }
13133
+ /**
13134
+ * Serialize an emphasis node as attention.
13135
+ *
13136
+ * @param {Emphasis} _
13137
+ * Node to serialize.
13138
+ * @param {State} state
13139
+ * Info passed around.
13140
+ * @returns {AttentionInfo}
13141
+ * Info on how to serialize the node.
13142
+ */
13143
+ function attention$1(_, state) {
13144
+ return {
13145
+ construct: "emphasis",
13146
+ markers: checkEmphasis(state) === "*" ? ["*", "_"] : ["_", "*"],
13147
+ sizes: [1]
13148
+ };
13149
+ }
13150
+ /**
13151
+ * Peek at this node.
13152
+ *
13153
+ * @param {Emphasis} _
13154
+ * Node to serialize.
13155
+ * @param {Parents | undefined} _1
13156
+ * Parent node.
13157
+ * @param {State} state
13158
+ * Info passed around.
13159
+ * @returns {string}
13160
+ * Start of the serialized markdown.
13161
+ */
13162
+ function peek$1(_, _1, state) {
13163
+ return state.options.emphasis || "*";
13164
+ }
13165
+ //#endregion
13166
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/html.js
13167
+ /**
13168
+ * @import {Html} from 'mdast'
13169
+ */
13170
+ html.peek = htmlPeek;
13171
+ /**
13172
+ * Serialize an HTML node.
13173
+ *
13174
+ * @param {Html} node
13175
+ * Node to serialize.
13176
+ * @returns {string}
13177
+ * Serialized markdown.
13178
+ */
13179
+ function html(node) {
13180
+ return node.value || "";
13181
+ }
13182
+ /**
13183
+ * Peek at this node.
13184
+ *
13185
+ * @returns {string}
13186
+ * Start of the serialized markdown.
13187
+ */
13188
+ function htmlPeek() {
13189
+ return "<";
13190
+ }
13191
+ //#endregion
13192
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/image.js
13193
+ /**
13194
+ * @import {Info, State} from 'mdast-util-to-markdown'
13195
+ * @import {Image, Parents} from 'mdast'
13196
+ */
13197
+ image.peek = imagePeek;
13198
+ /**
13199
+ * Serialize an image node.
13200
+ *
13201
+ * @param {Image} node
13202
+ * Node to serialize.
13203
+ * @param {Parents | undefined} _
13204
+ * Parent node.
13205
+ * @param {State} state
13206
+ * Info passed around.
13207
+ * @param {Info} info
13208
+ * Info on surrounding context.
13209
+ * @returns {string}
13210
+ * Serialized markdown.
13211
+ */
13212
+ function image(node, _, state, info) {
13213
+ const quote = checkQuote(state);
13214
+ const suffix = quote === "\"" ? "Quote" : "Apostrophe";
13215
+ const exit = state.enter("image");
13216
+ let subexit = state.enter("label");
13217
+ const tracker = state.createTracker(info);
13218
+ let value = tracker.move("![");
13219
+ value += tracker.move(state.safe(node.alt, {
13220
+ before: value,
13221
+ after: "]",
13222
+ ...tracker.current()
13223
+ }));
13224
+ value += tracker.move("](");
13225
+ subexit();
13226
+ if (!node.url && node.title || /[\0- \u007F]/.test(node.url)) {
13227
+ subexit = state.enter("destinationLiteral");
13228
+ value += tracker.move("<");
13229
+ value += tracker.move(state.safe(node.url, {
13230
+ before: value,
13231
+ after: ">",
13232
+ ...tracker.current()
13233
+ }));
13234
+ value += tracker.move(">");
13235
+ } else {
13236
+ subexit = state.enter("destinationRaw");
13237
+ value += tracker.move(state.safe(node.url, {
13238
+ before: value,
13239
+ after: node.title ? " " : ")",
13240
+ ...tracker.current()
13241
+ }));
13242
+ }
13243
+ subexit();
13244
+ if (node.title) {
13245
+ subexit = state.enter(`title${suffix}`);
13246
+ value += tracker.move(" " + quote);
13247
+ value += tracker.move(state.safe(node.title, {
13248
+ before: value,
13249
+ after: quote,
13250
+ ...tracker.current()
13251
+ }));
13252
+ value += tracker.move(quote);
13253
+ subexit();
13254
+ }
13255
+ value += tracker.move(")");
13256
+ exit();
13257
+ return value;
13258
+ }
13259
+ /**
13260
+ * Peek at this node.
13261
+ *
13262
+ * @returns {string}
13263
+ * Start of the serialized markdown.
13264
+ */
13265
+ function imagePeek() {
13266
+ return "!";
13267
+ }
13268
+ //#endregion
13269
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js
13270
+ /**
13271
+ * @import {Info, State} from 'mdast-util-to-markdown'
13272
+ * @import {ImageReference, Parents} from 'mdast'
13273
+ */
13274
+ imageReference.peek = imageReferencePeek;
13275
+ /**
13276
+ * Serialize an image reference node.
13277
+ *
13278
+ * @param {ImageReference} node
13279
+ * Node to serialize.
13280
+ * @param {Parents | undefined} _
13281
+ * Parent node.
13282
+ * @param {State} state
13283
+ * Info passed around.
13284
+ * @param {Info} info
13285
+ * Info on surrounding context.
13286
+ * @returns {string}
13287
+ * Serialized markdown.
13288
+ */
13289
+ function imageReference(node, _, state, info) {
13290
+ const type = node.referenceType;
13291
+ const exit = state.enter("imageReference");
13292
+ let subexit = state.enter("label");
13293
+ const tracker = state.createTracker(info);
13294
+ let value = tracker.move("![");
13295
+ const alt = state.safe(node.alt, {
13296
+ before: value,
13297
+ after: "]",
13298
+ ...tracker.current()
13299
+ });
13300
+ value += tracker.move(alt + "][");
13301
+ subexit();
13302
+ const stack = state.stack;
13303
+ state.stack = stack.filter(function(d) {
13304
+ return d !== "phrasing";
13305
+ });
13306
+ subexit = state.enter("reference");
13307
+ const reference = state.safe(state.associationId(node), {
13308
+ before: value,
13309
+ after: "]",
13310
+ ...tracker.current()
13311
+ });
13312
+ subexit();
13313
+ state.stack = stack;
13314
+ exit();
13315
+ if (type === "full" || !alt || alt !== reference) value += tracker.move(reference + "]");
13316
+ else if (type === "shortcut") value = value.slice(0, -1);
13317
+ else value += tracker.move("]");
13318
+ return value;
13319
+ }
13320
+ /**
13321
+ * Peek at this node.
13322
+ *
13323
+ * @returns {string}
13324
+ * Start of the serialized markdown.
13325
+ */
13326
+ function imageReferencePeek() {
13327
+ return "!";
13328
+ }
13329
+ //#endregion
13330
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js
13331
+ /**
13332
+ * @import {State} from 'mdast-util-to-markdown'
13333
+ * @import {InlineCode, Parents} from 'mdast'
13334
+ */
13335
+ inlineCode.peek = inlineCodePeek;
13336
+ /**
13337
+ * Serialize an inline code node.
13338
+ *
13339
+ * @param {InlineCode} node
13340
+ * Node to serialize.
13341
+ * @param {Parents | undefined} _
13342
+ * Parent node.
13343
+ * @param {State} state
13344
+ * Info passed around.
13345
+ * @returns {string}
13346
+ * Serialized markdown.
13347
+ */
13348
+ function inlineCode(node, _, state) {
13349
+ let value = node.value || "";
13350
+ let sequence = "`";
13351
+ let index = -1;
13352
+ while (new RegExp("(^|[^`])" + sequence + "([^`]|$)").test(value)) sequence += "`";
13353
+ if (/[^\n\r ]/.test(value) && (/^[\n\r ]/.test(value) && /[\n\r ]$/.test(value) || /^`|`$/.test(value))) value = " " + value + " ";
13354
+ while (++index < state.unsafe.length) {
13355
+ const pattern = state.unsafe[index];
13356
+ const expression = state.compilePattern(pattern);
13357
+ if (!pattern.atBreak) continue;
13358
+ /** @type {RegExpExecArray | null} */
13359
+ let match;
13360
+ while (match = expression.exec(value)) {
13361
+ let position = match.index;
13362
+ if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) position--;
13363
+ value = value.slice(0, position) + " " + value.slice(match.index + 1);
13364
+ }
13365
+ }
13366
+ return sequence + value + sequence;
13367
+ }
13368
+ /**
13369
+ * Peek at this node.
13370
+ *
13371
+ * @returns {string}
13372
+ * Start of the serialized markdown.
13373
+ */
13374
+ function inlineCodePeek() {
13375
+ return "`";
13376
+ }
13377
+ //#endregion
13378
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js
13379
+ /**
13380
+ * @import {State} from 'mdast-util-to-markdown'
13381
+ * @import {Link} from 'mdast'
13382
+ */
13383
+ /**
13384
+ * Checks if a link can be formatted as an autolink.
13385
+ *
13386
+ * @param {Link} node
13387
+ * Node to check.
13388
+ * @param {State} state
13389
+ * Info passed around.
13390
+ * @returns {boolean}
13391
+ * Whether the link can be formatted as an autolink.
13392
+ */
13393
+ function formatLinkAsAutolink(node, state) {
13394
+ const raw = toString(node);
13395
+ 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));
13396
+ }
13397
+ //#endregion
13398
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/link.js
13399
+ /**
13400
+ * @import {Info, State} from 'mdast-util-to-markdown'
13401
+ * @import {Link, Parents} from 'mdast'
13402
+ * @import {Exit} from '../types.js'
13403
+ */
13404
+ link.peek = linkPeek;
13405
+ /**
13406
+ * Serialize a link node.
13407
+ *
13408
+ * @param {Link} node
13409
+ * Node to serialize.
13410
+ * @param {Parents | undefined} _
13411
+ * Parent node.
13412
+ * @param {State} state
13413
+ * Info passed around.
13414
+ * @param {Info} info
13415
+ * Info on surrounding context.
13416
+ * @returns {string}
13417
+ * Serialized markdown.
13418
+ */
13419
+ function link(node, _, state, info) {
13420
+ const quote = checkQuote(state);
13421
+ const suffix = quote === "\"" ? "Quote" : "Apostrophe";
13422
+ const tracker = state.createTracker(info);
13423
+ if (formatLinkAsAutolink(node, state)) {
13424
+ const stack = state.stack;
13425
+ state.stack = stack.filter(function(d) {
13426
+ return d !== "phrasing";
13427
+ });
13428
+ const exit = state.enter("autolink");
13429
+ let value = tracker.move("<");
13430
+ value += tracker.move(state.containerPhrasing(node, {
13431
+ before: value,
13432
+ after: ">",
13433
+ ...tracker.current()
13434
+ }));
13435
+ value += tracker.move(">");
13436
+ exit();
13437
+ state.stack = stack;
13438
+ return value;
13439
+ }
13440
+ const exit = state.enter("link");
13441
+ let subexit = state.enter("label");
13442
+ let value = tracker.move("[");
13443
+ value += tracker.move(state.containerPhrasing(node, {
13444
+ before: value,
13445
+ after: "](",
13446
+ ...tracker.current()
13447
+ }));
13448
+ value += tracker.move("](");
13449
+ subexit();
13450
+ if (!node.url && node.title || /[\0- \u007F]/.test(node.url)) {
13451
+ subexit = state.enter("destinationLiteral");
13452
+ value += tracker.move("<");
13453
+ value += tracker.move(state.safe(node.url, {
13454
+ before: value,
13455
+ after: ">",
13456
+ ...tracker.current()
13457
+ }));
13458
+ value += tracker.move(">");
13459
+ } else {
13460
+ subexit = state.enter("destinationRaw");
13461
+ value += tracker.move(state.safe(node.url, {
13462
+ before: value,
13463
+ after: node.title ? " " : ")",
13464
+ ...tracker.current()
13465
+ }));
13466
+ }
13467
+ subexit();
13468
+ if (node.title) {
13469
+ subexit = state.enter(`title${suffix}`);
13470
+ value += tracker.move(" " + quote);
13471
+ value += tracker.move(state.safe(node.title, {
13472
+ before: value,
13473
+ after: quote,
13474
+ ...tracker.current()
13475
+ }));
13476
+ value += tracker.move(quote);
13477
+ subexit();
13478
+ }
13479
+ value += tracker.move(")");
13480
+ exit();
13481
+ return value;
13482
+ }
13483
+ /**
13484
+ * Peek at this node.
13485
+ *
13486
+ * @param {Link} node
13487
+ * Node to peek at.
13488
+ * @param {Parents | undefined} _
13489
+ * Parent node.
13490
+ * @param {State} state
13491
+ * Info passed around.
13492
+ * @returns {string}
13493
+ * Start of the serialized markdown.
13494
+ */
13495
+ function linkPeek(node, _, state) {
13496
+ return formatLinkAsAutolink(node, state) ? "<" : "[";
13497
+ }
13498
+ //#endregion
13499
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js
13500
+ /**
13501
+ * @import {Info, State} from 'mdast-util-to-markdown'
13502
+ * @import {LinkReference, Parents} from 'mdast'
13503
+ */
13504
+ linkReference.peek = linkReferencePeek;
13505
+ /**
13506
+ * Serialize a link reference node.
13507
+ *
13508
+ * @param {LinkReference} node
13509
+ * Node to serialize.
13510
+ * @param {Parents | undefined} _
13511
+ * Parent node.
13512
+ * @param {State} state
13513
+ * Info passed around.
13514
+ * @param {Info} info
13515
+ * Info on surrounding context.
13516
+ * @returns {string}
13517
+ * Serialized markdown.
13518
+ */
13519
+ function linkReference(node, _, state, info) {
13520
+ const type = node.referenceType;
13521
+ const exit = state.enter("linkReference");
13522
+ let subexit = state.enter("label");
13523
+ const tracker = state.createTracker(info);
13524
+ let value = tracker.move("[");
13525
+ const text = state.containerPhrasing(node, {
13526
+ before: value,
13527
+ after: "]",
13528
+ ...tracker.current()
13529
+ });
13530
+ value += tracker.move(text + "][");
13531
+ subexit();
13532
+ const stack = state.stack;
13533
+ state.stack = stack.filter(function(d) {
13534
+ return d !== "phrasing";
13535
+ });
13536
+ subexit = state.enter("reference");
13537
+ const reference = state.safe(state.associationId(node), {
13538
+ before: value,
13539
+ after: "]",
13540
+ ...tracker.current()
13541
+ });
13542
+ subexit();
13543
+ state.stack = stack;
13544
+ exit();
13545
+ if (type === "full" || !text || text !== reference) value += tracker.move(reference + "]");
13546
+ else if (type === "shortcut") value = value.slice(0, -1);
13547
+ else value += tracker.move("]");
13548
+ return value;
13549
+ }
13550
+ /**
13551
+ * Peek at this node.
13552
+ *
13553
+ * @returns {string}
13554
+ * Start of the serialized markdown.
13555
+ */
13556
+ function linkReferencePeek() {
13557
+ return "[";
13558
+ }
13559
+ //#endregion
13560
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/util/check-strong.js
13561
+ /**
13562
+ * @import {Options, State} from 'mdast-util-to-markdown'
13563
+ */
13564
+ /**
13565
+ * Checks the preferred strong option.
13566
+ *
13567
+ * @param {State} state
13568
+ * Info passed around.
13569
+ * @returns {Exclude<Options['strong'], null | undefined>}
13570
+ * Preferred strong marker.
13571
+ */
13572
+ function checkStrong(state) {
13573
+ const marker = state.options.strong || "*";
13574
+ if (marker !== "*" && marker !== "_") throw new Error("Cannot serialize strong with `" + marker + "` for `options.strong`, expected `*`, or `_`");
13575
+ return marker;
13576
+ }
13577
+ //#endregion
13578
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/handle/strong.js
13579
+ /**
13580
+ * @import {AttentionInfo, Info, State} from 'mdast-util-to-markdown'
13581
+ * @import {Parents, Strong} from 'mdast'
13582
+ */
13583
+ strong.attention = attention;
13584
+ strong.peek = peek;
13585
+ /**
13586
+ * Serialize a strong node.
13587
+ *
13588
+ * Attention is properly handled by `containerPhrasing`.
13589
+ *
13590
+ * @param {Strong} node
13591
+ * Node to serialize.
13592
+ * @param {Parents | undefined} _
13593
+ * Parent node.
13594
+ * @param {State} state
13595
+ * Info passed around.
13596
+ * @param {Info} info
13597
+ * Info on surrounding context.
13598
+ * @returns {string}
13599
+ * Serialized markdown.
13600
+ */
13601
+ function strong(node, _, state, info) {
13602
+ const exit = state.enter("phrasing");
13603
+ const value = state.containerPhrasing({
13604
+ type: "root",
13605
+ children: [node]
13606
+ }, info);
13607
+ exit();
13608
+ return value;
13609
+ }
13610
+ /**
13611
+ * Serialize a strong node as attention.
13612
+ *
13613
+ * @param {Strong} _
13614
+ * Node to serialize.
13615
+ * @param {State} state
13616
+ * Info passed around.
13617
+ * @returns {AttentionInfo}
13618
+ * Info on how to serialize the node.
13619
+ */
13620
+ function attention(_, state) {
13621
+ return {
13622
+ construct: "strong",
13623
+ markers: checkStrong(state) === "*" ? ["*", "_"] : ["_", "*"],
13624
+ sizes: [2]
13625
+ };
13626
+ }
13627
+ /**
13628
+ * Peek at this node.
13629
+ *
13630
+ * @param {Strong} _
13631
+ * Node to serialize.
13632
+ * @param {Parents | undefined} _1
13633
+ * Parent node.
13634
+ * @param {State} state
13635
+ * Info passed around.
13636
+ * @returns {string}
13637
+ * Start of the serialized markdown.
13638
+ */
13639
+ function peek(_, _1, state) {
13640
+ return state.options.strong || "*";
13641
+ }
13642
+ //#endregion
13643
+ //#region ../../../node_modules/.pnpm/mdast-util-to-markdown@2.2.0/node_modules/mdast-util-to-markdown/lib/unsafe.js
13644
+ /**
13645
+ * @import {ConstructName, Unsafe} from 'mdast-util-to-markdown'
13646
+ */
13647
+ /**
13648
+ * List of constructs that occur in phrasing (paragraphs, headings), but cannot
13649
+ * contain things like attention (emphasis, strong), images, or links.
13650
+ * So they sort of cancel each other out.
13651
+ * Note: could use a better name.
13652
+ *
13653
+ * @type {Array<ConstructName>}
13654
+ */
13655
+ const fullPhrasingSpans = [
13656
+ "autolink",
13657
+ "destinationLiteral",
13658
+ "destinationRaw",
13659
+ "reference",
13660
+ "titleQuote",
13661
+ "titleApostrophe"
13662
+ ];
13663
+ /** @type {Array<Unsafe>} */
13664
+ const unsafe = [
13665
+ {
13666
+ character: " ",
13667
+ after: "[\\r\\n]",
13668
+ inConstruct: "phrasing"
13669
+ },
13670
+ {
13671
+ character: " ",
13672
+ before: "[\\r\\n]",
13673
+ inConstruct: "phrasing"
13674
+ },
13675
+ {
13676
+ character: " ",
13677
+ inConstruct: ["codeFencedLangGraveAccent", "codeFencedLangTilde"]
13678
+ },
13679
+ {
13680
+ character: "\r",
13681
+ inConstruct: [
13682
+ "codeFencedLangGraveAccent",
13683
+ "codeFencedLangTilde",
13684
+ "codeFencedMetaGraveAccent",
13685
+ "codeFencedMetaTilde",
13686
+ "destinationLiteral",
13687
+ "headingAtx"
13688
+ ]
13689
+ },
13690
+ {
13691
+ character: "\n",
13692
+ inConstruct: [
13693
+ "codeFencedLangGraveAccent",
13694
+ "codeFencedLangTilde",
13695
+ "codeFencedMetaGraveAccent",
13696
+ "codeFencedMetaTilde",
13697
+ "destinationLiteral",
13698
+ "headingAtx"
13699
+ ]
13700
+ },
13701
+ {
13702
+ character: "\r",
13703
+ before: "[\\r\\n]",
13704
+ inConstruct: "phrasing"
13705
+ },
13706
+ {
13707
+ character: "\r",
13708
+ after: "\\r",
13709
+ inConstruct: "phrasing"
13710
+ },
13711
+ {
13712
+ character: "\n",
13713
+ before: "\\n",
13714
+ inConstruct: "phrasing"
13715
+ },
13716
+ {
13717
+ character: "\n",
13718
+ after: "[\\r\\n]",
13719
+ inConstruct: "phrasing"
13720
+ },
13721
+ {
13722
+ character: " ",
13723
+ after: "[\\r\\n]",
13724
+ inConstruct: "phrasing"
13725
+ },
13726
+ {
13727
+ character: " ",
13728
+ before: "[\\r\\n]",
13729
+ inConstruct: "phrasing"
13730
+ },
13731
+ {
13732
+ character: " ",
13733
+ inConstruct: ["codeFencedLangGraveAccent", "codeFencedLangTilde"]
13734
+ },
13735
+ {
13736
+ character: "!",
13737
+ after: "\\[",
13738
+ inConstruct: "phrasing",
13739
+ notInConstruct: fullPhrasingSpans
13740
+ },
13741
+ {
13742
+ character: "\"",
13743
+ inConstruct: "titleQuote"
13744
+ },
13745
+ {
13746
+ atBreak: true,
13747
+ character: "#"
13748
+ },
13749
+ {
13750
+ character: "#",
13751
+ inConstruct: "headingAtx",
13752
+ after: "(?:[\r\n]|$)"
13753
+ },
13754
+ {
13755
+ character: "&",
13756
+ after: "[#A-Za-z]",
13757
+ inConstruct: "phrasing"
13758
+ },
13759
+ {
13760
+ character: "'",
13761
+ inConstruct: "titleApostrophe"
13762
+ },
13763
+ {
13764
+ character: "(",
13765
+ inConstruct: "destinationRaw"
13766
+ },
13767
+ {
13768
+ before: "\\]",
13769
+ character: "(",
13770
+ inConstruct: "phrasing",
13771
+ notInConstruct: fullPhrasingSpans
13772
+ },
13773
+ {
13774
+ atBreak: true,
13775
+ before: "\\d+",
13776
+ character: ")"
13777
+ },
13778
+ {
13779
+ character: ")",
13780
+ inConstruct: "destinationRaw"
13781
+ },
13782
+ {
13783
+ atBreak: true,
13784
+ character: "*",
13785
+ after: "(?:[ \r\n*])"
13786
+ },
13787
+ {
13788
+ character: "*",
13789
+ inConstruct: "phrasing",
13790
+ notInConstruct: fullPhrasingSpans
13791
+ },
13792
+ {
13793
+ atBreak: true,
13794
+ character: "+",
13795
+ after: "(?:[ \r\n])"
13796
+ },
13797
+ {
13798
+ atBreak: true,
13799
+ character: "-",
13800
+ after: "(?:[ \r\n-])"
13801
+ },
13802
+ {
13803
+ atBreak: true,
13804
+ before: "\\d+",
13805
+ character: ".",
13806
+ after: "(?:[ \r\n]|$)"
13807
+ },
13808
+ {
13809
+ atBreak: true,
13810
+ character: "<",
13811
+ after: "[!/?A-Za-z]"
13812
+ },
13813
+ {
13814
+ character: "<",
13815
+ after: "[!/?A-Za-z]",
13816
+ inConstruct: "phrasing",
13817
+ notInConstruct: fullPhrasingSpans
13818
+ },
13819
+ {
13820
+ character: "<",
13821
+ inConstruct: "destinationLiteral"
13822
+ },
13823
+ {
13824
+ atBreak: true,
13825
+ character: "="
13826
+ },
13827
+ {
13828
+ atBreak: true,
13829
+ character: ">"
13830
+ },
13831
+ {
13832
+ character: ">",
13833
+ inConstruct: "destinationLiteral"
13834
+ },
13835
+ {
13836
+ atBreak: true,
13837
+ character: "["
13838
+ },
13839
+ {
13840
+ character: "[",
13841
+ inConstruct: "phrasing",
13842
+ notInConstruct: fullPhrasingSpans
13843
+ },
13844
+ {
13845
+ character: "[",
13846
+ inConstruct: ["label", "reference"]
13847
+ },
13848
+ {
13849
+ character: "\\",
13850
+ after: "[\\r\\n]",
13851
+ inConstruct: "phrasing"
13852
+ },
13853
+ {
13854
+ character: "]",
13855
+ inConstruct: ["label", "reference"]
13856
+ },
13857
+ {
13858
+ atBreak: true,
13859
+ character: "_"
13860
+ },
13861
+ {
13862
+ character: "_",
13863
+ inConstruct: "phrasing",
13864
+ notInConstruct: fullPhrasingSpans
13865
+ },
13866
+ {
13867
+ atBreak: true,
13868
+ character: "`"
13869
+ },
13870
+ {
13871
+ character: "`",
13872
+ inConstruct: ["codeFencedLangGraveAccent", "codeFencedMetaGraveAccent"]
13873
+ },
13874
+ {
13875
+ character: "`",
13876
+ inConstruct: "phrasing",
13877
+ notInConstruct: fullPhrasingSpans
13878
+ },
13879
+ {
13880
+ atBreak: true,
13881
+ character: "~"
13882
+ },
13883
+ {
13884
+ character: "<",
13885
+ inConstruct: "autolink"
13886
+ },
13887
+ {
13888
+ character: ">",
13889
+ inConstruct: "autolink"
13890
+ },
13891
+ {
13892
+ character: "",
13893
+ inConstruct: "autolink"
13894
+ }
13895
+ ];
13896
+ let code$1 = -1;
13897
+ while (++code$1 < 33) unsafe.push({
13898
+ character: String.fromCharCode(code$1),
13899
+ inConstruct: "autolink"
13900
+ });
13901
+ ({}).hasOwnProperty;
12990
13902
  //#endregion
12991
13903
  //#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
12992
13904
  /**
@@ -14325,6 +15237,7 @@ window.__ModuleLoader__.load({
14325
15237
  return tail && tail[1].type === "gfmFootnoteDefinitionIndent" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code) : nok(code);
14326
15238
  }
14327
15239
  }
15240
+ ({}).hasOwnProperty;
14328
15241
  //#endregion
14329
15242
  //#region ../../../node_modules/.pnpm/micromark-extension-gfm-strikethrough@2.1.0/node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js
14330
15243
  /**
@@ -15332,6 +16245,7 @@ window.__ModuleLoader__.load({
15332
16245
  const side = event[0] === "enter" ? "start" : "end";
15333
16246
  return event[1][side];
15334
16247
  }
16248
+ new RegExp("^" + /<(\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\t\n\f\r />])/gi.source, "i");
15335
16249
  //#endregion
15336
16250
  //#region ../../../node_modules/.pnpm/micromark-extension-gfm-task-list-item@2.1.0/node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js
15337
16251
  /**
@@ -15755,7 +16669,7 @@ window.__ModuleLoader__.load({
15755
16669
  chunkString: "chunkString"
15756
16670
  };
15757
16671
  //#endregion
15758
- //#region ../../client/ui-primitives/src/reference.ts
16672
+ //#region ../../client/dsh-client-ui-primitives/src/reference.ts
15759
16673
  const DEFAULT_PROTOCOL = "file";
15760
16674
  const EXTERNAL_PROTOCOLS = [
15761
16675
  "http",
@@ -16196,7 +17110,7 @@ window.__ModuleLoader__.load({
16196
17110
  }
16197
17111
  }
16198
17112
  //#endregion
16199
- //#region ../../client/ui-primitives/src/reference-markdown.tsx
17113
+ //#region ../../client/dsh-client-ui-primitives/src/reference-markdown.tsx
16200
17114
  function referenceMentions(actions, tokens) {
16201
17115
  return { resolve: (value) => {
16202
17116
  const reference = tokens?.get(value) ?? parseReferenceToken(value);
@@ -16255,7 +17169,7 @@ window.__ModuleLoader__.load({
16255
17169
  if (reference.protocol === "file") actions.openFile(path);
16256
17170
  }
16257
17171
  //#endregion
16258
- //#region ../../client/ui-primitives/src/client/index.ts
17172
+ //#region ../../client/dsh-client-ui-primitives/src/client/index.ts
16259
17173
  var client_exports = /* @__PURE__ */ __exportAll({
16260
17174
  Bubble: () => Bubble,
16261
17175
  Button: () => Button$1,
@@ -16268,13 +17182,11 @@ window.__ModuleLoader__.load({
16268
17182
  SCHEMA_FORM_NS: () => NS$1,
16269
17183
  SchemaFormController: () => SchemaFormController,
16270
17184
  SchemaFormHints: () => SchemaFormHints,
16271
- SearchInput: () => SearchInput,
16272
17185
  SearchSelect: () => SearchSelect,
16273
17186
  SeatButton: () => SeatButton,
16274
17187
  SettingsFieldRow: () => SettingsFieldRow,
16275
17188
  Spinner: () => Spinner,
16276
17189
  Stack: () => Stack,
16277
- Tabs: () => Tabs,
16278
17190
  TagInput: () => TagInput,
16279
17191
  Text: () => Text,
16280
17192
  TimeLabel: () => TimeLabel,
@@ -16303,26 +17215,6 @@ window.__ModuleLoader__.load({
16303
17215
  apply$2(ctx);
16304
17216
  }
16305
17217
  //#endregion
16306
- //#region src/catalog-remote.ts
16307
- const CATALOG_NS = "sessionModeCatalog";
16308
- const SESSION_MODE_CATALOG_REMOTE = {
16309
- package: "@morlay/dsh-session-mode",
16310
- descriptors: [{
16311
- id: "@morlay/dsh-session-mode#sessionModeCatalog/list",
16312
- service: CATALOG_NS,
16313
- namespace: CATALOG_NS,
16314
- method: "list",
16315
- implementation: "remoteExportList",
16316
- invocation: { kind: "direct" },
16317
- parameters: [],
16318
- result: { mode: "src-json" }
16319
- }]
16320
- };
16321
- //#endregion
16322
- //#region src/shared.ts
16323
- const SESSION_MODE_PATH = "/session-mode";
16324
- const POLICY_NAMES = ["fs/write-intent", "fs/edit-intent"];
16325
- //#endregion
16326
17218
  //#region src/client/llm-directory.ts
16327
17219
  function routeKey(provider, model) {
16328
17220
  return `${provider}\u0000${model}`;
@@ -17741,7 +18633,6 @@ window.__ModuleLoader__.load({
17741
18633
  return unwrapService(scope.schemaFormHints);
17742
18634
  }
17743
18635
  function apply(ctx) {
17744
- apply$1(ctx);
17745
18636
  const t = ctx.locale.bind(NS);
17746
18637
  ctx.effect(() => ctx.locale.register(NS, {
17747
18638
  zh,