@sparkelf/dsh-knowledge-base 0.1.24 → 0.1.26

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/lib/client.js CHANGED
@@ -61,6 +61,21 @@ window.__ModuleLoader__.load({
61
61
  trashRestore: "trash.restore",
62
62
  /** Search the mounted tree by file name and text. */
63
63
  search: "search",
64
+ /**
65
+ * Read the permission-filtered knowledge-graph tree.
66
+ *
67
+ * The graph tab's only data route and strictly read-only: it scans
68
+ * `知识图谱/*` under the caller's scopes, asks `canReadPath` once per graph, and
69
+ * returns the domain tree. No graph, topic or relation is created here.
70
+ */
71
+ graph: "graph",
72
+ /**
73
+ * The canvas-only page the graph tab embeds.
74
+ *
75
+ * A page rather than a JSON route: the first version reuses the prototype's
76
+ * mind-map canvas as-is, and the panel feeds it through `postMessage`.
77
+ */
78
+ graphCanvas: "graph.canvas",
64
79
  /** List one directory level, with each entry's modification time. */
65
80
  list: "list",
66
81
  /** Read one file for the preview, without needing a conversation session. */
@@ -312,42 +327,42 @@ window.__ModuleLoader__.load({
312
327
  }
313
328
  //#endregion
314
329
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeSettingsSection.module.css.mjs
315
- const css$17 = ".c269jW_section{max-width:720px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}.c269jW_title{font:var(--dsw-font-base-strong-16);margin:0}.c269jW_body{flex-direction:column;gap:10px;display:flex}.c269jW_groupTitle{color:var(--dsw-alias-label-secondary);margin:16px 0 0;font-size:12px;font-weight:500;line-height:18px}.c269jW_statusRow{align-items:center;gap:8px;display:flex}.c269jW_statusLabel{font:var(--dsw-font-xxs-strong-12)}.c269jW_pairs{gap:6px;margin:0;display:grid}.c269jW_pair{grid-template-columns:minmax(120px,34%) 1fr;align-items:baseline;gap:12px;display:grid}.c269jW_pair dt{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.c269jW_pair dd{overflow-wrap:anywhere;font:var(--dsw-font-xxs-12);margin:0}.c269jW_pair code{font:var(--dsw-font-xxs-12) var(--ds-font-family-code)}.c269jW_detail{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);margin:0}.c269jW_notice{font:var(--dsw-font-xxs-12);margin:0}.c269jW_wizard{flex-direction:column;gap:10px;margin-top:4px;display:flex}.c269jW_field{flex-direction:column;gap:6px;display:flex}.c269jW_fieldLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary)}.c269jW_select{box-sizing:border-box;border-radius:var(--dsw-radius-md);border:.5px solid var(--dsw-alias-border-l4);background:var(--dsw-alias-bg-layer-1);height:32px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-14);max-width:420px;padding:0 10px}.c269jW_select:focus-visible{border-color:var(--dsw-alias-state-business-primary);outline:none}.c269jW_steps{gap:6px;margin:0;padding:0;list-style:none;display:grid}.c269jW_step{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:6px 10px;display:flex}.c269jW_stepLabel{font:var(--dsw-font-xxs-12)}.c269jW_logBox{flex-direction:column;gap:6px;display:flex}.c269jW_log{border-radius:var(--dsw-radius-sm);border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);max-height:320px;font:var(--dsw-font-xxs-12) var(--ds-font-family-code);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:10px;line-height:1.5;overflow:auto}.c269jW_modeRow{flex-wrap:wrap;gap:8px;margin:2px 0 6px;display:flex}.c269jW_modeOption{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);cursor:pointer;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.c269jW_modeOption:hover{background:var(--dsw-alias-interactive-bg-hover)}.c269jW_modeOption input{accent-color:var(--dsw-alias-state-business-primary);margin:0}.c269jW_modeOption:has(input:checked){border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-1)}.c269jW_input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);width:100%;min-width:0;height:32px;color:var(--dsw-alias-label-primary);font:inherit;padding:0 10px;font-size:14px;line-height:22px}.c269jW_input::placeholder{color:var(--dsw-alias-label-dimmed)}.c269jW_input:focus-visible{border-color:var(--dsw-alias-state-business-primary);outline:none}.c269jW_input:disabled{opacity:.6;cursor:default}.c269jW_saveRow{align-items:center;gap:8px;padding-top:16px;display:flex}.c269jW_saveRow .c269jW_notice{margin:0}.c269jW_badgeOk,.c269jW_badgeWarn{font:var(--dsw-font-xxxs-11);white-space:nowrap;border-radius:4px;padding:1px 6px}.c269jW_badgeOk{color:var(--dsw-alias-state-success-primary);background:var(--dsw-alias-state-success-bg)}.c269jW_badgeWarn{color:var(--dsw-alias-state-warning-primary);background:var(--dsw-alias-state-warning-bg)}.c269jW_error{color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxs-12);margin:0}";
316
- const tagId$17 = "@sparkelf/dsh-knowledge-base/KnowledgeSettingsSection.module.css";
317
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$17) + "]") === null) {
330
+ const css$21 = ".c269jW_section{max-width:720px;color:var(--dsw-alias-label-primary);flex-direction:column;gap:12px;display:flex}.c269jW_title{font:var(--dsw-font-base-strong-16);margin:0}.c269jW_body{flex-direction:column;gap:10px;display:flex}.c269jW_groupTitle{color:var(--dsw-alias-label-secondary);margin:16px 0 0;font-size:12px;font-weight:500;line-height:18px}.c269jW_statusRow{align-items:center;gap:8px;display:flex}.c269jW_statusLabel{font:var(--dsw-font-xxs-strong-12)}.c269jW_pairs{gap:6px;margin:0;display:grid}.c269jW_pair{grid-template-columns:minmax(120px,34%) 1fr;align-items:baseline;gap:12px;display:grid}.c269jW_pair dt{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.c269jW_pair dd{overflow-wrap:anywhere;font:var(--dsw-font-xxs-12);margin:0}.c269jW_pair code{font:var(--dsw-font-xxs-12) var(--ds-font-family-code)}.c269jW_detail{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);margin:0}.c269jW_notice{font:var(--dsw-font-xxs-12);margin:0}.c269jW_wizard{flex-direction:column;gap:10px;margin-top:4px;display:flex}.c269jW_field{flex-direction:column;gap:6px;display:flex}.c269jW_fieldLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary)}.c269jW_select{box-sizing:border-box;border-radius:var(--dsw-radius-md);border:.5px solid var(--dsw-alias-border-l4);background:var(--dsw-alias-bg-layer-1);height:32px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-14);max-width:420px;padding:0 10px}.c269jW_select:focus-visible{border-color:var(--dsw-alias-state-business-primary);outline:none}.c269jW_steps{gap:6px;margin:0;padding:0;list-style:none;display:grid}.c269jW_step{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:6px 10px;display:flex}.c269jW_stepLabel{font:var(--dsw-font-xxs-12)}.c269jW_logBox{flex-direction:column;gap:6px;display:flex}.c269jW_log{border-radius:var(--dsw-radius-sm);border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);max-height:320px;font:var(--dsw-font-xxs-12) var(--ds-font-family-code);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:10px;line-height:1.5;overflow:auto}.c269jW_modeRow{flex-wrap:wrap;gap:8px;margin:2px 0 6px;display:flex}.c269jW_modeOption{border:1px solid var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);cursor:pointer;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.c269jW_modeOption:hover{background:var(--dsw-alias-interactive-bg-hover)}.c269jW_modeOption input{accent-color:var(--dsw-alias-state-business-primary);margin:0}.c269jW_modeOption:has(input:checked){border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-1)}.c269jW_input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);width:100%;min-width:0;height:32px;color:var(--dsw-alias-label-primary);font:inherit;padding:0 10px;font-size:14px;line-height:22px}.c269jW_input::placeholder{color:var(--dsw-alias-label-dimmed)}.c269jW_input:focus-visible{border-color:var(--dsw-alias-state-business-primary);outline:none}.c269jW_input:disabled{opacity:.6;cursor:default}.c269jW_saveRow{align-items:center;gap:8px;padding-top:16px;display:flex}.c269jW_saveRow .c269jW_notice{margin:0}.c269jW_badgeOk,.c269jW_badgeWarn{font:var(--dsw-font-xxxs-11);white-space:nowrap;border-radius:4px;padding:1px 6px}.c269jW_badgeOk{color:var(--dsw-alias-state-success-primary);background:var(--dsw-alias-state-success-bg)}.c269jW_badgeWarn{color:var(--dsw-alias-state-warning-primary);background:var(--dsw-alias-state-warning-bg)}.c269jW_error{color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxs-12);margin:0}";
331
+ const tagId$21 = "@sparkelf/dsh-knowledge-base/KnowledgeSettingsSection.module.css";
332
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$21) + "]") === null) {
318
333
  const tag = document.createElement("style");
319
334
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
320
- tag.dataset.pluginCss = tagId$17;
321
- tag.textContent = css$17;
335
+ tag.dataset.pluginCss = tagId$21;
336
+ tag.textContent = css$21;
322
337
  document.head.appendChild(tag);
323
338
  }
324
339
  var KnowledgeSettingsSection_module_css_default = {
325
- "groupTitle": "c269jW_groupTitle",
326
- "modeRow": "c269jW_modeRow",
327
- "badgeWarn": "c269jW_badgeWarn",
328
340
  "wizard": "c269jW_wizard",
329
- "fieldLabel": "c269jW_fieldLabel",
341
+ "statusLabel": "c269jW_statusLabel",
342
+ "select": "c269jW_select",
330
343
  "pairs": "c269jW_pairs",
331
- "section": "c269jW_section",
344
+ "body": "c269jW_body",
332
345
  "notice": "c269jW_notice",
333
- "pair": "c269jW_pair",
346
+ "steps": "c269jW_steps",
334
347
  "step": "c269jW_step",
335
- "stepLabel": "c269jW_stepLabel",
336
- "logBox": "c269jW_logBox",
337
- "field": "c269jW_field",
338
- "select": "c269jW_select",
339
- "log": "c269jW_log",
340
348
  "input": "c269jW_input",
341
- "saveRow": "c269jW_saveRow",
342
- "body": "c269jW_body",
343
- "detail": "c269jW_detail",
349
+ "fieldLabel": "c269jW_fieldLabel",
350
+ "badgeWarn": "c269jW_badgeWarn",
351
+ "log": "c269jW_log",
352
+ "field": "c269jW_field",
353
+ "error": "c269jW_error",
344
354
  "statusRow": "c269jW_statusRow",
345
- "statusLabel": "c269jW_statusLabel",
346
- "steps": "c269jW_steps",
347
- "title": "c269jW_title",
355
+ "pair": "c269jW_pair",
356
+ "section": "c269jW_section",
357
+ "stepLabel": "c269jW_stepLabel",
348
358
  "modeOption": "c269jW_modeOption",
359
+ "title": "c269jW_title",
349
360
  "badgeOk": "c269jW_badgeOk",
350
- "error": "c269jW_error"
361
+ "modeRow": "c269jW_modeRow",
362
+ "saveRow": "c269jW_saveRow",
363
+ "logBox": "c269jW_logBox",
364
+ "detail": "c269jW_detail",
365
+ "groupTitle": "c269jW_groupTitle"
351
366
  };
352
367
  //#endregion
353
368
  //#region src/client/VectorSettingsGroup.tsx
@@ -1884,56 +1899,56 @@ window.__ModuleLoader__.load({
1884
1899
  }
1885
1900
  //#endregion
1886
1901
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgePermissions.module.css.mjs
1887
- const css$16 = ".W1jiya_overview{flex-direction:column;gap:14px;display:flex}.W1jiya_statRow{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.W1jiya_statCard{border:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.W1jiya_statValue{font:var(--dsw-font-base-strong-16);color:var(--dsw-alias-label-primary);line-height:1.2}.W1jiya_statLabel{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.W1jiya_tabs{align-self:flex-start}.W1jiya_overviewEmpty{text-align:center;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);margin:0;padding:20px 10px}.W1jiya_table{border-collapse:collapse;table-layout:auto;width:100%}.W1jiya_table th{text-align:left;font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary);border-bottom:.5px solid var(--dsw-alias-border-l2);white-space:nowrap;padding:6px 10px}.W1jiya_table td{border-bottom:.5px solid var(--dsw-alias-border-l1);font:var(--dsw-font-xxs-12);vertical-align:top;padding:7px 10px}.W1jiya_table tr:last-child td{border-bottom:none}.W1jiya_principalName{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary)}.W1jiya_principalMeta{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);margin-top:2px}.W1jiya_principalId{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11) var(--ds-font-family-code);overflow-wrap:anywhere;margin-top:2px}.W1jiya_chips{flex-wrap:wrap;gap:4px;display:flex}.W1jiya_paths{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary);flex-direction:column;gap:2px;margin:0;padding:0;line-height:1.65;list-style:none;display:flex}.W1jiya_path{font-family:var(--ds-font-family-code);overflow-wrap:anywhere}.W1jiya_holders{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.W1jiya_holder{align-items:baseline;gap:6px;display:flex}.W1jiya_holderName{font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-primary)}.W1jiya_holderKind{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.W1jiya_placeholder{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11)}.W1jiya_actionCell{white-space:nowrap}.W1jiya_dialogForm{flex-direction:column;gap:12px;display:flex}.W1jiya_dialogField{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);flex-direction:column;gap:5px;display:flex}.W1jiya_dialogSelect{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:8px;padding:7px 9px}.W1jiya_dialogNotice{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary);margin:0}.W1jiya_emptyRow td{text-align:center;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);padding:18px}.W1jiya_emptyNote{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);margin-top:4px}.W1jiya_rowActions{white-space:nowrap;align-items:center;gap:6px;display:flex}.W1jiya_pageHead{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.W1jiya_pageTitle{font:var(--dsw-font-xs-strong-13);color:var(--dsw-alias-label-primary);margin:0}.W1jiya_pageHint{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);margin:2px 0 0}.W1jiya_pathCell{font:var(--dsw-font-xxxs-11) var(--ds-font-family-code);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}.W1jiya_countCell{text-align:right;font-variant-numeric:tabular-nums}.W1jiya_partialMark{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);cursor:help;margin-left:2px}.W1jiya_actions{flex-wrap:wrap;gap:4px;display:flex}.W1jiya_linkButton{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-business-primary);cursor:pointer;background:0 0;border:0;padding:0}.W1jiya_linkButton:hover:not(:disabled){text-decoration:underline}.W1jiya_linkButton:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.W1jiya_pager{justify-content:flex-start;align-items:center;gap:8px;margin-top:8px;display:flex}.W1jiya_pagerStatus{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);font-variant-numeric:tabular-nums;white-space:nowrap}.W1jiya_pageSize{align-items:center;gap:6px;margin-left:auto;display:flex}.W1jiya_sourceCell{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.W1jiya_sourceHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);flex-basis:100%}";
1888
- const tagId$16 = "@sparkelf/dsh-knowledge-base/KnowledgePermissions.module.css";
1889
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$16) + "]") === null) {
1902
+ const css$20 = ".W1jiya_overview{flex-direction:column;gap:14px;display:flex}.W1jiya_statRow{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.W1jiya_statCard{border:.5px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.W1jiya_statValue{font:var(--dsw-font-base-strong-16);color:var(--dsw-alias-label-primary);line-height:1.2}.W1jiya_statLabel{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.W1jiya_tabs{align-self:flex-start}.W1jiya_overviewEmpty{text-align:center;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);margin:0;padding:20px 10px}.W1jiya_table{border-collapse:collapse;table-layout:auto;width:100%}.W1jiya_table th{text-align:left;font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary);border-bottom:.5px solid var(--dsw-alias-border-l2);white-space:nowrap;padding:6px 10px}.W1jiya_table td{border-bottom:.5px solid var(--dsw-alias-border-l1);font:var(--dsw-font-xxs-12);vertical-align:top;padding:7px 10px}.W1jiya_table tr:last-child td{border-bottom:none}.W1jiya_principalName{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary)}.W1jiya_principalMeta{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);margin-top:2px}.W1jiya_principalId{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11) var(--ds-font-family-code);overflow-wrap:anywhere;margin-top:2px}.W1jiya_chips{flex-wrap:wrap;gap:4px;display:flex}.W1jiya_paths{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary);flex-direction:column;gap:2px;margin:0;padding:0;line-height:1.65;list-style:none;display:flex}.W1jiya_path{font-family:var(--ds-font-family-code);overflow-wrap:anywhere}.W1jiya_holders{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.W1jiya_holder{align-items:baseline;gap:6px;display:flex}.W1jiya_holderName{font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-primary)}.W1jiya_holderKind{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.W1jiya_placeholder{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11)}.W1jiya_actionCell{white-space:nowrap}.W1jiya_dialogForm{flex-direction:column;gap:12px;display:flex}.W1jiya_dialogField{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);flex-direction:column;gap:5px;display:flex}.W1jiya_dialogSelect{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);background:var(--dsw-alias-bg-layer-2);width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:8px;padding:7px 9px}.W1jiya_dialogNotice{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary);margin:0}.W1jiya_emptyRow td{text-align:center;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);padding:18px}.W1jiya_emptyNote{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);margin-top:4px}.W1jiya_rowActions{white-space:nowrap;align-items:center;gap:6px;display:flex}.W1jiya_pageHead{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.W1jiya_pageTitle{font:var(--dsw-font-xs-strong-13);color:var(--dsw-alias-label-primary);margin:0}.W1jiya_pageHint{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);margin:2px 0 0}.W1jiya_pathCell{font:var(--dsw-font-xxxs-11) var(--ds-font-family-code);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}.W1jiya_countCell{text-align:right;font-variant-numeric:tabular-nums}.W1jiya_partialMark{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);cursor:help;margin-left:2px}.W1jiya_actions{flex-wrap:wrap;gap:4px;display:flex}.W1jiya_linkButton{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-business-primary);cursor:pointer;background:0 0;border:0;padding:0}.W1jiya_linkButton:hover:not(:disabled){text-decoration:underline}.W1jiya_linkButton:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.W1jiya_pager{justify-content:flex-start;align-items:center;gap:8px;margin-top:8px;display:flex}.W1jiya_pagerStatus{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);font-variant-numeric:tabular-nums;white-space:nowrap}.W1jiya_pageSize{align-items:center;gap:6px;margin-left:auto;display:flex}.W1jiya_sourceCell{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.W1jiya_sourceHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);flex-basis:100%}";
1903
+ const tagId$20 = "@sparkelf/dsh-knowledge-base/KnowledgePermissions.module.css";
1904
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$20) + "]") === null) {
1890
1905
  const tag = document.createElement("style");
1891
1906
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
1892
- tag.dataset.pluginCss = tagId$16;
1893
- tag.textContent = css$16;
1907
+ tag.dataset.pluginCss = tagId$20;
1908
+ tag.textContent = css$20;
1894
1909
  document.head.appendChild(tag);
1895
1910
  }
1896
1911
  var KnowledgePermissions_module_css_default = {
1897
- "table": "W1jiya_table",
1912
+ "holders": "W1jiya_holders",
1913
+ "actions": "W1jiya_actions",
1914
+ "principalId": "W1jiya_principalId",
1915
+ "path": "W1jiya_path",
1916
+ "holder": "W1jiya_holder",
1917
+ "holderKind": "W1jiya_holderKind",
1918
+ "pageHint": "W1jiya_pageHint",
1919
+ "paths": "W1jiya_paths",
1920
+ "sourceCell": "W1jiya_sourceCell",
1921
+ "pageHead": "W1jiya_pageHead",
1922
+ "placeholder": "W1jiya_placeholder",
1923
+ "pathCell": "W1jiya_pathCell",
1924
+ "principalMeta": "W1jiya_principalMeta",
1898
1925
  "statValue": "W1jiya_statValue",
1899
- "dialogField": "W1jiya_dialogField",
1926
+ "countCell": "W1jiya_countCell",
1927
+ "holderName": "W1jiya_holderName",
1928
+ "chips": "W1jiya_chips",
1900
1929
  "principalName": "W1jiya_principalName",
1930
+ "statCard": "W1jiya_statCard",
1901
1931
  "dialogForm": "W1jiya_dialogForm",
1902
- "overviewEmpty": "W1jiya_overviewEmpty",
1903
1932
  "partialMark": "W1jiya_partialMark",
1904
- "pathCell": "W1jiya_pathCell",
1905
- "principalMeta": "W1jiya_principalMeta",
1906
- "actions": "W1jiya_actions",
1907
- "rowActions": "W1jiya_rowActions",
1908
- "sourceHint": "W1jiya_sourceHint",
1909
- "emptyNote": "W1jiya_emptyNote",
1910
1933
  "linkButton": "W1jiya_linkButton",
1911
1934
  "statLabel": "W1jiya_statLabel",
1912
- "paths": "W1jiya_paths",
1913
- "sourceCell": "W1jiya_sourceCell",
1914
- "emptyRow": "W1jiya_emptyRow",
1915
- "dialogSelect": "W1jiya_dialogSelect",
1916
- "path": "W1jiya_path",
1917
- "pageSize": "W1jiya_pageSize",
1918
- "statCard": "W1jiya_statCard",
1919
- "dialogNotice": "W1jiya_dialogNotice",
1920
- "holderName": "W1jiya_holderName",
1935
+ "dialogField": "W1jiya_dialogField",
1921
1936
  "pager": "W1jiya_pager",
1922
- "placeholder": "W1jiya_placeholder",
1923
- "holder": "W1jiya_holder",
1924
- "tabs": "W1jiya_tabs",
1925
- "holders": "W1jiya_holders",
1926
- "pagerStatus": "W1jiya_pagerStatus",
1927
- "principalId": "W1jiya_principalId",
1928
1937
  "overview": "W1jiya_overview",
1929
- "chips": "W1jiya_chips",
1930
- "holderKind": "W1jiya_holderKind",
1931
- "pageHint": "W1jiya_pageHint",
1932
- "pageHead": "W1jiya_pageHead",
1933
- "countCell": "W1jiya_countCell",
1938
+ "overviewEmpty": "W1jiya_overviewEmpty",
1934
1939
  "actionCell": "W1jiya_actionCell",
1935
1940
  "pageTitle": "W1jiya_pageTitle",
1936
- "statRow": "W1jiya_statRow"
1941
+ "sourceHint": "W1jiya_sourceHint",
1942
+ "dialogNotice": "W1jiya_dialogNotice",
1943
+ "statRow": "W1jiya_statRow",
1944
+ "pagerStatus": "W1jiya_pagerStatus",
1945
+ "dialogSelect": "W1jiya_dialogSelect",
1946
+ "emptyNote": "W1jiya_emptyNote",
1947
+ "rowActions": "W1jiya_rowActions",
1948
+ "pageSize": "W1jiya_pageSize",
1949
+ "emptyRow": "W1jiya_emptyRow",
1950
+ "table": "W1jiya_table",
1951
+ "tabs": "W1jiya_tabs"
1937
1952
  };
1938
1953
  //#endregion
1939
1954
  //#region src/client/KnowledgePermissionOverview.tsx
@@ -2466,88 +2481,88 @@ window.__ModuleLoader__.load({
2466
2481
  }
2467
2482
  //#endregion
2468
2483
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgePanel.module.css.mjs
2469
- const css$15 = ".uNOdFq_page{height:100%;min-height:0;font:var(--dsw-font-s-14);flex-direction:column;display:flex}.uNOdFq_body{flex:auto;grid-template-columns:280px minmax(0,1fr);min-height:0;display:grid}.uNOdFq_bodyCollapsed{grid-template-columns:56px minmax(0,1fr)}.uNOdFq_rail{border-right:.5px solid var(--dsw-alias-border-l3);flex-direction:column;min-height:0;display:flex;overflow:hidden}.uNOdFq_railTop{box-sizing:border-box;flex:none;align-items:center;gap:4px;height:36px;padding:0 6px 0 12px;display:flex}.uNOdFq_railBrand{align-items:center;gap:8px;min-width:0;display:flex}.uNOdFq_railBrandName{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-strong-14);color:var(--dsw-alias-label-primary);overflow:hidden}.uNOdFq_railTopSpacer{margin-left:auto}.uNOdFq_bodyCollapsed .uNOdFq_railTop{justify-content:center;padding:0 14px}.uNOdFq_bodyCollapsed .uNOdFq_railBrand,.uNOdFq_bodyCollapsed .uNOdFq_railTopSpacer{display:none}.uNOdFq_sectionHeader{box-sizing:border-box;height:36px;color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;gap:4px;padding:0 0 0 4px;display:flex}.uNOdFq_sectionName{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-tertiary);line-height:20px;overflow:hidden}.uNOdFq_sectionActions{align-items:center;gap:4px;margin-left:auto;padding-right:8px;display:flex}.uNOdFq_iconButton{border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.uNOdFq_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.uNOdFq_iconButton:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.uNOdFq_iconButton:disabled{opacity:.4;cursor:default}.uNOdFq_treeScroll{flex:auto;min-height:0;padding:0 8px 12px;overflow:auto}.uNOdFq_searchBox{flex:none;margin:0 0 8px;padding:10px 12px 0}.uNOdFq_searchBox>span{box-sizing:border-box;width:100%;margin:0 2px;display:flex}.uNOdFq_menu{flex-direction:column;flex:none;gap:4px;margin:0 0 8px;padding:0 12px;display:flex}.uNOdFq_menuFolded{flex-direction:column;flex:none;gap:4px;margin:0 0 8px;padding:0 8px;display:flex}.uNOdFq_menuFolded .uNOdFq_menuRow,.uNOdFq_menuFolded .uNOdFq_menuRowActive{justify-content:center;padding:7px 0}.uNOdFq_menuRow,.uNOdFq_menuRowActive{box-sizing:border-box;border-radius:var(--dsw-radius-md);min-height:36px;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;margin:0 2px;padding:7px 8px;line-height:22px;display:flex}.uNOdFq_menuRow:hover,.uNOdFq_menuRowActive:hover{background:var(--dsw-alias-interactive-bg-hover)}.uNOdFq_menuRowActive{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.uNOdFq_menuRow:focus-visible,.uNOdFq_menuRowActive:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.uNOdFq_menuGlyph{flex:none;justify-content:center;align-items:center;display:inline-flex}.uNOdFq_menuLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.uNOdFq_railBody{flex-direction:column;flex:auto;min-height:0;padding:0 8px 12px;display:flex;overflow:auto}.uNOdFq_pinnedBand{flex-direction:column;flex:none;max-height:180px;display:flex;overflow-y:auto}.uNOdFq_treeBand{flex-direction:column;flex:auto;min-height:0;display:flex}.uNOdFq_treeFilter{flex:none;padding:0 0 8px}.uNOdFq_treeFilter>span{box-sizing:border-box;width:100%;display:flex}.uNOdFq_contentColumn{flex-direction:column;min-width:0;min-height:0;display:flex}.uNOdFq_content{flex:auto;min-width:0;min-height:0;padding:16px 24px 20px;overflow:auto}.uNOdFq_header{border-bottom:.5px solid var(--dsw-alias-border-l3);flex-flow:wrap;flex:none;align-items:center;gap:8px 12px;padding:16px 14px 8px 24px;display:flex}.uNOdFq_headerActions{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.uNOdFq_headerTitle{min-width:0;min-height:28px;font:var(--dsw-font-base-strong-16);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:none;align-items:flex-end;margin:0;display:flex;overflow:hidden}.uNOdFq_headerFact{min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);white-space:nowrap;align-items:center;gap:6px;margin:0;display:flex;overflow:hidden}.uNOdFq_headerPath{font:var(--dsw-font-xxs-12) var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uNOdFq_headerHint{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);flex-basis:100%;margin:0}.uNOdFq_surface{flex-direction:column;align-items:flex-start;gap:12px;max-width:900px;display:flex}.uNOdFq_tableSurface{align-items:stretch;width:100%;min-width:0;max-width:none}.uNOdFq_tableSurface table{width:100%}.uNOdFq_tableSurface th:last-child,.uNOdFq_tableSurface td:last-child{text-align:right;white-space:nowrap}.uNOdFq_tableSurface td[colspan]{text-align:center;white-space:normal;padding:24px 16px}.uNOdFq_title{font:var(--dsw-font-base-strong-16);margin:0}.uNOdFq_subhead{font:var(--dsw-font-s-strong-14);margin:8px 0 0}.uNOdFq_muted{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);margin:0}.uNOdFq_error{color:var(--dsw-alias-state-error-primary,#c0392b);font:var(--dsw-font-xs-13);margin:0}.uNOdFq_notice{color:var(--dsw-alias-state-success-primary,#1a7f37);font:var(--dsw-font-xs-13);margin:0}.uNOdFq_empty{text-align:center;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-s-14);flex-direction:column;align-items:center;padding:48px 20px;display:flex}.uNOdFq_emptyGlyph{color:var(--dsw-alias-label-caption);margin-bottom:12px}.uNOdFq_emptyTitle{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-s-14);margin:0;line-height:1.6}.uNOdFq_factDot{opacity:.6}.uNOdFq_hits{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.uNOdFq_hit,.uNOdFq_hitActive{box-sizing:border-box;border-radius:var(--dsw-radius-md,8px);width:100%;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:baseline;gap:2px 10px;padding:8px 10px;display:grid}.uNOdFq_hit:hover,.uNOdFq_hitActive{background:var(--dsw-alias-interactive-bg-hover)}.uNOdFq_hitName{font:var(--dsw-font-xs-strong-13);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uNOdFq_hitPath{min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uNOdFq_hitTime{color:var(--dsw-alias-label-tertiary,var(--dsw-alias-label-secondary));font:var(--dsw-font-xxs-12);grid-column:1/-1}.uNOdFq_hitLine{min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12) var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;gap:8px;display:flex;overflow:hidden}.uNOdFq_hitLineNo{text-align:right;opacity:.7;flex:none;min-width:2.5em}.uNOdFq_path{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12) var(--ds-font-family-code);overflow-wrap:anywhere;margin:0}.uNOdFq_preview{border:1px solid var(--dsw-alias-border-l1,#0000001f);border-radius:var(--dsw-radius-md,8px);background:var(--dsw-alias-bg-layer-2);font:var(--dsw-font-xs-13) var(--ds-font-family-code);white-space:pre-wrap;overflow-wrap:anywhere;max-height:calc(100vh - 160px);margin:0;padding:12px;line-height:1.55;overflow:auto}.uNOdFq_pairs{flex-direction:column;gap:6px;margin:0;display:flex}.uNOdFq_pair{font:var(--dsw-font-xs-13);gap:12px;display:flex}.uNOdFq_pair dt{min-width:6.5em;color:var(--dsw-alias-label-secondary);flex:none}.uNOdFq_pair dd{overflow-wrap:anywhere;margin:0}.uNOdFq_form{border:.5px solid var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-md);flex-wrap:wrap;align-items:flex-end;gap:10px;padding:12px;display:flex}.uNOdFq_field{flex-direction:column;gap:4px;min-width:0;display:flex}.uNOdFq_field>span{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12)}.uNOdFq_input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);min-width:10em;height:32px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-14);padding:0 10px}.uNOdFq_input:focus-visible{border-color:var(--dsw-alias-state-business-primary);outline:none}.uNOdFq_retry{border-radius:var(--dsw-radius-sm);border:1px solid var(--dsw-alias-border-l2);min-height:32px;font:var(--dsw-font-xxs-12);cursor:pointer;color:var(--dsw-alias-label-primary);background:0 0;align-self:flex-start;padding:4px 14px}.uNOdFq_retry:disabled{opacity:.55;cursor:default}.uNOdFq_table{border-collapse:collapse;width:100%;font:var(--dsw-font-xxs-12)}.uNOdFq_table th,.uNOdFq_table td{text-align:left;border-bottom:.5px solid var(--dsw-alias-border-l2);padding:6px 8px}.uNOdFq_table th{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12)}.uNOdFq_previewLayout{align-items:flex-start;gap:12px;width:100%;min-width:0;display:flex}.uNOdFq_previewColumn{flex-direction:column;flex:auto;align-items:flex-start;gap:12px;min-width:0;max-width:900px;display:flex}.uNOdFq_openedElsewhere{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;min-height:240px;display:flex}.uNOdFq_bodyDocument{grid-template-columns:280px}.uNOdFq_bodyCollapsed.uNOdFq_bodyDocument{grid-template-columns:56px}.uNOdFq_surface+.uNOdFq_surface{border-top:1px solid var(--dsw-alias-border-l1);margin-top:20px;padding-top:24px}.uNOdFq_surface+.uNOdFq_surface>.uNOdFq_subhead{margin-top:0}.uNOdFq_referenceNote{z-index:20;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);max-width:420px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);box-shadow:var(--dsw-shadow-lv2);align-items:center;gap:8px;margin:0;padding:8px 10px;display:flex;position:fixed;inset-block-end:16px;inset-inline-start:16px}.uNOdFq_referenceNoteDismiss{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);cursor:pointer;background:0 0;border:0;flex:none;padding:0 2px;line-height:1}.uNOdFq_referenceNoteDismiss:hover{color:var(--dsw-alias-label-primary)}.uNOdFq_menuGroupLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-strong-11);padding:6px 10px 2px;display:block}.uNOdFq_menuSeparator{border-top:.5px solid var(--dsw-alias-border-l2);height:0;margin:4px 6px;display:block}.uNOdFq_errorPanel{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:10px;min-height:0;padding:48px 24px;display:flex}.uNOdFq_errorGlyph{background:var(--dsw-alias-fill-l2,#f2f3f5);width:40px;height:40px;color:var(--dsw-alias-state-error-primary,#c0392b);border-radius:50%;place-items:center;display:grid}.uNOdFq_errorTitle{color:var(--dsw-alias-label-primary);font:var(--dsw-font-m-16,600 16px/24px);margin:0}.uNOdFq_errorDetail{max-width:420px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);margin:0}.uNOdFq_errorPanel .uNOdFq_retry{align-self:center;margin-top:6px}";
2470
- const tagId$15 = "@sparkelf/dsh-knowledge-base/KnowledgePanel.module.css";
2471
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$15) + "]") === null) {
2484
+ const css$19 = ".uNOdFq_page{height:100%;min-height:0;font:var(--dsw-font-s-14);flex-direction:column;display:flex}.uNOdFq_body{flex:auto;grid-template-columns:280px minmax(0,1fr);min-height:0;display:grid}.uNOdFq_bodyCollapsed{grid-template-columns:56px minmax(0,1fr)}.uNOdFq_rail{border-right:.5px solid var(--dsw-alias-border-l3);flex-direction:column;min-height:0;display:flex;overflow:hidden}.uNOdFq_railTop{box-sizing:border-box;flex:none;align-items:center;gap:4px;height:36px;padding:0 6px 0 12px;display:flex}.uNOdFq_railBrand{align-items:center;gap:8px;min-width:0;display:flex}.uNOdFq_railBrandName{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-strong-14);color:var(--dsw-alias-label-primary);overflow:hidden}.uNOdFq_railTopSpacer{margin-left:auto}.uNOdFq_bodyCollapsed .uNOdFq_railTop{justify-content:center;padding:0 14px}.uNOdFq_bodyCollapsed .uNOdFq_railBrand,.uNOdFq_bodyCollapsed .uNOdFq_railTopSpacer{display:none}.uNOdFq_sectionHeader{box-sizing:border-box;height:36px;color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;gap:4px;padding:0 0 0 4px;display:flex}.uNOdFq_sectionName{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-tertiary);line-height:20px;overflow:hidden}.uNOdFq_sectionActions{align-items:center;gap:4px;margin-left:auto;padding-right:8px;display:flex}.uNOdFq_iconButton{border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.uNOdFq_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.uNOdFq_iconButton:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.uNOdFq_iconButton:disabled{opacity:.4;cursor:default}.uNOdFq_treeScroll{flex:auto;min-height:0;padding:0 8px 12px;overflow:auto}.uNOdFq_searchBox{flex:none;margin:0 0 8px;padding:10px 12px 0}.uNOdFq_searchBox>span{box-sizing:border-box;width:100%;margin:0 2px;display:flex}.uNOdFq_menu{flex-direction:column;flex:none;gap:4px;margin:0 0 8px;padding:0 12px;display:flex}.uNOdFq_menuFolded{flex-direction:column;flex:none;gap:4px;margin:0 0 8px;padding:0 8px;display:flex}.uNOdFq_menuFolded .uNOdFq_menuRow,.uNOdFq_menuFolded .uNOdFq_menuRowActive{justify-content:center;padding:7px 0}.uNOdFq_menuRow,.uNOdFq_menuRowActive{box-sizing:border-box;border-radius:var(--dsw-radius-md);min-height:36px;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;margin:0 2px;padding:7px 8px;line-height:22px;display:flex}.uNOdFq_menuRow:hover,.uNOdFq_menuRowActive:hover{background:var(--dsw-alias-interactive-bg-hover)}.uNOdFq_menuRowActive{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.uNOdFq_menuRow:focus-visible,.uNOdFq_menuRowActive:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.uNOdFq_menuGlyph{flex:none;justify-content:center;align-items:center;display:inline-flex}.uNOdFq_menuLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.uNOdFq_railBody{flex-direction:column;flex:auto;min-height:0;padding:0 8px 12px;display:flex;overflow:auto}.uNOdFq_pinnedBand{flex-direction:column;flex:none;max-height:180px;display:flex;overflow-y:auto}.uNOdFq_treeBand{flex-direction:column;flex:auto;min-height:0;display:flex}.uNOdFq_treeFilter{flex:none;padding:0 0 8px}.uNOdFq_treeFilter>span{box-sizing:border-box;width:100%;display:flex}.uNOdFq_contentColumn{flex-direction:column;min-width:0;min-height:0;display:flex}.uNOdFq_content{flex:auto;min-width:0;min-height:0;padding:16px 24px 20px;overflow:auto}.uNOdFq_header{border-bottom:.5px solid var(--dsw-alias-border-l3);flex-flow:wrap;flex:none;align-items:center;gap:8px 12px;padding:16px 14px 8px 24px;display:flex}.uNOdFq_headerActions{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.uNOdFq_headerTitle{min-width:0;min-height:28px;font:var(--dsw-font-base-strong-16);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:none;align-items:flex-end;margin:0;display:flex;overflow:hidden}.uNOdFq_headerFact{min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);white-space:nowrap;align-items:center;gap:6px;margin:0;display:flex;overflow:hidden}.uNOdFq_headerPath{font:var(--dsw-font-xxs-12) var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uNOdFq_headerHint{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);flex-basis:100%;margin:0}.uNOdFq_surface{flex-direction:column;align-items:flex-start;gap:12px;max-width:900px;display:flex}.uNOdFq_tableSurface{align-items:stretch;width:100%;min-width:0;max-width:none}.uNOdFq_tableSurface table{width:100%}.uNOdFq_tableSurface th:last-child,.uNOdFq_tableSurface td:last-child{text-align:right;white-space:nowrap}.uNOdFq_tableSurface td[colspan]{text-align:center;white-space:normal;padding:24px 16px}.uNOdFq_title{font:var(--dsw-font-base-strong-16);margin:0}.uNOdFq_subhead{font:var(--dsw-font-s-strong-14);margin:8px 0 0}.uNOdFq_muted{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);margin:0}.uNOdFq_error{color:var(--dsw-alias-state-error-primary,#c0392b);font:var(--dsw-font-xs-13);margin:0}.uNOdFq_notice{color:var(--dsw-alias-state-success-primary,#1a7f37);font:var(--dsw-font-xs-13);margin:0}.uNOdFq_empty{text-align:center;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-s-14);flex-direction:column;align-items:center;padding:48px 20px;display:flex}.uNOdFq_emptyGlyph{color:var(--dsw-alias-label-caption);margin-bottom:12px}.uNOdFq_emptyTitle{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-s-14);margin:0;line-height:1.6}.uNOdFq_factDot{opacity:.6}.uNOdFq_hits{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.uNOdFq_hit,.uNOdFq_hitActive{box-sizing:border-box;border-radius:var(--dsw-radius-md,8px);width:100%;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:baseline;gap:2px 10px;padding:8px 10px;display:grid}.uNOdFq_hit:hover,.uNOdFq_hitActive{background:var(--dsw-alias-interactive-bg-hover)}.uNOdFq_hitName{font:var(--dsw-font-xs-strong-13);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uNOdFq_hitPath{min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uNOdFq_hitTime{color:var(--dsw-alias-label-tertiary,var(--dsw-alias-label-secondary));font:var(--dsw-font-xxs-12);grid-column:1/-1}.uNOdFq_hitLine{min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12) var(--ds-font-family-code);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;gap:8px;display:flex;overflow:hidden}.uNOdFq_hitLineNo{text-align:right;opacity:.7;flex:none;min-width:2.5em}.uNOdFq_path{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12) var(--ds-font-family-code);overflow-wrap:anywhere;margin:0}.uNOdFq_preview{border:1px solid var(--dsw-alias-border-l1,#0000001f);border-radius:var(--dsw-radius-md,8px);background:var(--dsw-alias-bg-layer-2);font:var(--dsw-font-xs-13) var(--ds-font-family-code);white-space:pre-wrap;overflow-wrap:anywhere;max-height:calc(100vh - 160px);margin:0;padding:12px;line-height:1.55;overflow:auto}.uNOdFq_pairs{flex-direction:column;gap:6px;margin:0;display:flex}.uNOdFq_pair{font:var(--dsw-font-xs-13);gap:12px;display:flex}.uNOdFq_pair dt{min-width:6.5em;color:var(--dsw-alias-label-secondary);flex:none}.uNOdFq_pair dd{overflow-wrap:anywhere;margin:0}.uNOdFq_form{border:.5px solid var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-md);flex-wrap:wrap;align-items:flex-end;gap:10px;padding:12px;display:flex}.uNOdFq_field{flex-direction:column;gap:4px;min-width:0;display:flex}.uNOdFq_field>span{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12)}.uNOdFq_input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);min-width:10em;height:32px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-14);padding:0 10px}.uNOdFq_input:focus-visible{border-color:var(--dsw-alias-state-business-primary);outline:none}.uNOdFq_retry{border-radius:var(--dsw-radius-sm);border:1px solid var(--dsw-alias-border-l2);min-height:32px;font:var(--dsw-font-xxs-12);cursor:pointer;color:var(--dsw-alias-label-primary);background:0 0;align-self:flex-start;padding:4px 14px}.uNOdFq_retry:disabled{opacity:.55;cursor:default}.uNOdFq_table{border-collapse:collapse;width:100%;font:var(--dsw-font-xxs-12)}.uNOdFq_table th,.uNOdFq_table td{text-align:left;border-bottom:.5px solid var(--dsw-alias-border-l2);padding:6px 8px}.uNOdFq_table th{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12)}.uNOdFq_previewLayout{align-items:flex-start;gap:12px;width:100%;min-width:0;display:flex}.uNOdFq_previewColumn{flex-direction:column;flex:auto;align-items:flex-start;gap:12px;min-width:0;max-width:900px;display:flex}.uNOdFq_openedElsewhere{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;min-height:240px;display:flex}.uNOdFq_bodyDocument{grid-template-columns:280px}.uNOdFq_bodyCollapsed.uNOdFq_bodyDocument{grid-template-columns:56px}.uNOdFq_surface+.uNOdFq_surface{border-top:1px solid var(--dsw-alias-border-l1);margin-top:20px;padding-top:24px}.uNOdFq_surface+.uNOdFq_surface>.uNOdFq_subhead{margin-top:0}.uNOdFq_referenceNote{z-index:20;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);max-width:420px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);box-shadow:var(--dsw-shadow-lv2);align-items:center;gap:8px;margin:0;padding:8px 10px;display:flex;position:fixed;inset-block-end:16px;inset-inline-start:16px}.uNOdFq_referenceNoteDismiss{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);cursor:pointer;background:0 0;border:0;flex:none;padding:0 2px;line-height:1}.uNOdFq_referenceNoteDismiss:hover{color:var(--dsw-alias-label-primary)}.uNOdFq_menuGroupLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-strong-11);padding:6px 10px 2px;display:block}.uNOdFq_menuSeparator{border-top:.5px solid var(--dsw-alias-border-l2);height:0;margin:4px 6px;display:block}.uNOdFq_errorPanel{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:10px;min-height:0;padding:48px 24px;display:flex}.uNOdFq_errorGlyph{background:var(--dsw-alias-fill-l2,#f2f3f5);width:40px;height:40px;color:var(--dsw-alias-state-error-primary,#c0392b);border-radius:50%;place-items:center;display:grid}.uNOdFq_errorTitle{color:var(--dsw-alias-label-primary);font:var(--dsw-font-m-16,600 16px/24px);margin:0}.uNOdFq_errorDetail{max-width:420px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xs-13);margin:0}.uNOdFq_errorPanel .uNOdFq_retry{align-self:center;margin-top:6px}";
2485
+ const tagId$19 = "@sparkelf/dsh-knowledge-base/KnowledgePanel.module.css";
2486
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$19) + "]") === null) {
2472
2487
  const tag = document.createElement("style");
2473
2488
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
2474
- tag.dataset.pluginCss = tagId$15;
2475
- tag.textContent = css$15;
2489
+ tag.dataset.pluginCss = tagId$19;
2490
+ tag.textContent = css$19;
2476
2491
  document.head.appendChild(tag);
2477
2492
  }
2478
2493
  var KnowledgePanel_module_css_default = {
2479
- "sectionName": "uNOdFq_sectionName",
2480
- "railBody": "uNOdFq_railBody",
2481
- "headerActions": "uNOdFq_headerActions",
2482
- "openedElsewhere": "uNOdFq_openedElsewhere",
2483
- "body": "uNOdFq_body",
2484
- "iconButton": "uNOdFq_iconButton",
2485
- "pinnedBand": "uNOdFq_pinnedBand",
2486
- "emptyGlyph": "uNOdFq_emptyGlyph",
2487
- "muted": "uNOdFq_muted",
2488
2494
  "notice": "uNOdFq_notice",
2489
- "menuRowActive": "uNOdFq_menuRowActive",
2490
- "errorDetail": "uNOdFq_errorDetail",
2491
- "sectionActions": "uNOdFq_sectionActions",
2492
- "hitActive": "uNOdFq_hitActive",
2493
- "factDot": "uNOdFq_factDot",
2494
- "pairs": "uNOdFq_pairs",
2495
- "previewColumn": "uNOdFq_previewColumn",
2496
- "subhead": "uNOdFq_subhead",
2497
- "railTop": "uNOdFq_railTop",
2498
- "headerPath": "uNOdFq_headerPath",
2499
- "menuGroupLabel": "uNOdFq_menuGroupLabel",
2500
- "errorTitle": "uNOdFq_errorTitle",
2495
+ "treeBand": "uNOdFq_treeBand",
2501
2496
  "header": "uNOdFq_header",
2502
- "railBrandName": "uNOdFq_railBrandName",
2497
+ "menuRow": "uNOdFq_menuRow",
2498
+ "pair": "uNOdFq_pair",
2503
2499
  "treeScroll": "uNOdFq_treeScroll",
2504
- "searchBox": "uNOdFq_searchBox",
2505
- "input": "uNOdFq_input",
2506
- "field": "uNOdFq_field",
2507
2500
  "menu": "uNOdFq_menu",
2508
- "headerTitle": "uNOdFq_headerTitle",
2509
- "headerHint": "uNOdFq_headerHint",
2510
- "referenceNote": "uNOdFq_referenceNote",
2511
- "errorPanel": "uNOdFq_errorPanel",
2512
- "railTopSpacer": "uNOdFq_railTopSpacer",
2513
- "retry": "uNOdFq_retry",
2501
+ "body": "uNOdFq_body",
2502
+ "sectionActions": "uNOdFq_sectionActions",
2503
+ "contentColumn": "uNOdFq_contentColumn",
2504
+ "headerFact": "uNOdFq_headerFact",
2505
+ "hitTime": "uNOdFq_hitTime",
2514
2506
  "table": "uNOdFq_table",
2515
- "bodyCollapsed": "uNOdFq_bodyCollapsed",
2516
- "hitLine": "uNOdFq_hitLine",
2517
- "menuGlyph": "uNOdFq_menuGlyph",
2518
2507
  "hitPath": "uNOdFq_hitPath",
2519
- "railBrand": "uNOdFq_railBrand",
2520
- "menuFolded": "uNOdFq_menuFolded",
2508
+ "openedElsewhere": "uNOdFq_openedElsewhere",
2509
+ "bodyDocument": "uNOdFq_bodyDocument",
2521
2510
  "previewLayout": "uNOdFq_previewLayout",
2522
- "pair": "uNOdFq_pair",
2523
- "referenceNoteDismiss": "uNOdFq_referenceNoteDismiss",
2511
+ "menuSeparator": "uNOdFq_menuSeparator",
2512
+ "menuGlyph": "uNOdFq_menuGlyph",
2513
+ "errorPanel": "uNOdFq_errorPanel",
2514
+ "headerActions": "uNOdFq_headerActions",
2515
+ "rail": "uNOdFq_rail",
2516
+ "error": "uNOdFq_error",
2517
+ "page": "uNOdFq_page",
2518
+ "menuRowActive": "uNOdFq_menuRowActive",
2519
+ "errorDetail": "uNOdFq_errorDetail",
2520
+ "sectionHeader": "uNOdFq_sectionHeader",
2521
+ "content": "uNOdFq_content",
2522
+ "input": "uNOdFq_input",
2523
+ "emptyGlyph": "uNOdFq_emptyGlyph",
2524
+ "iconButton": "uNOdFq_iconButton",
2525
+ "muted": "uNOdFq_muted",
2526
+ "menuFolded": "uNOdFq_menuFolded",
2527
+ "hits": "uNOdFq_hits",
2528
+ "bodyCollapsed": "uNOdFq_bodyCollapsed",
2524
2529
  "treeFilter": "uNOdFq_treeFilter",
2525
- "contentColumn": "uNOdFq_contentColumn",
2526
- "menuRow": "uNOdFq_menuRow",
2527
- "headerFact": "uNOdFq_headerFact",
2528
- "empty": "uNOdFq_empty",
2529
- "treeBand": "uNOdFq_treeBand",
2530
- "tableSurface": "uNOdFq_tableSurface",
2531
- "bodyDocument": "uNOdFq_bodyDocument",
2530
+ "referenceNote": "uNOdFq_referenceNote",
2532
2531
  "hitName": "uNOdFq_hitName",
2532
+ "errorGlyph": "uNOdFq_errorGlyph",
2533
+ "headerTitle": "uNOdFq_headerTitle",
2534
+ "pinnedBand": "uNOdFq_pinnedBand",
2535
+ "field": "uNOdFq_field",
2536
+ "railTop": "uNOdFq_railTop",
2537
+ "title": "uNOdFq_title",
2533
2538
  "surface": "uNOdFq_surface",
2534
- "error": "uNOdFq_error",
2539
+ "hitLine": "uNOdFq_hitLine",
2535
2540
  "path": "uNOdFq_path",
2541
+ "railBrandName": "uNOdFq_railBrandName",
2536
2542
  "menuLabel": "uNOdFq_menuLabel",
2537
- "errorGlyph": "uNOdFq_errorGlyph",
2538
- "sectionHeader": "uNOdFq_sectionHeader",
2539
- "content": "uNOdFq_content",
2543
+ "previewColumn": "uNOdFq_previewColumn",
2544
+ "empty": "uNOdFq_empty",
2545
+ "form": "uNOdFq_form",
2546
+ "headerHint": "uNOdFq_headerHint",
2547
+ "retry": "uNOdFq_retry",
2548
+ "factDot": "uNOdFq_factDot",
2549
+ "menuGroupLabel": "uNOdFq_menuGroupLabel",
2550
+ "railBody": "uNOdFq_railBody",
2540
2551
  "hit": "uNOdFq_hit",
2541
- "rail": "uNOdFq_rail",
2552
+ "tableSurface": "uNOdFq_tableSurface",
2553
+ "railBrand": "uNOdFq_railBrand",
2554
+ "emptyTitle": "uNOdFq_emptyTitle",
2542
2555
  "hitLineNo": "uNOdFq_hitLineNo",
2543
- "hitTime": "uNOdFq_hitTime",
2544
- "hits": "uNOdFq_hits",
2545
- "form": "uNOdFq_form",
2546
- "title": "uNOdFq_title",
2547
- "page": "uNOdFq_page",
2556
+ "referenceNoteDismiss": "uNOdFq_referenceNoteDismiss",
2557
+ "pairs": "uNOdFq_pairs",
2558
+ "errorTitle": "uNOdFq_errorTitle",
2559
+ "railTopSpacer": "uNOdFq_railTopSpacer",
2548
2560
  "preview": "uNOdFq_preview",
2549
- "emptyTitle": "uNOdFq_emptyTitle",
2550
- "menuSeparator": "uNOdFq_menuSeparator"
2561
+ "hitActive": "uNOdFq_hitActive",
2562
+ "headerPath": "uNOdFq_headerPath",
2563
+ "subhead": "uNOdFq_subhead",
2564
+ "sectionName": "uNOdFq_sectionName",
2565
+ "searchBox": "uNOdFq_searchBox"
2551
2566
  };
2552
2567
  //#endregion
2553
2568
  //#region src/client/KnowledgePermissions.tsx
@@ -3052,24 +3067,24 @@ window.__ModuleLoader__.load({
3052
3067
  }
3053
3068
  //#endregion
3054
3069
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeLoading.module.css.mjs
3055
- const css$14 = ".HyIQta_wrap{box-sizing:border-box;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;width:100%;height:100%;min-height:120px;padding:16px;display:flex}.HyIQta_book{perspective:320px;perspective-origin:50%;display:block;overflow:visible}.HyIQta_coverBack{fill:var(--dsw-alias-bg-layer-1);stroke:var(--dsw-alias-border-l3);stroke-width:1px}.HyIQta_pagesLeft,.HyIQta_pagesRight{fill:var(--dsw-alias-label-secondary);opacity:.22}.HyIQta_pagesLeft,.HyIQta_pagesRight,.HyIQta_leaf{stroke:var(--dsw-alias-border-l3);stroke-width:.75px}.HyIQta_leaf{fill:var(--dsw-alias-label-secondary);opacity:.42;transform-origin:32px 24px;transform-box:view-box;animation:HyIQta_kb-page-turn 1.6s var(--ds-ease-in-out) infinite;backface-visibility:hidden}@keyframes HyIQta_kb-page-turn{0%,12%{opacity:.42;transform:rotateY(0)}46%{opacity:.24;transform:rotateY(-168deg)}58%,to{opacity:0;transform:rotateY(-180deg)}}.HyIQta_label{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);text-align:center;margin:0}.HyIQta_srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.HyIQta_leaf{opacity:.42;animation:none;transform:rotateY(-28deg)}}";
3056
- const tagId$14 = "@sparkelf/dsh-knowledge-base/KnowledgeLoading.module.css";
3057
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$14) + "]") === null) {
3070
+ const css$18 = ".HyIQta_wrap{box-sizing:border-box;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;width:100%;height:100%;min-height:120px;padding:16px;display:flex}.HyIQta_book{perspective:320px;perspective-origin:50%;display:block;overflow:visible}.HyIQta_coverBack{fill:var(--dsw-alias-bg-layer-1);stroke:var(--dsw-alias-border-l3);stroke-width:1px}.HyIQta_pagesLeft,.HyIQta_pagesRight{fill:var(--dsw-alias-label-secondary);opacity:.22}.HyIQta_pagesLeft,.HyIQta_pagesRight,.HyIQta_leaf{stroke:var(--dsw-alias-border-l3);stroke-width:.75px}.HyIQta_leaf{fill:var(--dsw-alias-label-secondary);opacity:.42;transform-origin:32px 24px;transform-box:view-box;animation:HyIQta_kb-page-turn 1.6s var(--ds-ease-in-out) infinite;backface-visibility:hidden}@keyframes HyIQta_kb-page-turn{0%,12%{opacity:.42;transform:rotateY(0)}46%{opacity:.24;transform:rotateY(-168deg)}58%,to{opacity:0;transform:rotateY(-180deg)}}.HyIQta_label{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);text-align:center;margin:0}.HyIQta_srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.HyIQta_leaf{opacity:.42;animation:none;transform:rotateY(-28deg)}}";
3071
+ const tagId$18 = "@sparkelf/dsh-knowledge-base/KnowledgeLoading.module.css";
3072
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$18) + "]") === null) {
3058
3073
  const tag = document.createElement("style");
3059
3074
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
3060
- tag.dataset.pluginCss = tagId$14;
3061
- tag.textContent = css$14;
3075
+ tag.dataset.pluginCss = tagId$18;
3076
+ tag.textContent = css$18;
3062
3077
  document.head.appendChild(tag);
3063
3078
  }
3064
3079
  var KnowledgeLoading_module_css_default = {
3065
- "leaf": "HyIQta_leaf",
3066
- "pagesRight": "HyIQta_pagesRight",
3080
+ "kb-page-turn": "HyIQta_kb-page-turn",
3081
+ "srOnly": "HyIQta_srOnly",
3067
3082
  "book": "HyIQta_book",
3068
- "wrap": "HyIQta_wrap",
3069
3083
  "pagesLeft": "HyIQta_pagesLeft",
3070
3084
  "label": "HyIQta_label",
3071
- "srOnly": "HyIQta_srOnly",
3072
- "kb-page-turn": "HyIQta_kb-page-turn",
3085
+ "leaf": "HyIQta_leaf",
3086
+ "wrap": "HyIQta_wrap",
3087
+ "pagesRight": "HyIQta_pagesRight",
3073
3088
  "coverBack": "HyIQta_coverBack"
3074
3089
  };
3075
3090
  //#endregion
@@ -3326,10 +3341,6 @@ window.__ModuleLoader__.load({
3326
3341
  if (column?.isExpanded?.() === true) column.toggleExpanded?.();
3327
3342
  } catch {}
3328
3343
  }
3329
- /** Whether a failure means the host's right column is simply not on this profile. */
3330
- function isHostMissing(outcome) {
3331
- return outcome === "no-context" || outcome === "no-registry" || outcome === "no-column";
3332
- }
3333
3344
  //#endregion
3334
3345
  //#region src/client/saveAudit.ts
3335
3346
  /**
@@ -3652,113 +3663,113 @@ window.__ModuleLoader__.load({
3652
3663
  }
3653
3664
  //#endregion
3654
3665
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeHome.module.css.mjs
3655
- const css$13 = ".oNvFBa_home{flex-direction:column;gap:16px;min-width:0;display:flex}.oNvFBa_cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:13.5px;display:grid}.oNvFBa_cardSlot{min-width:0;position:relative}.oNvFBa_card{box-sizing:border-box;text-align:left;border:.5px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);width:100%;height:63px;color:var(--dsw-alias-label-primary);cursor:pointer;flex-direction:row;align-items:center;gap:14px;padding:0 9px 0 13px;display:flex}.oNvFBa_card:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.oNvFBa_card[data-open=true]{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l3)}.oNvFBa_card:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.oNvFBa_card:disabled{opacity:.4;cursor:default}.oNvFBa_cardPlate{border-radius:var(--dsw-radius-sm);width:24px;height:24px;color:var(--dsw-alias-label-primary-foreground);flex:none;justify-content:center;align-items:center;display:inline-flex}.oNvFBa_cardPlate[data-tone=blue]{background:var(--dsw-static-blue-500)}.oNvFBa_cardPlate[data-tone=amber]{background:var(--dsw-static-amber-500)}.oNvFBa_cardPlate[data-tone=deepseek]{background:var(--dsw-static-deepseek-500)}.oNvFBa_cardText{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.oNvFBa_cardTitle{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.oNvFBa_cardBody{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);text-overflow:ellipsis;white-space:nowrap;line-height:1.5;overflow:hidden}.oNvFBa_cardChevron{color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;display:inline-flex}.oNvFBa_cardMenu{z-index:2;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0}.oNvFBa_cardMenuItem{box-sizing:border-box;border-radius:var(--dsw-radius-sm);width:100%;min-height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;padding:4px 8px;display:flex}.oNvFBa_cardMenuItem:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.oNvFBa_cardMenuItem:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.oNvFBa_table{border-collapse:collapse;width:100%}.oNvFBa_table th{text-align:left;font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary);border-bottom:.5px solid var(--dsw-alias-border-l2);white-space:nowrap;padding:6px 10px}.oNvFBa_table td{border-bottom:.5px solid var(--dsw-alias-border-l1);font:var(--dsw-font-xxs-12);vertical-align:middle;padding:7px 10px}.oNvFBa_table tr:last-child td{border-bottom:none}.oNvFBa_rowLink{color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;min-width:0;padding:0;overflow:hidden}.oNvFBa_rowLink:hover{color:var(--dsw-alias-link)}.oNvFBa_rowLink:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}.oNvFBa_muted{color:var(--dsw-alias-label-tertiary)}.oNvFBa_emptyRow td{text-align:center;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);padding:18px}.oNvFBa_hiddenInput{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.oNvFBa_titleCell{align-items:center;gap:4px;min-width:0;display:flex}.oNvFBa_favoriteMark{color:var(--dsw-static-amber-500);font:var(--dsw-font-xxs-12);flex:none}.oNvFBa_dropZone{border-radius:var(--dsw-radius-md);border:1px dashed #0000;transition:border-color .12s,background-color .12s}.oNvFBa_dropZoneActive{border-color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2)}.oNvFBa_shareWrap{flex-direction:column;gap:12px;display:flex}.oNvFBa_shareBlock{flex-direction:column;gap:8px;display:flex}.oNvFBa_shareEmpty{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-sm-13);margin:0;padding:12px 0}.oNvFBa_shareError{color:var(--dsw-alias-label-error);font:var(--dsw-font-sm-13);margin:0;padding:8px 0}.oNvFBa_sharePager{justify-content:flex-end;align-items:center;gap:8px;display:flex}.oNvFBa_table{table-layout:fixed}.oNvFBa_colTitle{width:42%}.oNvFBa_colLocation{width:18%}.oNvFBa_colOwner{width:10%}.oNvFBa_colTime{width:11%}.oNvFBa_colActions{width:96px}.oNvFBa_actionsCell{padding:0 6px}.oNvFBa_rowActions{justify-content:flex-end;align-items:center;gap:2px;display:flex}.oNvFBa_iconButton,.oNvFBa_iconButtonOn,.oNvFBa_iconButtonDanger{border-radius:var(--dsw-radius-sm);width:24px;height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.oNvFBa_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.oNvFBa_iconButtonOn{color:var(--dsw-alias-state-warn-primary)}.oNvFBa_iconButtonOn:hover{background:var(--dsw-alias-interactive-bg-hover)}.oNvFBa_iconButtonDanger{color:var(--dsw-alias-label-tertiary)}.oNvFBa_iconButtonDanger:hover{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.oNvFBa_iconButton:focus-visible,.oNvFBa_iconButtonOn:focus-visible,.oNvFBa_iconButtonDanger:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-2px}.oNvFBa_iconButtonDanger:disabled,.oNvFBa_iconButton:disabled{opacity:.5;cursor:default}.oNvFBa_docPager{justify-content:flex-end;align-items:center;gap:8px;padding-top:8px;display:flex}";
3656
- const tagId$13 = "@sparkelf/dsh-knowledge-base/KnowledgeHome.module.css";
3657
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$13) + "]") === null) {
3666
+ const css$17 = ".oNvFBa_home{flex-direction:column;gap:16px;min-width:0;display:flex}.oNvFBa_cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:13.5px;display:grid}.oNvFBa_cardSlot{min-width:0;position:relative}.oNvFBa_card{box-sizing:border-box;text-align:left;border:.5px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);width:100%;height:63px;color:var(--dsw-alias-label-primary);cursor:pointer;flex-direction:row;align-items:center;gap:14px;padding:0 9px 0 13px;display:flex}.oNvFBa_card:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.oNvFBa_card[data-open=true]{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l3)}.oNvFBa_card:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.oNvFBa_card:disabled{opacity:.4;cursor:default}.oNvFBa_cardPlate{border-radius:var(--dsw-radius-sm);width:24px;height:24px;color:var(--dsw-alias-label-primary-foreground);flex:none;justify-content:center;align-items:center;display:inline-flex}.oNvFBa_cardPlate[data-tone=blue]{background:var(--dsw-static-blue-500)}.oNvFBa_cardPlate[data-tone=amber]{background:var(--dsw-static-amber-500)}.oNvFBa_cardPlate[data-tone=deepseek]{background:var(--dsw-static-deepseek-500)}.oNvFBa_cardText{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.oNvFBa_cardTitle{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.oNvFBa_cardBody{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);text-overflow:ellipsis;white-space:nowrap;line-height:1.5;overflow:hidden}.oNvFBa_cardChevron{color:var(--dsw-alias-label-tertiary);flex:none;align-items:center;display:inline-flex}.oNvFBa_cardMenu{z-index:2;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0}.oNvFBa_cardMenuItem{box-sizing:border-box;border-radius:var(--dsw-radius-sm);width:100%;min-height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;padding:4px 8px;display:flex}.oNvFBa_cardMenuItem:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.oNvFBa_cardMenuItem:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.oNvFBa_table{border-collapse:collapse;width:100%}.oNvFBa_table th{text-align:left;font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary);border-bottom:.5px solid var(--dsw-alias-border-l2);white-space:nowrap;padding:6px 10px}.oNvFBa_table td{border-bottom:.5px solid var(--dsw-alias-border-l1);font:var(--dsw-font-xxs-12);vertical-align:middle;padding:7px 10px}.oNvFBa_table tr:last-child td{border-bottom:none}.oNvFBa_rowLink{color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;min-width:0;padding:0;overflow:hidden}.oNvFBa_rowLink:hover{color:var(--dsw-alias-link)}.oNvFBa_rowLink:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}.oNvFBa_muted{color:var(--dsw-alias-label-tertiary)}.oNvFBa_emptyRow td{text-align:center;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);padding:18px}.oNvFBa_hiddenInput{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.oNvFBa_titleCell{align-items:center;gap:4px;min-width:0;display:flex}.oNvFBa_favoriteMark{color:var(--dsw-static-amber-500);font:var(--dsw-font-xxs-12);flex:none}.oNvFBa_dropZone{border-radius:var(--dsw-radius-md);border:1px dashed #0000;transition:border-color .12s,background-color .12s}.oNvFBa_dropZoneActive{border-color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2)}.oNvFBa_shareWrap{flex-direction:column;gap:12px;display:flex}.oNvFBa_shareBlock{flex-direction:column;gap:8px;display:flex}.oNvFBa_shareEmpty{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-sm-13);margin:0;padding:12px 0}.oNvFBa_shareError{color:var(--dsw-alias-label-error);font:var(--dsw-font-sm-13);margin:0;padding:8px 0}.oNvFBa_sharePager{justify-content:flex-end;align-items:center;gap:8px;display:flex}.oNvFBa_table{table-layout:fixed}.oNvFBa_colTitle{width:42%}.oNvFBa_colLocation{width:18%}.oNvFBa_colOwner{width:10%}.oNvFBa_colTime{width:11%}.oNvFBa_colActions{width:96px}.oNvFBa_actionsCell{padding:0 6px}.oNvFBa_rowActions{justify-content:flex-end;align-items:center;gap:2px;display:flex}.oNvFBa_iconButton,.oNvFBa_iconButtonOn,.oNvFBa_iconButtonDanger{border-radius:var(--dsw-radius-sm);width:24px;height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.oNvFBa_iconButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.oNvFBa_iconButtonOn{color:var(--dsw-alias-state-warn-primary)}.oNvFBa_iconButtonOn:hover{background:var(--dsw-alias-interactive-bg-hover)}.oNvFBa_iconButtonDanger{color:var(--dsw-alias-label-tertiary)}.oNvFBa_iconButtonDanger:hover{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.oNvFBa_iconButton:focus-visible,.oNvFBa_iconButtonOn:focus-visible,.oNvFBa_iconButtonDanger:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-2px}.oNvFBa_iconButtonDanger:disabled,.oNvFBa_iconButton:disabled{opacity:.5;cursor:default}.oNvFBa_docPager{justify-content:flex-end;align-items:center;gap:8px;padding-top:8px;display:flex}";
3667
+ const tagId$17 = "@sparkelf/dsh-knowledge-base/KnowledgeHome.module.css";
3668
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$17) + "]") === null) {
3658
3669
  const tag = document.createElement("style");
3659
3670
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
3660
- tag.dataset.pluginCss = tagId$13;
3661
- tag.textContent = css$13;
3671
+ tag.dataset.pluginCss = tagId$17;
3672
+ tag.textContent = css$17;
3662
3673
  document.head.appendChild(tag);
3663
3674
  }
3664
3675
  var KnowledgeHome_module_css_default = {
3665
- "dropZoneActive": "oNvFBa_dropZoneActive",
3666
- "docPager": "oNvFBa_docPager",
3667
- "cardMenu": "oNvFBa_cardMenu",
3668
- "cardSlot": "oNvFBa_cardSlot",
3676
+ "home": "oNvFBa_home",
3677
+ "dropZone": "oNvFBa_dropZone",
3678
+ "shareWrap": "oNvFBa_shareWrap",
3679
+ "muted": "oNvFBa_muted",
3680
+ "cardTitle": "oNvFBa_cardTitle",
3681
+ "hiddenInput": "oNvFBa_hiddenInput",
3669
3682
  "rowActions": "oNvFBa_rowActions",
3670
- "favoriteMark": "oNvFBa_favoriteMark",
3683
+ "card": "oNvFBa_card",
3684
+ "colOwner": "oNvFBa_colOwner",
3685
+ "iconButton": "oNvFBa_iconButton",
3686
+ "cardBody": "oNvFBa_cardBody",
3687
+ "dropZoneActive": "oNvFBa_dropZoneActive",
3688
+ "emptyRow": "oNvFBa_emptyRow",
3671
3689
  "actionsCell": "oNvFBa_actionsCell",
3690
+ "colLocation": "oNvFBa_colLocation",
3672
3691
  "sharePager": "oNvFBa_sharePager",
3692
+ "colActions": "oNvFBa_colActions",
3673
3693
  "iconButtonDanger": "oNvFBa_iconButtonDanger",
3694
+ "cards": "oNvFBa_cards",
3674
3695
  "shareEmpty": "oNvFBa_shareEmpty",
3675
- "colLocation": "oNvFBa_colLocation",
3676
- "dropZone": "oNvFBa_dropZone",
3677
- "shareError": "oNvFBa_shareError",
3696
+ "colTime": "oNvFBa_colTime",
3697
+ "docPager": "oNvFBa_docPager",
3698
+ "cardMenu": "oNvFBa_cardMenu",
3699
+ "rowLink": "oNvFBa_rowLink",
3700
+ "shareError": "oNvFBa_shareError",
3678
3701
  "cardMenuItem": "oNvFBa_cardMenuItem",
3702
+ "colTitle": "oNvFBa_colTitle",
3679
3703
  "iconButtonOn": "oNvFBa_iconButtonOn",
3680
- "home": "oNvFBa_home",
3681
- "shareBlock": "oNvFBa_shareBlock",
3704
+ "table": "oNvFBa_table",
3682
3705
  "titleCell": "oNvFBa_titleCell",
3683
- "colActions": "oNvFBa_colActions",
3684
- "colTime": "oNvFBa_colTime",
3685
- "colTitle": "oNvFBa_colTitle",
3686
- "cards": "oNvFBa_cards",
3687
- "cardPlate": "oNvFBa_cardPlate",
3706
+ "favoriteMark": "oNvFBa_favoriteMark",
3707
+ "cardSlot": "oNvFBa_cardSlot",
3688
3708
  "cardChevron": "oNvFBa_cardChevron",
3689
- "muted": "oNvFBa_muted",
3690
- "iconButton": "oNvFBa_iconButton",
3691
- "hiddenInput": "oNvFBa_hiddenInput",
3692
- "card": "oNvFBa_card",
3693
- "emptyRow": "oNvFBa_emptyRow",
3694
- "cardBody": "oNvFBa_cardBody",
3695
- "colOwner": "oNvFBa_colOwner",
3696
- "shareWrap": "oNvFBa_shareWrap",
3697
- "table": "oNvFBa_table",
3698
- "cardTitle": "oNvFBa_cardTitle",
3699
- "rowLink": "oNvFBa_rowLink",
3709
+ "cardPlate": "oNvFBa_cardPlate",
3710
+ "shareBlock": "oNvFBa_shareBlock",
3700
3711
  "cardText": "oNvFBa_cardText"
3701
3712
  };
3702
3713
  //#endregion
3703
3714
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeTemplates.module.css.mjs
3704
- const css$12 = ".Tg9J7q_dialog{flex-direction:column;gap:12px;min-width:0;min-height:600px;display:flex}.Tg9J7q_toolbar{align-items:center;gap:8px;display:flex}.Tg9J7q_toolbar>:last-child{flex:auto;min-width:0}.Tg9J7q_notice{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);margin:0;padding:6px 8px}.Tg9J7q_muted{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);margin:0;padding:12px 0}.Tg9J7q_library{flex-direction:column;gap:12px;min-height:0;display:flex}.Tg9J7q_destination{flex-direction:column;gap:6px;display:flex}.Tg9J7q_destinationLabel{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.Tg9J7q_grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:min(58vh,600px);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.Tg9J7q_card{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);align-items:center;gap:14px;min-height:104px;padding:10px;display:flex;position:relative}.Tg9J7q_cover{border-radius:var(--dsw-radius-sm);background:linear-gradient(135deg, var(--dsw-alias-bg-layer-1), var(--dsw-alias-bg-layer-2));border:1px solid var(--dsw-alias-border-l1);flex:0 0 108px;justify-content:center;align-items:center;width:108px;height:82px;display:flex}.Tg9J7q_cardMain{flex:auto;min-width:0}.Tg9J7q_cardActions{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-1);opacity:0;gap:4px;padding:4px;transition:opacity .12s,transform .12s;display:flex;position:absolute;bottom:10px;right:10px;transform:translateY(3px)}.Tg9J7q_card:hover .Tg9J7q_cardActions,.Tg9J7q_card:focus-within .Tg9J7q_cardActions{opacity:1;transform:translateY(0)}@media (hover:none){.Tg9J7q_cardActions{opacity:1;transform:none}}@media (width<=760px){.Tg9J7q_grid{grid-template-columns:minmax(0,1fr)}}.Tg9J7q_cardHead{justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;display:flex}.Tg9J7q_cardTitle{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);font-weight:600;display:block;overflow:hidden}.Tg9J7q_cardBody{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.Tg9J7q_cardTags{flex-wrap:wrap;gap:4px;display:flex}.Tg9J7q_cardFoot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:6px;display:flex}.Tg9J7q_cardMeta{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;overflow:hidden}.Tg9J7q_manage{flex-direction:column;gap:10px;max-height:52vh;display:flex;overflow-y:auto}.Tg9J7q_manageBar{justify-content:flex-end;display:flex}.Tg9J7q_manageList{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.Tg9J7q_manageRow{border-radius:var(--dsw-radius-sm);align-items:center;gap:10px;padding:6px 8px;display:flex}.Tg9J7q_manageRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.Tg9J7q_manageName{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);flex:auto;overflow:hidden}.Tg9J7q_manageActions{flex:none;gap:4px;display:inline-flex}.Tg9J7q_form{flex-direction:column;gap:10px;display:flex}.Tg9J7q_field{flex-direction:column;gap:4px;min-width:0;display:flex}.Tg9J7q_fieldLabel{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.Tg9J7q_fieldHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11)}.Tg9J7q_fileInput{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.Tg9J7q_formActions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.Tg9J7q_modal{width:min(1180px,100vw - 32px);min-height:min(720px,86vh);max-height:min(860px,90vh)}.Tg9J7q_footer{justify-content:flex-end;gap:8px;width:100%;display:flex}.Tg9J7q_quickFilters{align-items:center;gap:4px;display:flex}.Tg9J7q_quickFilter{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-sm);height:28px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;padding:0 10px}.Tg9J7q_quickFilter:hover,.Tg9J7q_quickFilter[data-active=true]{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary)}.Tg9J7q_grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));max-height:min(52vh,560px)}.Tg9J7q_card{min-height:174px;padding:12px}.Tg9J7q_cardHead{align-items:center}.Tg9J7q_cardIcon{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-1);flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.Tg9J7q_cardTitle{flex:auto}.Tg9J7q_favorite{border-radius:var(--dsw-radius-sm);width:24px;height:24px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-base-strong-16);cursor:pointer;background:0 0;border:0;flex:none;padding:0;line-height:1}.Tg9J7q_favorite:hover,.Tg9J7q_favorite[aria-pressed=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-business-primary)}.Tg9J7q_formActions{justify-content:flex-end}.Tg9J7q_categoryFilters{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.Tg9J7q_categoryChip{border-radius:var(--dsw-radius-sm);height:24px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;border:0;padding:0 8px}.Tg9J7q_categoryChip:hover,.Tg9J7q_categoryChip[data-active=true]{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary)}.Tg9J7q_previewModal{width:min(760px,100vw - 32px)}.Tg9J7q_previewContent{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);max-height:min(62vh,560px);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);font-family:var(--dsw-font-markdown-code);white-space:pre-wrap;word-break:break-word;margin:0;padding:12px;overflow:auto}.Tg9J7q_filterRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Tg9J7q_filterDivider{background:var(--dsw-alias-border-l2);width:1px;height:16px}.Tg9J7q_grid{grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:12px;max-height:min(58vh,620px)}.Tg9J7q_card{isolation:isolate;flex-direction:column;align-items:stretch;gap:8px;min-height:248px;padding:0;display:flex;position:relative;overflow:hidden}.Tg9J7q_cardHead{z-index:4;box-sizing:border-box;align-items:center;gap:6px;width:100%;min-width:0;padding:12px 12px 0;display:flex;position:relative}.Tg9J7q_cardHead .Tg9J7q_cardTitle{min-width:0;font:var(--dsw-font-xxs-strong-12);flex:auto;font-weight:600}.Tg9J7q_cover{z-index:0;background:linear-gradient(145deg, var(--dsw-alias-bg-layer-1), var(--dsw-alias-bg-layer-2));border:0;border-radius:0;flex:none;width:100%;height:100%;min-height:0;position:absolute;inset:0;overflow:hidden}.Tg9J7q_cover[data-template-kind=表格]{background:linear-gradient(145deg,#10b9812e,#10b9810d)}.Tg9J7q_cover[data-template-kind=PPT]{background:linear-gradient(145deg,#f59e0b33,#f59e0b0d)}.Tg9J7q_coverPage{background:#fffffff5;border-radius:3px 3px 0 0;padding:10px;position:absolute;inset:20% 14% 24%;overflow:hidden;box-shadow:0 8px 24px #0f172a2e}.Tg9J7q_documentPage{flex-direction:column;gap:5px;height:100%;display:flex}.Tg9J7q_documentPage b,.Tg9J7q_documentPage i{background:#d8dee9;border-radius:2px;height:5px;display:block}.Tg9J7q_documentPage b{background:#9aa8bd;width:54%;height:8px;margin-bottom:3px}.Tg9J7q_documentPage .Tg9J7q_lineWide{width:100%}.Tg9J7q_documentPage .Tg9J7q_lineShort{width:42%}.Tg9J7q_documentPage i:nth-child(2){width:88%}.Tg9J7q_documentPage i:nth-child(4){width:72%}.Tg9J7q_sheetGrid{grid-template-columns:repeat(3,1fr);gap:3px;height:100%;display:grid}.Tg9J7q_sheetGrid i{background:#f2faf6;border:1px solid #d8e9df;min-height:12px;display:block}.Tg9J7q_slidePage{background:linear-gradient(135deg,#fffaf0,#fff);flex-direction:column;justify-content:center;gap:8px;height:100%;padding:8px;display:flex}.Tg9J7q_slidePage b{background:#d9a441;border-radius:2px;width:68%;height:9px;display:block}.Tg9J7q_slidePage i{background:#e7d6b8;border-radius:2px;width:90%;height:5px;display:block}.Tg9J7q_cardFoot{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;z-index:3;justify-content:space-between;align-items:center;gap:8px;max-width:calc(100% - 134px);margin:0;padding:0;display:flex;position:absolute;bottom:10px;left:12px;right:auto}.Tg9J7q_cardActions{z-index:5;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);justify-content:flex-end;position:absolute;bottom:10px;left:auto;right:12px;box-shadow:0 6px 18px #00000040}.Tg9J7q_card:hover .Tg9J7q_coverPage,.Tg9J7q_card:focus-within .Tg9J7q_coverPage{transition:transform .15s;transform:translateY(-2px)}";
3705
- const tagId$12 = "@sparkelf/dsh-knowledge-base/KnowledgeTemplates.module.css";
3706
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$12) + "]") === null) {
3715
+ const css$16 = ".Tg9J7q_dialog{flex-direction:column;gap:12px;min-width:0;min-height:600px;display:flex}.Tg9J7q_toolbar{align-items:center;gap:8px;display:flex}.Tg9J7q_toolbar>:last-child{flex:auto;min-width:0}.Tg9J7q_notice{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);margin:0;padding:6px 8px}.Tg9J7q_muted{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);margin:0;padding:12px 0}.Tg9J7q_library{flex-direction:column;gap:12px;min-height:0;display:flex}.Tg9J7q_destination{flex-direction:column;gap:6px;display:flex}.Tg9J7q_destinationLabel{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.Tg9J7q_grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:min(58vh,600px);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.Tg9J7q_card{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);align-items:center;gap:14px;min-height:104px;padding:10px;display:flex;position:relative}.Tg9J7q_cover{border-radius:var(--dsw-radius-sm);background:linear-gradient(135deg, var(--dsw-alias-bg-layer-1), var(--dsw-alias-bg-layer-2));border:1px solid var(--dsw-alias-border-l1);flex:0 0 108px;justify-content:center;align-items:center;width:108px;height:82px;display:flex}.Tg9J7q_cardMain{flex:auto;min-width:0}.Tg9J7q_cardActions{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-1);opacity:0;gap:4px;padding:4px;transition:opacity .12s,transform .12s;display:flex;position:absolute;bottom:10px;right:10px;transform:translateY(3px)}.Tg9J7q_card:hover .Tg9J7q_cardActions,.Tg9J7q_card:focus-within .Tg9J7q_cardActions{opacity:1;transform:translateY(0)}@media (hover:none){.Tg9J7q_cardActions{opacity:1;transform:none}}@media (width<=760px){.Tg9J7q_grid{grid-template-columns:minmax(0,1fr)}}.Tg9J7q_cardHead{justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;display:flex}.Tg9J7q_cardTitle{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-13);font-weight:600;display:block;overflow:hidden}.Tg9J7q_cardBody{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.Tg9J7q_cardTags{flex-wrap:wrap;gap:4px;display:flex}.Tg9J7q_cardFoot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:6px;display:flex}.Tg9J7q_cardMeta{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;overflow:hidden}.Tg9J7q_manage{flex-direction:column;gap:10px;max-height:52vh;display:flex;overflow-y:auto}.Tg9J7q_manageBar{justify-content:flex-end;display:flex}.Tg9J7q_manageList{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.Tg9J7q_manageRow{border-radius:var(--dsw-radius-sm);align-items:center;gap:10px;padding:6px 8px;display:flex}.Tg9J7q_manageRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.Tg9J7q_manageName{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);flex:auto;overflow:hidden}.Tg9J7q_manageActions{flex:none;gap:4px;display:inline-flex}.Tg9J7q_form{flex-direction:column;gap:10px;display:flex}.Tg9J7q_field{flex-direction:column;gap:4px;min-width:0;display:flex}.Tg9J7q_fieldLabel{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.Tg9J7q_fieldHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11)}.Tg9J7q_fileInput{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.Tg9J7q_formActions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.Tg9J7q_modal{width:min(1180px,100vw - 32px);min-height:min(720px,86vh);max-height:min(860px,90vh)}.Tg9J7q_footer{justify-content:flex-end;gap:8px;width:100%;display:flex}.Tg9J7q_quickFilters{align-items:center;gap:4px;display:flex}.Tg9J7q_quickFilter{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-sm);height:28px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;padding:0 10px}.Tg9J7q_quickFilter:hover,.Tg9J7q_quickFilter[data-active=true]{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary)}.Tg9J7q_grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));max-height:min(52vh,560px)}.Tg9J7q_card{min-height:174px;padding:12px}.Tg9J7q_cardHead{align-items:center}.Tg9J7q_cardIcon{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-1);flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.Tg9J7q_cardTitle{flex:auto}.Tg9J7q_favorite{border-radius:var(--dsw-radius-sm);width:24px;height:24px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-base-strong-16);cursor:pointer;background:0 0;border:0;flex:none;padding:0;line-height:1}.Tg9J7q_favorite:hover,.Tg9J7q_favorite[aria-pressed=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-business-primary)}.Tg9J7q_formActions{justify-content:flex-end}.Tg9J7q_categoryFilters{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.Tg9J7q_categoryChip{border-radius:var(--dsw-radius-sm);height:24px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;border:0;padding:0 8px}.Tg9J7q_categoryChip:hover,.Tg9J7q_categoryChip[data-active=true]{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary)}.Tg9J7q_previewModal{width:min(760px,100vw - 32px)}.Tg9J7q_previewContent{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);max-height:min(62vh,560px);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);font-family:var(--dsw-font-markdown-code);white-space:pre-wrap;word-break:break-word;margin:0;padding:12px;overflow:auto}.Tg9J7q_filterRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Tg9J7q_filterDivider{background:var(--dsw-alias-border-l2);width:1px;height:16px}.Tg9J7q_grid{grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:12px;max-height:min(58vh,620px)}.Tg9J7q_card{isolation:isolate;flex-direction:column;align-items:stretch;gap:8px;min-height:248px;padding:0;display:flex;position:relative;overflow:hidden}.Tg9J7q_cardHead{z-index:4;box-sizing:border-box;align-items:center;gap:6px;width:100%;min-width:0;padding:12px 12px 0;display:flex;position:relative}.Tg9J7q_cardHead .Tg9J7q_cardTitle{min-width:0;font:var(--dsw-font-xxs-strong-12);flex:auto;font-weight:600}.Tg9J7q_cover{z-index:0;background:linear-gradient(145deg, var(--dsw-alias-bg-layer-1), var(--dsw-alias-bg-layer-2));border:0;border-radius:0;flex:none;width:100%;height:100%;min-height:0;position:absolute;inset:0;overflow:hidden}.Tg9J7q_cover[data-template-kind=表格]{background:linear-gradient(145deg,#10b9812e,#10b9810d)}.Tg9J7q_cover[data-template-kind=PPT]{background:linear-gradient(145deg,#f59e0b33,#f59e0b0d)}.Tg9J7q_coverPage{background:#fffffff5;border-radius:3px 3px 0 0;padding:10px;position:absolute;inset:20% 14% 24%;overflow:hidden;box-shadow:0 8px 24px #0f172a2e}.Tg9J7q_documentPage{flex-direction:column;gap:5px;height:100%;display:flex}.Tg9J7q_documentPage b,.Tg9J7q_documentPage i{background:#d8dee9;border-radius:2px;height:5px;display:block}.Tg9J7q_documentPage b{background:#9aa8bd;width:54%;height:8px;margin-bottom:3px}.Tg9J7q_documentPage .Tg9J7q_lineWide{width:100%}.Tg9J7q_documentPage .Tg9J7q_lineShort{width:42%}.Tg9J7q_documentPage i:nth-child(2){width:88%}.Tg9J7q_documentPage i:nth-child(4){width:72%}.Tg9J7q_sheetGrid{grid-template-columns:repeat(3,1fr);gap:3px;height:100%;display:grid}.Tg9J7q_sheetGrid i{background:#f2faf6;border:1px solid #d8e9df;min-height:12px;display:block}.Tg9J7q_slidePage{background:linear-gradient(135deg,#fffaf0,#fff);flex-direction:column;justify-content:center;gap:8px;height:100%;padding:8px;display:flex}.Tg9J7q_slidePage b{background:#d9a441;border-radius:2px;width:68%;height:9px;display:block}.Tg9J7q_slidePage i{background:#e7d6b8;border-radius:2px;width:90%;height:5px;display:block}.Tg9J7q_cardFoot{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;z-index:3;justify-content:space-between;align-items:center;gap:8px;max-width:calc(100% - 134px);margin:0;padding:0;display:flex;position:absolute;bottom:10px;left:12px;right:auto}.Tg9J7q_cardActions{z-index:5;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);justify-content:flex-end;position:absolute;bottom:10px;left:auto;right:12px;box-shadow:0 6px 18px #00000040}.Tg9J7q_card:hover .Tg9J7q_coverPage,.Tg9J7q_card:focus-within .Tg9J7q_coverPage{transition:transform .15s;transform:translateY(-2px)}";
3716
+ const tagId$16 = "@sparkelf/dsh-knowledge-base/KnowledgeTemplates.module.css";
3717
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$16) + "]") === null) {
3707
3718
  const tag = document.createElement("style");
3708
3719
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
3709
- tag.dataset.pluginCss = tagId$12;
3710
- tag.textContent = css$12;
3720
+ tag.dataset.pluginCss = tagId$16;
3721
+ tag.textContent = css$16;
3711
3722
  document.head.appendChild(tag);
3712
3723
  }
3713
3724
  var KnowledgeTemplates_module_css_default = {
3725
+ "coverPage": "Tg9J7q_coverPage",
3726
+ "filterDivider": "Tg9J7q_filterDivider",
3727
+ "manageActions": "Tg9J7q_manageActions",
3728
+ "documentPage": "Tg9J7q_documentPage",
3729
+ "cover": "Tg9J7q_cover",
3730
+ "manageName": "Tg9J7q_manageName",
3731
+ "fileInput": "Tg9J7q_fileInput",
3732
+ "previewModal": "Tg9J7q_previewModal",
3733
+ "manageBar": "Tg9J7q_manageBar",
3734
+ "previewContent": "Tg9J7q_previewContent",
3735
+ "dialog": "Tg9J7q_dialog",
3714
3736
  "cardMeta": "Tg9J7q_cardMeta",
3715
- "modal": "Tg9J7q_modal",
3716
- "card": "Tg9J7q_card",
3717
- "toolbar": "Tg9J7q_toolbar",
3718
- "cardMain": "Tg9J7q_cardMain",
3737
+ "manageRow": "Tg9J7q_manageRow",
3738
+ "notice": "Tg9J7q_notice",
3719
3739
  "cardTags": "Tg9J7q_cardTags",
3720
3740
  "library": "Tg9J7q_library",
3721
- "manageName": "Tg9J7q_manageName",
3722
- "filterRow": "Tg9J7q_filterRow",
3723
- "grid": "Tg9J7q_grid",
3724
- "documentPage": "Tg9J7q_documentPage",
3725
- "previewContent": "Tg9J7q_previewContent",
3726
- "sheetGrid": "Tg9J7q_sheetGrid",
3727
- "cardBody": "Tg9J7q_cardBody",
3728
3741
  "manage": "Tg9J7q_manage",
3729
- "formActions": "Tg9J7q_formActions",
3742
+ "footer": "Tg9J7q_footer",
3730
3743
  "quickFilter": "Tg9J7q_quickFilter",
3731
- "slidePage": "Tg9J7q_slidePage",
3732
- "cover": "Tg9J7q_cover",
3733
- "notice": "Tg9J7q_notice",
3734
- "manageRow": "Tg9J7q_manageRow",
3735
- "manageActions": "Tg9J7q_manageActions",
3736
- "cardHead": "Tg9J7q_cardHead",
3737
- "favorite": "Tg9J7q_favorite",
3738
- "categoryFilters": "Tg9J7q_categoryFilters",
3739
- "filterDivider": "Tg9J7q_filterDivider",
3740
- "destinationLabel": "Tg9J7q_destinationLabel",
3741
- "manageBar": "Tg9J7q_manageBar",
3744
+ "cardBody": "Tg9J7q_cardBody",
3745
+ "modal": "Tg9J7q_modal",
3746
+ "cardTitle": "Tg9J7q_cardTitle",
3742
3747
  "fieldHint": "Tg9J7q_fieldHint",
3743
- "fileInput": "Tg9J7q_fileInput",
3744
- "footer": "Tg9J7q_footer",
3745
- "form": "Tg9J7q_form",
3746
- "muted": "Tg9J7q_muted",
3748
+ "destinationLabel": "Tg9J7q_destinationLabel",
3749
+ "categoryChip": "Tg9J7q_categoryChip",
3750
+ "lineWide": "Tg9J7q_lineWide",
3747
3751
  "cardActions": "Tg9J7q_cardActions",
3748
- "destination": "Tg9J7q_destination",
3749
- "manageList": "Tg9J7q_manageList",
3750
3752
  "cardFoot": "Tg9J7q_cardFoot",
3751
- "lineWide": "Tg9J7q_lineWide",
3753
+ "card": "Tg9J7q_card",
3752
3754
  "lineShort": "Tg9J7q_lineShort",
3753
- "cardTitle": "Tg9J7q_cardTitle",
3754
- "cardIcon": "Tg9J7q_cardIcon",
3755
- "previewModal": "Tg9J7q_previewModal",
3756
- "dialog": "Tg9J7q_dialog",
3755
+ "formActions": "Tg9J7q_formActions",
3756
+ "quickFilters": "Tg9J7q_quickFilters",
3757
+ "sheetGrid": "Tg9J7q_sheetGrid",
3758
+ "slidePage": "Tg9J7q_slidePage",
3759
+ "favorite": "Tg9J7q_favorite",
3760
+ "grid": "Tg9J7q_grid",
3761
+ "form": "Tg9J7q_form",
3757
3762
  "field": "Tg9J7q_field",
3763
+ "cardMain": "Tg9J7q_cardMain",
3764
+ "manageList": "Tg9J7q_manageList",
3765
+ "cardIcon": "Tg9J7q_cardIcon",
3766
+ "categoryFilters": "Tg9J7q_categoryFilters",
3767
+ "toolbar": "Tg9J7q_toolbar",
3768
+ "muted": "Tg9J7q_muted",
3769
+ "cardHead": "Tg9J7q_cardHead",
3770
+ "filterRow": "Tg9J7q_filterRow",
3758
3771
  "fieldLabel": "Tg9J7q_fieldLabel",
3759
- "quickFilters": "Tg9J7q_quickFilters",
3760
- "categoryChip": "Tg9J7q_categoryChip",
3761
- "coverPage": "Tg9J7q_coverPage"
3772
+ "destination": "Tg9J7q_destination"
3762
3773
  };
3763
3774
  //#endregion
3764
3775
  //#region src/client/KnowledgeTemplates.tsx
@@ -4734,24 +4745,24 @@ window.__ModuleLoader__.load({
4734
4745
  }
4735
4746
  //#endregion
4736
4747
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeNewDocumentDialog.module.css.mjs
4737
- const css$11 = ".hXsYha_modal{width:min(760px,100vw - 32px)}.hXsYha_dialog{flex-direction:column;gap:16px;min-width:0;display:flex}.hXsYha_cards{align-items:stretch;gap:10px;display:flex}.hXsYha_card{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-layer-1);min-height:92px;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;flex:1 1 0;align-items:center;gap:12px;padding:16px;transition:border-color .15s,background .15s,transform .15s;display:flex}.hXsYha_card:hover,.hXsYha_card:focus-visible{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-2);outline:none;transform:translateY(-1px)}.hXsYha_iconPlate{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);flex:none;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.hXsYha_cardText{align-items:center;min-width:0;display:flex}.hXsYha_cardTitle{font:var(--dsw-font-xs-13);font-weight:600}.hXsYha_footer{justify-content:flex-end;gap:8px;width:100%;display:flex}";
4738
- const tagId$11 = "@sparkelf/dsh-knowledge-base/KnowledgeNewDocumentDialog.module.css";
4739
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$11) + "]") === null) {
4748
+ const css$15 = ".hXsYha_modal{width:min(760px,100vw - 32px)}.hXsYha_dialog{flex-direction:column;gap:16px;min-width:0;display:flex}.hXsYha_cards{align-items:stretch;gap:10px;display:flex}.hXsYha_card{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-layer-1);min-height:92px;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;flex:1 1 0;align-items:center;gap:12px;padding:16px;transition:border-color .15s,background .15s,transform .15s;display:flex}.hXsYha_card:hover,.hXsYha_card:focus-visible{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-2);outline:none;transform:translateY(-1px)}.hXsYha_iconPlate{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);flex:none;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.hXsYha_cardText{align-items:center;min-width:0;display:flex}.hXsYha_cardTitle{font:var(--dsw-font-xs-13);font-weight:600}.hXsYha_footer{justify-content:flex-end;gap:8px;width:100%;display:flex}";
4749
+ const tagId$15 = "@sparkelf/dsh-knowledge-base/KnowledgeNewDocumentDialog.module.css";
4750
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$15) + "]") === null) {
4740
4751
  const tag = document.createElement("style");
4741
4752
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
4742
- tag.dataset.pluginCss = tagId$11;
4743
- tag.textContent = css$11;
4753
+ tag.dataset.pluginCss = tagId$15;
4754
+ tag.textContent = css$15;
4744
4755
  document.head.appendChild(tag);
4745
4756
  }
4746
4757
  var KnowledgeNewDocumentDialog_module_css_default = {
4747
4758
  "cardTitle": "hXsYha_cardTitle",
4748
- "footer": "hXsYha_footer",
4749
- "cardText": "hXsYha_cardText",
4750
- "iconPlate": "hXsYha_iconPlate",
4759
+ "dialog": "hXsYha_dialog",
4751
4760
  "cards": "hXsYha_cards",
4761
+ "cardText": "hXsYha_cardText",
4752
4762
  "modal": "hXsYha_modal",
4753
- "card": "hXsYha_card",
4754
- "dialog": "hXsYha_dialog"
4763
+ "footer": "hXsYha_footer",
4764
+ "iconPlate": "hXsYha_iconPlate",
4765
+ "card": "hXsYha_card"
4755
4766
  };
4756
4767
  //#endregion
4757
4768
  //#region src/client/KnowledgeNewDocumentDialog.tsx
@@ -4832,62 +4843,62 @@ window.__ModuleLoader__.load({
4832
4843
  }
4833
4844
  //#endregion
4834
4845
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeCreateDialog.module.css.mjs
4835
- const css$10 = ".HX727W_dialog{flex-direction:column;gap:16px;min-width:0;display:flex}.HX727W_field{flex-direction:column;gap:6px;min-width:0;display:flex}.HX727W_fieldLabel{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.HX727W_fieldHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11)}.HX727W_fieldError{color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxxs-11)}.HX727W_summary{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);word-break:break-all;margin:0;padding:8px 10px}.HX727W_picker{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);flex-direction:column;gap:8px;padding:8px;display:flex}.HX727W_pickerBar{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.HX727W_crumbWrap{align-items:center;gap:4px;display:inline-flex}.HX727W_crumbSep{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12)}.HX727W_crumb{border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);cursor:pointer;background:0 0;border:0;padding:2px 4px}.HX727W_crumb:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.HX727W_crumb:disabled{color:var(--dsw-alias-label-primary);cursor:default}.HX727W_pickerPath{align-items:baseline;gap:6px;min-width:0;margin:0;display:flex}.HX727W_pickerPathLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);flex:none}.HX727W_pickerPathValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);font-family:var(--dsw-font-markdown-code);overflow:hidden}.HX727W_pickerList{flex-direction:column;gap:2px;max-height:132px;display:flex;overflow-y:auto}.HX727W_pickerMuted{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);margin:0;padding:6px 4px}.HX727W_pickerRow{border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);text-align:start;cursor:pointer;background:0 0;border:0;padding:4px 8px}.HX727W_pickerRow:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.HX727W_fileInput{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.HX727W_fileList{flex-direction:column;gap:2px;max-height:132px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.HX727W_fileRow{align-items:baseline;gap:8px;min-width:0;display:flex}.HX727W_fileName{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);flex:0 auto;overflow:hidden}.HX727W_fileTarget{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-family:var(--dsw-font-markdown-code);flex:auto;overflow:hidden}.HX727W_modal{width:min(640px,100vw - 32px)}.HX727W_footer{justify-content:flex-end;gap:8px;width:100%;display:flex}.HX727W_visuallyHiddenInput{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.HX727W_dropzone{border:1px dashed var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);min-height:152px;color:var(--dsw-alias-label-secondary);text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:18px;transition:border-color .15s,background .15s;display:flex}.HX727W_dropzone:hover,.HX727W_dropzone:focus-visible,.HX727W_dropzone[data-active=true]{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-1);outline:none}.HX727W_dropzoneTitle{color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12)}.HX727W_dropzoneHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11)}.HX727W_uploadSummary{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);justify-content:space-between;align-items:center;display:flex}.HX727W_uploadList{flex-direction:column;gap:2px;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.HX727W_uploadRow{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-2);align-items:center;gap:8px;min-width:0;padding:7px 8px;display:flex}.HX727W_uploadName{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);flex:auto;overflow:hidden}.HX727W_uploadSize{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;flex:none}.HX727W_removeFile{border-radius:var(--dsw-radius-sm);width:22px;height:22px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-base-strong-16);cursor:pointer;background:0 0;border:0;flex:none;padding:0;line-height:1}.HX727W_removeFile:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.HX727W_steps{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);align-items:center;gap:10px;display:flex}.HX727W_step[data-active=true]{color:var(--dsw-alias-label-primary);font-weight:600}.HX727W_stepLine{background:var(--dsw-alias-border-l2);flex:0 0 42px;height:1px}.HX727W_uploadLayout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:stretch;gap:12px;display:grid}.HX727W_uploadLayout[data-empty=true]{grid-template-columns:minmax(0,1fr)}.HX727W_uploadLayout[data-empty=true] .HX727W_uploadQueue{display:none}.HX727W_uploadQueue{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);flex-direction:column;gap:6px;min-width:0;min-height:152px;padding:8px;display:flex}.HX727W_uploadQueue .HX727W_uploadList{max-height:220px}.HX727W_tree{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);max-height:300px;padding:4px;overflow:auto}.HX727W_treeChildren{margin:0;padding:0;list-style:none}.HX727W_treeRow{border-radius:var(--dsw-radius-sm);min-height:30px;color:var(--dsw-alias-label-secondary);align-items:center;gap:2px;display:flex}.HX727W_treeRow:hover,.HX727W_treeRow[data-selected=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.HX727W_treeToggle{width:20px;height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.HX727W_treeName{border-radius:var(--dsw-radius-sm);min-width:0;height:26px;color:inherit;font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;align-items:center;gap:6px;padding:0 6px;display:inline-flex}.HX727W_treeName:hover,.HX727W_treeName:focus-visible{background:var(--dsw-alias-interactive-bg-hover);outline:none}.HX727W_treeMuted{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);margin:0;padding:4px 8px}.HX727W_tree{max-height:320px;overflow:auto}.HX727W_treeNotice{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);margin:4px 0 0;padding:4px 8px}";
4836
- const tagId$10 = "@sparkelf/dsh-knowledge-base/KnowledgeCreateDialog.module.css";
4837
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) {
4846
+ const css$14 = ".HX727W_dialog{flex-direction:column;gap:16px;min-width:0;display:flex}.HX727W_field{flex-direction:column;gap:6px;min-width:0;display:flex}.HX727W_fieldLabel{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.HX727W_fieldHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11)}.HX727W_fieldError{color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxxs-11)}.HX727W_summary{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);word-break:break-all;margin:0;padding:8px 10px}.HX727W_picker{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);flex-direction:column;gap:8px;padding:8px;display:flex}.HX727W_pickerBar{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.HX727W_crumbWrap{align-items:center;gap:4px;display:inline-flex}.HX727W_crumbSep{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12)}.HX727W_crumb{border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);cursor:pointer;background:0 0;border:0;padding:2px 4px}.HX727W_crumb:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.HX727W_crumb:disabled{color:var(--dsw-alias-label-primary);cursor:default}.HX727W_pickerPath{align-items:baseline;gap:6px;min-width:0;margin:0;display:flex}.HX727W_pickerPathLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);flex:none}.HX727W_pickerPathValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);font-family:var(--dsw-font-markdown-code);overflow:hidden}.HX727W_pickerList{flex-direction:column;gap:2px;max-height:132px;display:flex;overflow-y:auto}.HX727W_pickerMuted{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);margin:0;padding:6px 4px}.HX727W_pickerRow{border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);text-align:start;cursor:pointer;background:0 0;border:0;padding:4px 8px}.HX727W_pickerRow:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.HX727W_fileInput{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.HX727W_fileList{flex-direction:column;gap:2px;max-height:132px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.HX727W_fileRow{align-items:baseline;gap:8px;min-width:0;display:flex}.HX727W_fileName{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);flex:0 auto;overflow:hidden}.HX727W_fileTarget{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-family:var(--dsw-font-markdown-code);flex:auto;overflow:hidden}.HX727W_modal{width:min(640px,100vw - 32px)}.HX727W_footer{justify-content:flex-end;gap:8px;width:100%;display:flex}.HX727W_visuallyHiddenInput{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.HX727W_dropzone{border:1px dashed var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);min-height:152px;color:var(--dsw-alias-label-secondary);text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:18px;transition:border-color .15s,background .15s;display:flex}.HX727W_dropzone:hover,.HX727W_dropzone:focus-visible,.HX727W_dropzone[data-active=true]{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-1);outline:none}.HX727W_dropzoneTitle{color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12)}.HX727W_dropzoneHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11)}.HX727W_uploadSummary{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);justify-content:space-between;align-items:center;display:flex}.HX727W_uploadList{flex-direction:column;gap:2px;max-height:220px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.HX727W_uploadRow{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-2);align-items:center;gap:8px;min-width:0;padding:7px 8px;display:flex}.HX727W_uploadName{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);flex:auto;overflow:hidden}.HX727W_uploadSize{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;flex:none}.HX727W_removeFile{border-radius:var(--dsw-radius-sm);width:22px;height:22px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-base-strong-16);cursor:pointer;background:0 0;border:0;flex:none;padding:0;line-height:1}.HX727W_removeFile:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.HX727W_steps{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);align-items:center;gap:10px;display:flex}.HX727W_step[data-active=true]{color:var(--dsw-alias-label-primary);font-weight:600}.HX727W_stepLine{background:var(--dsw-alias-border-l2);flex:0 0 42px;height:1px}.HX727W_uploadLayout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:stretch;gap:12px;display:grid}.HX727W_uploadLayout[data-empty=true]{grid-template-columns:minmax(0,1fr)}.HX727W_uploadLayout[data-empty=true] .HX727W_uploadQueue{display:none}.HX727W_uploadQueue{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);flex-direction:column;gap:6px;min-width:0;min-height:152px;padding:8px;display:flex}.HX727W_uploadQueue .HX727W_uploadList{max-height:220px}.HX727W_tree{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);max-height:300px;padding:4px;overflow:auto}.HX727W_treeChildren{margin:0;padding:0;list-style:none}.HX727W_treeRow{border-radius:var(--dsw-radius-sm);min-height:30px;color:var(--dsw-alias-label-secondary);align-items:center;gap:2px;display:flex}.HX727W_treeRow:hover,.HX727W_treeRow[data-selected=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.HX727W_treeToggle{width:20px;height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.HX727W_treeName{border-radius:var(--dsw-radius-sm);min-width:0;height:26px;color:inherit;font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;background:0 0;border:0;flex:auto;align-items:center;gap:6px;padding:0 6px;display:inline-flex}.HX727W_treeName:hover,.HX727W_treeName:focus-visible{background:var(--dsw-alias-interactive-bg-hover);outline:none}.HX727W_treeMuted{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);margin:0;padding:4px 8px}.HX727W_tree{max-height:320px;overflow:auto}.HX727W_treeNotice{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);margin:4px 0 0;padding:4px 8px}";
4847
+ const tagId$14 = "@sparkelf/dsh-knowledge-base/KnowledgeCreateDialog.module.css";
4848
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$14) + "]") === null) {
4838
4849
  const tag = document.createElement("style");
4839
4850
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
4840
- tag.dataset.pluginCss = tagId$10;
4841
- tag.textContent = css$10;
4851
+ tag.dataset.pluginCss = tagId$14;
4852
+ tag.textContent = css$14;
4842
4853
  document.head.appendChild(tag);
4843
4854
  }
4844
4855
  var KnowledgeCreateDialog_module_css_default = {
4845
- "fileList": "HX727W_fileList",
4846
- "removeFile": "HX727W_removeFile",
4847
- "steps": "HX727W_steps",
4848
- "pickerBar": "HX727W_pickerBar",
4849
- "uploadList": "HX727W_uploadList",
4850
- "treeName": "HX727W_treeName",
4851
- "uploadRow": "HX727W_uploadRow",
4856
+ "pickerPath": "HX727W_pickerPath",
4857
+ "field": "HX727W_field",
4858
+ "pickerMuted": "HX727W_pickerMuted",
4859
+ "uploadSummary": "HX727W_uploadSummary",
4860
+ "uploadSize": "HX727W_uploadSize",
4861
+ "dialog": "HX727W_dialog",
4862
+ "fieldLabel": "HX727W_fieldLabel",
4852
4863
  "fileTarget": "HX727W_fileTarget",
4853
- "treeChildren": "HX727W_treeChildren",
4854
- "treeMuted": "HX727W_treeMuted",
4864
+ "uploadRow": "HX727W_uploadRow",
4865
+ "pickerPathValue": "HX727W_pickerPathValue",
4866
+ "steps": "HX727W_steps",
4867
+ "pickerRow": "HX727W_pickerRow",
4868
+ "step": "HX727W_step",
4869
+ "stepLine": "HX727W_stepLine",
4870
+ "picker": "HX727W_picker",
4855
4871
  "pickerList": "HX727W_pickerList",
4856
- "fieldLabel": "HX727W_fieldLabel",
4857
- "uploadQueue": "HX727W_uploadQueue",
4872
+ "uploadName": "HX727W_uploadName",
4858
4873
  "fieldError": "HX727W_fieldError",
4859
- "crumbWrap": "HX727W_crumbWrap",
4860
- "summary": "HX727W_summary",
4861
- "fileInput": "HX727W_fileInput",
4862
- "uploadSummary": "HX727W_uploadSummary",
4863
- "crumb": "HX727W_crumb",
4864
- "treeToggle": "HX727W_treeToggle",
4865
- "fileName": "HX727W_fileName",
4866
- "pickerPath": "HX727W_pickerPath",
4867
- "pickerPathLabel": "HX727W_pickerPathLabel",
4874
+ "uploadList": "HX727W_uploadList",
4868
4875
  "uploadLayout": "HX727W_uploadLayout",
4869
- "fileRow": "HX727W_fileRow",
4870
- "dropzoneTitle": "HX727W_dropzoneTitle",
4876
+ "uploadQueue": "HX727W_uploadQueue",
4871
4877
  "treeRow": "HX727W_treeRow",
4872
- "step": "HX727W_step",
4873
- "picker": "HX727W_picker",
4874
- "tree": "HX727W_tree",
4875
- "pickerPathValue": "HX727W_pickerPathValue",
4878
+ "treeNotice": "HX727W_treeNotice",
4879
+ "crumbWrap": "HX727W_crumbWrap",
4880
+ "dropzone": "HX727W_dropzone",
4881
+ "fileInput": "HX727W_fileInput",
4876
4882
  "fieldHint": "HX727W_fieldHint",
4877
- "field": "HX727W_field",
4878
- "stepLine": "HX727W_stepLine",
4883
+ "pickerPathLabel": "HX727W_pickerPathLabel",
4879
4884
  "dropzoneHint": "HX727W_dropzoneHint",
4880
- "dialog": "HX727W_dialog",
4881
- "footer": "HX727W_footer",
4882
- "dropzone": "HX727W_dropzone",
4883
- "crumbSep": "HX727W_crumbSep",
4884
- "uploadName": "HX727W_uploadName",
4885
- "pickerRow": "HX727W_pickerRow",
4886
- "uploadSize": "HX727W_uploadSize",
4887
- "treeNotice": "HX727W_treeNotice",
4885
+ "treeChildren": "HX727W_treeChildren",
4886
+ "crumb": "HX727W_crumb",
4887
+ "pickerBar": "HX727W_pickerBar",
4888
+ "fileName": "HX727W_fileName",
4889
+ "treeMuted": "HX727W_treeMuted",
4890
+ "summary": "HX727W_summary",
4891
+ "fileList": "HX727W_fileList",
4888
4892
  "visuallyHiddenInput": "HX727W_visuallyHiddenInput",
4893
+ "removeFile": "HX727W_removeFile",
4894
+ "crumbSep": "HX727W_crumbSep",
4895
+ "tree": "HX727W_tree",
4889
4896
  "modal": "HX727W_modal",
4890
- "pickerMuted": "HX727W_pickerMuted"
4897
+ "footer": "HX727W_footer",
4898
+ "treeName": "HX727W_treeName",
4899
+ "fileRow": "HX727W_fileRow",
4900
+ "treeToggle": "HX727W_treeToggle",
4901
+ "dropzoneTitle": "HX727W_dropzoneTitle"
4891
4902
  };
4892
4903
  //#endregion
4893
4904
  //#region ../../../DSH-better-sidebar/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
@@ -6221,6 +6232,7 @@ window.__ModuleLoader__.load({
6221
6232
  openInAppFailed: "无法打开:{path}",
6222
6233
  revealInFileManager: "在文件管理器中显示",
6223
6234
  openContainingFolder: "打开所在文件夹",
6235
+ openInFileManager: "打开所在位置",
6224
6236
  filesSelected: "已选择 {count} 项",
6225
6237
  clearSelection: "取消选择",
6226
6238
  copyPaths: "复制路径",
@@ -6864,6 +6876,7 @@ window.__ModuleLoader__.load({
6864
6876
  openInAppFailed: "Could not open: {path}",
6865
6877
  revealInFileManager: "Reveal in File Manager",
6866
6878
  openContainingFolder: "Open Containing Folder",
6879
+ openInFileManager: "Open Containing Location",
6867
6880
  filesSelected: "{count} selected",
6868
6881
  clearSelection: "Clear selection",
6869
6882
  copyPaths: "Copy paths",
@@ -7442,38 +7455,38 @@ window.__ModuleLoader__.load({
7442
7455
  }
7443
7456
  //#endregion
7444
7457
  //#region \0dsh-css:/root/projects/DSH-better-sidebar/src/client/ui/kit.module.css.mjs
7445
- const css$9 = ".lvzz-W_iconButton{box-sizing:border-box;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.lvzz-W_iconButtonMd{width:28px;height:28px}.lvzz-W_iconButtonSm{border-radius:3px;width:24px;height:24px}.lvzz-W_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.lvzz-W_iconButton:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.lvzz-W_iconButton:disabled{opacity:.4;cursor:default}.lvzz-W_iconButtonActive{color:var(--dsw-alias-state-business-primary)}.lvzz-W_iconButtonDanger{color:var(--dsw-alias-state-error-primary)}.lvzz-W_chip{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);height:22px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 8px;display:inline-flex}.lvzz-W_chip:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.lvzz-W_chip:disabled{opacity:.4;cursor:default}.lvzz-W_chipActive,.lvzz-W_chipActive:hover{background:var(--dsw-alias-interactive-bg-hover-accent);border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-alias-label-primary)}.lvzz-W_chipLabel{text-overflow:ellipsis;min-width:0;overflow:hidden}.lvzz-W_chipCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums}.lvzz-W_chipActive .lvzz-W_chipCount{color:var(--dsw-alias-label-secondary)}.lvzz-W_sectionHeader{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l1);width:100%;height:28px;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-secondary);align-items:center;gap:6px;padding:0 12px;display:flex}.lvzz-W_sectionLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lvzz-W_sectionCount{font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-tertiary);flex:none}.lvzz-W_sectionAction{flex:none;align-items:center;margin-left:auto;display:inline-flex}.lvzz-W_notice{box-sizing:border-box;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);white-space:pre-wrap}.lvzz-W_noticeWell{padding:4px 12px 8px}.lvzz-W_noticePage{text-align:center;padding:16px}.lvzz-W_noticeInline{padding:0;font-size:10px;line-height:1.45}.lvzz-W_noticeError{color:var(--dsw-alias-state-error-primary)}.lvzz-W_noticeWarn{color:var(--dsw-alias-state-warn-primary)}.lvzz-W_noticeHint{color:var(--dsw-alias-label-tertiary)}.lvzz-W_confirmDesc{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);margin:0}.lvzz-W_confirmDesc[data-danger=true]{color:var(--dsw-alias-label-primary)}.lvzz-W_statusBadge{font:var(--dsw-font-xxxs-strong-11);font-family:var(--ds-font-family-code,monospace);color:var(--dsw-alias-label-secondary);border-radius:2px;flex:none;padding:0 4px}.lvzz-W_statusBadge[data-tone=modified]{color:var(--dsw-alias-state-warn-primary)}.lvzz-W_statusBadge[data-tone=added],.lvzz-W_statusBadge[data-tone=untracked]{color:var(--dsw-alias-state-success-primary)}.lvzz-W_statusBadge[data-tone=deleted]{color:var(--dsw-alias-state-error-primary)}.lvzz-W_statusBadge[data-tone=renamed]{color:var(--dsw-alias-state-business-primary)}.lvzz-W_statusBadge[data-tone=conflict]{color:var(--dsw-alias-state-error-primary)}.lvzz-W_statusBadge[data-tone=read]{color:var(--dsw-alias-state-success-primary)}.lvzz-W_statusBadge[data-tone=write]{color:var(--dsw-alias-state-business-primary)}.lvzz-W_statusBadge[data-tone=edit]{color:var(--dsw-alias-state-warn-primary)}.lvzz-W_statusBadge[data-tone=neutral]{color:var(--dsw-alias-label-tertiary)}";
7446
- const tagId$9 = "@sparkelf/dsh-knowledge-base/kit.module.css";
7447
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$9) + "]") === null) {
7458
+ const css$13 = ".lvzz-W_iconButton{box-sizing:border-box;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.lvzz-W_iconButtonMd{width:28px;height:28px}.lvzz-W_iconButtonSm{border-radius:3px;width:24px;height:24px}.lvzz-W_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.lvzz-W_iconButton:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.lvzz-W_iconButton:disabled{opacity:.4;cursor:default}.lvzz-W_iconButtonActive{color:var(--dsw-alias-state-business-primary)}.lvzz-W_iconButtonDanger{color:var(--dsw-alias-state-error-primary)}.lvzz-W_chip{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);height:22px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 8px;display:inline-flex}.lvzz-W_chip:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.lvzz-W_chip:disabled{opacity:.4;cursor:default}.lvzz-W_chipActive,.lvzz-W_chipActive:hover{background:var(--dsw-alias-interactive-bg-hover-accent);border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-alias-label-primary)}.lvzz-W_chipLabel{text-overflow:ellipsis;min-width:0;overflow:hidden}.lvzz-W_chipCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums}.lvzz-W_chipActive .lvzz-W_chipCount{color:var(--dsw-alias-label-secondary)}.lvzz-W_sectionHeader{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l1);width:100%;height:28px;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-secondary);align-items:center;gap:6px;padding:0 12px;display:flex}.lvzz-W_sectionLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lvzz-W_sectionCount{font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-tertiary);flex:none}.lvzz-W_sectionAction{flex:none;align-items:center;margin-left:auto;display:inline-flex}.lvzz-W_notice{box-sizing:border-box;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);white-space:pre-wrap}.lvzz-W_noticeWell{padding:4px 12px 8px}.lvzz-W_noticePage{text-align:center;padding:16px}.lvzz-W_noticeInline{padding:0;font-size:10px;line-height:1.45}.lvzz-W_noticeError{color:var(--dsw-alias-state-error-primary)}.lvzz-W_noticeWarn{color:var(--dsw-alias-state-warn-primary)}.lvzz-W_noticeHint{color:var(--dsw-alias-label-tertiary)}.lvzz-W_confirmDesc{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);margin:0}.lvzz-W_confirmDesc[data-danger=true]{color:var(--dsw-alias-label-primary)}.lvzz-W_statusBadge{font:var(--dsw-font-xxxs-strong-11);font-family:var(--ds-font-family-code,monospace);color:var(--dsw-alias-label-secondary);border-radius:2px;flex:none;padding:0 4px}.lvzz-W_statusBadge[data-tone=modified]{color:var(--dsw-alias-state-warn-primary)}.lvzz-W_statusBadge[data-tone=added],.lvzz-W_statusBadge[data-tone=untracked]{color:var(--dsw-alias-state-success-primary)}.lvzz-W_statusBadge[data-tone=deleted]{color:var(--dsw-alias-state-error-primary)}.lvzz-W_statusBadge[data-tone=renamed]{color:var(--dsw-alias-state-business-primary)}.lvzz-W_statusBadge[data-tone=conflict]{color:var(--dsw-alias-state-error-primary)}.lvzz-W_statusBadge[data-tone=read]{color:var(--dsw-alias-state-success-primary)}.lvzz-W_statusBadge[data-tone=write]{color:var(--dsw-alias-state-business-primary)}.lvzz-W_statusBadge[data-tone=edit]{color:var(--dsw-alias-state-warn-primary)}.lvzz-W_statusBadge[data-tone=neutral]{color:var(--dsw-alias-label-tertiary)}";
7459
+ const tagId$13 = "@sparkelf/dsh-knowledge-base/kit.module.css";
7460
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$13) + "]") === null) {
7448
7461
  const tag = document.createElement("style");
7449
7462
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
7450
- tag.dataset.pluginCss = tagId$9;
7451
- tag.textContent = css$9;
7463
+ tag.dataset.pluginCss = tagId$13;
7464
+ tag.textContent = css$13;
7452
7465
  document.head.appendChild(tag);
7453
7466
  }
7454
7467
  var kit_module_css_default = {
7455
- "iconButtonActive": "lvzz-W_iconButtonActive",
7456
- "iconButtonSm": "lvzz-W_iconButtonSm",
7457
- "noticeWarn": "lvzz-W_noticeWarn",
7468
+ "noticeInline": "lvzz-W_noticeInline",
7458
7469
  "noticeError": "lvzz-W_noticeError",
7470
+ "statusBadge": "lvzz-W_statusBadge",
7471
+ "iconButton": "lvzz-W_iconButton",
7472
+ "sectionLabel": "lvzz-W_sectionLabel",
7473
+ "chipLabel": "lvzz-W_chipLabel",
7459
7474
  "noticePage": "lvzz-W_noticePage",
7460
- "noticeWell": "lvzz-W_noticeWell",
7461
7475
  "confirmDesc": "lvzz-W_confirmDesc",
7462
- "sectionLabel": "lvzz-W_sectionLabel",
7463
- "noticeHint": "lvzz-W_noticeHint",
7476
+ "iconButtonSm": "lvzz-W_iconButtonSm",
7477
+ "sectionHeader": "lvzz-W_sectionHeader",
7478
+ "sectionCount": "lvzz-W_sectionCount",
7464
7479
  "sectionAction": "lvzz-W_sectionAction",
7465
- "chipActive": "lvzz-W_chipActive",
7466
- "iconButton": "lvzz-W_iconButton",
7480
+ "noticeWarn": "lvzz-W_noticeWarn",
7481
+ "noticeHint": "lvzz-W_noticeHint",
7467
7482
  "iconButtonDanger": "lvzz-W_iconButtonDanger",
7468
- "chipCount": "lvzz-W_chipCount",
7469
- "iconButtonMd": "lvzz-W_iconButtonMd",
7470
7483
  "notice": "lvzz-W_notice",
7484
+ "iconButtonMd": "lvzz-W_iconButtonMd",
7471
7485
  "chip": "lvzz-W_chip",
7472
- "chipLabel": "lvzz-W_chipLabel",
7473
- "sectionCount": "lvzz-W_sectionCount",
7474
- "noticeInline": "lvzz-W_noticeInline",
7475
- "statusBadge": "lvzz-W_statusBadge",
7476
- "sectionHeader": "lvzz-W_sectionHeader"
7486
+ "iconButtonActive": "lvzz-W_iconButtonActive",
7487
+ "chipActive": "lvzz-W_chipActive",
7488
+ "chipCount": "lvzz-W_chipCount",
7489
+ "noticeWell": "lvzz-W_noticeWell"
7477
7490
  };
7478
7491
  //#endregion
7479
7492
  //#region ../../../DSH-better-sidebar/src/client/ui/kit.tsx
@@ -8276,241 +8289,257 @@ window.__ModuleLoader__.load({
8276
8289
  }
8277
8290
  //#endregion
8278
8291
  //#region \0dsh-css:/root/projects/DSH-better-sidebar/src/client/sidebar.module.css.mjs
8279
- const css$8 = "[data-dsh-panel-host]{z-index:25;pointer-events:none;height:100vh;position:fixed;inset:0;overflow:clip}html[data-platform] body>[data-dsh-better-sidebar],[data-dsh-panel-host]{-webkit-app-region:initial!important}[data-dsh-panel-host]>*{-webkit-app-region:no-drag}[data-dockkit-float-resize]{z-index:2}[data-dsh-panel-host][data-dsh-panel-host-degraded]{position:absolute;top:0;left:0}.s56VVa_dockFallback{z-index:40;align-items:center;gap:2px;display:inline-flex;position:fixed}.s56VVa_toggleButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), color var(--ds-transition-duration-slow) var(--ds-ease-in-out);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.s56VVa_toggleButton:hover:not(:disabled):not([aria-disabled=true]){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_toggleButton:disabled,.s56VVa_toggleButton[aria-disabled=true]{opacity:.4;cursor:default}.s56VVa_panelBody{flex:1;min-width:0;min-height:0;display:flex}.s56VVa_bottomPanel{z-index:40;background:var(--dsw-alias-bg-layer-1);border-top:1px solid var(--dsw-alias-border-l2);pointer-events:auto;padding-bottom:env(safe-area-inset-bottom);transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), height var(--ds-transition-duration-slow) var(--ds-ease-in-out);flex-direction:column;display:flex;position:absolute;bottom:0}.s56VVa_bottomPanelHidden{pointer-events:none;visibility:hidden;transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), height var(--ds-transition-duration-slow) var(--ds-ease-in-out), visibility 0s linear var(--ds-transition-duration-slow);transform:translateY(102%)}.s56VVa_bottomPanel[data-dragging]{transition:none}.s56VVa_bottomPanel{contain:layout style}body[data-dsh-sidebar-dragging] .s56VVa_panel,body[data-dsh-sidebar-dragging] .s56VVa_bottomPanel{will-change:transform}.s56VVa_bottomResize{cursor:row-resize;z-index:2;touch-action:none;height:8px;position:absolute;top:-4px;left:0;right:0}.s56VVa_bottomResizeActive{background:var(--dsw-alias-interactive-bg-hover-accent)}.s56VVa_bottomClose{z-index:4;width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:3px;right:6px}.s56VVa_bottomClose:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_bottomPanel .s56VVa_tabBar{padding-right:40px}.s56VVa_toggleButton,.s56VVa_tabBar{-webkit-app-region:no-drag}.s56VVa_iconButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.s56VVa_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_iconButton:disabled{opacity:.4;cursor:default}.s56VVa_workbench,.s56VVa_split{flex:1;min-width:0;min-height:0;display:flex}.s56VVa_splitRow{flex-direction:row}.s56VVa_splitCol{flex-direction:column}.s56VVa_splitChild{display:flex;position:relative;overflow:hidden}.s56VVa_divider{z-index:3;touch-action:none;flex:none;position:relative}.s56VVa_dividerRow:after,.s56VVa_dividerCol:after{content:\"\";background:var(--dsw-alias-border-l2);transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out);position:absolute}.s56VVa_dividerRow{cursor:col-resize;width:7px;margin:0 -2px}.s56VVa_dividerRow:after{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.s56VVa_dividerCol{cursor:row-resize;height:7px;margin:-2px 0}.s56VVa_dividerCol:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.s56VVa_divider:hover:after,.s56VVa_dividerActive:after{background:var(--dsw-alias-interactive-bg-hover-accent)}.s56VVa_pane{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.s56VVa_paneDrop{outline:1px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.s56VVa_dropOverlay{z-index:6;pointer-events:none;background:var(--dsw-alias-interactive-bg-hover-accent);opacity:.5;position:absolute}.s56VVa_dropLeft{width:25%;top:0;bottom:0;left:0}.s56VVa_dropRight{width:25%;top:0;bottom:0;right:0}.s56VVa_dropUp{height:25%;top:0;left:0;right:0}.s56VVa_dropDown{height:25%;bottom:0;left:0;right:0}.s56VVa_dropCenter{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px;background:0 0;inset:25%}.s56VVa_paneContent{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.s56VVa_chipIcon{flex:none;align-items:center;margin-right:6px;display:inline-flex}.s56VVa_chipUnread{background:var(--dsw-alias-danger);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.s56VVa_tabUnreadDot{background:var(--dsw-alias-danger);border-radius:50%;flex:none;width:7px;height:7px}.s56VVa_paneTab{flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_paneTabHidden{display:none}.s56VVa_paneEmptyCards{flex:1;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start;justify-items:stretch;gap:12px;width:100%;min-height:0;padding:12px;display:grid;overflow:hidden}.s56VVa_paneCard{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);background:var(--dsw-alias-bg-layer-1);min-width:0;min-height:56px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-strong-14);cursor:pointer;text-align:left;border-radius:24px;flex-direction:row;justify-content:flex-start;align-items:center;gap:14px;padding:14px 20px;display:flex}.s56VVa_paneCard>svg{color:var(--dsw-alias-label-secondary);flex:none}.s56VVa_paneCard:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l4)}.s56VVa_paneCard:disabled{opacity:.45;cursor:default}.s56VVa_tabBar{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);flex:none;align-items:stretch;height:34px;display:flex}.s56VVa_tabBarDrop{outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.s56VVa_tabList{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.s56VVa_tabList::-webkit-scrollbar{display:none}.s56VVa_tab{min-width:96px;max-width:160px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);border-right:1px solid var(--dsw-alias-border-l1);cursor:pointer;user-select:none;background:0 0;flex:none;align-items:center;gap:4px;padding:0 4px 0 10px;display:flex}.s56VVa_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_tabActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.s56VVa_tabTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;display:block;overflow:hidden}.s56VVa_tabBadge{min-width:16px;height:15px;font:var(--dsw-font-xxxs-strong-11);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-brand-primary);border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.s56VVa_tabClose{width:18px;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.s56VVa_tabClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_tabBarPlus{background:var(--dsw-alias-bg-layer-1);width:22px;height:22px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border:none;border-radius:5px;flex:none;justify-content:center;align-self:center;align-items:center;margin:0 6px;padding:0;display:inline-flex;position:sticky;right:0}.s56VVa_tabBarPlus:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_tabBarRightActions{flex:0 auto;justify-content:flex-end;align-items:center;gap:2px;min-width:0;padding-right:4px;display:flex;overflow:hidden}.s56VVa_explorer{flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_explorerHeader{flex:none;justify-content:space-between;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.s56VVa_explorerRoot{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.s56VVa_explorerBody{flex:1;min-height:0;padding:4px 8px 8px;overflow:hidden auto}.s56VVa_explorerRow{box-sizing:border-box;width:100%;max-width:100%;height:28px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;white-space:nowrap;animation:s56VVa_dsh-row-in .15s var(--ds-ease-in-out);background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:0 8px;display:flex;position:relative}.s56VVa_explorerRow>svg{flex:none;width:14px;height:14px}.s56VVa_explorerRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_explorerRowSelected{background:var(--dsw-alias-interactive-bg-active)}.s56VVa_explorerRowSelected:before{content:\"\";background:var(--dsw-alias-state-business-primary);border-radius:1px;width:2px;position:absolute;top:4px;bottom:4px;left:0}.s56VVa_explorerGitName[data-git-tone=modified]{color:var(--dsw-alias-state-warn-primary)}.s56VVa_explorerGitName[data-git-tone=added],.s56VVa_explorerGitName[data-git-tone=untracked]{color:var(--dsw-alias-state-success-primary)}.s56VVa_explorerGitName[data-git-tone=deleted]{color:var(--dsw-alias-state-error-primary)}.s56VVa_explorerGitName[data-git-tone=renamed]{color:var(--dsw-alias-state-business-primary)}.s56VVa_explorerGitName[data-git-tone=copied]{color:var(--dsw-alias-state-success-primary)}.s56VVa_explorerGitName[data-git-tone=conflict]{color:var(--dsw-alias-state-error-primary)}.s56VVa_explorerDirChanged{color:var(--dsw-alias-state-business-primary)}.s56VVa_explorerRowRevealed{background:var(--dsw-alias-state-business-tertiary)}.s56VVa_explorerRowRevealed+.s56VVa_explorerRowRevealed{border-top-left-radius:0;border-top-right-radius:0}.s56VVa_explorerRowRevealed:has(+.s56VVa_explorerRowRevealed){border-bottom-right-radius:0;border-bottom-left-radius:0}.s56VVa_explorerDir{font:var(--dsw-font-xxs-strong-12)}.s56VVa_explorerHidden{opacity:.45}.s56VVa_explorerSymlink{color:var(--dsw-alias-label-tertiary);flex:none}.s56VVa_explorerBroken .s56VVa_explorerName{color:var(--dsw-alias-state-error-primary)}.s56VVa_explorerName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.s56VVa_explorerRenaming{cursor:text}.s56VVa_explorerRenameInput{box-sizing:border-box;border:1px solid var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-1);min-width:0;height:22px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:3px;flex:auto;padding:0 6px}.s56VVa_explorerRenameInput:focus{border-color:var(--dsw-alias-state-business-primary);outline:none}.s56VVa_explorerActionError{box-sizing:border-box;border:1px solid var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-1);border-radius:8px;align-items:flex-start;gap:6px;width:100%;margin-bottom:4px;padding:6px 8px;display:flex}.s56VVa_explorerActionErrorText{overflow-wrap:anywhere;min-width:0;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex:auto}.s56VVa_explorerSelectionBar{z-index:1;box-sizing:border-box;background:var(--dsw-alias-bg-layer-2);border-radius:4px;align-items:center;gap:6px;width:100%;min-height:28px;margin-top:4px;padding:2px 8px;display:flex;position:sticky;bottom:0}.s56VVa_explorerSelectionText{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-secondary);flex:auto;overflow:hidden}.s56VVa_explorerSelectionActions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:4px;max-width:72%;display:flex}.s56VVa_explorerAppIcon{object-fit:contain;width:14px;height:14px;display:block}.s56VVa_explorerHiddenPane{display:none}.s56VVa_explorerTime{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;margin-left:auto;padding-left:8px}.s56VVa_explorerRow:hover .s56VVa_explorerTime,.s56VVa_explorerRow:focus-within .s56VVa_explorerTime{margin-left:0}.s56VVa_explorerRef,.s56VVa_explorerCopied{margin-left:auto}.s56VVa_explorerRef{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:20px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;align-items:center;padding:0 8px;display:none}.s56VVa_explorerRef:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_explorerRow:hover .s56VVa_explorerRef,.s56VVa_explorerRow:focus-within .s56VVa_explorerRef{display:inline-flex}.s56VVa_explorerCopied{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.s56VVa_explorerError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);cursor:default}@keyframes s56VVa_dsh-row-in{0%{opacity:0}}.s56VVa_explorerEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.s56VVa_explorerRowDropTarget{background:var(--dsw-alias-interactive-bg-hover-accent);outline:1px dashed var(--dsw-alias-state-business-primary);outline-offset:-1px}.s56VVa_uploadDropMask{z-index:1001;pointer-events:none;background:color-mix(in srgb, var(--dsw-alias-bg-base) 62%, transparent);animation:s56VVa_dsh-row-in .15s var(--ds-ease-in-out);position:fixed;inset:0}.s56VVa_uploadDropZone{z-index:1002;pointer-events:none;border:2px dashed var(--dsw-alias-border-l2);background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 4%, transparent);animation:s56VVa_dsh-row-in .15s var(--ds-ease-in-out);border-radius:8px;justify-content:center;align-items:flex-start;padding:12px;display:flex;position:fixed}.s56VVa_uploadDropHero{flex-direction:column;align-items:center;gap:8px;max-width:100%;padding-top:8px;display:flex}.s56VVa_uploadDropArtPrimary{color:var(--dsw-alias-state-business-primary)}.s56VVa_uploadDropArtAccent{color:var(--dsw-alias-state-business-tertiary)}.s56VVa_uploadDropArtCut{color:var(--dsw-alias-bg-layer-1)}.s56VVa_uploadDropZonePill{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);max-width:100%;height:28px;box-shadow:var(--dsw-shadow-lv2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-11);border-radius:999px;align-items:center;gap:6px;padding:0 12px;display:flex}.s56VVa_uploadDropZoneText{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.s56VVa_uploadDropChatHint{z-index:1003;pointer-events:none;animation:s56VVa_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0}.s56VVa_uploadDropChatCard{text-align:center;max-width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);flex-direction:column;align-items:center;gap:10px;display:flex}.s56VVa_uploadOverlay{z-index:30;background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);animation:s56VVa_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.s56VVa_uploadOverlayCard{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-width:240px;max-width:min(420px,100% - 48px);box-shadow:var(--dsw-shadow-lv3);border-radius:8px;flex-direction:column;gap:10px;padding:16px;display:flex}.s56VVa_uploadOverlayTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);align-items:center;gap:6px;display:flex}.s56VVa_uploadOverlayTitle>svg{flex:none}.s56VVa_uploadOverlayTitle>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.s56VVa_uploadOverlayProgress{background:var(--dsw-alias-border-l2);border-radius:3px;height:6px;overflow:hidden}.s56VVa_uploadOverlayProgressFill{background:var(--dsw-alias-interactive-bg-hover-accent);height:100%;transition:width .15s var(--ds-ease-in-out);border-radius:3px}.s56VVa_uploadOverlayStatus{min-height:1em;font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.s56VVa_uploadOverlayCancel{border:1px solid var(--dsw-alias-border-l2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;background:0 0;border-radius:4px;align-self:flex-end;padding:0 12px}.s56VVa_uploadOverlayCancel:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.s56VVa_uploadOverlayCancel:disabled{opacity:.4;cursor:default}.s56VVa_editor{flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_editorHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.s56VVa_editorTitle{min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.s56VVa_editorPathInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.s56VVa_editorPathInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.s56VVa_editorTreeToggleActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.s56VVa_editorBody{flex:1;min-height:0;display:flex}.s56VVa_editorMain{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.s56VVa_editorTreeDock{border-left:1px solid var(--dsw-alias-border-l1);flex:none;min-height:0;display:flex;position:relative}.s56VVa_editorTreeResize{cursor:col-resize;touch-action:none;z-index:3;width:6px;position:absolute;top:0;bottom:0;left:0}.s56VVa_editorTreeResize:hover{background:var(--dsw-alias-border-l2)}.s56VVa_editorTreePanel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.s56VVa_editorTreePanelFull{flex:1}.s56VVa_editorTreeSearch{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.s56VVa_editorSearchInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:26px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.s56VVa_editorSearchInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.s56VVa_editorSearchHint{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:8px 12px}.s56VVa_editorSearchResult{box-sizing:border-box;width:100%;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:0 8px;line-height:28px;display:flex;overflow:hidden}.s56VVa_editorSearchResultDir{color:var(--dsw-alias-label-secondary)}.s56VVa_editorSearchResultLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.s56VVa_editorSearchResult:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_editorStatus{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.s56VVa_editorStatusError{color:var(--dsw-alias-state-error-primary)}.s56VVa_dirtyDot{background:var(--dsw-alias-state-warn-primary);border-radius:50%;flex:none;width:7px;height:7px}.s56VVa_editorPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.s56VVa_orphanedType{opacity:.7;overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.s56VVa_editorBinary{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px 16px;display:flex}.s56VVa_editorBinaryNotice{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.s56VVa_editorDownloadLink{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), border-color var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:6px;align-items:center;gap:6px;padding:6px 14px;text-decoration:none;display:inline-flex}.s56VVa_editorDownloadLink:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.s56VVa_editorError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);padding:12px 16px}.s56VVa_editorBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 8px}.s56VVa_editorBannerAction{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;margin-left:8px;padding:0;text-decoration:underline}.s56VVa_editorGitAdd{color:var(--dsw-alias-state-success-primary)}.s56VVa_editorGitMod{color:var(--dsw-alias-state-warn-primary)}.s56VVa_editorGitDel{color:var(--dsw-alias-state-error-primary)}.s56VVa_editorGitBarGutter{width:2px;min-width:2px}.s56VVa_editorGitBar,.s56VVa_editorGitBarSpacer{width:2px;height:100%}.s56VVa_editorGitBarAdd{background:var(--dsw-alias-state-success-primary)}.s56VVa_editorGitBarMod{background:var(--dsw-alias-state-warn-primary)}.s56VVa_editorGitBarDel{background:var(--dsw-alias-state-error-primary)}.s56VVa_editorBlame{max-width:420px;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-primary);padding:4px 8px}.s56VVa_editorBlameHead{color:var(--dsw-alias-label-secondary)}.s56VVa_editorBlameSummary{color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:2px}.s56VVa_sandboxStatus{font:var(--dsw-font-xxxs-11);flex:none;align-items:center;gap:8px;padding:4px 10px;display:flex}.s56VVa_sandboxStatusOn{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1)}.s56VVa_sandboxStatusOff{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 10%, transparent);border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent)}.s56VVa_sandboxDot{background:var(--dsw-alias-state-success-primary);border-radius:50%;flex:none;width:6px;height:6px}.s56VVa_sandboxStatusOff .s56VVa_sandboxDot{background:var(--dsw-alias-state-error-primary)}.s56VVa_sandboxStatusText{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.s56VVa_sandboxAction{border:1px solid var(--dsw-alias-border-l2);font:inherit;color:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:2px 8px}.s56VVa_sandboxAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_editorHtml{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.s56VVa_browser{flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_browserBar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:4px;padding:6px 8px;display:flex}.s56VVa_browserInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.s56VVa_browserInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.s56VVa_browserMessage{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 12px}.s56VVa_browserFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.s56VVa_browserStart{text-align:center;min-height:0;font:var(--dsw-font-xs-13);color:var(--dsw-alias-label-tertiary);flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.s56VVa_browserBlocked{text-align:center;min-height:0;color:var(--dsw-alias-state-warn-primary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.s56VVa_browserBlockedTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary)}.s56VVa_browserBlockedDesc{max-width:280px;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary)}.s56VVa_browserBlockedActions{gap:8px;margin-top:6px;display:flex}.s56VVa_browserBlockedButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-11);cursor:pointer;border-radius:6px;padding:4px 12px}.s56VVa_browserBlockedButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_editorCm{background:0 0;flex:1;min-height:0;overflow:hidden}.s56VVa_editorCmHidden{display:none}.s56VVa_editorCm .cm-editor{height:100%}.s56VVa_editorCm .cm-scroller{padding:12px 16px}.s56VVa_editorCm .cm-editor.cm-focused{outline:none}.s56VVa_editorModeToggle{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.s56VVa_editorModeButton{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px}.s56VVa_editorModeButton:hover{color:var(--dsw-alias-label-primary)}.s56VVa_editorModeActive{background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary)}.s56VVa_editorMd{min-height:0;font:var(--dsw-font-xs-13);flex:1;padding:12px 16px;overflow-y:auto}.s56VVa_editorMd .md-code-block:not([data-mermaid-processed])>div:first-child{z-index:auto;position:static}.s56VVa_mermaidWrap{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;margin:6px 0;overflow:hidden}.s56VVa_mermaidHeader{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);justify-content:space-between;align-items:center;gap:6px;padding:4px 8px;display:flex}.s56VVa_mermaidInfo{font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary)}.s56VVa_mermaidCopy{height:20px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:0 6px;display:inline-flex}.s56VVa_mermaidCopy:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_mermaidBody{cursor:zoom-in;justify-content:center;padding:10px;display:flex;overflow:auto}.s56VVa_mermaidBody svg{max-width:100%;height:auto}.s56VVa_mermaidError{border-bottom:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxxs-11);padding:6px 10px}.s56VVa_mermaidCode{font:var(--dsw-font-xxxs-11);margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.s56VVa_mermaidMarkdown .md-code-block[data-mermaid-processed]{display:contents}.s56VVa_mermaidModal{z-index:1000;background:var(--dsw-alias-bg-mask-1);backdrop-filter:blur(2px);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;-webkit-app-region:initial!important}.s56VVa_mermaidModalToolbar{z-index:10;gap:8px;display:flex;position:absolute;top:16px;right:16px}.s56VVa_mermaidModalButton{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:36px;height:36px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-strong-13);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.s56VVa_mermaidModalButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_mermaidModalStage{justify-content:center;align-items:center;width:90vw;height:80vh;display:flex;position:relative;overflow:hidden}.s56VVa_mermaidModalStage svg{cursor:grab;transform-origin:50%;user-select:none;-webkit-user-drag:none;background:var(--dsw-alias-bg-layer-1);border-radius:12px;max-width:none;max-height:none;padding:16px}.s56VVa_mermaidModalStage svg:active{cursor:grabbing}.s56VVa_mermaidModalHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);pointer-events:none;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.s56VVa_selectionPopup{z-index:60;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-specific-menu);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-strong-11);white-space:nowrap;cursor:pointer;border-radius:6px;align-items:center;padding:0 10px;display:inline-flex;position:fixed;transform:translate(-50%,calc(-100% - 8px))}.s56VVa_selectionPopup:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.s56VVa_editorPdf{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_editorPdfToolbar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:flex-end;padding:6px 8px;display:flex}.s56VVa_editorPdfStage{flex:1;min-height:0;display:flex;position:relative}.s56VVa_editorPdfFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.s56VVa_editorPdfFrameBlocked{pointer-events:none}.s56VVa_editorPdfDragShield{z-index:4;pointer-events:none;background:0 0;position:absolute;inset:0}.s56VVa_editorPdfDragShieldActive{pointer-events:auto}body[data-dsh-tab-dragging] .s56VVa_editorPdfFrame{pointer-events:none!important}body[data-dsh-tab-dragging] .s56VVa_editorPdfDragShield{pointer-events:auto!important}.s56VVa_boundaryError{z-index:50;background:var(--dsw-alias-bg-layer-1);border-left:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;align-items:flex-start;gap:8px;padding:16px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:auto}.s56VVa_terminalRetry{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;padding:1px 8px}.s56VVa_terminalRetry:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_tabBoundaryError{min-height:0;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;flex:1;align-items:flex-start;gap:8px;padding:12px 16px;display:flex;overflow:auto}.s56VVa_nativeTabHost{flex-direction:column;height:100%;min-height:0;display:flex}.s56VVa_gitEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:4px 12px 8px}.s56VVa_gitPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.s56VVa_gitError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);white-space:pre-wrap;padding:8px 12px}.s56VVa_gitDiffTab{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.s56VVa_gitDiffTabHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.s56VVa_gitDiffTabTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.s56VVa_toggleButton:focus-visible,.s56VVa_bottomClose:focus-visible,.s56VVa_iconButton:focus-visible,.s56VVa_tab:focus-visible,.s56VVa_tabClose:focus-visible,.s56VVa_tabBarPlus:focus-visible,.s56VVa_paneCard:focus-visible,.s56VVa_explorerRow:focus-visible,.s56VVa_explorerRef:focus-visible,.s56VVa_terminalRetry:focus-visible,.s56VVa_editorModeButton:focus-visible,.s56VVa_editorDownloadLink:focus-visible,.s56VVa_editorPptxButton:focus-visible,.s56VVa_editorDocxZoomRange:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}@media (prefers-reduced-motion:reduce){.s56VVa_bottomPanel,.s56VVa_bottomPanelHidden,.s56VVa_toggleButton,.s56VVa_tab,.s56VVa_tabBarPlus,.s56VVa_paneCard,.s56VVa_explorerRow,.s56VVa_divider,.s56VVa_dividerRow:after,.s56VVa_dividerCol:after{transition:none;animation:none}}@media (width<=767px){.s56VVa_tab{min-width:48px;max-width:128px}}.s56VVa_openWithLabel{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.s56VVa_openWithName{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.s56VVa_openWithChevron{color:var(--dsw-alias-label-tertiary);flex:none}.s56VVa_openWithPin{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border-radius:5px;flex:none;justify-content:center;align-items:center;display:inline-flex}.s56VVa_openWithPin:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_openWithPinActive{color:var(--dsw-alias-state-business-primary)}.s56VVa_editorHtmlBlock{margin:8px 0}.s56VVa_editorHtmlBlock img,.s56VVa_editorHtmlBlock video{max-width:100%}.s56VVa_editorHtmlBlock details{margin:4px 0;padding:4px 0}.s56VVa_editorHtmlBlock summary,.s56VVa_editorMd details>summary{cursor:pointer}.s56VVa_tocBar{z-index:7;pointer-events:none;justify-content:flex-end;height:0;display:flex;position:sticky;top:0}.s56VVa_tocButton{pointer-events:auto;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;margin:4px 2px 0 0;padding:0;display:inline-flex}.s56VVa_tocButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_tocPanel{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:min(300px,82%);max-height:60vh;box-shadow:var(--dsw-shadow-lv2);pointer-events:auto;border-radius:8px;flex-direction:column;padding:4px;display:flex;position:absolute;top:32px;right:2px;overflow-y:auto}.s56VVa_tocItem{min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:baseline;gap:8px;padding:4px 8px;display:flex}.s56VVa_tocItem:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_tocItem[data-level=\"2\"]{padding-left:18px}.s56VVa_tocItem[data-level=\"3\"]{padding-left:28px}.s56VVa_tocItem[data-level=\"4\"]{padding-left:38px}.s56VVa_tocItem[data-level=\"5\"]{padding-left:48px}.s56VVa_tocItem[data-level=\"6\"]{padding-left:58px}.s56VVa_tocItemLevel{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.s56VVa_tocItemText{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}@keyframes s56VVa_dsh-toc-flash{0%,60%{background:var(--dsw-alias-interactive-bg-hover)}to{background:0 0}}.s56VVa_tocFlash{border-radius:4px;animation:1.2s ease-out s56VVa_dsh-toc-flash}.s56VVa_largeFile{flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_largeFileNotice{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;align-items:baseline;gap:8px;padding:4px 8px;display:flex}.s56VVa_largeFileDownload{color:inherit;text-decoration:underline}.s56VVa_largeFileNoticeAction{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;margin-left:auto;padding:0 6px}.s56VVa_largeFileNoticeAction:disabled{opacity:.5;cursor:default}.s56VVa_largeFileBody{flex:1;min-height:0;overflow:auto}.s56VVa_largeFileRecords{padding:4px 0}.s56VVa_largeFileList{margin:0;padding:0;list-style:none}.s56VVa_largeFileRecord{gap:8px;padding:2px 8px;display:flex}.s56VVa_largeFileRecordExpanded{background:var(--dsw-alias-bg-layer-1)}.s56VVa_largeFileRecordInvalid{color:var(--dsw-alias-state-error-primary)}.s56VVa_largeFileRecordNo{text-align:right;min-width:4ch;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);user-select:none;flex:none}.s56VVa_largeFileRecordBody{flex:1;min-width:0}.s56VVa_largeFileRecordSummary{text-align:left;width:100%;font:var(--ds-font-family-code);color:var(--dsw-alias-label-primary);white-space:pre;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;display:block;overflow:hidden}.s56VVa_largeFileRecordSummary:disabled{cursor:default}.s56VVa_largeFileRecordRaw{font:var(--ds-font-family-code);white-space:pre-wrap;word-break:break-all;overflow-wrap:anywhere;margin:2px 0 0;font-size:12px}.s56VVa_largeFileRecordTree{font:var(--ds-font-family-code);margin-top:2px;font-size:12px}.s56VVa_largeFileLines{font:var(--ds-font-family-code);white-space:pre;padding:4px 0;font-size:12px}.s56VVa_largeFileLine{gap:8px;padding:0 8px;display:flex}.s56VVa_largeFileLineNo{text-align:right;min-width:5ch;color:var(--dsw-alias-label-tertiary);user-select:none;flex:none}.s56VVa_largeFileLineText{color:var(--dsw-alias-label-primary);flex:none}.s56VVa_largeFilePager{border-top:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);flex:none;align-items:center;gap:4px;padding:2px 8px;display:flex}.s56VVa_largeFilePageLabel{text-align:center;min-width:0;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.s56VVa_explorerMuted{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);cursor:default}[data-sidebar-right-guide]{grid-template-columns:repeat(auto-fill,minmax(96px,120px))!important;place-content:center!important;place-items:stretch stretch!important;gap:12px!important;padding:16px!important;display:grid!important;overflow:auto!important}[data-sidebar-right-guide]>div{aspect-ratio:1!important;flex:none!important;width:100%!important;min-width:0!important;max-width:none!important;min-height:0!important;display:flex!important}[data-sidebar-right-guide]>div [data-sidebar-right-guide-entry]{box-sizing:border-box!important;text-align:center!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:8px!important;width:100%!important;height:100%!important;padding:12px!important}[data-sidebar-right-guide] kbd,[data-sidebar-right-guide] span:has(>kbd){display:none!important}[data-sidebar-right-guide]>div [data-sidebar-right-guide-entry]>span:last-child{flex:0 auto!important;align-items:center!important;width:100%!important;height:auto!important;min-height:0!important}[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal]{position:relative!important}[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal] [class*=titleRow]{flex-flow:row!important;justify-content:center!important;align-items:center!important;gap:2px!important;height:20px!important;min-height:0!important;display:flex!important;position:static!important}[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal] [class*=menu],[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal] [class*=trigger],[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal] button:not([class*=main]){z-index:1!important;flex:0 0 20px!important;width:20px!important;height:20px!important;min-height:0!important;padding:0!important;position:static!important;top:auto!important;bottom:auto!important;right:auto!important;transform:none!important}[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal] [class*=title]{white-space:nowrap!important;text-overflow:ellipsis!important;overflow:hidden!important}[data-sidebar-right-guide]>div [data-sidebar-right-guide-entry] span{white-space:normal!important;text-overflow:clip!important;min-width:0!important;max-width:100%!important;overflow:visible!important}[data-sidebar-right-guide]>span:first-child{grid-column:1/-1;justify-self:center;margin:4px 0 8px}@media (width<=640px){[data-sidebar-right-guide]{grid-template-columns:repeat(auto-fill,minmax(88px,108px))!important;padding:12px!important}}[data-sidebar-right-guide-entry=terminal]{box-sizing:border-box!important;flex-direction:row!important;justify-content:center!important;align-self:stretch!important;align-items:center!important;gap:6px!important;width:100%!important;height:100%!important;min-height:0!important;padding:8px!important;display:flex!important;overflow:hidden!important}[data-sidebar-right-guide-entry=terminal]>span{flex:0 auto!important}[data-sidebar-right-guide-entry=terminal] [class*=text]{flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:1px!important;min-width:0!important;display:flex!important}[data-sidebar-right-guide-entry=terminal] [class*=titleRow]{box-sizing:border-box!important;flex-flow:row!important;justify-content:center!important;align-items:center!important;gap:0!important;width:100%!important;height:18px!important;min-height:0!important;max-height:18px!important;padding:0 20px!important;display:flex!important;position:relative!important}[data-sidebar-right-guide-entry=terminal] [class*=title]{text-overflow:clip!important;white-space:nowrap!important;flex:none!important;max-width:none!important;font-size:12px!important;line-height:1.2!important;overflow:visible!important}[data-sidebar-right-guide-entry=terminal] [class*=trigger]{z-index:1!important;flex:0 0 16px!important;width:16px!important;min-width:16px!important;height:16px!important;min-height:16px!important;padding:0!important;position:absolute!important;top:50%!important;right:0!important;transform:translateY(-50%)!important}[data-sidebar-right-guide-entry=terminal] [class*=trigger] svg{width:12px!important;height:12px!important}[data-sidebar-right-guide-entry=terminal] [class*=description]{text-overflow:ellipsis!important;white-space:nowrap!important;max-width:100%!important;overflow:hidden!important}[data-sidebar-right-guide-entry]:not([data-sidebar-right-guide-entry=terminal]){justify-content:center!important;align-items:center!important}[data-sidebar-right-guide-entry]:not([data-sidebar-right-guide-entry=terminal])>span:last-child{flex-direction:column!important;justify-content:center!important;align-self:center!important;align-items:center!important;display:flex!important}[data-sidebar-right-guide-entry]:not([data-sidebar-right-guide-entry=terminal]){box-sizing:border-box!important;flex-direction:column!important;justify-content:center!important;align-self:stretch!important;align-items:center!important;width:100%!important;height:100%!important;display:flex!important}";
8280
- const tagId$8 = "@sparkelf/dsh-knowledge-base/sidebar.module.css";
8281
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$8) + "]") === null) {
8292
+ const css$12 = "[data-dsh-panel-host]{z-index:25;pointer-events:none;height:100vh;position:fixed;inset:0;overflow:clip}html[data-platform] body>[data-dsh-better-sidebar],[data-dsh-panel-host]{-webkit-app-region:initial!important}[data-dsh-panel-host]>*{-webkit-app-region:no-drag}[data-dockkit-float-resize]{z-index:2}[data-dsh-panel-host][data-dsh-panel-host-degraded]{position:absolute;top:0;left:0}.s56VVa_dockFallback{z-index:40;align-items:center;gap:2px;display:inline-flex;position:fixed}.s56VVa_toggleButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), color var(--ds-transition-duration-slow) var(--ds-ease-in-out);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.s56VVa_toggleButton:hover:not(:disabled):not([aria-disabled=true]){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_toggleButton:disabled,.s56VVa_toggleButton[aria-disabled=true]{opacity:.4;cursor:default}.s56VVa_panelBody{flex:1;min-width:0;min-height:0;display:flex}.s56VVa_bottomPanel{z-index:40;background:var(--dsw-alias-bg-layer-1);border-top:1px solid var(--dsw-alias-border-l2);pointer-events:auto;padding-bottom:env(safe-area-inset-bottom);transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), height var(--ds-transition-duration-slow) var(--ds-ease-in-out);flex-direction:column;display:flex;position:absolute;bottom:0}.s56VVa_bottomPanelHidden{pointer-events:none;visibility:hidden;transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), height var(--ds-transition-duration-slow) var(--ds-ease-in-out), visibility 0s linear var(--ds-transition-duration-slow);transform:translateY(102%)}.s56VVa_bottomPanel[data-dragging]{transition:none}.s56VVa_bottomPanel{contain:layout style}body[data-dsh-sidebar-dragging] .s56VVa_panel,body[data-dsh-sidebar-dragging] .s56VVa_bottomPanel{will-change:transform}.s56VVa_bottomResize{cursor:row-resize;z-index:2;touch-action:none;height:8px;position:absolute;top:-4px;left:0;right:0}.s56VVa_bottomResizeActive{background:var(--dsw-alias-interactive-bg-hover-accent)}.s56VVa_bottomClose{z-index:4;width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:3px;right:6px}.s56VVa_bottomClose:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_bottomPanel .s56VVa_tabBar{padding-right:40px}.s56VVa_toggleButton,.s56VVa_tabBar{-webkit-app-region:no-drag}.s56VVa_iconButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.s56VVa_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_iconButton:disabled{opacity:.4;cursor:default}.s56VVa_workbench,.s56VVa_split{flex:1;min-width:0;min-height:0;display:flex}.s56VVa_splitRow{flex-direction:row}.s56VVa_splitCol{flex-direction:column}.s56VVa_splitChild{display:flex;position:relative;overflow:hidden}.s56VVa_divider{z-index:3;touch-action:none;flex:none;position:relative}.s56VVa_dividerRow:after,.s56VVa_dividerCol:after{content:\"\";background:var(--dsw-alias-border-l2);transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out);position:absolute}.s56VVa_dividerRow{cursor:col-resize;width:7px;margin:0 -2px}.s56VVa_dividerRow:after{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.s56VVa_dividerCol{cursor:row-resize;height:7px;margin:-2px 0}.s56VVa_dividerCol:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.s56VVa_divider:hover:after,.s56VVa_dividerActive:after{background:var(--dsw-alias-interactive-bg-hover-accent)}.s56VVa_pane{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.s56VVa_paneDrop{outline:1px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.s56VVa_dropOverlay{z-index:6;pointer-events:none;background:var(--dsw-alias-interactive-bg-hover-accent);opacity:.5;position:absolute}.s56VVa_dropLeft{width:25%;top:0;bottom:0;left:0}.s56VVa_dropRight{width:25%;top:0;bottom:0;right:0}.s56VVa_dropUp{height:25%;top:0;left:0;right:0}.s56VVa_dropDown{height:25%;bottom:0;left:0;right:0}.s56VVa_dropCenter{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px;background:0 0;inset:25%}.s56VVa_paneContent{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.s56VVa_chipIcon{flex:none;align-items:center;margin-right:6px;display:inline-flex}.s56VVa_chipUnread{background:var(--dsw-alias-danger);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.s56VVa_tabUnreadDot{background:var(--dsw-alias-danger);border-radius:50%;flex:none;width:7px;height:7px}.s56VVa_paneTab{flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_paneTabHidden{display:none}.s56VVa_paneEmptyCards{flex:1;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start;justify-items:stretch;gap:12px;width:100%;min-height:0;padding:12px;display:grid;overflow:hidden}.s56VVa_paneCard{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);background:var(--dsw-alias-bg-layer-1);min-width:0;min-height:56px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-strong-14);cursor:pointer;text-align:left;border-radius:24px;flex-direction:row;justify-content:flex-start;align-items:center;gap:14px;padding:14px 20px;display:flex}.s56VVa_paneCard>svg{color:var(--dsw-alias-label-secondary);flex:none}.s56VVa_paneCard:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l4)}.s56VVa_paneCard:disabled{opacity:.45;cursor:default}.s56VVa_tabBar{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);flex:none;align-items:stretch;height:34px;display:flex}.s56VVa_tabBarDrop{outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.s56VVa_tabList{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.s56VVa_tabList::-webkit-scrollbar{display:none}.s56VVa_tab{min-width:96px;max-width:160px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);border-right:1px solid var(--dsw-alias-border-l1);cursor:pointer;user-select:none;background:0 0;flex:none;align-items:center;gap:4px;padding:0 4px 0 10px;display:flex}.s56VVa_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_tabActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.s56VVa_tabTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;display:block;overflow:hidden}.s56VVa_tabBadge{min-width:16px;height:15px;font:var(--dsw-font-xxxs-strong-11);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-brand-primary);border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.s56VVa_tabClose{width:18px;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.s56VVa_tabClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_tabBarPlus{background:var(--dsw-alias-bg-layer-1);width:22px;height:22px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border:none;border-radius:5px;flex:none;justify-content:center;align-self:center;align-items:center;margin:0 6px;padding:0;display:inline-flex;position:sticky;right:0}.s56VVa_tabBarPlus:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_tabBarRightActions{flex:0 auto;justify-content:flex-end;align-items:center;gap:2px;min-width:0;padding-right:4px;display:flex;overflow:hidden}.s56VVa_explorer{flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_explorerHeader{flex:none;justify-content:space-between;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.s56VVa_explorerRoot{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.s56VVa_explorerBody{flex:1;min-height:0;padding:4px 8px 8px;overflow:hidden auto}.s56VVa_explorerRow{box-sizing:border-box;width:100%;max-width:100%;height:28px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;white-space:nowrap;animation:s56VVa_dsh-row-in .15s var(--ds-ease-in-out);background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:0 8px;display:flex;position:relative}.s56VVa_explorerRow>svg{flex:none;width:14px;height:14px}.s56VVa_explorerRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_explorerRowSelected{background:var(--dsw-alias-interactive-bg-active)}.s56VVa_explorerRowSelected:before{content:\"\";background:var(--dsw-alias-state-business-primary);border-radius:1px;width:2px;position:absolute;top:4px;bottom:4px;left:0}.s56VVa_explorerGitName[data-git-tone=modified]{color:var(--dsw-alias-state-warn-primary)}.s56VVa_explorerGitName[data-git-tone=added],.s56VVa_explorerGitName[data-git-tone=untracked]{color:var(--dsw-alias-state-success-primary)}.s56VVa_explorerGitName[data-git-tone=deleted]{color:var(--dsw-alias-state-error-primary)}.s56VVa_explorerGitName[data-git-tone=renamed]{color:var(--dsw-alias-state-business-primary)}.s56VVa_explorerGitName[data-git-tone=copied]{color:var(--dsw-alias-state-success-primary)}.s56VVa_explorerGitName[data-git-tone=conflict]{color:var(--dsw-alias-state-error-primary)}.s56VVa_explorerDirChanged{color:var(--dsw-alias-state-business-primary)}.s56VVa_explorerRowRevealed{background:var(--dsw-alias-state-business-tertiary)}.s56VVa_explorerRowRevealed+.s56VVa_explorerRowRevealed{border-top-left-radius:0;border-top-right-radius:0}.s56VVa_explorerRowRevealed:has(+.s56VVa_explorerRowRevealed){border-bottom-right-radius:0;border-bottom-left-radius:0}.s56VVa_explorerDir{font:var(--dsw-font-xxs-strong-12)}.s56VVa_explorerHidden{opacity:.45}.s56VVa_explorerSymlink{color:var(--dsw-alias-label-tertiary);flex:none}.s56VVa_explorerBroken .s56VVa_explorerName{color:var(--dsw-alias-state-error-primary)}.s56VVa_explorerName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.s56VVa_explorerRenaming{cursor:text}.s56VVa_explorerRenameInput{box-sizing:border-box;border:1px solid var(--dsw-alias-state-business-primary);background:var(--dsw-alias-bg-layer-1);min-width:0;height:22px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:3px;flex:auto;padding:0 6px}.s56VVa_explorerRenameInput:focus{border-color:var(--dsw-alias-state-business-primary);outline:none}.s56VVa_explorerActionError{box-sizing:border-box;border:1px solid var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-1);border-radius:8px;align-items:flex-start;gap:6px;width:100%;margin-bottom:4px;padding:6px 8px;display:flex}.s56VVa_explorerActionErrorText{overflow-wrap:anywhere;min-width:0;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex:auto}.s56VVa_explorerSelectionBar{z-index:1;box-sizing:border-box;background:var(--dsw-alias-bg-layer-2);border-radius:4px;align-items:center;gap:6px;width:100%;min-height:28px;margin-top:4px;padding:2px 8px;display:flex;position:sticky;bottom:0}.s56VVa_explorerSelectionText{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-secondary);flex:auto;overflow:hidden}.s56VVa_explorerSelectionActions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:4px;max-width:72%;display:flex}.s56VVa_explorerAppIcon{object-fit:contain;width:14px;height:14px;display:block}.s56VVa_explorerHiddenPane{display:none}.s56VVa_explorerTime{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;margin-left:auto;padding-left:8px}.s56VVa_explorerRow:hover .s56VVa_explorerTime,.s56VVa_explorerRow:focus-within .s56VVa_explorerTime{margin-left:0}.s56VVa_explorerRef,.s56VVa_explorerCopied{margin-left:auto}.s56VVa_explorerRef{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:20px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;align-items:center;padding:0 8px;display:none}.s56VVa_explorerRef:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_explorerRow:hover .s56VVa_explorerRef,.s56VVa_explorerRow:focus-within .s56VVa_explorerRef{display:inline-flex}.s56VVa_explorerCopied{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.s56VVa_explorerError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);cursor:default}@keyframes s56VVa_dsh-row-in{0%{opacity:0}}.s56VVa_explorerEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.s56VVa_explorerRowDropTarget{background:var(--dsw-alias-interactive-bg-hover-accent);outline:1px dashed var(--dsw-alias-state-business-primary);outline-offset:-1px}.s56VVa_uploadDropMask{z-index:1001;pointer-events:none;background:color-mix(in srgb, var(--dsw-alias-bg-base) 62%, transparent);animation:s56VVa_dsh-row-in .15s var(--ds-ease-in-out);position:fixed;inset:0}.s56VVa_uploadDropZone{z-index:1002;pointer-events:none;border:2px dashed var(--dsw-alias-border-l2);background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 4%, transparent);animation:s56VVa_dsh-row-in .15s var(--ds-ease-in-out);border-radius:8px;justify-content:center;align-items:flex-start;padding:12px;display:flex;position:fixed}.s56VVa_uploadDropHero{flex-direction:column;align-items:center;gap:8px;max-width:100%;padding-top:8px;display:flex}.s56VVa_uploadDropArtPrimary{color:var(--dsw-alias-state-business-primary)}.s56VVa_uploadDropArtAccent{color:var(--dsw-alias-state-business-tertiary)}.s56VVa_uploadDropArtCut{color:var(--dsw-alias-bg-layer-1)}.s56VVa_uploadDropZonePill{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);max-width:100%;height:28px;box-shadow:var(--dsw-shadow-lv2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-11);border-radius:999px;align-items:center;gap:6px;padding:0 12px;display:flex}.s56VVa_uploadDropZoneText{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.s56VVa_uploadDropChatHint{z-index:1003;pointer-events:none;animation:s56VVa_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0}.s56VVa_uploadDropChatCard{text-align:center;max-width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);flex-direction:column;align-items:center;gap:10px;display:flex}.s56VVa_uploadOverlay{z-index:30;background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);animation:s56VVa_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.s56VVa_uploadOverlayCard{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-width:240px;max-width:min(420px,100% - 48px);box-shadow:var(--dsw-shadow-lv3);border-radius:8px;flex-direction:column;gap:10px;padding:16px;display:flex}.s56VVa_uploadOverlayTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);align-items:center;gap:6px;display:flex}.s56VVa_uploadOverlayTitle>svg{flex:none}.s56VVa_uploadOverlayTitle>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.s56VVa_uploadOverlayProgress{background:var(--dsw-alias-border-l2);border-radius:3px;height:6px;overflow:hidden}.s56VVa_uploadOverlayProgressFill{background:var(--dsw-alias-interactive-bg-hover-accent);height:100%;transition:width .15s var(--ds-ease-in-out);border-radius:3px}.s56VVa_uploadOverlayStatus{min-height:1em;font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.s56VVa_uploadOverlayCancel{border:1px solid var(--dsw-alias-border-l2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;background:0 0;border-radius:4px;align-self:flex-end;padding:0 12px}.s56VVa_uploadOverlayCancel:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.s56VVa_uploadOverlayCancel:disabled{opacity:.4;cursor:default}.s56VVa_editor{flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_editorHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.s56VVa_editorTitle{min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.s56VVa_editorPathInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.s56VVa_editorPathInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.s56VVa_editorTreeToggleActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.s56VVa_editorBody{flex:1;min-height:0;display:flex}.s56VVa_editorMain{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.s56VVa_editorTreeDock{border-left:1px solid var(--dsw-alias-border-l1);flex:none;min-height:0;display:flex;position:relative}.s56VVa_editorTreeResize{cursor:col-resize;touch-action:none;z-index:3;width:6px;position:absolute;top:0;bottom:0;left:0}.s56VVa_editorTreeResize:hover{background:var(--dsw-alias-border-l2)}.s56VVa_editorTreePanel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.s56VVa_editorTreePanelFull{flex:1}.s56VVa_editorTreeSearch{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.s56VVa_editorSearchInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:26px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.s56VVa_editorSearchInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.s56VVa_editorSearchHint{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:8px 12px}.s56VVa_editorSearchResult{box-sizing:border-box;width:100%;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:0 8px;line-height:28px;display:flex;overflow:hidden}.s56VVa_editorSearchResultDir{color:var(--dsw-alias-label-secondary)}.s56VVa_editorSearchResultLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.s56VVa_editorSearchResult:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_editorStatus{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.s56VVa_editorStatusError{color:var(--dsw-alias-state-error-primary)}.s56VVa_dirtyDot{background:var(--dsw-alias-state-warn-primary);border-radius:50%;flex:none;width:7px;height:7px}.s56VVa_editorPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.s56VVa_orphanedType{opacity:.7;overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.s56VVa_editorBinary{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px 16px;display:flex}.s56VVa_editorBinaryNotice{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.s56VVa_editorDownloadLink{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), border-color var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:6px;align-items:center;gap:6px;padding:6px 14px;text-decoration:none;display:inline-flex}.s56VVa_editorDownloadLink:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.s56VVa_editorError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);padding:12px 16px}.s56VVa_editorBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 8px}.s56VVa_editorBannerAction{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;margin-left:8px;padding:0;text-decoration:underline}.s56VVa_editorGitAdd{color:var(--dsw-alias-state-success-primary)}.s56VVa_editorGitMod{color:var(--dsw-alias-state-warn-primary)}.s56VVa_editorGitDel{color:var(--dsw-alias-state-error-primary)}.s56VVa_editorGitBarGutter{width:2px;min-width:2px}.s56VVa_editorGitBar,.s56VVa_editorGitBarSpacer{width:2px;height:100%}.s56VVa_editorGitBarAdd{background:var(--dsw-alias-state-success-primary)}.s56VVa_editorGitBarMod{background:var(--dsw-alias-state-warn-primary)}.s56VVa_editorGitBarDel{background:var(--dsw-alias-state-error-primary)}.s56VVa_editorBlame{max-width:420px;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-primary);padding:4px 8px}.s56VVa_editorBlameHead{color:var(--dsw-alias-label-secondary)}.s56VVa_editorBlameSummary{color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:2px}.s56VVa_sandboxStatus{font:var(--dsw-font-xxxs-11);flex:none;align-items:center;gap:8px;padding:4px 10px;display:flex}.s56VVa_sandboxStatusOn{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1)}.s56VVa_sandboxStatusOff{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 10%, transparent);border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent)}.s56VVa_sandboxDot{background:var(--dsw-alias-state-success-primary);border-radius:50%;flex:none;width:6px;height:6px}.s56VVa_sandboxStatusOff .s56VVa_sandboxDot{background:var(--dsw-alias-state-error-primary)}.s56VVa_sandboxStatusText{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.s56VVa_sandboxAction{border:1px solid var(--dsw-alias-border-l2);font:inherit;color:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:2px 8px}.s56VVa_sandboxAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_editorHtml{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.s56VVa_browser{flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_browserBar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:4px;padding:6px 8px;display:flex}.s56VVa_browserInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.s56VVa_browserInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.s56VVa_browserMessage{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 12px}.s56VVa_browserFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.s56VVa_browserStart{text-align:center;min-height:0;font:var(--dsw-font-xs-13);color:var(--dsw-alias-label-tertiary);flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.s56VVa_browserBlocked{text-align:center;min-height:0;color:var(--dsw-alias-state-warn-primary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.s56VVa_browserBlockedTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary)}.s56VVa_browserBlockedDesc{max-width:280px;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary)}.s56VVa_browserBlockedActions{gap:8px;margin-top:6px;display:flex}.s56VVa_browserBlockedButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-11);cursor:pointer;border-radius:6px;padding:4px 12px}.s56VVa_browserBlockedButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_editorCm{background:0 0;flex:1;min-height:0;overflow:hidden}.s56VVa_editorCmHidden{display:none}.s56VVa_editorCm .cm-editor{height:100%}.s56VVa_editorCm .cm-scroller{padding:12px 16px}.s56VVa_editorCm .cm-editor.cm-focused{outline:none}.s56VVa_editorModeToggle{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.s56VVa_editorModeButton{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px}.s56VVa_editorModeButton:hover{color:var(--dsw-alias-label-primary)}.s56VVa_editorModeActive{background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary)}.s56VVa_editorMd{min-height:0;font:var(--dsw-font-xs-13);flex:1;padding:12px 16px;overflow-y:auto}.s56VVa_editorMd .md-code-block:not([data-mermaid-processed])>div:first-child{z-index:auto;position:static}.s56VVa_mermaidWrap{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);border-radius:6px;margin:6px 0;overflow:hidden}.s56VVa_mermaidHeader{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);justify-content:space-between;align-items:center;gap:6px;padding:4px 8px;display:flex}.s56VVa_mermaidInfo{font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary)}.s56VVa_mermaidCopy{height:20px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:4px;padding:0 6px;display:inline-flex}.s56VVa_mermaidCopy:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_mermaidBody{cursor:zoom-in;justify-content:center;padding:10px;display:flex;overflow:auto}.s56VVa_mermaidBody svg{max-width:100%;height:auto}.s56VVa_mermaidError{border-bottom:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxxs-11);padding:6px 10px}.s56VVa_mermaidCode{font:var(--dsw-font-xxxs-11);margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.s56VVa_mermaidMarkdown .md-code-block[data-mermaid-processed]{display:contents}.s56VVa_mermaidModal{z-index:1000;background:var(--dsw-alias-bg-mask-1);backdrop-filter:blur(2px);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;-webkit-app-region:initial!important}.s56VVa_mermaidModalToolbar{z-index:10;gap:8px;display:flex;position:absolute;top:16px;right:16px}.s56VVa_mermaidModalButton{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:36px;height:36px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xs-strong-13);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.s56VVa_mermaidModalButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_mermaidModalStage{justify-content:center;align-items:center;width:90vw;height:80vh;display:flex;position:relative;overflow:hidden}.s56VVa_mermaidModalStage svg{cursor:grab;transform-origin:50%;user-select:none;-webkit-user-drag:none;background:var(--dsw-alias-bg-layer-1);border-radius:12px;max-width:none;max-height:none;padding:16px}.s56VVa_mermaidModalStage svg:active{cursor:grabbing}.s56VVa_mermaidModalHint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);pointer-events:none;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.s56VVa_selectionPopup{z-index:60;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-specific-menu);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-strong-11);white-space:nowrap;cursor:pointer;border-radius:6px;align-items:center;padding:0 10px;display:inline-flex;position:fixed;transform:translate(-50%,calc(-100% - 8px))}.s56VVa_selectionPopup:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.s56VVa_editorPdf{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_editorPdfToolbar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;justify-content:flex-end;padding:6px 8px;display:flex}.s56VVa_editorPdfStage{flex:1;min-height:0;display:flex;position:relative}.s56VVa_editorPdfFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.s56VVa_editorPdfFrameBlocked{pointer-events:none}.s56VVa_editorPdfDragShield{z-index:4;pointer-events:none;background:0 0;position:absolute;inset:0}.s56VVa_editorPdfDragShieldActive{pointer-events:auto}body[data-dsh-tab-dragging] .s56VVa_editorPdfFrame{pointer-events:none!important}body[data-dsh-tab-dragging] .s56VVa_editorPdfDragShield{pointer-events:auto!important}.s56VVa_boundaryError{z-index:50;background:var(--dsw-alias-bg-layer-1);border-left:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;align-items:flex-start;gap:8px;padding:16px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:auto}.s56VVa_terminalRetry{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;padding:1px 8px}.s56VVa_terminalRetry:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_tabBoundaryError{min-height:0;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;flex:1;align-items:flex-start;gap:8px;padding:12px 16px;display:flex;overflow:auto}.s56VVa_nativeTabHost{flex-direction:column;height:100%;min-height:0;display:flex}.s56VVa_gitEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:4px 12px 8px}.s56VVa_gitPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.s56VVa_gitError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);white-space:pre-wrap;padding:8px 12px}.s56VVa_gitDiffTab{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.s56VVa_gitDiffTabHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.s56VVa_gitDiffTabTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.s56VVa_toggleButton:focus-visible,.s56VVa_bottomClose:focus-visible,.s56VVa_iconButton:focus-visible,.s56VVa_tab:focus-visible,.s56VVa_tabClose:focus-visible,.s56VVa_tabBarPlus:focus-visible,.s56VVa_paneCard:focus-visible,.s56VVa_explorerRow:focus-visible,.s56VVa_explorerRef:focus-visible,.s56VVa_terminalRetry:focus-visible,.s56VVa_editorModeButton:focus-visible,.s56VVa_editorDownloadLink:focus-visible,.s56VVa_editorPptxButton:focus-visible,.s56VVa_editorDocxZoomRange:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}@media (prefers-reduced-motion:reduce){.s56VVa_bottomPanel,.s56VVa_bottomPanelHidden,.s56VVa_toggleButton,.s56VVa_tab,.s56VVa_tabBarPlus,.s56VVa_paneCard,.s56VVa_explorerRow,.s56VVa_divider,.s56VVa_dividerRow:after,.s56VVa_dividerCol:after{transition:none;animation:none}}@media (width<=767px){.s56VVa_tab{min-width:48px;max-width:128px}}.s56VVa_openWithLabel{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.s56VVa_openWithName{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.s56VVa_openWithChevron{color:var(--dsw-alias-label-tertiary);flex:none}.s56VVa_openWithPin{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border-radius:5px;flex:none;justify-content:center;align-items:center;display:inline-flex}.s56VVa_openWithPin:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_openWithPinActive{color:var(--dsw-alias-state-business-primary)}.s56VVa_editorHtmlBlock{margin:8px 0}.s56VVa_editorHtmlBlock img,.s56VVa_editorHtmlBlock video{max-width:100%}.s56VVa_editorHtmlBlock details{margin:4px 0;padding:4px 0}.s56VVa_editorHtmlBlock summary,.s56VVa_editorMd details>summary{cursor:pointer}.s56VVa_tocBar{z-index:7;pointer-events:none;justify-content:flex-end;height:0;display:flex;position:sticky;top:0}.s56VVa_tocButton{pointer-events:auto;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);width:26px;height:26px;color:var(--dsw-alias-label-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;margin:4px 2px 0 0;padding:0;display:inline-flex}.s56VVa_tocButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_tocPanel{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);width:min(300px,82%);max-height:60vh;box-shadow:var(--dsw-shadow-lv2);pointer-events:auto;border-radius:8px;flex-direction:column;padding:4px;display:flex;position:absolute;top:32px;right:2px;overflow-y:auto}.s56VVa_tocItem{min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:baseline;gap:8px;padding:4px 8px;display:flex}.s56VVa_tocItem:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.s56VVa_tocItem[data-level=\"2\"]{padding-left:18px}.s56VVa_tocItem[data-level=\"3\"]{padding-left:28px}.s56VVa_tocItem[data-level=\"4\"]{padding-left:38px}.s56VVa_tocItem[data-level=\"5\"]{padding-left:48px}.s56VVa_tocItem[data-level=\"6\"]{padding-left:58px}.s56VVa_tocItemLevel{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.s56VVa_tocItemText{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}@keyframes s56VVa_dsh-toc-flash{0%,60%{background:var(--dsw-alias-interactive-bg-hover)}to{background:0 0}}.s56VVa_tocFlash{border-radius:4px;animation:1.2s ease-out s56VVa_dsh-toc-flash}.s56VVa_largeFile{flex-direction:column;flex:1;min-height:0;display:flex}.s56VVa_largeFileNotice{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;align-items:baseline;gap:8px;padding:4px 8px;display:flex}.s56VVa_largeFileDownload{color:inherit;text-decoration:underline}.s56VVa_largeFileNoticeAction{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:4px;margin-left:auto;padding:0 6px}.s56VVa_largeFileNoticeAction:disabled{opacity:.5;cursor:default}.s56VVa_largeFileBody{flex:1;min-height:0;overflow:auto}.s56VVa_largeFileRecords{padding:4px 0}.s56VVa_largeFileList{margin:0;padding:0;list-style:none}.s56VVa_largeFileRecord{gap:8px;padding:2px 8px;display:flex}.s56VVa_largeFileRecordExpanded{background:var(--dsw-alias-bg-layer-1)}.s56VVa_largeFileRecordInvalid{color:var(--dsw-alias-state-error-primary)}.s56VVa_largeFileRecordNo{text-align:right;min-width:4ch;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);user-select:none;flex:none}.s56VVa_largeFileRecordBody{flex:1;min-width:0}.s56VVa_largeFileRecordSummary{text-align:left;width:100%;font:var(--ds-font-family-code);color:var(--dsw-alias-label-primary);white-space:pre;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;display:block;overflow:hidden}.s56VVa_largeFileRecordSummary:disabled{cursor:default}.s56VVa_largeFileRecordRaw{font:var(--ds-font-family-code);white-space:pre-wrap;word-break:break-all;overflow-wrap:anywhere;margin:2px 0 0;font-size:12px}.s56VVa_largeFileRecordTree{font:var(--ds-font-family-code);margin-top:2px;font-size:12px}.s56VVa_largeFileLines{font:var(--ds-font-family-code);white-space:pre;padding:4px 0;font-size:12px}.s56VVa_largeFileLine{gap:8px;padding:0 8px;display:flex}.s56VVa_largeFileLineNo{text-align:right;min-width:5ch;color:var(--dsw-alias-label-tertiary);user-select:none;flex:none}.s56VVa_largeFileLineText{color:var(--dsw-alias-label-primary);flex:none}.s56VVa_largeFilePager{border-top:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);flex:none;align-items:center;gap:4px;padding:2px 8px;display:flex}.s56VVa_largeFilePageLabel{text-align:center;min-width:0;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.s56VVa_explorerMuted{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);cursor:default}[data-sidebar-right-guide]{grid-template-columns:repeat(auto-fill,minmax(96px,120px))!important;place-content:center!important;place-items:stretch stretch!important;gap:12px!important;padding:16px!important;display:grid!important;overflow:auto!important}[data-sidebar-right-guide]>div{aspect-ratio:1!important;flex:none!important;width:100%!important;min-width:0!important;max-width:none!important;min-height:0!important;display:flex!important}[data-sidebar-right-guide]>div [data-sidebar-right-guide-entry]{box-sizing:border-box!important;text-align:center!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:8px!important;width:100%!important;height:100%!important;padding:12px!important}[data-sidebar-right-guide] kbd,[data-sidebar-right-guide] span:has(>kbd){display:none!important}[data-sidebar-right-guide]>div [data-sidebar-right-guide-entry]>span:last-child{flex:0 auto!important;align-items:center!important;width:100%!important;height:auto!important;min-height:0!important}[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal]{position:relative!important}[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal] [class*=titleRow]{flex-flow:row!important;justify-content:center!important;align-items:center!important;gap:2px!important;height:20px!important;min-height:0!important;display:flex!important;position:static!important}[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal] [class*=menu],[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal] [class*=trigger],[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal] button:not([class*=main]){z-index:1!important;flex:0 0 20px!important;width:20px!important;height:20px!important;min-height:0!important;padding:0!important;position:static!important;top:auto!important;bottom:auto!important;right:auto!important;transform:none!important}[data-sidebar-right-guide] [data-sidebar-right-guide-entry=terminal] [class*=title]{white-space:nowrap!important;text-overflow:ellipsis!important;overflow:hidden!important}[data-sidebar-right-guide]>div [data-sidebar-right-guide-entry] span{white-space:normal!important;text-overflow:clip!important;min-width:0!important;max-width:100%!important;overflow:visible!important}[data-sidebar-right-guide]>span:first-child{grid-column:1/-1;justify-self:center;margin:4px 0 8px}@media (width<=640px){[data-sidebar-right-guide]{grid-template-columns:repeat(auto-fill,minmax(88px,108px))!important;padding:12px!important}}[data-sidebar-right-guide-entry=terminal]{box-sizing:border-box!important;flex-direction:row!important;justify-content:center!important;align-self:stretch!important;align-items:center!important;gap:6px!important;width:100%!important;height:100%!important;min-height:0!important;padding:8px!important;display:flex!important;overflow:hidden!important}[data-sidebar-right-guide-entry=terminal]>span{flex:0 auto!important}[data-sidebar-right-guide-entry=terminal] [class*=text]{flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:1px!important;min-width:0!important;display:flex!important}[data-sidebar-right-guide-entry=terminal] [class*=titleRow]{box-sizing:border-box!important;flex-flow:row!important;justify-content:center!important;align-items:center!important;gap:0!important;width:100%!important;height:18px!important;min-height:0!important;max-height:18px!important;padding:0 20px!important;display:flex!important;position:relative!important}[data-sidebar-right-guide-entry=terminal] [class*=title]{text-overflow:clip!important;white-space:nowrap!important;flex:none!important;max-width:none!important;font-size:12px!important;line-height:1.2!important;overflow:visible!important}[data-sidebar-right-guide-entry=terminal] [class*=trigger]{z-index:1!important;flex:0 0 16px!important;width:16px!important;min-width:16px!important;height:16px!important;min-height:16px!important;padding:0!important;position:absolute!important;top:50%!important;right:0!important;transform:translateY(-50%)!important}[data-sidebar-right-guide-entry=terminal] [class*=trigger] svg{width:12px!important;height:12px!important}[data-sidebar-right-guide-entry=terminal] [class*=description]{text-overflow:ellipsis!important;white-space:nowrap!important;max-width:100%!important;overflow:hidden!important}[data-sidebar-right-guide-entry]:not([data-sidebar-right-guide-entry=terminal]){justify-content:center!important;align-items:center!important}[data-sidebar-right-guide-entry]:not([data-sidebar-right-guide-entry=terminal])>span:last-child{flex-direction:column!important;justify-content:center!important;align-self:center!important;align-items:center!important;display:flex!important}[data-sidebar-right-guide-entry]:not([data-sidebar-right-guide-entry=terminal]){box-sizing:border-box!important;flex-direction:column!important;justify-content:center!important;align-self:stretch!important;align-items:center!important;width:100%!important;height:100%!important;display:flex!important}.s56VVa_nativeTabMenuItem{color:var(--dsw-alias-label-primary);font-size:var(--dsh-content-font-size-secondary,13px);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:5px 8px}.s56VVa_nativeTabMenuItem:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.s56VVa_nativeTabMenuItem:disabled{opacity:.4;cursor:not-allowed}.s56VVa_nativeTabMenuSeparator{border-top:.5px solid var(--dsw-alias-border-l2);height:0;margin:3px 2px}";
8293
+ const tagId$12 = "@sparkelf/dsh-knowledge-base/sidebar.module.css";
8294
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$12) + "]") === null) {
8282
8295
  const tag = document.createElement("style");
8283
8296
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
8284
- tag.dataset.pluginCss = tagId$8;
8285
- tag.textContent = css$8;
8297
+ tag.dataset.pluginCss = tagId$12;
8298
+ tag.textContent = css$12;
8286
8299
  document.head.appendChild(tag);
8287
8300
  }
8288
8301
  var sidebar_module_css_default = {
8289
- "editorBlameHead": "s56VVa_editorBlameHead",
8290
- "mermaidHeader": "s56VVa_mermaidHeader",
8291
- "largeFileList": "s56VVa_largeFileList",
8292
- "largeFileRecordNo": "s56VVa_largeFileRecordNo",
8293
- "explorerRow": "s56VVa_explorerRow",
8294
- "editorCm": "s56VVa_editorCm",
8295
- "editor": "s56VVa_editor",
8296
- "browserStart": "s56VVa_browserStart",
8297
- "editorTreeToggleActive": "s56VVa_editorTreeToggleActive",
8298
- "nativeTabHost": "s56VVa_nativeTabHost",
8299
- "editorStatus": "s56VVa_editorStatus",
8300
- "sandboxStatusOff": "s56VVa_sandboxStatusOff",
8301
- "editorBody": "s56VVa_editorBody",
8302
- "tocButton": "s56VVa_tocButton",
8303
- "boundaryError": "s56VVa_boundaryError",
8304
- "splitCol": "s56VVa_splitCol",
8305
- "editorPdfFrame": "s56VVa_editorPdfFrame",
8306
- "explorerBroken": "s56VVa_explorerBroken",
8307
- "openWithPinActive": "s56VVa_openWithPinActive",
8308
- "splitChild": "s56VVa_splitChild",
8309
- "editorModeButton": "s56VVa_editorModeButton",
8310
- "orphanedType": "s56VVa_orphanedType",
8311
- "tabTitle": "s56VVa_tabTitle",
8312
- "paneContent": "s56VVa_paneContent",
8313
- "gitDiffTabTitle": "s56VVa_gitDiffTabTitle",
8314
- "editorGitBar": "s56VVa_editorGitBar",
8315
- "uploadDropArtPrimary": "s56VVa_uploadDropArtPrimary",
8316
- "mermaidError": "s56VVa_mermaidError",
8302
+ "uploadOverlay": "s56VVa_uploadOverlay",
8303
+ "tabClose": "s56VVa_tabClose",
8304
+ "largeFileRecordExpanded": "s56VVa_largeFileRecordExpanded",
8305
+ "uploadDropZone": "s56VVa_uploadDropZone",
8306
+ "tabBarPlus": "s56VVa_tabBarPlus",
8307
+ "paneEmptyCards": "s56VVa_paneEmptyCards",
8308
+ "dividerRow": "s56VVa_dividerRow",
8309
+ "explorerRowRevealed": "s56VVa_explorerRowRevealed",
8310
+ "editorHtml": "s56VVa_editorHtml",
8311
+ "editorMd": "s56VVa_editorMd",
8312
+ "editorMain": "s56VVa_editorMain",
8313
+ "mermaidModal": "s56VVa_mermaidModal",
8314
+ "openWithPin": "s56VVa_openWithPin",
8315
+ "explorerSelectionText": "s56VVa_explorerSelectionText",
8316
+ "dropDown": "s56VVa_dropDown",
8317
+ "sandboxStatusOff": "s56VVa_sandboxStatusOff",
8317
8318
  "editorModeToggle": "s56VVa_editorModeToggle",
8318
- "largeFileLineText": "s56VVa_largeFileLineText",
8319
- "editorPdfFrameBlocked": "s56VVa_editorPdfFrameBlocked",
8320
- "mermaidCopy": "s56VVa_mermaidCopy",
8321
- "bottomPanel": "s56VVa_bottomPanel",
8322
- "gitPlaceholder": "s56VVa_gitPlaceholder",
8323
- "largeFilePager": "s56VVa_largeFilePager",
8324
- "explorer": "s56VVa_explorer",
8325
- "bottomPanelHidden": "s56VVa_bottomPanelHidden",
8326
- "uploadDropChatCard": "s56VVa_uploadDropChatCard",
8327
- "mermaidMarkdown": "s56VVa_mermaidMarkdown",
8328
- "editorPdfDragShieldActive": "s56VVa_editorPdfDragShieldActive",
8329
- "uploadOverlayCancel": "s56VVa_uploadOverlayCancel",
8330
- "browserFrame": "s56VVa_browserFrame",
8331
- "pane": "s56VVa_pane",
8319
+ "largeFile": "s56VVa_largeFile",
8320
+ "largeFileRecord": "s56VVa_largeFileRecord",
8321
+ "divider": "s56VVa_divider",
8322
+ "tabBoundaryError": "s56VVa_tabBoundaryError",
8323
+ "dropOverlay": "s56VVa_dropOverlay",
8324
+ "editorPdfStage": "s56VVa_editorPdfStage",
8325
+ "paneCard": "s56VVa_paneCard",
8326
+ "selectionPopup": "s56VVa_selectionPopup",
8327
+ "chipIcon": "s56VVa_chipIcon",
8328
+ "editorBody": "s56VVa_editorBody",
8329
+ "panelBody": "s56VVa_panelBody",
8330
+ "splitChild": "s56VVa_splitChild",
8331
+ "openWithLabel": "s56VVa_openWithLabel",
8332
+ "explorerRowDropTarget": "s56VVa_explorerRowDropTarget",
8333
+ "split": "s56VVa_split",
8334
+ "openWithName": "s56VVa_openWithName",
8332
8335
  "tabList": "s56VVa_tabList",
8333
- "paneDrop": "s56VVa_paneDrop",
8334
- "largeFileRecordSummary": "s56VVa_largeFileRecordSummary",
8335
- "largeFileRecordRaw": "s56VVa_largeFileRecordRaw",
8336
- "uploadOverlayTitle": "s56VVa_uploadOverlayTitle",
8336
+ "nativeTabHost": "s56VVa_nativeTabHost",
8337
+ "mermaidModalToolbar": "s56VVa_mermaidModalToolbar",
8338
+ "tabBadge": "s56VVa_tabBadge",
8339
+ "editorGitBarMod": "s56VVa_editorGitBarMod",
8340
+ "mermaidError": "s56VVa_mermaidError",
8341
+ "browserBlocked": "s56VVa_browserBlocked",
8342
+ "browserBlockedActions": "s56VVa_browserBlockedActions",
8343
+ "editorStatusError": "s56VVa_editorStatusError",
8337
8344
  "browserInput": "s56VVa_browserInput",
8338
- "editorGitBarSpacer": "s56VVa_editorGitBarSpacer",
8339
- "largeFileRecordTree": "s56VVa_largeFileRecordTree",
8340
- "editorCmHidden": "s56VVa_editorCmHidden",
8341
- "explorerSelectionActions": "s56VVa_explorerSelectionActions",
8342
- "dsh-row-in": "s56VVa_dsh-row-in",
8345
+ "openWithPinActive": "s56VVa_openWithPinActive",
8346
+ "paneTab": "s56VVa_paneTab",
8347
+ "uploadDropArtAccent": "s56VVa_uploadDropArtAccent",
8348
+ "tocPanel": "s56VVa_tocPanel",
8349
+ "largeFileRecordRaw": "s56VVa_largeFileRecordRaw",
8350
+ "nativeTabMenuSeparator": "s56VVa_nativeTabMenuSeparator",
8351
+ "sandboxAction": "s56VVa_sandboxAction",
8352
+ "splitRow": "s56VVa_splitRow",
8343
8353
  "openWithChevron": "s56VVa_openWithChevron",
8344
- "editorGitBarDel": "s56VVa_editorGitBarDel",
8345
- "openWithName": "s56VVa_openWithName",
8346
- "explorerActionError": "s56VVa_explorerActionError",
8354
+ "tabBarRightActions": "s56VVa_tabBarRightActions",
8355
+ "explorer": "s56VVa_explorer",
8356
+ "editorPlaceholder": "s56VVa_editorPlaceholder",
8357
+ "tabUnreadDot": "s56VVa_tabUnreadDot",
8358
+ "mermaidModalStage": "s56VVa_mermaidModalStage",
8359
+ "paneContent": "s56VVa_paneContent",
8360
+ "editorDownloadLink": "s56VVa_editorDownloadLink",
8361
+ "mermaidCode": "s56VVa_mermaidCode",
8362
+ "browserStart": "s56VVa_browserStart",
8347
8363
  "editorGitAdd": "s56VVa_editorGitAdd",
8348
- "chipIcon": "s56VVa_chipIcon",
8349
- "tocItemLevel": "s56VVa_tocItemLevel",
8350
- "panelBody": "s56VVa_panelBody",
8351
- "explorerSelectionBar": "s56VVa_explorerSelectionBar",
8352
- "explorerSymlink": "s56VVa_explorerSymlink",
8364
+ "uploadDropArtCut": "s56VVa_uploadDropArtCut",
8365
+ "explorerHidden": "s56VVa_explorerHidden",
8366
+ "mermaidWrap": "s56VVa_mermaidWrap",
8367
+ "boundaryError": "s56VVa_boundaryError",
8368
+ "editorBanner": "s56VVa_editorBanner",
8369
+ "explorerHeader": "s56VVa_explorerHeader",
8370
+ "dropLeft": "s56VVa_dropLeft",
8371
+ "terminalRetry": "s56VVa_terminalRetry",
8372
+ "toggleButton": "s56VVa_toggleButton",
8373
+ "uploadDropArtPrimary": "s56VVa_uploadDropArtPrimary",
8374
+ "largeFilePageLabel": "s56VVa_largeFilePageLabel",
8375
+ "editorCm": "s56VVa_editorCm",
8376
+ "explorerRowSelected": "s56VVa_explorerRowSelected",
8377
+ "editorBlameHead": "s56VVa_editorBlameHead",
8378
+ "uploadOverlayProgressFill": "s56VVa_uploadOverlayProgressFill",
8379
+ "browserBar": "s56VVa_browserBar",
8380
+ "editorCmHidden": "s56VVa_editorCmHidden",
8381
+ "editorGitBarAdd": "s56VVa_editorGitBarAdd",
8382
+ "largeFileList": "s56VVa_largeFileList",
8383
+ "explorerMuted": "s56VVa_explorerMuted",
8384
+ "sandboxStatusOn": "s56VVa_sandboxStatusOn",
8385
+ "editorSearchResult": "s56VVa_editorSearchResult",
8386
+ "nativeTabMenuItem": "s56VVa_nativeTabMenuItem",
8387
+ "editorSearchResultDir": "s56VVa_editorSearchResultDir",
8388
+ "editorPdfFrame": "s56VVa_editorPdfFrame",
8389
+ "explorerTime": "s56VVa_explorerTime",
8390
+ "tocItem": "s56VVa_tocItem",
8391
+ "editorModeActive": "s56VVa_editorModeActive",
8392
+ "browserFrame": "s56VVa_browserFrame",
8393
+ "mermaidCopy": "s56VVa_mermaidCopy",
8394
+ "largeFileLine": "s56VVa_largeFileLine",
8395
+ "editorTreeSearch": "s56VVa_editorTreeSearch",
8396
+ "dockFallback": "s56VVa_dockFallback",
8353
8397
  "sandboxStatusText": "s56VVa_sandboxStatusText",
8354
- "editorPdfStage": "s56VVa_editorPdfStage",
8355
- "editorPlaceholder": "s56VVa_editorPlaceholder",
8356
- "mermaidInfo": "s56VVa_mermaidInfo",
8357
- "largeFileLineNo": "s56VVa_largeFileLineNo",
8398
+ "gitPlaceholder": "s56VVa_gitPlaceholder",
8399
+ "uploadOverlayCard": "s56VVa_uploadOverlayCard",
8400
+ "browserBlockedButton": "s56VVa_browserBlockedButton",
8401
+ "mermaidHeader": "s56VVa_mermaidHeader",
8358
8402
  "explorerError": "s56VVa_explorerError",
8359
- "editorBinaryNotice": "s56VVa_editorBinaryNotice",
8360
- "uploadDropZoneText": "s56VVa_uploadDropZoneText",
8361
- "editorTreePanel": "s56VVa_editorTreePanel",
8403
+ "editorDocxZoomRange": "s56VVa_editorDocxZoomRange",
8404
+ "largeFileRecordSummary": "s56VVa_largeFileRecordSummary",
8405
+ "explorerDir": "s56VVa_explorerDir",
8406
+ "editorTreeToggleActive": "s56VVa_editorTreeToggleActive",
8407
+ "browserBlockedTitle": "s56VVa_browserBlockedTitle",
8408
+ "gitEmpty": "s56VVa_gitEmpty",
8409
+ "bottomPanel": "s56VVa_bottomPanel",
8410
+ "editorPptxButton": "s56VVa_editorPptxButton",
8411
+ "dropCenter": "s56VVa_dropCenter",
8412
+ "uploadOverlayStatus": "s56VVa_uploadOverlayStatus",
8413
+ "editorTitle": "s56VVa_editorTitle",
8414
+ "uploadDropChatCard": "s56VVa_uploadDropChatCard",
8415
+ "largeFileLineNo": "s56VVa_largeFileLineNo",
8416
+ "browserBlockedDesc": "s56VVa_browserBlockedDesc",
8417
+ "editorBlame": "s56VVa_editorBlame",
8362
8418
  "editorSearchHint": "s56VVa_editorSearchHint",
8363
- "explorerGitName": "s56VVa_explorerGitName",
8364
- "largeFileDownload": "s56VVa_largeFileDownload",
8419
+ "tabBarDrop": "s56VVa_tabBarDrop",
8420
+ "explorerDirChanged": "s56VVa_explorerDirChanged",
8421
+ "workbench": "s56VVa_workbench",
8422
+ "editor": "s56VVa_editor",
8365
8423
  "editorGitDel": "s56VVa_editorGitDel",
8366
- "dropDown": "s56VVa_dropDown",
8367
- "editorTreeResize": "s56VVa_editorTreeResize",
8368
- "gitEmpty": "s56VVa_gitEmpty",
8369
- "tabClose": "s56VVa_tabClose",
8370
- "tocItem": "s56VVa_tocItem",
8371
- "explorerHiddenPane": "s56VVa_explorerHiddenPane",
8372
- "editorHeader": "s56VVa_editorHeader",
8373
- "explorerTime": "s56VVa_explorerTime",
8374
- "chipUnread": "s56VVa_chipUnread",
8424
+ "explorerRow": "s56VVa_explorerRow",
8425
+ "editorGitMod": "s56VVa_editorGitMod",
8426
+ "editorTreeDock": "s56VVa_editorTreeDock",
8427
+ "explorerBody": "s56VVa_explorerBody",
8428
+ "uploadDropZoneText": "s56VVa_uploadDropZoneText",
8429
+ "largeFileRecords": "s56VVa_largeFileRecords",
8375
8430
  "largeFileBody": "s56VVa_largeFileBody",
8376
- "editorDownloadLink": "s56VVa_editorDownloadLink",
8377
- "editorSearchInput": "s56VVa_editorSearchInput",
8378
- "explorerDir": "s56VVa_explorerDir",
8379
- "editorPdfDragShield": "s56VVa_editorPdfDragShield",
8380
- "largeFileLines": "s56VVa_largeFileLines",
8381
- "sandboxStatusOn": "s56VVa_sandboxStatusOn",
8382
- "dividerRow": "s56VVa_dividerRow",
8383
- "tocFlash": "s56VVa_tocFlash",
8384
- "mermaidModalToolbar": "s56VVa_mermaidModalToolbar",
8385
- "dropUp": "s56VVa_dropUp",
8386
8431
  "explorerAppIcon": "s56VVa_explorerAppIcon",
8387
- "mermaidModalStage": "s56VVa_mermaidModalStage",
8388
- "largeFileRecord": "s56VVa_largeFileRecord",
8389
- "bottomResizeActive": "s56VVa_bottomResizeActive",
8390
- "explorerBody": "s56VVa_explorerBody",
8391
- "tocBar": "s56VVa_tocBar",
8392
- "tabUnreadDot": "s56VVa_tabUnreadDot",
8393
- "tocItemText": "s56VVa_tocItemText",
8394
- "tabActive": "s56VVa_tabActive",
8432
+ "gitDiffTabTitle": "s56VVa_gitDiffTabTitle",
8433
+ "gitError": "s56VVa_gitError",
8434
+ "paneTabHidden": "s56VVa_paneTabHidden",
8435
+ "editorModeButton": "s56VVa_editorModeButton",
8395
8436
  "explorerCopied": "s56VVa_explorerCopied",
8396
- "mermaidModalHint": "s56VVa_mermaidModalHint",
8397
- "editorHtmlBlock": "s56VVa_editorHtmlBlock",
8398
- "browserBlockedTitle": "s56VVa_browserBlockedTitle",
8399
- "iconButton": "s56VVa_iconButton",
8400
- "explorerDirChanged": "s56VVa_explorerDirChanged",
8401
- "mermaidWrap": "s56VVa_mermaidWrap",
8402
- "editorBlame": "s56VVa_editorBlame",
8403
- "bottomResize": "s56VVa_bottomResize",
8404
- "explorerRowSelected": "s56VVa_explorerRowSelected",
8405
- "uploadDropChatHint": "s56VVa_uploadDropChatHint",
8406
- "uploadDropArtCut": "s56VVa_uploadDropArtCut",
8407
- "uploadOverlay": "s56VVa_uploadOverlay",
8408
- "editorBanner": "s56VVa_editorBanner",
8409
- "dsh-toc-flash": "s56VVa_dsh-toc-flash",
8410
8437
  "editorPathInput": "s56VVa_editorPathInput",
8411
- "split": "s56VVa_split",
8412
- "explorerRenaming": "s56VVa_explorerRenaming",
8413
- "browserBar": "s56VVa_browserBar",
8414
- "explorerHidden": "s56VVa_explorerHidden",
8415
- "explorerActionErrorText": "s56VVa_explorerActionErrorText",
8416
- "explorerEmpty": "s56VVa_explorerEmpty",
8417
- "largeFileRecordExpanded": "s56VVa_largeFileRecordExpanded",
8418
- "largeFileRecordBody": "s56VVa_largeFileRecordBody",
8419
- "tabBarPlus": "s56VVa_tabBarPlus",
8420
- "mermaidModalButton": "s56VVa_mermaidModalButton",
8421
- "editorDocxZoomRange": "s56VVa_editorDocxZoomRange",
8422
- "dropCenter": "s56VVa_dropCenter",
8423
- "divider": "s56VVa_divider",
8424
- "paneEmptyCards": "s56VVa_paneEmptyCards",
8425
- "dirtyDot": "s56VVa_dirtyDot",
8426
- "uploadDropZone": "s56VVa_uploadDropZone",
8427
- "mermaidBody": "s56VVa_mermaidBody",
8428
- "editorGitBarAdd": "s56VVa_editorGitBarAdd",
8429
- "splitRow": "s56VVa_splitRow",
8430
- "gitError": "s56VVa_gitError",
8431
- "panel": "s56VVa_panel",
8438
+ "uploadOverlayCancel": "s56VVa_uploadOverlayCancel",
8439
+ "largeFileNoticeAction": "s56VVa_largeFileNoticeAction",
8440
+ "explorerGitName": "s56VVa_explorerGitName",
8441
+ "tocItemText": "s56VVa_tocItemText",
8442
+ "dropUp": "s56VVa_dropUp",
8443
+ "explorerRoot": "s56VVa_explorerRoot",
8432
8444
  "uploadDropZonePill": "s56VVa_uploadDropZonePill",
8433
- "browserMessage": "s56VVa_browserMessage",
8434
- "explorerSelectionText": "s56VVa_explorerSelectionText",
8435
- "largeFileLine": "s56VVa_largeFileLine",
8436
- "dividerCol": "s56VVa_dividerCol",
8437
- "editorBlameSummary": "s56VVa_editorBlameSummary",
8438
- "editorHtml": "s56VVa_editorHtml",
8439
- "tabBarRightActions": "s56VVa_tabBarRightActions",
8440
- "openWithPin": "s56VVa_openWithPin",
8441
- "explorerName": "s56VVa_explorerName",
8442
- "workbench": "s56VVa_workbench",
8445
+ "largeFileRecordInvalid": "s56VVa_largeFileRecordInvalid",
8446
+ "bottomResizeActive": "s56VVa_bottomResizeActive",
8447
+ "explorerSymlink": "s56VVa_explorerSymlink",
8448
+ "dsh-row-in": "s56VVa_dsh-row-in",
8443
8449
  "editorGitBarGutter": "s56VVa_editorGitBarGutter",
8450
+ "explorerSelectionActions": "s56VVa_explorerSelectionActions",
8451
+ "chipUnread": "s56VVa_chipUnread",
8452
+ "uploadDropChatHint": "s56VVa_uploadDropChatHint",
8453
+ "explorerHiddenPane": "s56VVa_explorerHiddenPane",
8454
+ "panel": "s56VVa_panel",
8455
+ "editorTreeResize": "s56VVa_editorTreeResize",
8444
8456
  "editorError": "s56VVa_editorError",
8445
- "editorSearchResult": "s56VVa_editorSearchResult",
8446
- "dropLeft": "s56VVa_dropLeft",
8447
- "browserBlockedActions": "s56VVa_browserBlockedActions",
8448
- "tocPanel": "s56VVa_tocPanel",
8449
- "largeFileNotice": "s56VVa_largeFileNotice",
8450
- "tabBar": "s56VVa_tabBar",
8451
- "dockFallback": "s56VVa_dockFallback",
8452
- "selectionPopup": "s56VVa_selectionPopup",
8453
- "explorerRoot": "s56VVa_explorerRoot",
8454
- "uploadDropHero": "s56VVa_uploadDropHero",
8455
- "mermaidModal": "s56VVa_mermaidModal",
8456
- "paneCard": "s56VVa_paneCard",
8457
- "tab": "s56VVa_tab",
8458
- "tabBoundaryError": "s56VVa_tabBoundaryError",
8459
- "openWithLabel": "s56VVa_openWithLabel",
8460
- "explorerRowRevealed": "s56VVa_explorerRowRevealed",
8461
- "paneTab": "s56VVa_paneTab",
8462
- "editorSearchResultDir": "s56VVa_editorSearchResultDir",
8463
- "browserBlocked": "s56VVa_browserBlocked",
8464
- "tabBarDrop": "s56VVa_tabBarDrop",
8465
- "gitDiffTabHeader": "s56VVa_gitDiffTabHeader",
8466
- "largeFileNoticeAction": "s56VVa_largeFileNoticeAction",
8467
- "editorMd": "s56VVa_editorMd",
8468
- "editorPdf": "s56VVa_editorPdf",
8469
- "editorSearchResultLabel": "s56VVa_editorSearchResultLabel",
8470
- "paneTabHidden": "s56VVa_paneTabHidden",
8457
+ "editorPdfDragShieldActive": "s56VVa_editorPdfDragShieldActive",
8458
+ "tocBar": "s56VVa_tocBar",
8459
+ "uploadOverlayTitle": "s56VVa_uploadOverlayTitle",
8460
+ "largeFileRecordNo": "s56VVa_largeFileRecordNo",
8461
+ "largeFileRecordTree": "s56VVa_largeFileRecordTree",
8471
8462
  "dropRight": "s56VVa_dropRight",
8463
+ "explorerBroken": "s56VVa_explorerBroken",
8464
+ "paneDrop": "s56VVa_paneDrop",
8465
+ "mermaidMarkdown": "s56VVa_mermaidMarkdown",
8466
+ "explorerRenaming": "s56VVa_explorerRenaming",
8467
+ "editorHtmlBlock": "s56VVa_editorHtmlBlock",
8468
+ "editorTreePanel": "s56VVa_editorTreePanel",
8469
+ "sandboxStatus": "s56VVa_sandboxStatus",
8470
+ "browserMessage": "s56VVa_browserMessage",
8471
+ "tocButton": "s56VVa_tocButton",
8472
+ "bottomClose": "s56VVa_bottomClose",
8473
+ "editorPdfToolbar": "s56VVa_editorPdfToolbar",
8474
+ "editorBannerAction": "s56VVa_editorBannerAction",
8475
+ "mermaidModalHint": "s56VVa_mermaidModalHint",
8476
+ "uploadDropHero": "s56VVa_uploadDropHero",
8477
+ "dirtyDot": "s56VVa_dirtyDot",
8478
+ "editorGitBar": "s56VVa_editorGitBar",
8472
8479
  "explorerRenameInput": "s56VVa_explorerRenameInput",
8473
- "editorStatusError": "s56VVa_editorStatusError",
8474
- "editorPptxButton": "s56VVa_editorPptxButton",
8475
- "explorerHeader": "s56VVa_explorerHeader",
8476
- "editorTreePanelFull": "s56VVa_editorTreePanelFull",
8477
- "uploadDropArtAccent": "s56VVa_uploadDropArtAccent",
8478
- "explorerRowDropTarget": "s56VVa_explorerRowDropTarget",
8479
- "uploadOverlayProgressFill": "s56VVa_uploadOverlayProgressFill",
8480
- "uploadOverlayStatus": "s56VVa_uploadOverlayStatus",
8481
- "editorTreeSearch": "s56VVa_editorTreeSearch",
8482
- "editorMain": "s56VVa_editorMain",
8483
- "explorerMuted": "s56VVa_explorerMuted",
8484
- "largeFilePageLabel": "s56VVa_largeFilePageLabel",
8485
- "tabBadge": "s56VVa_tabBadge",
8486
- "mermaidCode": "s56VVa_mermaidCode",
8487
- "toggleButton": "s56VVa_toggleButton",
8480
+ "editorSearchInput": "s56VVa_editorSearchInput",
8481
+ "explorerName": "s56VVa_explorerName",
8482
+ "explorerRef": "s56VVa_explorerRef",
8483
+ "iconButton": "s56VVa_iconButton",
8484
+ "mermaidBody": "s56VVa_mermaidBody",
8488
8485
  "gitDiffTab": "s56VVa_gitDiffTab",
8489
- "largeFileRecords": "s56VVa_largeFileRecords",
8490
- "terminalRetry": "s56VVa_terminalRetry",
8491
- "largeFileRecordInvalid": "s56VVa_largeFileRecordInvalid",
8492
- "largeFile": "s56VVa_largeFile",
8493
- "editorPdfToolbar": "s56VVa_editorPdfToolbar",
8494
- "uploadOverlayCard": "s56VVa_uploadOverlayCard",
8495
- "editorGitBarMod": "s56VVa_editorGitBarMod",
8486
+ "mermaidInfo": "s56VVa_mermaidInfo",
8487
+ "editorTreePanelFull": "s56VVa_editorTreePanelFull",
8488
+ "orphanedType": "s56VVa_orphanedType",
8489
+ "tabActive": "s56VVa_tabActive",
8490
+ "editorPdfFrameBlocked": "s56VVa_editorPdfFrameBlocked",
8491
+ "mermaidModalButton": "s56VVa_mermaidModalButton",
8492
+ "explorerActionError": "s56VVa_explorerActionError",
8493
+ "dividerCol": "s56VVa_dividerCol",
8496
8494
  "dividerActive": "s56VVa_dividerActive",
8497
- "browserBlockedDesc": "s56VVa_browserBlockedDesc",
8495
+ "explorerActionErrorText": "s56VVa_explorerActionErrorText",
8496
+ "explorerSelectionBar": "s56VVa_explorerSelectionBar",
8497
+ "bottomPanelHidden": "s56VVa_bottomPanelHidden",
8498
+ "gitDiffTabHeader": "s56VVa_gitDiffTabHeader",
8499
+ "explorerEmpty": "s56VVa_explorerEmpty",
8500
+ "largeFileLineText": "s56VVa_largeFileLineText",
8501
+ "editorGitBarDel": "s56VVa_editorGitBarDel",
8502
+ "tocItemLevel": "s56VVa_tocItemLevel",
8503
+ "editorStatus": "s56VVa_editorStatus",
8504
+ "largeFileNotice": "s56VVa_largeFileNotice",
8505
+ "tocFlash": "s56VVa_tocFlash",
8506
+ "pane": "s56VVa_pane",
8507
+ "largeFileRecordBody": "s56VVa_largeFileRecordBody",
8508
+ "splitCol": "s56VVa_splitCol",
8509
+ "largeFileDownload": "s56VVa_largeFileDownload",
8498
8510
  "browser": "s56VVa_browser",
8499
- "sandboxStatus": "s56VVa_sandboxStatus",
8500
- "editorTitle": "s56VVa_editorTitle",
8501
- "uploadDropMask": "s56VVa_uploadDropMask",
8502
- "editorGitMod": "s56VVa_editorGitMod",
8503
- "editorTreeDock": "s56VVa_editorTreeDock",
8504
- "sandboxAction": "s56VVa_sandboxAction",
8511
+ "tab": "s56VVa_tab",
8512
+ "sandboxDot": "s56VVa_sandboxDot",
8513
+ "tabBar": "s56VVa_tabBar",
8505
8514
  "uploadOverlayProgress": "s56VVa_uploadOverlayProgress",
8506
- "explorerRef": "s56VVa_explorerRef",
8507
- "bottomClose": "s56VVa_bottomClose",
8515
+ "editorBlameSummary": "s56VVa_editorBlameSummary",
8516
+ "largeFilePager": "s56VVa_largeFilePager",
8517
+ "editorPdf": "s56VVa_editorPdf",
8518
+ "bottomResize": "s56VVa_bottomResize",
8519
+ "uploadDropMask": "s56VVa_uploadDropMask",
8520
+ "editorSearchResultLabel": "s56VVa_editorSearchResultLabel",
8521
+ "editorGitBarSpacer": "s56VVa_editorGitBarSpacer",
8522
+ "tabTitle": "s56VVa_tabTitle",
8508
8523
  "editorBinary": "s56VVa_editorBinary",
8509
- "dropOverlay": "s56VVa_dropOverlay",
8510
- "sandboxDot": "s56VVa_sandboxDot",
8511
- "editorBannerAction": "s56VVa_editorBannerAction",
8512
- "browserBlockedButton": "s56VVa_browserBlockedButton",
8513
- "editorModeActive": "s56VVa_editorModeActive"
8524
+ "largeFileLines": "s56VVa_largeFileLines",
8525
+ "dsh-toc-flash": "s56VVa_dsh-toc-flash",
8526
+ "editorBinaryNotice": "s56VVa_editorBinaryNotice",
8527
+ "editorHeader": "s56VVa_editorHeader",
8528
+ "editorPdfDragShield": "s56VVa_editorPdfDragShield"
8529
+ };
8530
+ //#endregion
8531
+ //#region ../../../DSH-better-sidebar/src/client/reveal-bus.ts
8532
+ const listeners = /* @__PURE__ */ new Set();
8533
+ const revealBus = {
8534
+ emit(path) {
8535
+ for (const listener of listeners) listener(path);
8536
+ },
8537
+ subscribe(listener) {
8538
+ listeners.add(listener);
8539
+ return () => {
8540
+ listeners.delete(listener);
8541
+ };
8542
+ }
8514
8543
  };
8515
8544
  //#endregion
8516
8545
  //#region ../../../DSH-better-sidebar/src/client/FileTree.tsx
@@ -9372,20 +9401,32 @@ window.__ModuleLoader__.load({
9372
9401
  visible: visible !== false,
9373
9402
  onStale: retryDirs
9374
9403
  });
9404
+ (0, react.useEffect)(() => {
9405
+ if (revealed.length === 0) return;
9406
+ setSelected(new Set(revealed));
9407
+ }, [revealed]);
9375
9408
  (0, react.useEffect)(() => {
9376
9409
  if (revealed.length === 0 || propsRef.current.hidden === true) return;
9377
9410
  const body = bodyRef.current;
9378
9411
  if (body === null) return;
9379
- const row = body.querySelector("[data-dsh-revealed]");
9380
- if (row === null) return;
9381
- const bodyTop = body.getBoundingClientRect().top;
9382
- const rowRect = row.getBoundingClientRect();
9383
- const target = body.scrollTop + (rowRect.top + rowRect.height / 2) - (bodyTop + body.clientHeight / 2);
9384
- const max = Math.max(body.scrollHeight - body.clientHeight, 0);
9385
- body.scrollTo({
9386
- top: Math.min(Math.max(target, 0), max),
9387
- behavior: "smooth"
9388
- });
9412
+ let frame = 0;
9413
+ const run = () => {
9414
+ const row = body.querySelector("[data-dsh-revealed]");
9415
+ if (row === null) {
9416
+ frame = window.requestAnimationFrame(run);
9417
+ return;
9418
+ }
9419
+ const bodyTop = body.getBoundingClientRect().top;
9420
+ const rowRect = row.getBoundingClientRect();
9421
+ const target = body.scrollTop + (rowRect.top + rowRect.height / 2) - (bodyTop + body.clientHeight / 2);
9422
+ const max = Math.max(body.scrollHeight - body.clientHeight, 0);
9423
+ body.scrollTo({
9424
+ top: Math.min(Math.max(target, 0), max),
9425
+ behavior: "auto"
9426
+ });
9427
+ };
9428
+ run();
9429
+ return () => window.cancelAnimationFrame(frame);
9389
9430
  }, [revealed, data]);
9390
9431
  /** Copy `text`; on success flip the row's copied label for a moment. */
9391
9432
  const copyPath = (0, react.useCallback)((text, path) => {
@@ -9806,14 +9847,23 @@ window.__ModuleLoader__.load({
9806
9847
  });
9807
9848
  }, [reportOpenFailure]);
9808
9849
  const revealPath = (0, react.useCallback)((path) => {
9809
- const handle = propsRef.current.openInApp;
9810
- if (handle === void 0) return;
9811
- handle.reveal(path).then((ok) => {
9812
- if (!ok) reportOpenFailure(path);
9813
- }).catch(() => {
9814
- reportOpenFailure(path);
9850
+ setSelected(/* @__PURE__ */ new Set([path]));
9851
+ window.requestAnimationFrame(() => {
9852
+ const body = bodyRef.current;
9853
+ if (body === null) return;
9854
+ const row = body.querySelector("[data-dsh-selected]");
9855
+ if (row === null) return;
9856
+ const bodyTop = body.getBoundingClientRect().top;
9857
+ const rowRect = row.getBoundingClientRect();
9858
+ const target = body.scrollTop + (rowRect.top + rowRect.height / 2) - (bodyTop + body.clientHeight / 2);
9859
+ const max = Math.max(body.scrollHeight - body.clientHeight, 0);
9860
+ body.scrollTo({
9861
+ top: Math.min(Math.max(target, 0), max),
9862
+ behavior: "auto"
9863
+ });
9815
9864
  });
9816
- }, [reportOpenFailure]);
9865
+ }, []);
9866
+ (0, react.useEffect)(() => revealBus.subscribe(revealPath), [revealPath]);
9817
9867
  /** The menu label of one plugin open target: a locale key for the built-ins,
9818
9868
  * the user's own name for custom editors, plus the SSH hint in remote mode. */
9819
9869
  const openWithLabelOf = (target) => {
@@ -10856,13 +10906,13 @@ window.__ModuleLoader__.load({
10856
10906
  ];
10857
10907
  //#endregion
10858
10908
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeFileTree.module.css.mjs
10859
- const css$7 = "._2iOZpG_treeFrame{min-width:0;display:block}._2iOZpG_treeFrame [data-kb-selected=true]{background:var(--dsw-alias-interactive-bg-active)}._2iOZpG_treeFrame [data-kb-mtime]{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;margin-left:auto;padding-left:8px}";
10860
- const tagId$7 = "@sparkelf/dsh-knowledge-base/KnowledgeFileTree.module.css";
10861
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
10909
+ const css$11 = "._2iOZpG_treeFrame{min-width:0;display:block}._2iOZpG_treeFrame [data-kb-selected=true]{background:var(--dsw-alias-interactive-bg-active)}._2iOZpG_treeFrame [data-kb-mtime]{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;margin-left:auto;padding-left:8px}";
10910
+ const tagId$11 = "@sparkelf/dsh-knowledge-base/KnowledgeFileTree.module.css";
10911
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$11) + "]") === null) {
10862
10912
  const tag = document.createElement("style");
10863
10913
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
10864
- tag.dataset.pluginCss = tagId$7;
10865
- tag.textContent = css$7;
10914
+ tag.dataset.pluginCss = tagId$11;
10915
+ tag.textContent = css$11;
10866
10916
  document.head.appendChild(tag);
10867
10917
  }
10868
10918
  var KnowledgeFileTree_module_css_default = { "treeFrame": "_2iOZpG_treeFrame" };
@@ -11154,6 +11204,19 @@ window.__ModuleLoader__.load({
11154
11204
  collapseRail: "Collapse the sidebar",
11155
11205
  expandRail: "Expand the sidebar",
11156
11206
  sectionKnowledge: "Knowledge base",
11207
+ scopeKnowledge: "Knowledge base",
11208
+ scopeGraph: "Graph",
11209
+ graphLoading: "Reading the graph tree…",
11210
+ graphFailed: "Could not read the graph tree.",
11211
+ graphRetry: "Retry",
11212
+ graphEmptyTitle: "No readable graph yet",
11213
+ graphEmptyBody: "Create a topic under a scope’s graph folder and the canvas will appear here.",
11214
+ graphNoAccess: "Some graphs are not visible to you.",
11215
+ graphUnitGraphs: "graphs",
11216
+ graphUnitLines: "topics",
11217
+ graphUnitRelations: "relations",
11218
+ graphUnitDocuments: "documents",
11219
+ graphSelectHint: "Pick a graph in the tree, then pick a topic to open its card.",
11157
11220
  sectionPinned: "Pinned",
11158
11221
  actionFilter: "Filter this tree",
11159
11222
  actionNew: "New knowledge document",
@@ -11323,6 +11386,8 @@ window.__ModuleLoader__.load({
11323
11386
  previewTruncated: "This file is large; only the start is shown.",
11324
11387
  modifiedAt: "Modified",
11325
11388
  openedInSidebar: "Opened in the file window on the right.",
11389
+ previewClose: "Close preview",
11390
+ previewLoading: "Loading document…",
11326
11391
  copyCode: "Copy",
11327
11392
  copiedCode: "Copied",
11328
11393
  retrieval: "Retrieval",
@@ -11775,6 +11840,19 @@ window.__ModuleLoader__.load({
11775
11840
  collapseRail: "收起侧边栏",
11776
11841
  expandRail: "展开侧边栏",
11777
11842
  sectionKnowledge: "知识库",
11843
+ scopeKnowledge: "知识库",
11844
+ scopeGraph: "图谱",
11845
+ graphLoading: "正在读取图谱…",
11846
+ graphFailed: "图谱读取失败。",
11847
+ graphRetry: "重试",
11848
+ graphEmptyTitle: "还没有可读的图谱",
11849
+ graphEmptyBody: "在作用域的「知识图谱」文件夹里建好主题后,画布会出现在这里。",
11850
+ graphNoAccess: "部分图谱因权限不可见。",
11851
+ graphUnitGraphs: "个图谱",
11852
+ graphUnitLines: "条线",
11853
+ graphUnitRelations: "篇关系",
11854
+ graphUnitDocuments: "篇文档",
11855
+ graphSelectHint: "在左侧选择图谱,再点主题查看卡片。",
11778
11856
  sectionPinned: "置顶",
11779
11857
  actionFilter: "筛选当前目录",
11780
11858
  actionNew: "新建知识文档",
@@ -11944,6 +12022,8 @@ window.__ModuleLoader__.load({
11944
12022
  previewTruncated: "文件较大,仅显示前面部分。",
11945
12023
  modifiedAt: "修改于",
11946
12024
  openedInSidebar: "已在右侧文件窗口中打开。",
12025
+ previewClose: "关闭预览",
12026
+ previewLoading: "正在读取文档…",
11947
12027
  copyCode: "复制",
11948
12028
  copiedCode: "已复制",
11949
12029
  retrieval: "检索方式",
@@ -12802,7 +12882,7 @@ window.__ModuleLoader__.load({
12802
12882
  ])
12803
12883
  });
12804
12884
  /** Every exclusion pattern at once, in the one array identity the explorer keys on. */
12805
- const exclude = (0, react.useMemo)(() => METADATA_NAMES.map((name) => `**/${name}`), []);
12885
+ const exclude = (0, react.useMemo)(() => [...METADATA_NAMES.map((name) => `**/${name}`), "**/知识图谱"], []);
12806
12886
  /**
12807
12887
  * Pass the explorer's own rename through to the caller.
12808
12888
  *
@@ -13826,29 +13906,31 @@ window.__ModuleLoader__.load({
13826
13906
  }
13827
13907
  //#endregion
13828
13908
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeShareDialog.module.css.mjs
13829
- const css$6 = ".nw--rq_body{flex-direction:column;gap:6px;min-width:0;display:flex}.nw--rq_intro{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-s-14);margin:0}.nw--rq_field{flex-direction:column;gap:4px;min-width:0;display:flex}.nw--rq_fieldLabel{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.nw--rq_list{border:.5px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);flex-direction:column;max-height:min(240px,40vh);margin:6px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.nw--rq_option{width:100%;color:inherit;text-align:start;cursor:pointer;background:0 0;border:none;align-items:baseline;gap:6px;padding:8px 10px;display:flex}.nw--rq_option:hover,.nw--rq_option[data-active=true]{background:var(--dsw-alias-interactive-bg-hover)}.nw--rq_option[aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover-accent)}.nw--rq_optionLabel{color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-14);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nw--rq_optionDetail{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nw--rq_state{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);padding:8px 10px}.nw--rq_chosen{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.nw--rq_chosenLabel{color:var(--dsw-alias-label-caption);font:var(--dsw-font-xxs-12)}.nw--rq_notice{color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxs-12);margin:0}.nw--rq_hint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);margin:0}";
13830
- const tagId$6 = "@sparkelf/dsh-knowledge-base/KnowledgeShareDialog.module.css";
13831
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
13909
+ const css$10 = ".nw--rq_body{flex-direction:column;gap:6px;min-width:0;display:flex}.nw--rq_intro{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-s-14);margin:0}.nw--rq_field{flex-direction:column;gap:4px;min-width:0;display:flex}.nw--rq_fieldLabel{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12)}.nw--rq_list{border:.5px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);flex-direction:column;max-height:min(240px,40vh);margin:6px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.nw--rq_option{width:100%;color:inherit;text-align:start;cursor:pointer;background:0 0;border:none;align-items:baseline;gap:6px;padding:8px 10px;display:flex}.nw--rq_option:hover,.nw--rq_option[data-active=true]{background:var(--dsw-alias-interactive-bg-hover)}.nw--rq_option[aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover-accent)}.nw--rq_optionLabel{color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-14);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nw--rq_optionDetail{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nw--rq_state{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);padding:8px 10px}.nw--rq_chosen{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.nw--rq_chosenLabel{color:var(--dsw-alias-label-caption);font:var(--dsw-font-xxs-12)}.nw--rq_notice{color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxs-12);margin:0}.nw--rq_hint{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);margin:0}.nw--rq_dialog{width:min(520px,100%);min-height:min(680px,80vh);max-height:min(78vh,720px)}.nw--rq_content{flex:auto;min-height:0}.nw--rq_content>div:last-child{flex-direction:column;flex:auto;min-height:0;display:flex}.nw--rq_body{flex:auto;min-height:0}.nw--rq_list{overscroll-behavior:contain;flex:auto;min-height:180px;max-height:none;overflow-y:auto}";
13910
+ const tagId$10 = "@sparkelf/dsh-knowledge-base/KnowledgeShareDialog.module.css";
13911
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) {
13832
13912
  const tag = document.createElement("style");
13833
13913
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
13834
- tag.dataset.pluginCss = tagId$6;
13835
- tag.textContent = css$6;
13914
+ tag.dataset.pluginCss = tagId$10;
13915
+ tag.textContent = css$10;
13836
13916
  document.head.appendChild(tag);
13837
13917
  }
13838
13918
  var KnowledgeShareDialog_module_css_default = {
13839
- "field": "nw--rq_field",
13840
- "intro": "nw--rq_intro",
13919
+ "option": "nw--rq_option",
13920
+ "state": "nw--rq_state",
13841
13921
  "list": "nw--rq_list",
13842
- "body": "nw--rq_body",
13843
13922
  "fieldLabel": "nw--rq_fieldLabel",
13844
- "optionDetail": "nw--rq_optionDetail",
13845
- "state": "nw--rq_state",
13846
- "chosenLabel": "nw--rq_chosenLabel",
13923
+ "body": "nw--rq_body",
13924
+ "dialog": "nw--rq_dialog",
13847
13925
  "chosen": "nw--rq_chosen",
13848
13926
  "notice": "nw--rq_notice",
13849
- "option": "nw--rq_option",
13927
+ "content": "nw--rq_content",
13928
+ "optionDetail": "nw--rq_optionDetail",
13929
+ "chosenLabel": "nw--rq_chosenLabel",
13930
+ "hint": "nw--rq_hint",
13931
+ "intro": "nw--rq_intro",
13850
13932
  "optionLabel": "nw--rq_optionLabel",
13851
- "hint": "nw--rq_hint"
13933
+ "field": "nw--rq_field"
13852
13934
  };
13853
13935
  //#endregion
13854
13936
  //#region src/client/KnowledgeShareDialog.tsx
@@ -14066,6 +14148,8 @@ window.__ModuleLoader__.load({
14066
14148
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
14067
14149
  open: true,
14068
14150
  title: copy.title,
14151
+ className: KnowledgeShareDialog_module_css_default.dialog,
14152
+ contentClassName: KnowledgeShareDialog_module_css_default.content,
14069
14153
  description: relPath === null ? void 0 : relPath.slice(relPath.lastIndexOf("/") + 1),
14070
14154
  closeLabel: copy.cancel,
14071
14155
  onClose,
@@ -14084,6 +14168,7 @@ window.__ModuleLoader__.load({
14084
14168
  })] }),
14085
14169
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
14086
14170
  className: KnowledgeShareDialog_module_css_default.body,
14171
+ "data-testid": "share-body",
14087
14172
  children: [
14088
14173
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
14089
14174
  className: KnowledgeShareDialog_module_css_default.field,
@@ -14167,6 +14252,7 @@ window.__ModuleLoader__.load({
14167
14252
  ref: listRef,
14168
14253
  role: "listbox",
14169
14254
  "aria-label": copy.search,
14255
+ "data-testid": "share-list",
14170
14256
  children: [
14171
14257
  loading && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
14172
14258
  className: KnowledgeShareDialog_module_css_default.state,
@@ -16269,24 +16355,24 @@ window.__ModuleLoader__.load({
16269
16355
  }
16270
16356
  //#endregion
16271
16357
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeAudit.module.css.mjs
16272
- const css$5 = "._0xqcPG_audit{flex-direction:column;gap:12px;display:flex}._0xqcPG_tabs{align-self:flex-start}._0xqcPG_pathCell{font:var(--dsw-font-xxxs-11) var(--ds-font-family-code);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}._0xqcPG_pager{justify-content:flex-start;align-items:center;gap:8px;margin-top:8px;display:flex}._0xqcPG_pagerTotal,._0xqcPG_pagerPosition{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);font-variant-numeric:tabular-nums;white-space:nowrap}._0xqcPG_pagerPosition{text-align:center;min-width:4em}._0xqcPG_pagerSize{align-items:center;gap:6px;margin-left:auto;display:flex}._0xqcPG_pagerSizeLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);white-space:nowrap}";
16273
- const tagId$5 = "@sparkelf/dsh-knowledge-base/KnowledgeAudit.module.css";
16274
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
16358
+ const css$9 = "._0xqcPG_audit{flex-direction:column;gap:12px;display:flex}._0xqcPG_tabs{align-self:flex-start}._0xqcPG_pathCell{font:var(--dsw-font-xxxs-11) var(--ds-font-family-code);color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere}._0xqcPG_pager{justify-content:flex-start;align-items:center;gap:8px;margin-top:8px;display:flex}._0xqcPG_pagerTotal,._0xqcPG_pagerPosition{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);font-variant-numeric:tabular-nums;white-space:nowrap}._0xqcPG_pagerPosition{text-align:center;min-width:4em}._0xqcPG_pagerSize{align-items:center;gap:6px;margin-left:auto;display:flex}._0xqcPG_pagerSizeLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);white-space:nowrap}";
16359
+ const tagId$9 = "@sparkelf/dsh-knowledge-base/KnowledgeAudit.module.css";
16360
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$9) + "]") === null) {
16275
16361
  const tag = document.createElement("style");
16276
16362
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
16277
- tag.dataset.pluginCss = tagId$5;
16278
- tag.textContent = css$5;
16363
+ tag.dataset.pluginCss = tagId$9;
16364
+ tag.textContent = css$9;
16279
16365
  document.head.appendChild(tag);
16280
16366
  }
16281
16367
  var KnowledgeAudit_module_css_default = {
16282
- "audit": "_0xqcPG_audit",
16368
+ "pagerTotal": "_0xqcPG_pagerTotal",
16283
16369
  "pathCell": "_0xqcPG_pathCell",
16284
16370
  "pager": "_0xqcPG_pager",
16285
- "pagerTotal": "_0xqcPG_pagerTotal",
16286
16371
  "tabs": "_0xqcPG_tabs",
16372
+ "audit": "_0xqcPG_audit",
16287
16373
  "pagerPosition": "_0xqcPG_pagerPosition",
16288
- "pagerSizeLabel": "_0xqcPG_pagerSizeLabel",
16289
- "pagerSize": "_0xqcPG_pagerSize"
16374
+ "pagerSize": "_0xqcPG_pagerSize",
16375
+ "pagerSizeLabel": "_0xqcPG_pagerSizeLabel"
16290
16376
  };
16291
16377
  //#endregion
16292
16378
  //#region src/client/KnowledgeAudit.tsx
@@ -17027,41 +17113,41 @@ window.__ModuleLoader__.load({
17027
17113
  }
17028
17114
  //#endregion
17029
17115
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeListing.module.css.mjs
17030
- const css$4 = "._95AMVa_entries,._95AMVa_entryChildren{margin:0;padding:0;list-style:none}._95AMVa_entry{box-sizing:border-box;width:100%;max-width:100%;height:28px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;white-space:nowrap;animation:_95AMVa_kb-row-in .15s var(--ds-ease-in-out);background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:0 8px;display:flex;position:relative}._95AMVa_entry:hover{background:var(--dsw-alias-interactive-bg-hover)}._95AMVa_entry:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}._95AMVa_entryDir{font:var(--dsw-font-xxs-strong-12)}._95AMVa_entryName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._95AMVa_entryGlyph{flex:none;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}._95AMVa_entryGlyph>svg{flex:none;width:14px;height:14px}._95AMVa_entryTime{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;margin-left:auto;padding-left:8px}._95AMVa_entry:hover ._95AMVa_entryTime,._95AMVa_entry:focus-within ._95AMVa_entryTime{margin-left:0}._95AMVa_entryFavorite{color:var(--dsw-static-amber-500);font:var(--dsw-font-xxs-12);flex:none;margin-left:auto;padding-left:8px;line-height:1}._95AMVa_entryFavorite+._95AMVa_entryTime{margin-left:0;padding-left:4px}._95AMVa_entry:hover ._95AMVa_entryFavorite,._95AMVa_entry:focus-within ._95AMVa_entryFavorite{margin-left:0}._95AMVa_entryRef{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:20px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;align-items:center;margin-left:auto;padding:0 8px;display:none}._95AMVa_entryRef:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._95AMVa_entry:hover ._95AMVa_entryRef,._95AMVa_entry:focus-within ._95AMVa_entryRef{display:inline-flex}._95AMVa_entryPin{width:20px;height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:none}._95AMVa_entryPin:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._95AMVa_entry:hover ._95AMVa_entryPin,._95AMVa_entry:focus-within ._95AMVa_entryPin,._95AMVa_entryPin[data-pinned=true]{display:inline-flex}._95AMVa_entryPin[data-pinned=true]{color:var(--dsw-alias-state-business-primary)}._95AMVa_cards{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}._95AMVa_cardItem{min-width:0}._95AMVa_card{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);width:100%;min-height:96px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;display:flex}._95AMVa_card:hover{background:var(--dsw-alias-interactive-bg-hover)}._95AMVa_card:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}._95AMVa_cardDir{font:var(--dsw-font-xxs-strong-12)}._95AMVa_cardGlyph{color:var(--dsw-alias-label-secondary);align-items:center;display:inline-flex}._95AMVa_cardName{-webkit-line-clamp:2;word-break:break-all;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}._95AMVa_cardMeta{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);overflow:hidden}._95AMVa_cardTime{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;margin-top:auto}._95AMVa_entry[data-drop-target=true],._95AMVa_card[data-drop-target=true]{background:var(--dsw-alias-interactive-bg-hover-accent);outline:1px dashed var(--dsw-alias-state-business-primary);outline-offset:-1px}._95AMVa_entryCheck{width:14px;height:14px;accent-color:var(--dsw-alias-state-business-primary);cursor:pointer;flex:none;margin:0}._95AMVa_pinDropZone{box-sizing:border-box;background:var(--dsw-alias-interactive-bg-hover-accent);outline:1px dashed var(--dsw-alias-state-business-primary);outline-offset:-1px;width:100%;min-height:28px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12);border-radius:4px;justify-content:center;align-items:center;margin-bottom:4px;padding:2px 8px;display:flex}._95AMVa_emptyAction{margin-top:16px}@keyframes _95AMVa_kb-row-in{0%{opacity:0}}._95AMVa_empty{text-align:center;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-s-14);flex-direction:column;align-items:center;padding:48px 20px;display:flex}._95AMVa_emptyGlyph{color:var(--dsw-alias-label-caption);margin-bottom:12px}._95AMVa_emptyTitle{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-s-14);margin:0;line-height:1.6}";
17031
- const tagId$4 = "@sparkelf/dsh-knowledge-base/KnowledgeListing.module.css";
17032
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
17116
+ const css$8 = "._95AMVa_entries,._95AMVa_entryChildren{margin:0;padding:0;list-style:none}._95AMVa_entry{box-sizing:border-box;width:100%;max-width:100%;height:28px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;white-space:nowrap;animation:_95AMVa_kb-row-in .15s var(--ds-ease-in-out);background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:0 8px;display:flex;position:relative}._95AMVa_entry:hover{background:var(--dsw-alias-interactive-bg-hover)}._95AMVa_entry:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}._95AMVa_entryDir{font:var(--dsw-font-xxs-strong-12)}._95AMVa_entryName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._95AMVa_entryGlyph{flex:none;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}._95AMVa_entryGlyph>svg{flex:none;width:14px;height:14px}._95AMVa_entryTime{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;margin-left:auto;padding-left:8px}._95AMVa_entry:hover ._95AMVa_entryTime,._95AMVa_entry:focus-within ._95AMVa_entryTime{margin-left:0}._95AMVa_entryFavorite{color:var(--dsw-static-amber-500);font:var(--dsw-font-xxs-12);flex:none;margin-left:auto;padding-left:8px;line-height:1}._95AMVa_entryFavorite+._95AMVa_entryTime{margin-left:0;padding-left:4px}._95AMVa_entry:hover ._95AMVa_entryFavorite,._95AMVa_entry:focus-within ._95AMVa_entryFavorite{margin-left:0}._95AMVa_entryRef{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:20px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;align-items:center;margin-left:auto;padding:0 8px;display:none}._95AMVa_entryRef:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._95AMVa_entry:hover ._95AMVa_entryRef,._95AMVa_entry:focus-within ._95AMVa_entryRef{display:inline-flex}._95AMVa_entryPin{width:20px;height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:none}._95AMVa_entryPin:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._95AMVa_entry:hover ._95AMVa_entryPin,._95AMVa_entry:focus-within ._95AMVa_entryPin,._95AMVa_entryPin[data-pinned=true]{display:inline-flex}._95AMVa_entryPin[data-pinned=true]{color:var(--dsw-alias-state-business-primary)}._95AMVa_cards{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}._95AMVa_cardItem{min-width:0}._95AMVa_card{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);width:100%;min-height:96px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;display:flex}._95AMVa_card:hover{background:var(--dsw-alias-interactive-bg-hover)}._95AMVa_card:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}._95AMVa_cardDir{font:var(--dsw-font-xxs-strong-12)}._95AMVa_cardGlyph{color:var(--dsw-alias-label-secondary);align-items:center;display:inline-flex}._95AMVa_cardName{-webkit-line-clamp:2;word-break:break-all;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}._95AMVa_cardMeta{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);overflow:hidden}._95AMVa_cardTime{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;margin-top:auto}._95AMVa_entry[data-drop-target=true],._95AMVa_card[data-drop-target=true]{background:var(--dsw-alias-interactive-bg-hover-accent);outline:1px dashed var(--dsw-alias-state-business-primary);outline-offset:-1px}._95AMVa_entryCheck{width:14px;height:14px;accent-color:var(--dsw-alias-state-business-primary);cursor:pointer;flex:none;margin:0}._95AMVa_pinDropZone{box-sizing:border-box;background:var(--dsw-alias-interactive-bg-hover-accent);outline:1px dashed var(--dsw-alias-state-business-primary);outline-offset:-1px;width:100%;min-height:28px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12);border-radius:4px;justify-content:center;align-items:center;margin-bottom:4px;padding:2px 8px;display:flex}._95AMVa_emptyAction{margin-top:16px}@keyframes _95AMVa_kb-row-in{0%{opacity:0}}._95AMVa_empty{text-align:center;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-s-14);flex-direction:column;align-items:center;padding:48px 20px;display:flex}._95AMVa_emptyGlyph{color:var(--dsw-alias-label-caption);margin-bottom:12px}._95AMVa_emptyTitle{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-s-14);margin:0;line-height:1.6}";
17117
+ const tagId$8 = "@sparkelf/dsh-knowledge-base/KnowledgeListing.module.css";
17118
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$8) + "]") === null) {
17033
17119
  const tag = document.createElement("style");
17034
17120
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
17035
- tag.dataset.pluginCss = tagId$4;
17036
- tag.textContent = css$4;
17121
+ tag.dataset.pluginCss = tagId$8;
17122
+ tag.textContent = css$8;
17037
17123
  document.head.appendChild(tag);
17038
17124
  }
17039
17125
  var KnowledgeListing_module_css_default = {
17040
- "entryRef": "_95AMVa_entryRef",
17126
+ "cardItem": "_95AMVa_cardItem",
17127
+ "cardTime": "_95AMVa_cardTime",
17128
+ "entryName": "_95AMVa_entryName",
17129
+ "entryCheck": "_95AMVa_entryCheck",
17041
17130
  "pinDropZone": "_95AMVa_pinDropZone",
17131
+ "emptyTitle": "_95AMVa_emptyTitle",
17132
+ "entryDir": "_95AMVa_entryDir",
17133
+ "entryFavorite": "_95AMVa_entryFavorite",
17134
+ "emptyAction": "_95AMVa_emptyAction",
17135
+ "cards": "_95AMVa_cards",
17042
17136
  "emptyGlyph": "_95AMVa_emptyGlyph",
17043
- "cardDir": "_95AMVa_cardDir",
17137
+ "cardMeta": "_95AMVa_cardMeta",
17138
+ "cardGlyph": "_95AMVa_cardGlyph",
17139
+ "entries": "_95AMVa_entries",
17140
+ "cardName": "_95AMVa_cardName",
17044
17141
  "empty": "_95AMVa_empty",
17045
- "entryChildren": "_95AMVa_entryChildren",
17046
17142
  "kb-row-in": "_95AMVa_kb-row-in",
17047
- "entryGlyph": "_95AMVa_entryGlyph",
17048
- "cardName": "_95AMVa_cardName",
17049
17143
  "card": "_95AMVa_card",
17050
- "entries": "_95AMVa_entries",
17051
- "entryDir": "_95AMVa_entryDir",
17052
- "cardMeta": "_95AMVa_cardMeta",
17053
- "cardTime": "_95AMVa_cardTime",
17054
- "emptyTitle": "_95AMVa_emptyTitle",
17055
- "cards": "_95AMVa_cards",
17056
- "entryTime": "_95AMVa_entryTime",
17144
+ "entryGlyph": "_95AMVa_entryGlyph",
17057
17145
  "entry": "_95AMVa_entry",
17058
- "entryFavorite": "_95AMVa_entryFavorite",
17146
+ "entryTime": "_95AMVa_entryTime",
17147
+ "entryChildren": "_95AMVa_entryChildren",
17148
+ "entryRef": "_95AMVa_entryRef",
17059
17149
  "entryPin": "_95AMVa_entryPin",
17060
- "cardItem": "_95AMVa_cardItem",
17061
- "entryName": "_95AMVa_entryName",
17062
- "cardGlyph": "_95AMVa_cardGlyph",
17063
- "entryCheck": "_95AMVa_entryCheck",
17064
- "emptyAction": "_95AMVa_emptyAction"
17150
+ "cardDir": "_95AMVa_cardDir"
17065
17151
  };
17066
17152
  //#endregion
17067
17153
  //#region src/client/listingFilter.ts
@@ -17692,43 +17778,43 @@ window.__ModuleLoader__.load({
17692
17778
  }
17693
17779
  //#endregion
17694
17780
  //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeProgressPopover.module.css.mjs
17695
- const css$3 = ".x_PPca_bell{border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.x_PPca_bell:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.x_PPca_bell:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-2px}.x_PPca_badge{background:var(--dsw-alias-state-error-primary);min-width:14px;height:14px;color:var(--dsw-alias-bg-layer-1);font:var(--dsw-font-xxxs-strong-11);font-variant-numeric:tabular-nums;text-align:center;box-shadow:0 0 0 1.5px var(--dsw-alias-bg-layer-1);pointer-events:none;border-radius:999px;padding:0 3px;line-height:14px;position:absolute;bottom:-3px;right:-3px}.x_PPca_dialog{width:640px;max-width:calc(100vw - 48px)}.x_PPca_dialogContent{overscroll-behavior:contain;flex-direction:column;gap:14px;max-height:min(60vh,520px);display:flex;overflow-y:auto}.x_PPca_summary{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;gap:16px;padding-bottom:10px;display:flex}.x_PPca_summaryItem{align-items:baseline;gap:6px;display:flex}.x_PPca_summaryLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11)}.x_PPca_summaryValue{color:var(--dsw-alias-label-primary);font:var(--dsw-font-base-strong-16);font-variant-numeric:tabular-nums}.x_PPca_group{flex-direction:column;gap:6px;display:flex}.x_PPca_list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.x_PPca_card{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);border:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:2px;padding:8px 11px;display:flex}.x_PPca_cardRow{align-items:center;gap:7px;min-width:0;display:flex}.x_PPca_cardName{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);flex:auto;overflow:hidden}.x_PPca_cardPath{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);padding-left:23px;overflow:hidden}.x_PPca_cardActions{justify-content:flex-end;padding-top:2px;display:flex}.x_PPca_badgeDone,.x_PPca_badgeFailed,.x_PPca_badgeBusy{font:var(--dsw-font-xxxs-strong-11);white-space:nowrap;border-radius:999px;flex:none;padding:1px 7px}.x_PPca_badgeDone{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-success-primary)}.x_PPca_badgeFailed{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.x_PPca_badgeBusy{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}.x_PPca_progressRow{align-items:center;gap:8px;padding-left:23px;display:flex}.x_PPca_progressTrack{background:var(--dsw-alias-border-l2);border-radius:999px;flex:auto;height:4px;position:relative;overflow:hidden}.x_PPca_progressFill{border-radius:inherit;background:var(--dsw-alias-brand-primary);height:100%;transition:width .12s linear;display:block}.x_PPca_progressFillIndeterminate{border-radius:inherit;background:var(--dsw-alias-brand-primary);width:40%;animation:1.1s ease-in-out infinite x_PPca_cardProgress;position:absolute;inset-block:0}@keyframes x_PPca_cardProgress{0%{left:-40%}to{left:100%}}.x_PPca_progressPercent{text-align:right;min-width:34px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;flex:none}@media (prefers-reduced-motion:reduce){.x_PPca_progressFillIndeterminate{animation:none;left:30%}}.x_PPca_cardReason{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);overflow-wrap:anywhere}.x_PPca_cardRawReason{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);overflow-wrap:anywhere}.x_PPca_empty{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);margin:0;padding:12px 0}";
17696
- const tagId$3 = "@sparkelf/dsh-knowledge-base/KnowledgeProgressPopover.module.css";
17697
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
17781
+ const css$7 = ".x_PPca_bell{border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.x_PPca_bell:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.x_PPca_bell:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:-2px}.x_PPca_badge{background:var(--dsw-alias-state-error-primary);min-width:14px;height:14px;color:var(--dsw-alias-bg-layer-1);font:var(--dsw-font-xxxs-strong-11);font-variant-numeric:tabular-nums;text-align:center;box-shadow:0 0 0 1.5px var(--dsw-alias-bg-layer-1);pointer-events:none;border-radius:999px;padding:0 3px;line-height:14px;position:absolute;bottom:-3px;right:-3px}.x_PPca_dialog{width:640px;max-width:calc(100vw - 48px)}.x_PPca_dialogContent{overscroll-behavior:contain;flex-direction:column;gap:14px;max-height:min(60vh,520px);display:flex;overflow-y:auto}.x_PPca_summary{border-bottom:.5px solid var(--dsw-alias-border-l2);align-items:center;gap:16px;padding-bottom:10px;display:flex}.x_PPca_summaryItem{align-items:baseline;gap:6px;display:flex}.x_PPca_summaryLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11)}.x_PPca_summaryValue{color:var(--dsw-alias-label-primary);font:var(--dsw-font-base-strong-16);font-variant-numeric:tabular-nums}.x_PPca_group{flex-direction:column;gap:6px;display:flex}.x_PPca_list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.x_PPca_card{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-2);border:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:2px;padding:8px 11px;display:flex}.x_PPca_cardRow{align-items:center;gap:7px;min-width:0;display:flex}.x_PPca_cardName{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);flex:auto;overflow:hidden}.x_PPca_cardPath{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);padding-left:23px;overflow:hidden}.x_PPca_cardActions{justify-content:flex-end;padding-top:2px;display:flex}.x_PPca_badgeDone,.x_PPca_badgeFailed,.x_PPca_badgeBusy{font:var(--dsw-font-xxxs-strong-11);white-space:nowrap;border-radius:999px;flex:none;padding:1px 7px}.x_PPca_badgeDone{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-success-primary)}.x_PPca_badgeFailed{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary)}.x_PPca_badgeBusy{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}.x_PPca_progressRow{align-items:center;gap:8px;padding-left:23px;display:flex}.x_PPca_progressTrack{background:var(--dsw-alias-border-l2);border-radius:999px;flex:auto;height:4px;position:relative;overflow:hidden}.x_PPca_progressFill{border-radius:inherit;background:var(--dsw-alias-brand-primary);height:100%;transition:width .12s linear;display:block}.x_PPca_progressFillIndeterminate{border-radius:inherit;background:var(--dsw-alias-brand-primary);width:40%;animation:1.1s ease-in-out infinite x_PPca_cardProgress;position:absolute;inset-block:0}@keyframes x_PPca_cardProgress{0%{left:-40%}to{left:100%}}.x_PPca_progressPercent{text-align:right;min-width:34px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);font-variant-numeric:tabular-nums;flex:none}@media (prefers-reduced-motion:reduce){.x_PPca_progressFillIndeterminate{animation:none;left:30%}}.x_PPca_cardReason{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-11);overflow-wrap:anywhere}.x_PPca_cardRawReason{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);overflow-wrap:anywhere}.x_PPca_empty{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);margin:0;padding:12px 0}";
17782
+ const tagId$7 = "@sparkelf/dsh-knowledge-base/KnowledgeProgressPopover.module.css";
17783
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
17698
17784
  const tag = document.createElement("style");
17699
17785
  tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
17700
- tag.dataset.pluginCss = tagId$3;
17701
- tag.textContent = css$3;
17786
+ tag.dataset.pluginCss = tagId$7;
17787
+ tag.textContent = css$7;
17702
17788
  document.head.appendChild(tag);
17703
17789
  }
17704
17790
  var KnowledgeProgressPopover_module_css_default = {
17705
- "badgeBusy": "x_PPca_badgeBusy",
17706
- "group": "x_PPca_group",
17707
- "progressFill": "x_PPca_progressFill",
17791
+ "empty": "x_PPca_empty",
17792
+ "progressPercent": "x_PPca_progressPercent",
17793
+ "badge": "x_PPca_badge",
17794
+ "dialog": "x_PPca_dialog",
17795
+ "cardRow": "x_PPca_cardRow",
17796
+ "progressTrack": "x_PPca_progressTrack",
17708
17797
  "cardProgress": "x_PPca_cardProgress",
17709
- "bell": "x_PPca_bell",
17798
+ "progressFillIndeterminate": "x_PPca_progressFillIndeterminate",
17799
+ "group": "x_PPca_group",
17800
+ "cardActions": "x_PPca_cardActions",
17801
+ "dialogContent": "x_PPca_dialogContent",
17802
+ "badgeBusy": "x_PPca_badgeBusy",
17710
17803
  "cardReason": "x_PPca_cardReason",
17711
17804
  "cardRawReason": "x_PPca_cardRawReason",
17712
- "dialogContent": "x_PPca_dialogContent",
17713
- "progressPercent": "x_PPca_progressPercent",
17714
- "empty": "x_PPca_empty",
17715
17805
  "cardPath": "x_PPca_cardPath",
17716
- "cardRow": "x_PPca_cardRow",
17806
+ "progressFill": "x_PPca_progressFill",
17717
17807
  "badgeDone": "x_PPca_badgeDone",
17718
- "summaryItem": "x_PPca_summaryItem",
17808
+ "badgeFailed": "x_PPca_badgeFailed",
17719
17809
  "summaryValue": "x_PPca_summaryValue",
17720
17810
  "card": "x_PPca_card",
17721
- "progressFillIndeterminate": "x_PPca_progressFillIndeterminate",
17722
- "summaryLabel": "x_PPca_summaryLabel",
17723
- "badgeFailed": "x_PPca_badgeFailed",
17724
- "badge": "x_PPca_badge",
17725
- "dialog": "x_PPca_dialog",
17726
- "list": "x_PPca_list",
17727
17811
  "progressRow": "x_PPca_progressRow",
17728
- "progressTrack": "x_PPca_progressTrack",
17729
17812
  "summary": "x_PPca_summary",
17730
17813
  "cardName": "x_PPca_cardName",
17731
- "cardActions": "x_PPca_cardActions"
17814
+ "summaryLabel": "x_PPca_summaryLabel",
17815
+ "bell": "x_PPca_bell",
17816
+ "list": "x_PPca_list",
17817
+ "summaryItem": "x_PPca_summaryItem"
17732
17818
  };
17733
17819
  //#endregion
17734
17820
  //#region src/client/KnowledgeProgressPopover.tsx
@@ -18244,182 +18330,1011 @@ window.__ModuleLoader__.load({
18244
18330
  ]
18245
18331
  })] });
18246
18332
  }
18247
- /** The session's recorded failures, oldest first. */
18248
- const failures = [];
18333
+ /** The session's recorded failures, oldest first. */
18334
+ const failures = [];
18335
+ /**
18336
+ * Record one refused extraction.
18337
+ *
18338
+ * Re-recording a path REPLACES its earlier reason and moves it to the end: a reader who
18339
+ * retried and failed differently needs the newest reason, and the list reads newest-last.
18340
+ * @param entry - the path, the raw reason, and when it was observed (defaults to now).
18341
+ */
18342
+ function rememberExtractionFailure(entry) {
18343
+ const at = entry.at ?? Date.now();
18344
+ const existing = failures.findIndex((failure) => failure.relPath === entry.relPath);
18345
+ if (existing !== -1) failures.splice(existing, 1);
18346
+ failures.push({
18347
+ relPath: entry.relPath,
18348
+ reason: entry.reason,
18349
+ at
18350
+ });
18351
+ if (failures.length > 50) failures.splice(0, failures.length - 50);
18352
+ }
18353
+ /**
18354
+ * Read the session's failures.
18355
+ * @returns A copy, so a caller cannot mutate the store by accident.
18356
+ */
18357
+ function readExtractionFailures() {
18358
+ return failures.map((failure) => ({ ...failure }));
18359
+ }
18360
+ /**
18361
+ * Drop one path's recorded failure, e.g. after a retry was accepted.
18362
+ * @param relPath - the document whose failure is no longer current.
18363
+ */
18364
+ function forgetExtractionFailure(relPath) {
18365
+ const index = failures.findIndex((failure) => failure.relPath === relPath);
18366
+ if (index !== -1) failures.splice(index, 1);
18367
+ }
18368
+ /**
18369
+ * Compute the integer percentage of bytes sent.
18370
+ *
18371
+ * Returns undefined when the total is unknown, which is a real case: a body sent without
18372
+ * a `Content-Length` reports `lengthComputable: false`, and inventing a percentage from
18373
+ * a missing denominator is exactly the dishonesty this module avoids.
18374
+ * @param loaded - bytes sent so far.
18375
+ * @param total - total bytes, when the browser knows it.
18376
+ * @param computable - whether the browser reported a usable total.
18377
+ * @returns 0-100, or undefined when it cannot be known.
18378
+ */
18379
+ function uploadPercent(loaded, total, computable) {
18380
+ if (!computable || !Number.isFinite(total) || total <= 0) return void 0;
18381
+ if (!Number.isFinite(loaded) || loaded < 0) return void 0;
18382
+ return Math.min(100, Math.max(0, Math.round(loaded / total * 100)));
18383
+ }
18384
+ /**
18385
+ * Whether enough time has passed to report another progress sample.
18386
+ *
18387
+ * Kept as a pure predicate so the throttle can be tested without a timer or a network.
18388
+ * @param now - the current timestamp in milliseconds.
18389
+ * @param last - when the last sample was reported, or undefined if none was.
18390
+ * @returns Whether this sample should be reported.
18391
+ */
18392
+ function shouldReportProgress(now, last) {
18393
+ if (last === void 0) return true;
18394
+ return now - last >= 100;
18395
+ }
18396
+ /**
18397
+ * Upload one JSON body, reporting byte progress as it goes.
18398
+ * @param url - the route to post to.
18399
+ * @param payload - the JSON-serialisable body.
18400
+ * @param onProgress - called with 0-100 while sending; only called when a percentage is
18401
+ * actually known, and throttled to {@link PROGRESS_INTERVAL_MS}.
18402
+ * @returns The attempt's outcome. Never rejects: a transport failure is a result, because
18403
+ * the caller has to show it either way.
18404
+ */
18405
+ function uploadJsonWithProgress(url, payload, onProgress) {
18406
+ return new Promise((resolve) => {
18407
+ let settled = false;
18408
+ let lastReport = -Infinity;
18409
+ /** Resolve exactly once: XHR can fire both `error` and `loadend`. */
18410
+ const finish = (attempt) => {
18411
+ if (settled) return;
18412
+ settled = true;
18413
+ resolve(attempt);
18414
+ };
18415
+ const request = new XMLHttpRequest();
18416
+ request.open("POST", url, true);
18417
+ request.setRequestHeader("content-type", "application/json");
18418
+ request.upload.onprogress = (event) => {
18419
+ const percent = uploadPercent(event.loaded, event.total, event.lengthComputable);
18420
+ if (percent === void 0) return;
18421
+ const now = Date.now();
18422
+ if (!shouldReportProgress(now, lastReport)) return;
18423
+ lastReport = now;
18424
+ onProgress(percent);
18425
+ };
18426
+ request.onload = () => {
18427
+ let body;
18428
+ try {
18429
+ body = JSON.parse(request.responseText);
18430
+ } catch {
18431
+ body = void 0;
18432
+ }
18433
+ finish({
18434
+ status: request.status,
18435
+ body
18436
+ });
18437
+ };
18438
+ request.onerror = () => {
18439
+ finish({
18440
+ status: 0,
18441
+ body: void 0,
18442
+ transportError: "the network request failed"
18443
+ });
18444
+ };
18445
+ request.onabort = () => {
18446
+ finish({
18447
+ status: 0,
18448
+ body: void 0,
18449
+ transportError: "the upload was cancelled"
18450
+ });
18451
+ };
18452
+ request.ontimeout = () => {
18453
+ finish({
18454
+ status: 0,
18455
+ body: void 0,
18456
+ transportError: "the upload timed out"
18457
+ });
18458
+ };
18459
+ try {
18460
+ request.send(JSON.stringify(payload));
18461
+ } catch (error) {
18462
+ finish({
18463
+ status: 0,
18464
+ body: void 0,
18465
+ transportError: error instanceof Error ? error.message : "the upload could not be started"
18466
+ });
18467
+ }
18468
+ });
18469
+ }
18470
+ //#endregion
18471
+ //#region src/client/KnowledgeSectionHeader.tsx
18472
+ /**
18473
+ * Render one section band.
18474
+ * @param props - the name, its trailing controls, and optional placement.
18475
+ * @returns The band.
18476
+ */
18477
+ function KnowledgeSectionHeader(props) {
18478
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18479
+ className: props.className === void 0 ? KnowledgePanel_module_css_default.sectionHeader : KnowledgePanel_module_css_default.sectionHeader + " " + props.className,
18480
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
18481
+ className: KnowledgePanel_module_css_default.sectionName,
18482
+ children: props.name
18483
+ }), props.actions !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
18484
+ className: KnowledgePanel_module_css_default.sectionActions,
18485
+ children: props.actions
18486
+ })]
18487
+ });
18488
+ }
18489
+ /**
18490
+ * Render one glyph button.
18491
+ *
18492
+ * A native button with the band's own class rather than the `Button` primitive:
18493
+ * that primitive is the product's labelled action at a 36px control height, while
18494
+ * this is the 28x28 icon control the band is specified around.
18495
+ * @param props - the accessible name, glyph, and activation handler.
18496
+ * @returns The button.
18497
+ */
18498
+ function KnowledgeIconButton(props) {
18499
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
18500
+ type: "button",
18501
+ className: KnowledgePanel_module_css_default.iconButton,
18502
+ "aria-label": props.label,
18503
+ title: props.label,
18504
+ ...props.pressed === void 0 ? {} : { "aria-pressed": props.pressed },
18505
+ ...props.disabled === true ? { disabled: true } : {},
18506
+ onClick: props.onClick,
18507
+ children: props.children
18508
+ });
18509
+ }
18510
+ //#endregion
18511
+ //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/graph/KnowledgeScopeTabs.module.css.mjs
18512
+ const css$6 = ".UvtP4W_tabs{align-items:center;gap:2px;min-width:0;display:inline-flex}.UvtP4W_tab{box-sizing:border-box;height:26px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xs-13);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px;line-height:26px}.UvtP4W_tab:hover{color:var(--dsw-alias-label-secondary)}.UvtP4W_tab:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-1px}.UvtP4W_tabSelected,.UvtP4W_tabSelected:hover{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary)}";
18513
+ const tagId$6 = "@sparkelf/dsh-knowledge-base/KnowledgeScopeTabs.module.css";
18514
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
18515
+ const tag = document.createElement("style");
18516
+ tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
18517
+ tag.dataset.pluginCss = tagId$6;
18518
+ tag.textContent = css$6;
18519
+ document.head.appendChild(tag);
18520
+ }
18521
+ var KnowledgeScopeTabs_module_css_default = {
18522
+ "tabs": "UvtP4W_tabs",
18523
+ "tab": "UvtP4W_tab",
18524
+ "tabSelected": "UvtP4W_tabSelected"
18525
+ };
18526
+ //#endregion
18527
+ //#region src/client/graph/KnowledgeScopeTabs.tsx
18528
+ /**
18529
+ * The two scope pills that replace the tree band's plain title.
18530
+ *
18531
+ * They switch the navigation tree's DATA SOURCE (knowledge folders or graph
18532
+ * scopes), not the list/grid presentation; that is why they sit where the band's
18533
+ * name used to be rather than in the view-mode control.
18534
+ *
18535
+ * The selected pill takes `bg-layer-2` and `label-primary`; the unselected one
18536
+ * keeps the band's `label-tertiary`. Metrics are the brief's: a 26px control, 13px
18537
+ * type, 6px radius.
18538
+ *
18539
+ * @module @sparkelf/dsh-knowledge-base/client/graph/KnowledgeScopeTabs
18540
+ */
18541
+ /**
18542
+ * Render the scope tablist.
18543
+ *
18544
+ * @param props - the current scope, its setter, and both labels.
18545
+ * @returns The two pills.
18546
+ */
18547
+ function KnowledgeScopeTabs(props) {
18548
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18549
+ className: KnowledgeScopeTabs_module_css_default.tabs,
18550
+ role: "tablist",
18551
+ "aria-label": props.label,
18552
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
18553
+ type: "button",
18554
+ role: "tab",
18555
+ "aria-selected": props.value === "kb",
18556
+ className: KnowledgeScopeTabs_module_css_default.tab + (props.value === "kb" ? " " + KnowledgeScopeTabs_module_css_default.tabSelected : ""),
18557
+ onClick: () => {
18558
+ props.onChange("kb");
18559
+ },
18560
+ children: props.knowledgeLabel
18561
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
18562
+ type: "button",
18563
+ role: "tab",
18564
+ "aria-selected": props.value === "graph",
18565
+ className: KnowledgeScopeTabs_module_css_default.tab + (props.value === "graph" ? " " + KnowledgeScopeTabs_module_css_default.tabSelected : ""),
18566
+ onClick: () => {
18567
+ props.onChange("graph");
18568
+ },
18569
+ children: props.graphLabel
18570
+ })]
18571
+ });
18572
+ }
18573
+ //#endregion
18574
+ //#region src/graphTypes.ts
18575
+ /** An empty tree, for the loading and failure states. */
18576
+ function emptyKnowledgeGraphTree() {
18577
+ return {
18578
+ scopes: [
18579
+ {
18580
+ key: "global",
18581
+ groups: []
18582
+ },
18583
+ {
18584
+ key: "department",
18585
+ groups: []
18586
+ },
18587
+ {
18588
+ key: "personal",
18589
+ groups: []
18590
+ }
18591
+ ],
18592
+ caller: {
18593
+ userId: "",
18594
+ label: ""
18595
+ },
18596
+ actualRoot: "",
18597
+ scanned: 0,
18598
+ visible: 0,
18599
+ denied: 0
18600
+ };
18601
+ }
18602
+ /** Flatten the tree into the list the canvas page consumes. */
18603
+ function knowledgeGraphsOf(tree) {
18604
+ return tree.scopes.flatMap((scope) => scope.groups.flatMap((group) => group.graphs));
18605
+ }
18606
+ /**
18607
+ * Whether a graph or one of its topics matches the tree's in-place filter.
18608
+ *
18609
+ * This narrows what the Host already returned; it is not a permission filter and
18610
+ * must never be used as one. Exported so the rule can be tested without rendering
18611
+ * the tree.
18612
+ *
18613
+ * @param graph - one permission-filtered graph.
18614
+ * @param needle - already lower-cased filter term.
18615
+ * @returns true when the graph name or a topic title contains the term.
18616
+ */
18617
+ function knowledgeGraphMatches(graph, needle) {
18618
+ if (needle === "") return true;
18619
+ return graph.name.toLowerCase().includes(needle) || graph.topics.some((topic) => topic.title.toLowerCase().includes(needle));
18620
+ }
18621
+ //#endregion
18622
+ //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/graph/KnowledgeGraphTree.module.css.mjs
18623
+ const css$5 = ".JLttwq_tree,.JLttwq_scope{flex-direction:column;gap:1px;min-width:0;display:flex}.JLttwq_chevron,.JLttwq_chevronPlaceholder{width:14px;height:14px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}.JLttwq_chevron>svg{width:12px;height:12px}.JLttwq_rowActive,.JLttwq_rowActive:hover{background:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-label-primary)}.JLttwq_graphGlyph{width:14px;height:14px;color:var(--dsw-alias-label-secondary);justify-content:center;align-items:center;display:inline-flex}.JLttwq_rowActive .JLttwq_graphGlyph{color:var(--dsw-alias-state-business-primary)}.JLttwq_topicRow{box-sizing:border-box;width:100%;max-width:100%;min-height:26px;color:color-mix(in srgb, var(--dsw-alias-label-tertiary) 80%, var(--dsw-alias-label-primary));font:var(--dsw-font-xxs-12);text-align:start;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:6px;padding:3px 8px;display:flex}.JLttwq_topicRow:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.JLttwq_topicActive,.JLttwq_topicActive:hover{background:var(--dsw-alias-interactive-bg-hover-accent);color:var(--dsw-alias-label-primary)}.JLttwq_topicGlyph{opacity:.7;background:currentColor;border-radius:50%;flex:none;width:4px;height:4px;margin:0 5px}.JLttwq_topicName{text-overflow:ellipsis;min-width:0;overflow:hidden}.JLttwq_emptyRow{color:color-mix(in srgb, var(--dsw-alias-label-tertiary) 80%, var(--dsw-alias-label-primary));font:var(--dsw-font-xxxs-11);margin:2px 0 4px}.JLttwq_state{color:color-mix(in srgb, var(--dsw-alias-label-tertiary) 80%, var(--dsw-alias-label-primary));font:var(--dsw-font-xxs-12);flex-direction:column;gap:6px;margin:0;padding:10px;display:flex}.JLttwq_emptyTitle{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12);margin:0}.JLttwq_error{color:var(--dsw-alias-state-error-primary);margin:0}.JLttwq_detail{font:var(--dsw-font-xxxs-11);overflow-wrap:anywhere;margin:0}.JLttwq_retry{border:.5px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-2);height:26px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);cursor:pointer;align-self:flex-start;padding:0 10px}.JLttwq_retry:hover{background:var(--dsw-alias-interactive-bg-hover)}";
18624
+ const tagId$5 = "@sparkelf/dsh-knowledge-base/KnowledgeGraphTree.module.css";
18625
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
18626
+ const tag = document.createElement("style");
18627
+ tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
18628
+ tag.dataset.pluginCss = tagId$5;
18629
+ tag.textContent = css$5;
18630
+ document.head.appendChild(tag);
18631
+ }
18632
+ var KnowledgeGraphTree_module_css_default = {
18633
+ "state": "JLttwq_state",
18634
+ "graphGlyph": "JLttwq_graphGlyph",
18635
+ "error": "JLttwq_error",
18636
+ "topicName": "JLttwq_topicName",
18637
+ "emptyRow": "JLttwq_emptyRow",
18638
+ "emptyTitle": "JLttwq_emptyTitle",
18639
+ "topicActive": "JLttwq_topicActive",
18640
+ "chevronPlaceholder": "JLttwq_chevronPlaceholder",
18641
+ "chevron": "JLttwq_chevron",
18642
+ "rowActive": "JLttwq_rowActive",
18643
+ "detail": "JLttwq_detail",
18644
+ "retry": "JLttwq_retry",
18645
+ "topicRow": "JLttwq_topicRow",
18646
+ "topicGlyph": "JLttwq_topicGlyph",
18647
+ "tree": "JLttwq_tree",
18648
+ "scope": "JLttwq_scope"
18649
+ };
18650
+ //#endregion
18651
+ //#region src/client/graph/KnowledgeGraphTree.tsx
18652
+ /**
18653
+ * The graph tab's rail tree, rendered as the same file tree the Knowledge base
18654
+ * tab shows.
18655
+ *
18656
+ * The reader asked for the knowledge tree's four-level shape: three top-level
18657
+ * folders (全局/部门/个人), the caller's department chain, the graph as a file row,
18658
+ * then its topics. Row metrics and the folder/chevron affordances are borrowed from
18659
+ * `KnowledgeListing.module.css` (`.entry`, `.entryDir`, `.entryGlyph`,
18660
+ * `.entryName`, `.entryTime`) rather than restated here, so both tabs keep the
18661
+ * explorer's 28px row, 12px type, 22px indent step and hover fill.
18662
+ *
18663
+ * The Host has already dropped every graph DataOps did not resolve; this component
18664
+ * only filters names for the in-place search. It never decides who may see a graph.
18665
+ *
18666
+ * @module @sparkelf/dsh-knowledge-base/client/graph/KnowledgeGraphTree
18667
+ */
18668
+ /** A scope's row label. */
18669
+ const SCOPE_COPY = [
18670
+ {
18671
+ key: "global",
18672
+ copy: "bucketGlobal"
18673
+ },
18674
+ {
18675
+ key: "department",
18676
+ copy: "bucketDepartment"
18677
+ },
18678
+ {
18679
+ key: "personal",
18680
+ copy: "bucketPersonal"
18681
+ }
18682
+ ];
18683
+ /** A graph-shaped file glyph, drawn inline because primitives has no network icon. */
18684
+ function GraphFileGlyph() {
18685
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
18686
+ viewBox: "0 0 16 16",
18687
+ width: "14",
18688
+ height: "14",
18689
+ fill: "none",
18690
+ stroke: "currentColor",
18691
+ strokeWidth: "1.2",
18692
+ strokeLinecap: "round",
18693
+ "aria-hidden": "true",
18694
+ children: [
18695
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
18696
+ x: "2.25",
18697
+ y: "2.25",
18698
+ width: "11.5",
18699
+ height: "11.5",
18700
+ rx: "2"
18701
+ }),
18702
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
18703
+ cx: "5.6",
18704
+ cy: "6",
18705
+ r: "1.15"
18706
+ }),
18707
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
18708
+ cx: "10.6",
18709
+ cy: "6",
18710
+ r: "1.15"
18711
+ }),
18712
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
18713
+ cx: "8",
18714
+ cy: "10.6",
18715
+ r: "1.15"
18716
+ }),
18717
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M6.55 6h2.9M5.9 7.05l1.35 2.45M10.3 7.05l-1.35 2.45" })
18718
+ ]
18719
+ });
18720
+ }
18721
+ /** The chevron shown before an expandable row. */
18722
+ function ExpandGlyph(props) {
18723
+ return props.open ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { size: 12 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutlineRegular, { size: 12 });
18724
+ }
18249
18725
  /**
18250
- * Record one refused extraction.
18726
+ * Build the department forest from the flat group list.
18251
18727
  *
18252
- * Re-recording a path REPLACES its earlier reason and moves it to the end: a reader who
18253
- * retried and failed differently needs the newest reason, and the list reads newest-last.
18254
- * @param entry - the path, the raw reason, and when it was observed (defaults to now).
18728
+ * `group.key` is the code chain (`a/b/c`); `group.label` is the display chain
18729
+ * (`A / B / C`). Splitting both here is what makes a multi-level department
18730
+ * readable as nested folders without asking the Host for a second tree.
18255
18731
  */
18256
- function rememberExtractionFailure(entry) {
18257
- const at = entry.at ?? Date.now();
18258
- const existing = failures.findIndex((failure) => failure.relPath === entry.relPath);
18259
- if (existing !== -1) failures.splice(existing, 1);
18260
- failures.push({
18261
- relPath: entry.relPath,
18262
- reason: entry.reason,
18263
- at
18732
+ function departmentForest(groups) {
18733
+ const roots = [];
18734
+ const loose = [];
18735
+ for (const group of groups) {
18736
+ const codes = group.key === "" ? [] : group.key.split("/").filter((code) => code !== "");
18737
+ const labels = group.label === "" ? codes : group.label.split(" / ");
18738
+ if (codes.length === 0) {
18739
+ loose.push(...group.graphs);
18740
+ continue;
18741
+ }
18742
+ let level = roots;
18743
+ let path = "";
18744
+ codes.forEach((code, index) => {
18745
+ path = path === "" ? code : path + "/" + code;
18746
+ let node = level.find((candidate) => candidate.id === path);
18747
+ if (node === void 0) {
18748
+ node = {
18749
+ id: path,
18750
+ label: labels[index] ?? code,
18751
+ children: [],
18752
+ graphs: []
18753
+ };
18754
+ level.push(node);
18755
+ }
18756
+ if (index === codes.length - 1) node.graphs.push(...group.graphs);
18757
+ level = node.children;
18758
+ });
18759
+ }
18760
+ return {
18761
+ roots,
18762
+ loose
18763
+ };
18764
+ }
18765
+ /** One tree row: chevron, glyph, name, optional trailing count. */
18766
+ function TreeRow(props) {
18767
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18768
+ role: "button",
18769
+ tabIndex: 0,
18770
+ className: KnowledgeListing_module_css_default.entry + (props.dir === true ? " " + KnowledgeListing_module_css_default.entryDir : "") + (props.active === true ? " " + KnowledgeGraphTree_module_css_default.rowActive : ""),
18771
+ style: { paddingLeft: props.depth * 22 + 6 },
18772
+ "data-testid": props.testId,
18773
+ ...props.attrs,
18774
+ ...props.expandable === true ? { "aria-expanded": props.open === true } : {},
18775
+ title: props.label,
18776
+ onClick: props.onClick,
18777
+ onKeyDown: (event) => {
18778
+ if (event.key === "Enter" || event.key === " ") {
18779
+ event.preventDefault();
18780
+ props.onClick();
18781
+ }
18782
+ },
18783
+ children: [
18784
+ props.expandable === true ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
18785
+ className: KnowledgeGraphTree_module_css_default.chevron,
18786
+ "aria-hidden": "true",
18787
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ExpandGlyph, { open: props.open === true })
18788
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
18789
+ className: KnowledgeGraphTree_module_css_default.chevronPlaceholder,
18790
+ "aria-hidden": "true"
18791
+ }),
18792
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
18793
+ className: KnowledgeListing_module_css_default.entryGlyph,
18794
+ "aria-hidden": "true",
18795
+ children: props.glyph
18796
+ }),
18797
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
18798
+ className: KnowledgeListing_module_css_default.entryName,
18799
+ children: props.label
18800
+ }),
18801
+ props.trailing === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
18802
+ className: KnowledgeListing_module_css_default.entryTime,
18803
+ children: props.trailing
18804
+ })
18805
+ ]
18264
18806
  });
18265
- if (failures.length > 50) failures.splice(0, failures.length - 50);
18266
18807
  }
18267
18808
  /**
18268
- * Read the session's failures.
18269
- * @returns A copy, so a caller cannot mutate the store by accident.
18809
+ * Render the graph tree.
18810
+ *
18811
+ * @param props - load state, selection, filter, and the two selectors.
18812
+ * @returns The tree, or the loading/failed/empty state.
18270
18813
  */
18271
- function readExtractionFailures() {
18272
- return failures.map((failure) => ({ ...failure }));
18814
+ function KnowledgeGraphTree(props) {
18815
+ const needle = props.filter.trim().toLowerCase();
18816
+ const [expanded, setExpanded] = (0, react.useState)(() => /* @__PURE__ */ new Set(["scope:global"]));
18817
+ const scopeViews = (0, react.useMemo)(() => props.state.tree.scopes.map((scope) => ({
18818
+ ...scope,
18819
+ groups: scope.groups.map((group) => ({
18820
+ ...group,
18821
+ graphs: group.graphs.filter((graph) => knowledgeGraphMatches(graph, needle))
18822
+ })).filter((group) => group.graphs.length > 0)
18823
+ })), [props.state.tree, needle]);
18824
+ const visibleScopes = (0, react.useMemo)(() => scopeViews.filter((scope) => needle === "" || scope.groups.length > 0), [scopeViews, needle]);
18825
+ const allGraphs = (0, react.useMemo)(() => scopeViews.flatMap((scope) => scope.groups.flatMap((group) => group.graphs)), [scopeViews]);
18826
+ (0, react.useEffect)(() => {
18827
+ if (props.activeGraphId === void 0) return;
18828
+ const graph = allGraphs.find((candidate) => candidate.id === props.activeGraphId);
18829
+ if (graph === void 0) return;
18830
+ setExpanded((previous) => {
18831
+ const next = new Set(previous);
18832
+ next.add("scope:" + graph.scope);
18833
+ next.add("graph:" + graph.id);
18834
+ if (graph.scope === "department") {
18835
+ const group = visibleScopes.find((scope) => scope.key === "department")?.groups.find((candidate) => candidate.graphs.some((node) => node.id === graph.id));
18836
+ if (group !== void 0) {
18837
+ let path = "";
18838
+ for (const code of group.key.split("/").filter((value) => value !== "")) {
18839
+ path = path === "" ? code : path + "/" + code;
18840
+ next.add("dept:" + path);
18841
+ }
18842
+ }
18843
+ }
18844
+ return next;
18845
+ });
18846
+ }, [
18847
+ props.activeGraphId,
18848
+ allGraphs,
18849
+ visibleScopes
18850
+ ]);
18851
+ const isOpen = (key) => needle !== "" || expanded.has(key);
18852
+ const toggle = (key) => {
18853
+ setExpanded((previous) => {
18854
+ const next = new Set(previous);
18855
+ if (next.has(key)) next.delete(key);
18856
+ else next.add(key);
18857
+ return next;
18858
+ });
18859
+ };
18860
+ const graphRow = (graph, depth, keyPrefix = "") => {
18861
+ const open = isOpen("graph:" + graph.id);
18862
+ const active = graph.id === props.activeGraphId;
18863
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeRow, {
18864
+ depth,
18865
+ label: graph.name,
18866
+ testId: "kg-graph",
18867
+ attrs: { "data-graph-id": graph.id },
18868
+ expandable: graph.topics.length > 0,
18869
+ open,
18870
+ active,
18871
+ trailing: graph.counts.topics + " · " + graph.counts.links,
18872
+ glyph: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
18873
+ className: KnowledgeGraphTree_module_css_default.graphGlyph,
18874
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GraphFileGlyph, {})
18875
+ }),
18876
+ onClick: () => {
18877
+ if (active && graph.topics.length > 0 && open) {
18878
+ toggle("graph:" + graph.id);
18879
+ return;
18880
+ }
18881
+ if (!active) props.onSelectGraph(graph.id);
18882
+ if (!open) toggle("graph:" + graph.id);
18883
+ }
18884
+ }), open && graph.topics.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: graph.topics.map((topic) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18885
+ role: "button",
18886
+ tabIndex: 0,
18887
+ className: KnowledgeGraphTree_module_css_default.topicRow + (topic.id === props.activeTopicId ? " " + KnowledgeGraphTree_module_css_default.topicActive : ""),
18888
+ style: { paddingLeft: (depth + 1) * 22 + 6 + 16 },
18889
+ "data-testid": "kg-topic",
18890
+ "data-topic-id": topic.id,
18891
+ onClick: () => {
18892
+ props.onSelectTopic(graph.id, topic.id);
18893
+ },
18894
+ onKeyDown: (event) => {
18895
+ if (event.key === "Enter" || event.key === " ") {
18896
+ event.preventDefault();
18897
+ props.onSelectTopic(graph.id, topic.id);
18898
+ }
18899
+ },
18900
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
18901
+ className: KnowledgeGraphTree_module_css_default.topicGlyph,
18902
+ "aria-hidden": "true"
18903
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
18904
+ className: KnowledgeGraphTree_module_css_default.topicName,
18905
+ children: topic.title
18906
+ })]
18907
+ }, topic.id)) })] }, keyPrefix + graph.id);
18908
+ };
18909
+ const departmentRow = (node, depth) => {
18910
+ const key = "dept:" + node.id;
18911
+ const open = isOpen(key);
18912
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeRow, {
18913
+ depth,
18914
+ label: node.label,
18915
+ testId: "kg-dept",
18916
+ attrs: { "data-dept-id": node.id },
18917
+ dir: true,
18918
+ expandable: true,
18919
+ open,
18920
+ glyph: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconFolderOpenRegular, { size: 14 }),
18921
+ onClick: () => {
18922
+ toggle(key);
18923
+ }
18924
+ }), open && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [node.children.map((child) => departmentRow(child, depth + 1)), node.graphs.map((graph) => graphRow(graph, depth + 1))] })] }, node.id);
18925
+ };
18926
+ if (props.state.kind === "loading" && props.state.tree.visible === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
18927
+ className: KnowledgeGraphTree_module_css_default.state,
18928
+ "data-testid": "kg-tree-loading",
18929
+ children: props.t("graphLoading")
18930
+ });
18931
+ if (props.state.kind === "failed") return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18932
+ className: KnowledgeGraphTree_module_css_default.state,
18933
+ "data-testid": "kg-tree-failed",
18934
+ children: [
18935
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
18936
+ className: KnowledgeGraphTree_module_css_default.error,
18937
+ children: props.t("graphFailed")
18938
+ }),
18939
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
18940
+ className: KnowledgeGraphTree_module_css_default.detail,
18941
+ children: props.state.error
18942
+ }),
18943
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
18944
+ type: "button",
18945
+ className: KnowledgeGraphTree_module_css_default.retry,
18946
+ onClick: props.onRetry,
18947
+ children: props.t("graphRetry")
18948
+ })
18949
+ ]
18950
+ });
18951
+ if (allGraphs.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18952
+ className: KnowledgeGraphTree_module_css_default.state,
18953
+ "data-testid": "kg-tree-empty",
18954
+ children: [
18955
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
18956
+ className: KnowledgeGraphTree_module_css_default.emptyTitle,
18957
+ children: needle === "" ? props.t("graphEmptyTitle") : props.t("filterNoMatch")
18958
+ }),
18959
+ needle === "" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
18960
+ className: KnowledgeGraphTree_module_css_default.detail,
18961
+ children: props.t("graphEmptyBody")
18962
+ }),
18963
+ needle === "" && props.state.tree.denied > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
18964
+ className: KnowledgeGraphTree_module_css_default.detail,
18965
+ children: props.t("graphNoAccess")
18966
+ })
18967
+ ]
18968
+ });
18969
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
18970
+ className: KnowledgeGraphTree_module_css_default.tree,
18971
+ "data-testid": "kg-tree",
18972
+ children: SCOPE_COPY.map((scopeCopy) => {
18973
+ const scope = visibleScopes.find((candidate) => candidate.key === scopeCopy.key);
18974
+ if (scope === void 0) return null;
18975
+ const graphs = scope.groups.flatMap((group) => group.graphs);
18976
+ const key = "scope:" + scopeCopy.key;
18977
+ const open = isOpen(key);
18978
+ const forest = scopeCopy.key === "department" ? departmentForest(scope.groups) : {
18979
+ roots: [],
18980
+ loose: graphs
18981
+ };
18982
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
18983
+ className: KnowledgeGraphTree_module_css_default.scope,
18984
+ "data-testid": "kg-scope",
18985
+ "data-scope": scopeCopy.key,
18986
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(TreeRow, {
18987
+ depth: 0,
18988
+ label: props.t(scopeCopy.copy),
18989
+ testId: "kg-scope-row",
18990
+ dir: true,
18991
+ expandable: true,
18992
+ open,
18993
+ glyph: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconFolderOpenRegular, { size: 14 }),
18994
+ onClick: () => {
18995
+ toggle(key);
18996
+ }
18997
+ }), open && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [scopeCopy.key === "department" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [forest.loose.map((graph) => graphRow(graph, 1)), forest.roots.map((node) => departmentRow(node, 1))] }) : graphs.map((graph) => graphRow(graph, 1)), graphs.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
18998
+ className: KnowledgeGraphTree_module_css_default.emptyRow,
18999
+ style: { paddingLeft: 44 },
19000
+ children: "(空)"
19001
+ })] })]
19002
+ }, scopeCopy.key);
19003
+ })
19004
+ });
18273
19005
  }
18274
- /**
18275
- * Drop one path's recorded failure, e.g. after a retry was accepted.
18276
- * @param relPath - the document whose failure is no longer current.
18277
- */
18278
- function forgetExtractionFailure(relPath) {
18279
- const index = failures.findIndex((failure) => failure.relPath === relPath);
18280
- if (index !== -1) failures.splice(index, 1);
19006
+ //#endregion
19007
+ //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/graph/KnowledgeGraphView.module.css.mjs
19008
+ const css$4 = ".Dk9FoG_host{background:var(--dsw-alias-bg-base);flex:auto;min-width:0;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.Dk9FoG_frame{background:var(--dsw-alias-bg-base);border:0;width:100%;height:100%;min-height:0;display:block}.Dk9FoG_state{min-height:240px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxs-12);text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.Dk9FoG_emptyTitle{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-sm-strong-14);margin:0}.Dk9FoG_error{color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-sm-strong-14);margin:0}.Dk9FoG_detail{overflow-wrap:anywhere;max-width:560px;margin:0}.Dk9FoG_retry{border:.5px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);cursor:pointer;margin-top:4px;padding:0 12px}.Dk9FoG_retry:hover{background:var(--dsw-alias-interactive-bg-hover)}";
19009
+ const tagId$4 = "@sparkelf/dsh-knowledge-base/KnowledgeGraphView.module.css";
19010
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
19011
+ const tag = document.createElement("style");
19012
+ tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
19013
+ tag.dataset.pluginCss = tagId$4;
19014
+ tag.textContent = css$4;
19015
+ document.head.appendChild(tag);
18281
19016
  }
19017
+ var KnowledgeGraphView_module_css_default = {
19018
+ "frame": "Dk9FoG_frame",
19019
+ "emptyTitle": "Dk9FoG_emptyTitle",
19020
+ "error": "Dk9FoG_error",
19021
+ "detail": "Dk9FoG_detail",
19022
+ "host": "Dk9FoG_host",
19023
+ "retry": "Dk9FoG_retry",
19024
+ "state": "Dk9FoG_state"
19025
+ };
19026
+ //#endregion
19027
+ //#region src/client/graph/KnowledgeGraphView.tsx
18282
19028
  /**
18283
- * Compute the integer percentage of bytes sent.
19029
+ * The graph tab's canvas surface.
18284
19030
  *
18285
- * Returns undefined when the total is unknown, which is a real case: a body sent without
18286
- * a `Content-Length` reports `lengthComputable: false`, and inventing a percentage from
18287
- * a missing denominator is exactly the dishonesty this module avoids.
18288
- * @param loaded - bytes sent so far.
18289
- * @param total - total bytes, when the browser knows it.
18290
- * @param computable - whether the browser reported a usable total.
18291
- * @returns 0-100, or undefined when it cannot be known.
19031
+ * The first version embeds the proven prototype canvas as a same-origin page. The
19032
+ * page owns layout, pan/zoom and the topic detail panel; this component owns the
19033
+ * permission-filtered data and the small message protocol:
19034
+ *
19035
+ * - host → page: `kg:set-graphs`, `kg:select-graph`, `kg:select-topic`
19036
+ * - page → host: `kg:ready` (the panel then (re)sends the payload), `kg:selection`
19037
+ * (acknowledgement only; the rail keeps its own selection state)
19038
+ *
19039
+ * Splitting the data from the rendering is what makes the later native component
19040
+ * a replacement of one file rather than a rewrite of the tab.
19041
+ *
19042
+ * @module @sparkelf/dsh-knowledge-base/client/graph/KnowledgeGraphView
18292
19043
  */
18293
- function uploadPercent(loaded, total, computable) {
18294
- if (!computable || !Number.isFinite(total) || total <= 0) return void 0;
18295
- if (!Number.isFinite(loaded) || loaded < 0) return void 0;
18296
- return Math.min(100, Math.max(0, Math.round(loaded / total * 100)));
18297
- }
18298
19044
  /**
18299
- * Whether enough time has passed to report another progress sample.
19045
+ * The host tokens the embedded page consumes.
18300
19046
  *
18301
- * Kept as a pure predicate so the throttle can be tested without a timer or a network.
18302
- * @param now - the current timestamp in milliseconds.
18303
- * @param last - when the last sample was reported, or undefined if none was.
18304
- * @returns Whether this sample should be reported.
19047
+ * A dedicated list rather than a blanket copy of every custom property: the page
19048
+ * owns its own layout variables, and only the alias colors are the host's to
19049
+ * decide. Missing values are omitted, so the page keeps its first-paint fallback
19050
+ * instead of receiving an empty string that would clear a CSS rule.
18305
19051
  */
18306
- function shouldReportProgress(now, last) {
18307
- if (last === void 0) return true;
18308
- return now - last >= 100;
18309
- }
19052
+ const THEME_TOKENS = [
19053
+ "--dsw-alias-bg-base",
19054
+ "--dsw-alias-bg-layer-1",
19055
+ "--dsw-alias-bg-layer-2",
19056
+ "--dsw-alias-label-primary",
19057
+ "--dsw-alias-label-secondary",
19058
+ "--dsw-alias-label-tertiary",
19059
+ "--dsw-alias-border-l1",
19060
+ "--dsw-alias-border-l2",
19061
+ "--dsw-alias-state-business-primary",
19062
+ "--dsw-alias-link",
19063
+ "--dsw-alias-state-success-primary",
19064
+ "--dsw-alias-state-warn-primary",
19065
+ "--dsw-elevation-panel"
19066
+ ];
18310
19067
  /**
18311
- * Upload one JSON body, reporting byte progress as it goes.
18312
- * @param url - the route to post to.
18313
- * @param payload - the JSON-serialisable body.
18314
- * @param onProgress - called with 0-100 while sending; only called when a percentage is
18315
- * actually known, and throttled to {@link PROGRESS_INTERVAL_MS}.
18316
- * @returns The attempt's outcome. Never rejects: a transport failure is a result, because
18317
- * the caller has to show it either way.
18318
- */
18319
- function uploadJsonWithProgress(url, payload, onProgress) {
18320
- return new Promise((resolve) => {
18321
- let settled = false;
18322
- let lastReport = -Infinity;
18323
- /** Resolve exactly once: XHR can fire both `error` and `loadend`. */
18324
- const finish = (attempt) => {
18325
- if (settled) return;
18326
- settled = true;
18327
- resolve(attempt);
19068
+ * Render the canvas, or the state that explains why there is none.
19069
+ *
19070
+ * @param props - the permission-filtered tree and the current selection.
19071
+ * @returns The canvas surface.
19072
+ */
19073
+ function KnowledgeGraphView(props) {
19074
+ const frameRef = (0, react.useRef)(null);
19075
+ const [frameReady, setFrameReady] = (0, react.useState)(false);
19076
+ const sentDataRef = (0, react.useRef)(false);
19077
+ const loadedGraphRef = (0, react.useRef)(void 0);
19078
+ const loadedTopicRef = (0, react.useRef)(void 0);
19079
+ const graphs = (0, react.useMemo)(() => knowledgeGraphsOf(props.state.tree), [props.state.tree]);
19080
+ const activeGraph = graphs.find((graph) => graph.id === props.activeGraphId) ?? graphs[0];
19081
+ /** Post one message into the embedded page. */
19082
+ const post = (0, react.useCallback)((message) => {
19083
+ const frame = frameRef.current;
19084
+ if (frame === null || frame.contentWindow === null) return;
19085
+ frame.contentWindow.postMessage(message, "*");
19086
+ }, []);
19087
+ /**
19088
+ * Send the host's live color tokens into the embedded page.
19089
+ *
19090
+ * The iframe is a separate document, so `var(--dsw-*)` cannot cross the boundary
19091
+ * by inheritance. Reading the computed values from this document and posting them
19092
+ * is what keeps the canvas on the same light/dark palette as the panel instead of
19093
+ * carrying the prototype's fixed one.
19094
+ */
19095
+ const sendTheme = (0, react.useCallback)(() => {
19096
+ const style = getComputedStyle(document.body);
19097
+ const tokens = {};
19098
+ for (const name of THEME_TOKENS) {
19099
+ const value = style.getPropertyValue(name).trim();
19100
+ if (value !== "") tokens[name] = value;
19101
+ }
19102
+ post({
19103
+ type: "kg:theme",
19104
+ tokens,
19105
+ dark: document.body.hasAttribute("data-ds-dark-theme")
19106
+ });
19107
+ }, [post]);
19108
+ /** Send the whole payload, which makes the page rebuild its canvas. */
19109
+ const sendAll = (0, react.useCallback)(() => {
19110
+ post({
19111
+ type: "kg:set-graphs",
19112
+ graphs,
19113
+ activeGraphId: activeGraph?.id ?? null,
19114
+ selectedTopicId: props.activeTopicId ?? null
19115
+ });
19116
+ loadedGraphRef.current = activeGraph?.id;
19117
+ loadedTopicRef.current = props.activeTopicId;
19118
+ sentDataRef.current = true;
19119
+ }, [
19120
+ post,
19121
+ graphs,
19122
+ activeGraph,
19123
+ props.activeTopicId
19124
+ ]);
19125
+ const sendAllRef = (0, react.useRef)(sendAll);
19126
+ (0, react.useEffect)(() => {
19127
+ sendAllRef.current = sendAll;
19128
+ }, [sendAll]);
19129
+ const onFrameLoad = (0, react.useCallback)(() => {
19130
+ sentDataRef.current = false;
19131
+ setFrameReady(true);
19132
+ }, []);
19133
+ (0, react.useEffect)(() => {
19134
+ if (!frameReady) return;
19135
+ sendTheme();
19136
+ let frame = 0;
19137
+ const schedule = () => {
19138
+ cancelAnimationFrame(frame);
19139
+ frame = requestAnimationFrame(sendTheme);
18328
19140
  };
18329
- const request = new XMLHttpRequest();
18330
- request.open("POST", url, true);
18331
- request.setRequestHeader("content-type", "application/json");
18332
- request.upload.onprogress = (event) => {
18333
- const percent = uploadPercent(event.loaded, event.total, event.lengthComputable);
18334
- if (percent === void 0) return;
18335
- const now = Date.now();
18336
- if (!shouldReportProgress(now, lastReport)) return;
18337
- lastReport = now;
18338
- onProgress(percent);
19141
+ const observer = new MutationObserver(schedule);
19142
+ observer.observe(document.body, {
19143
+ attributes: true,
19144
+ attributeFilter: [
19145
+ "data-ds-dark-theme",
19146
+ "class",
19147
+ "style"
19148
+ ]
19149
+ });
19150
+ observer.observe(document.documentElement, {
19151
+ attributes: true,
19152
+ attributeFilter: ["class", "style"]
19153
+ });
19154
+ return () => {
19155
+ cancelAnimationFrame(frame);
19156
+ observer.disconnect();
18339
19157
  };
18340
- request.onload = () => {
18341
- let body;
18342
- try {
18343
- body = JSON.parse(request.responseText);
18344
- } catch {
18345
- body = void 0;
19158
+ }, [frameReady, sendTheme]);
19159
+ (0, react.useEffect)(() => {
19160
+ sentDataRef.current = false;
19161
+ }, [props.state.tree]);
19162
+ (0, react.useEffect)(() => {
19163
+ if (!frameReady || props.state.kind !== "ready") return;
19164
+ if (graphs.length === 0 || sentDataRef.current) return;
19165
+ sendAllRef.current();
19166
+ }, [
19167
+ frameReady,
19168
+ props.state.kind,
19169
+ props.state.tree,
19170
+ graphs.length
19171
+ ]);
19172
+ (0, react.useEffect)(() => {
19173
+ if (!frameReady || activeGraph === void 0) return;
19174
+ if (loadedGraphRef.current === activeGraph.id) return;
19175
+ post({
19176
+ type: "kg:select-graph",
19177
+ graphId: activeGraph.id
19178
+ });
19179
+ loadedGraphRef.current = activeGraph.id;
19180
+ loadedTopicRef.current = void 0;
19181
+ }, [
19182
+ activeGraph,
19183
+ frameReady,
19184
+ post
19185
+ ]);
19186
+ (0, react.useEffect)(() => {
19187
+ if (!frameReady || props.activeTopicId === void 0) return;
19188
+ if (loadedTopicRef.current === props.activeTopicId) return;
19189
+ post({
19190
+ type: "kg:select-topic",
19191
+ topicId: props.activeTopicId
19192
+ });
19193
+ loadedTopicRef.current = props.activeTopicId;
19194
+ }, [
19195
+ props.activeTopicId,
19196
+ frameReady,
19197
+ post
19198
+ ]);
19199
+ (0, react.useEffect)(() => {
19200
+ const onMessage = (event) => {
19201
+ const message = event.data;
19202
+ if (message === null || typeof message !== "object") return;
19203
+ if (message.type === "kg:ready") {
19204
+ sendTheme();
19205
+ if (!sentDataRef.current && graphs.length > 0) sendAllRef.current();
18346
19206
  }
18347
- finish({
18348
- status: request.status,
18349
- body
18350
- });
18351
- };
18352
- request.onerror = () => {
18353
- finish({
18354
- status: 0,
18355
- body: void 0,
18356
- transportError: "the network request failed"
18357
- });
18358
- };
18359
- request.onabort = () => {
18360
- finish({
18361
- status: 0,
18362
- body: void 0,
18363
- transportError: "the upload was cancelled"
18364
- });
18365
19207
  };
18366
- request.ontimeout = () => {
18367
- finish({
18368
- status: 0,
18369
- body: void 0,
18370
- transportError: "the upload timed out"
18371
- });
19208
+ window.addEventListener("message", onMessage);
19209
+ return () => {
19210
+ window.removeEventListener("message", onMessage);
18372
19211
  };
18373
- try {
18374
- request.send(JSON.stringify(payload));
18375
- } catch (error) {
18376
- finish({
18377
- status: 0,
18378
- body: void 0,
18379
- transportError: error instanceof Error ? error.message : "the upload could not be started"
18380
- });
18381
- }
19212
+ }, [graphs.length, sendTheme]);
19213
+ if (props.state.kind === "failed") return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
19214
+ className: KnowledgeGraphView_module_css_default.state,
19215
+ "data-testid": "kg-view-failed",
19216
+ children: [
19217
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
19218
+ className: KnowledgeGraphView_module_css_default.error,
19219
+ children: props.t("graphFailed")
19220
+ }),
19221
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
19222
+ className: KnowledgeGraphView_module_css_default.detail,
19223
+ children: props.state.error
19224
+ }),
19225
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
19226
+ type: "button",
19227
+ className: KnowledgeGraphView_module_css_default.retry,
19228
+ onClick: props.onRetry,
19229
+ children: props.t("graphRetry")
19230
+ })
19231
+ ]
19232
+ });
19233
+ if (props.state.kind === "loading" && graphs.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
19234
+ className: KnowledgeGraphView_module_css_default.state,
19235
+ "data-testid": "kg-view-loading",
19236
+ children: props.t("graphLoading")
19237
+ });
19238
+ if (graphs.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
19239
+ className: KnowledgeGraphView_module_css_default.state,
19240
+ "data-testid": "kg-view-empty",
19241
+ children: [
19242
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
19243
+ className: KnowledgeGraphView_module_css_default.emptyTitle,
19244
+ children: props.t("graphEmptyTitle")
19245
+ }),
19246
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
19247
+ className: KnowledgeGraphView_module_css_default.detail,
19248
+ children: props.t("graphEmptyBody")
19249
+ }),
19250
+ props.state.tree.denied > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
19251
+ className: KnowledgeGraphView_module_css_default.detail,
19252
+ children: props.t("graphNoAccess")
19253
+ })
19254
+ ]
19255
+ });
19256
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
19257
+ className: KnowledgeGraphView_module_css_default.host,
19258
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("iframe", {
19259
+ ref: frameRef,
19260
+ className: KnowledgeGraphView_module_css_default.frame,
19261
+ title: "知识图谱画布",
19262
+ "data-testid": "kg-canvas-frame",
19263
+ src: kbApiPath(KB_API.graphCanvas),
19264
+ onLoad: onFrameLoad
19265
+ })
18382
19266
  });
18383
19267
  }
18384
19268
  //#endregion
18385
- //#region src/client/KnowledgeSectionHeader.tsx
19269
+ //#region src/client/graph/useKnowledgeGraph.ts
18386
19270
  /**
18387
- * Render one section band.
18388
- * @param props - the name, its trailing controls, and optional placement.
18389
- * @returns The band.
19271
+ * The graph tab's data hook.
19272
+ *
19273
+ * The tree is loaded once per activation and kept across tab switches: moving back
19274
+ * to 「知识库」 and forward to 「图谱」 must not refetch or remount into a blank
19275
+ * canvas, because the tab is the same navigation surface with a different data
19276
+ * source. A caller that changes permissions reloads through {@link reload}.
19277
+ *
19278
+ * The Host's answer is already permission-filtered; this hook never filters by
19279
+ * itself and never receives a raw scope to trim.
19280
+ *
19281
+ * @module @sparkelf/dsh-knowledge-base/client/graph/useKnowledgeGraph
18390
19282
  */
18391
- function KnowledgeSectionHeader(props) {
18392
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18393
- className: props.className === void 0 ? KnowledgePanel_module_css_default.sectionHeader : KnowledgePanel_module_css_default.sectionHeader + " " + props.className,
18394
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
18395
- className: KnowledgePanel_module_css_default.sectionName,
18396
- children: props.name
18397
- }), props.actions !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
18398
- className: KnowledgePanel_module_css_default.sectionActions,
18399
- children: props.actions
18400
- })]
18401
- });
18402
- }
18403
19283
  /**
18404
- * Render one glyph button.
19284
+ * Load the permission-filtered graph tree when the graph tab is first shown.
18405
19285
  *
18406
- * A native button with the band's own class rather than the `Button` primitive:
18407
- * that primitive is the product's labelled action at a 36px control height, while
18408
- * this is the 28x28 icon control the band is specified around.
18409
- * @param props - the accessible name, glyph, and activation handler.
18410
- * @returns The button.
19286
+ * @param active - whether the graph tab is the current scope.
19287
+ * @returns The load state and a reload function.
18411
19288
  */
18412
- function KnowledgeIconButton(props) {
18413
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
18414
- type: "button",
18415
- className: KnowledgePanel_module_css_default.iconButton,
18416
- "aria-label": props.label,
18417
- title: props.label,
18418
- ...props.pressed === void 0 ? {} : { "aria-pressed": props.pressed },
18419
- ...props.disabled === true ? { disabled: true } : {},
18420
- onClick: props.onClick,
18421
- children: props.children
19289
+ function useKnowledgeGraph(active) {
19290
+ const [state, setState] = (0, react.useState)({
19291
+ kind: "idle",
19292
+ tree: emptyKnowledgeGraphTree()
18422
19293
  });
19294
+ const mounted = (0, react.useRef)(true);
19295
+ (0, react.useEffect)(() => () => {
19296
+ mounted.current = false;
19297
+ }, []);
19298
+ const reload = (0, react.useCallback)(async () => {
19299
+ setState((previous) => ({
19300
+ kind: "loading",
19301
+ tree: previous.tree
19302
+ }));
19303
+ try {
19304
+ const response = await fetch(kbApiPath(KB_API.graph), {
19305
+ method: "POST",
19306
+ headers: { "content-type": "application/json" },
19307
+ body: "{}",
19308
+ cache: "no-store"
19309
+ });
19310
+ const body = await readKnowledgeJson(response);
19311
+ if (!response.ok || typeof body.error === "string") throw new Error(typeof body.error === "string" ? body.error : "HTTP " + String(response.status));
19312
+ const tree = body;
19313
+ if (!mounted.current) return;
19314
+ setState({
19315
+ kind: "ready",
19316
+ tree
19317
+ });
19318
+ } catch (error) {
19319
+ if (!mounted.current) return;
19320
+ setState((previous) => ({
19321
+ kind: "failed",
19322
+ tree: previous.tree,
19323
+ error: error instanceof Error ? error.message : String(error)
19324
+ }));
19325
+ }
19326
+ }, []);
19327
+ (0, react.useEffect)(() => {
19328
+ if (active && state.kind === "idle") reload();
19329
+ }, [
19330
+ active,
19331
+ state.kind,
19332
+ reload
19333
+ ]);
19334
+ return {
19335
+ ...state,
19336
+ reload
19337
+ };
18423
19338
  }
18424
19339
  //#endregion
18425
19340
  //#region src/client/useFavorites.ts
@@ -18977,6 +19892,146 @@ window.__ModuleLoader__.load({
18977
19892
  };
18978
19893
  }
18979
19894
  //#endregion
19895
+ //#region \0dsh-css:/root/projects/dsh-plugins-plus/packages/knowledge-base/src/client/KnowledgeFilePreview.module.css.mjs
19896
+ const css$3 = "._7KbGuq_root{border:.5px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex;overflow:hidden}._7KbGuq_head{border-bottom:.5px solid var(--dsw-alias-border-l3);flex:none;align-items:flex-start;gap:12px;padding:12px 16px;display:flex}._7KbGuq_heading{flex:auto;min-width:0}._7KbGuq_title{color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-strong-14);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}._7KbGuq_path{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;overflow:hidden}._7KbGuq_close{border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;flex:none;font-size:18px;line-height:1}._7KbGuq_close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}._7KbGuq_body{flex:auto;min-height:0;padding:14px 18px 20px;overflow:auto}._7KbGuq_pre{color:var(--dsw-alias-label-primary);font:12px/1.7 var(--ds-font-family-code,ui-monospace, monospace);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}._7KbGuq_notice{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);margin:0}._7KbGuq_error{color:var(--dsw-alias-state-error-primary);font:var(--dsw-font-xxs-12);margin:0}";
19897
+ const tagId$3 = "@sparkelf/dsh-knowledge-base/KnowledgeFilePreview.module.css";
19898
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
19899
+ const tag = document.createElement("style");
19900
+ tag.dataset.plugin = "@sparkelf/dsh-knowledge-base";
19901
+ tag.dataset.pluginCss = tagId$3;
19902
+ tag.textContent = css$3;
19903
+ document.head.appendChild(tag);
19904
+ }
19905
+ var KnowledgeFilePreview_module_css_default = {
19906
+ "pre": "_7KbGuq_pre",
19907
+ "close": "_7KbGuq_close",
19908
+ "body": "_7KbGuq_body",
19909
+ "heading": "_7KbGuq_heading",
19910
+ "root": "_7KbGuq_root",
19911
+ "notice": "_7KbGuq_notice",
19912
+ "title": "_7KbGuq_title",
19913
+ "error": "_7KbGuq_error",
19914
+ "path": "_7KbGuq_path",
19915
+ "head": "_7KbGuq_head"
19916
+ };
19917
+ //#endregion
19918
+ //#region src/client/KnowledgeFilePreview.tsx
19919
+ /**
19920
+ * In-page document preview for the knowledge page.
19921
+ *
19922
+ * The knowledge page is a global main panel, and the host's right sidebar only
19923
+ * renders a session-bound preview while a conversation is the active panel. When
19924
+ * the host column is unavailable, this pane is the fallback the reader actually
19925
+ * sees: it reads the document through the same permission-checked `read` route the
19926
+ * preview pane uses and shows the text in place of the old "opened on the right"
19927
+ * notice.
19928
+ *
19929
+ * It deliberately does not replace the host viewer: when `openInSidebar` succeeds
19930
+ * the host tab still owns the document. This pane is the non-blank fallback for the
19931
+ * profile where that column cannot mount.
19932
+ *
19933
+ * @module @sparkelf/dsh-knowledge-base/client
19934
+ */
19935
+ /**
19936
+ * Render one document read through the knowledge read route.
19937
+ *
19938
+ * @param props - the path, copy, and close command.
19939
+ * @returns The preview pane.
19940
+ */
19941
+ function KnowledgeFilePreview(props) {
19942
+ const [state, setState] = (0, react.useState)({ kind: "loading" });
19943
+ const name = props.path.slice(props.path.lastIndexOf("/") + 1);
19944
+ (0, react.useEffect)(() => {
19945
+ let alive = true;
19946
+ setState({ kind: "loading" });
19947
+ (async () => {
19948
+ try {
19949
+ const response = await fetch(kbApiPath(KB_API.read), {
19950
+ method: "POST",
19951
+ headers: { "content-type": "application/json" },
19952
+ body: JSON.stringify({ path: props.path }),
19953
+ cache: "no-store"
19954
+ });
19955
+ const body = await readKnowledgeJson(response);
19956
+ if (!response.ok || typeof body.error === "string") throw new Error(typeof body.error === "string" ? body.error : "HTTP " + String(response.status));
19957
+ if (!alive) return;
19958
+ if (body.kind === "text" && typeof body.content === "string") setState({
19959
+ kind: "text",
19960
+ content: body.content,
19961
+ truncated: body.truncated === true
19962
+ });
19963
+ else if (body.kind === "binary") setState({
19964
+ kind: "binary",
19965
+ size: typeof body.size === "number" ? body.size : 0
19966
+ });
19967
+ else setState({
19968
+ kind: "failed",
19969
+ error: props.t("previewFailed")
19970
+ });
19971
+ } catch (error) {
19972
+ if (!alive) return;
19973
+ setState({
19974
+ kind: "failed",
19975
+ error: error instanceof Error ? error.message : String(error)
19976
+ });
19977
+ }
19978
+ })();
19979
+ return () => {
19980
+ alive = false;
19981
+ };
19982
+ }, [props.path, props.t]);
19983
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
19984
+ className: KnowledgeFilePreview_module_css_default.root,
19985
+ "data-testid": "kg-file-preview",
19986
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", {
19987
+ className: KnowledgeFilePreview_module_css_default.head,
19988
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
19989
+ className: KnowledgeFilePreview_module_css_default.heading,
19990
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
19991
+ className: KnowledgeFilePreview_module_css_default.title,
19992
+ children: name
19993
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
19994
+ className: KnowledgeFilePreview_module_css_default.path,
19995
+ children: props.path
19996
+ })]
19997
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
19998
+ type: "button",
19999
+ className: KnowledgeFilePreview_module_css_default.close,
20000
+ onClick: props.onClose,
20001
+ "aria-label": props.t("previewClose"),
20002
+ children: "×"
20003
+ })]
20004
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20005
+ className: KnowledgeFilePreview_module_css_default.body,
20006
+ children: [
20007
+ state.kind === "loading" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
20008
+ className: KnowledgeFilePreview_module_css_default.notice,
20009
+ children: props.t("previewLoading")
20010
+ }),
20011
+ state.kind === "failed" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
20012
+ className: KnowledgeFilePreview_module_css_default.error,
20013
+ children: [
20014
+ props.t("previewFailed"),
20015
+ " ",
20016
+ state.error
20017
+ ]
20018
+ }),
20019
+ state.kind === "binary" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
20020
+ className: KnowledgeFilePreview_module_css_default.notice,
20021
+ children: props.t("previewBinarySize").replace("{size}", String(state.size))
20022
+ }),
20023
+ state.kind === "text" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [state.truncated && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
20024
+ className: KnowledgeFilePreview_module_css_default.notice,
20025
+ children: props.t("previewTruncated")
20026
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
20027
+ className: KnowledgeFilePreview_module_css_default.pre,
20028
+ children: state.content
20029
+ })] })
20030
+ ]
20031
+ })]
20032
+ });
20033
+ }
20034
+ //#endregion
18980
20035
  //#region ../../../DSH-better-sidebar/src/client/conversation-draft.ts
18981
20036
  /**
18982
20037
  * The separating space an append needs on its left — one space, but never
@@ -19276,13 +20331,13 @@ window.__ModuleLoader__.load({
19276
20331
  }
19277
20332
  var KnowledgeReferencePicker_module_css_default = {
19278
20333
  "body": "uUHBaG_body",
20334
+ "rowName": "uUHBaG_rowName",
19279
20335
  "list": "uUHBaG_list",
19280
- "empty": "uUHBaG_empty",
19281
20336
  "rowWhen": "uUHBaG_rowWhen",
19282
20337
  "error": "uUHBaG_error",
19283
20338
  "content": "uUHBaG_content",
19284
- "footer": "uUHBaG_footer",
19285
- "rowName": "uUHBaG_rowName"
20339
+ "empty": "uUHBaG_empty",
20340
+ "footer": "uUHBaG_footer"
19286
20341
  };
19287
20342
  //#endregion
19288
20343
  //#region src/client/insertReadiness.ts
@@ -19844,10 +20899,10 @@ window.__ModuleLoader__.load({
19844
20899
  document.head.appendChild(tag);
19845
20900
  }
19846
20901
  var KnowledgeSelectionBar_module_css_default = {
19847
- "action": "y8212a_action",
19848
- "actions": "y8212a_actions",
20902
+ "text": "y8212a_text",
19849
20903
  "bar": "y8212a_bar",
19850
- "text": "y8212a_text"
20904
+ "action": "y8212a_action",
20905
+ "actions": "y8212a_actions"
19851
20906
  };
19852
20907
  //#endregion
19853
20908
  //#region src/client/KnowledgeSelectionBar.tsx
@@ -20163,6 +21218,37 @@ window.__ModuleLoader__.load({
20163
21218
  const [state, setState] = (0, react.useState)({ kind: "loading" });
20164
21219
  const [selection, setSelection] = (0, react.useState)({ kind: "home" });
20165
21220
  /**
21221
+ * Which data source the rail tree and the content region show.
21222
+ *
21223
+ * The two pills replace the band's title; this state is the only thing they
21224
+ * switch. `selection` (the KB page) is deliberately left untouched while the
21225
+ * graph tab is open, so moving back restores the same page instead of resetting
21226
+ * to Home.
21227
+ */
21228
+ const [scope, setScope] = (0, react.useState)("kb");
21229
+ /** The permission-filtered graph tree, loaded lazily on first activation. */
21230
+ const graph = useKnowledgeGraph(scope === "graph");
21231
+ const graphNodes = (0, react.useMemo)(() => knowledgeGraphsOf(graph.tree), [graph.tree]);
21232
+ const [activeGraphId, setActiveGraphId] = (0, react.useState)(void 0);
21233
+ const [activeTopicId, setActiveTopicId] = (0, react.useState)(void 0);
21234
+ const activeGraph = graphNodes.find((node) => node.id === activeGraphId);
21235
+ (0, react.useEffect)(() => {
21236
+ if (scope !== "graph" || graph.kind !== "ready" || graphNodes.length === 0) return;
21237
+ setActiveGraphId((current) => current !== void 0 && graphNodes.some((node) => node.id === current) ? current : graphNodes[0]?.id);
21238
+ }, [
21239
+ scope,
21240
+ graph.kind,
21241
+ graphNodes
21242
+ ]);
21243
+ const selectGraph = (0, react.useCallback)((graphId) => {
21244
+ setActiveGraphId(graphId);
21245
+ setActiveTopicId(void 0);
21246
+ }, []);
21247
+ const selectTopic = (0, react.useCallback)((graphId, topicId) => {
21248
+ setActiveGraphId(graphId);
21249
+ setActiveTopicId(topicId);
21250
+ }, []);
21251
+ /**
20166
21252
  * The open document's modification instant, reported by the preview.
20167
21253
  *
20168
21254
  * Held here rather than in the preview because the header draws it: the header is
@@ -20171,8 +21257,6 @@ window.__ModuleLoader__.load({
20171
21257
  * label the next one.
20172
21258
  */
20173
21259
  const [fileMtimeMs, setFileMtimeMs] = (0, react.useState)(void 0);
20174
- /** Why the host could not show a document, when it could not. */
20175
- const [openFailure, setOpenFailure] = (0, react.useState)(void 0);
20176
21260
  /** A real Session created for host-owned previews opened from this panel. */
20177
21261
  const explorerSessionRef = (0, react.useRef)(void 0);
20178
21262
  /**
@@ -20214,8 +21298,7 @@ window.__ModuleLoader__.load({
20214
21298
  path
20215
21299
  });
20216
21300
  const current = props.sessionSource?.getSnapshot().key;
20217
- const outcome = await openInSidebar(props.ctx, typeof current === "string" && current !== "" ? current : void 0, "/workspace", joinPath(config.mountPoint, path), ensureExplorerSession);
20218
- setOpenFailure(isHostMissing(outcome) ? outcome : void 0);
21301
+ await openInSidebar(props.ctx, typeof current === "string" && current !== "" ? current : void 0, "/workspace", joinPath(config.mountPoint, path), ensureExplorerSession);
20219
21302
  };
20220
21303
  const [refreshTick, setRefreshTick] = (0, react.useState)(0);
20221
21304
  /**
@@ -20331,7 +21414,13 @@ window.__ModuleLoader__.load({
20331
21414
  const [grantPath, setGrantPath] = (0, react.useState)(void 0);
20332
21415
  const [folded, setFolded] = (0, react.useState)(readFolded);
20333
21416
  const [treeFilter, setTreeFilter] = (0, react.useState)("");
21417
+ const [graphFilter, setGraphFilter] = (0, react.useState)("");
20334
21418
  const [filterOpen, setFilterOpen] = (0, react.useState)(false);
21419
+ const activeFilter = scope === "graph" ? graphFilter : treeFilter;
21420
+ const setActiveFilter = (value) => {
21421
+ if (scope === "graph") setGraphFilter(value);
21422
+ else setTreeFilter(value);
21423
+ };
20335
21424
  const [pinnedOpen, setPinnedOpen] = (0, react.useState)(true);
20336
21425
  const [focusNew, setFocusNew] = (0, react.useState)(false);
20337
21426
  const t = props.t ?? ((key) => key);
@@ -20747,7 +21836,7 @@ window.__ModuleLoader__.load({
20747
21836
  * hold a pointer sentence, and keeping it costs the reader the width the document
20748
21837
  * itself wants.
20749
21838
  */
20750
- const documentInSidebar = selection.kind === "file" && openFailure === void 0;
21839
+ const documentInSidebar = false;
20751
21840
  const [columnExpanded, setColumnExpanded] = (0, react.useState)(true);
20752
21841
  const [columnOpenedOnce, setColumnOpenedOnce] = (0, react.useState)(false);
20753
21842
  (0, react.useEffect)(() => {
@@ -20764,21 +21853,16 @@ window.__ModuleLoader__.load({
20764
21853
  };
20765
21854
  }, [selection.kind, props.ctx]);
20766
21855
  (0, react.useEffect)(() => {
20767
- if (!documentInSidebar) setColumnOpenedOnce(false);
21856
+ setColumnOpenedOnce(false);
20768
21857
  }, [documentInSidebar]);
20769
- /** True while the reader is actually on screen holding this page's document. */
20770
- const readerOnScreen = documentInSidebar && columnExpanded;
20771
21858
  (0, react.useEffect)(() => {
20772
21859
  const root = document.documentElement;
20773
- if (readerOnScreen) root.setAttribute("data-kb-reader-open", "");
20774
- else root.removeAttribute("data-kb-reader-open");
21860
+ root.removeAttribute("data-kb-reader-open");
20775
21861
  return () => {
20776
21862
  root.removeAttribute("data-kb-reader-open");
20777
21863
  };
20778
- }, [readerOnScreen]);
21864
+ }, [documentInSidebar]);
20779
21865
  (0, react.useEffect)(() => {
20780
- if (readerOnScreen) return;
20781
- if (documentInSidebar && !columnOpenedOnce) return;
20782
21866
  closeSidebar(props.ctx);
20783
21867
  setSelection((current) => current.kind === "file" ? canSeeHome ? { kind: "home" } : { kind: "search" } : current);
20784
21868
  }, [
@@ -20920,7 +22004,7 @@ window.__ModuleLoader__.load({
20920
22004
  className: KnowledgePanel_module_css_default.page,
20921
22005
  children: [
20922
22006
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20923
- className: KnowledgePanel_module_css_default.body + (folded ? " " + KnowledgePanel_module_css_default.bodyCollapsed : "") + (documentInSidebar ? " " + KnowledgePanel_module_css_default.bodyDocument : ""),
22007
+ className: KnowledgePanel_module_css_default.body + (folded ? " " + KnowledgePanel_module_css_default.bodyCollapsed : ""),
20924
22008
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("aside", {
20925
22009
  className: KnowledgePanel_module_css_default.rail,
20926
22010
  children: [
@@ -21078,17 +22162,23 @@ window.__ModuleLoader__.load({
21078
22162
  }),
21079
22163
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
21080
22164
  className: KnowledgePanel_module_css_default.treeBand,
21081
- "aria-label": t("sectionKnowledge"),
22165
+ "aria-label": scope === "graph" ? t("scopeGraph") : t("sectionKnowledge"),
21082
22166
  children: [
21083
22167
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeSectionHeader, {
21084
- name: t("sectionKnowledge"),
22168
+ name: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeScopeTabs, {
22169
+ value: scope,
22170
+ onChange: setScope,
22171
+ label: t("sectionKnowledge"),
22172
+ knowledgeLabel: t("scopeKnowledge"),
22173
+ graphLabel: t("scopeGraph")
22174
+ }),
21085
22175
  actions: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
21086
22176
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeIconButton, {
21087
22177
  label: t("actionFilter"),
21088
22178
  pressed: filterOpen,
21089
22179
  onClick: () => {
21090
22180
  setFilterOpen((current) => {
21091
- if (current) setTreeFilter("");
22181
+ if (current) setActiveFilter("");
21092
22182
  return !current;
21093
22183
  });
21094
22184
  },
@@ -21130,7 +22220,7 @@ window.__ModuleLoader__.load({
21130
22220
  children: t("filterHeading")
21131
22221
  }),
21132
22222
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MenuItemButton, {
21133
- icon: filterOpen || treeFilter !== "" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 16 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {}),
22223
+ icon: filterOpen || activeFilter !== "" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 16 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {}),
21134
22224
  onSelect: () => {
21135
22225
  setFilterOpen(true);
21136
22226
  setSortMenuOpen(false);
@@ -21152,20 +22242,32 @@ window.__ModuleLoader__.load({
21152
22242
  className: KnowledgePanel_module_css_default.treeFilter,
21153
22243
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Input, {
21154
22244
  type: "search",
21155
- value: treeFilter,
22245
+ value: activeFilter,
21156
22246
  icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutlineRegular, { size: 16 }),
21157
22247
  placeholder: t("filterPlaceholder"),
21158
22248
  "aria-label": t("filterPlaceholder"),
21159
22249
  autoFocus: true,
21160
22250
  onChange: (event) => {
21161
- setTreeFilter(event.target.value);
22251
+ setActiveFilter(event.target.value);
21162
22252
  }
21163
22253
  })
21164
22254
  }),
21165
22255
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
21166
22256
  className: KnowledgePanel_module_css_default.treeScroll,
21167
22257
  children: [
21168
- config.mountPoint === "" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
22258
+ scope === "graph" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeGraphTree, {
22259
+ state: graph,
22260
+ t,
22261
+ ...activeGraphId === void 0 ? {} : { activeGraphId },
22262
+ ...activeTopicId === void 0 ? {} : { activeTopicId },
22263
+ filter: graphFilter,
22264
+ onSelectGraph: selectGraph,
22265
+ onSelectTopic: selectTopic,
22266
+ onRetry: () => {
22267
+ graph.reload();
22268
+ }
22269
+ }),
22270
+ scope !== "graph" && (config.mountPoint === "" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
21169
22271
  className: KnowledgePanel_module_css_default.muted,
21170
22272
  children: t("mountPointMissing")
21171
22273
  }) : viewMode.mode === "explorer" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeFileTree, {
@@ -21274,7 +22376,7 @@ window.__ModuleLoader__.load({
21274
22376
  },
21275
22377
  children: t("actionNew")
21276
22378
  })
21277
- }),
22379
+ })),
21278
22380
  selectedPaths.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeSelectionBar, {
21279
22381
  t,
21280
22382
  count: selectedPaths.length,
@@ -21373,18 +22475,40 @@ window.__ModuleLoader__.load({
21373
22475
  ]
21374
22476
  })
21375
22477
  ]
21376
- }), !readerOnScreen && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
22478
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
21377
22479
  className: KnowledgePanel_module_css_default.contentColumn,
21378
22480
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", {
21379
22481
  className: KnowledgePanel_module_css_default.header,
21380
22482
  children: [
21381
22483
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
21382
22484
  className: KnowledgePanel_module_css_default.headerTitle,
21383
- children: sectionTitle(t, rendered)
22485
+ children: scope === "graph" ? t("scopeGraph") + (activeGraph === void 0 ? "" : " / " + (activeGraph.group === "" ? t(activeGraph.scope === "global" ? "bucketGlobal" : activeGraph.scope === "department" ? "bucketDepartment" : "bucketPersonal") : activeGraph.group) + " / " + activeGraph.name) : sectionTitle(t, rendered)
21384
22486
  }),
21385
22487
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
21386
22488
  className: KnowledgePanel_module_css_default.headerFact,
21387
- children: rendered.kind === "file" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
22489
+ children: scope === "graph" ? activeGraph === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
22490
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: String(graphNodes.length) + " " + t("graphUnitGraphs") }),
22491
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
22492
+ className: KnowledgePanel_module_css_default.factDot,
22493
+ "aria-hidden": "true",
22494
+ children: "·"
22495
+ }),
22496
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("graphSelectHint") })
22497
+ ] }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
22498
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: String(activeGraph.counts.topics) + " " + t("graphUnitLines") }),
22499
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
22500
+ className: KnowledgePanel_module_css_default.factDot,
22501
+ "aria-hidden": "true",
22502
+ children: "·"
22503
+ }),
22504
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: String(activeGraph.counts.links) + " " + t("graphUnitRelations") }),
22505
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
22506
+ className: KnowledgePanel_module_css_default.factDot,
22507
+ "aria-hidden": "true",
22508
+ children: "·"
22509
+ }),
22510
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: String(activeGraph.counts.documents) + " " + t("graphUnitDocuments") })
22511
+ ] }) : rendered.kind === "file" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
21388
22512
  fileMtimeMs === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("modifiedAt") + " " + new Date(fileMtimeMs).toLocaleString() }),
21389
22513
  fileMtimeMs === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
21390
22514
  className: KnowledgePanel_module_css_default.factDot,
@@ -21423,7 +22547,7 @@ window.__ModuleLoader__.load({
21423
22547
  setRefreshTick((t) => t + 1);
21424
22548
  setProgressRefresh((n) => n + 1);
21425
22549
  }
21426
- }), pageAction]
22550
+ }), scope === "graph" ? null : pageAction]
21427
22551
  }),
21428
22552
  status.mountState === "pointer-missing" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
21429
22553
  className: KnowledgePanel_module_css_default.headerHint,
@@ -21432,8 +22556,23 @@ window.__ModuleLoader__.load({
21432
22556
  ]
21433
22557
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
21434
22558
  className: KnowledgePanel_module_css_default.content,
22559
+ style: scope === "graph" ? {
22560
+ padding: 0,
22561
+ overflow: "hidden",
22562
+ display: "flex",
22563
+ flexDirection: "column"
22564
+ } : void 0,
21435
22565
  children: [
21436
- rendered.kind === "home" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeHome, {
22566
+ scope === "graph" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeGraphView, {
22567
+ state: graph,
22568
+ t,
22569
+ ...activeGraphId === void 0 ? {} : { activeGraphId },
22570
+ ...activeTopicId === void 0 ? {} : { activeTopicId },
22571
+ onRetry: () => {
22572
+ graph.reload();
22573
+ }
22574
+ }),
22575
+ scope !== "graph" && rendered.kind === "home" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeHome, {
21437
22576
  t,
21438
22577
  locale: props.locale,
21439
22578
  sessionId: explorerSessionId,
@@ -21484,10 +22623,10 @@ window.__ModuleLoader__.load({
21484
22623
  departmentName: state.kind === "ready" ? state.status.caller?.departmentName : void 0,
21485
22624
  canManageGrants: state.kind === "ready" ? state.status.canManageGrants === true : false
21486
22625
  }),
21487
- rendered.kind === "trash" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeTrash, { t }),
21488
- rendered.kind === "audit" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeAudit, { t }),
21489
- rendered.kind === "settings" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeSettings, { t }),
21490
- rendered.kind === "search" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeSearch, {
22626
+ scope !== "graph" && rendered.kind === "trash" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeTrash, { t }),
22627
+ scope !== "graph" && rendered.kind === "audit" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeAudit, { t }),
22628
+ scope !== "graph" && rendered.kind === "settings" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeSettings, { t }),
22629
+ scope !== "graph" && rendered.kind === "search" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeSearch, {
21491
22630
  t,
21492
22631
  search,
21493
22632
  locale: props.locale,
@@ -21512,29 +22651,19 @@ window.__ModuleLoader__.load({
21512
22651
  }
21513
22652
  })
21514
22653
  }),
21515
- rendered.kind === "permissions" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgePermissions, {
22654
+ scope !== "graph" && rendered.kind === "permissions" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgePermissions, {
21516
22655
  t,
21517
22656
  mountPoint: config.mountPoint,
21518
22657
  reloadToken: refreshTick,
21519
22658
  initialPath: grantPath,
21520
22659
  onAction: setPageAction
21521
22660
  }),
21522
- rendered.kind === "file" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
21523
- className: KnowledgePanel_module_css_default.openedElsewhere,
21524
- children: [
21525
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconDeliverDocRegular, {
21526
- size: 24,
21527
- className: KnowledgePanel_module_css_default.emptyGlyph
21528
- }),
21529
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
21530
- className: KnowledgePanel_module_css_default.emptyTitle,
21531
- children: t("openedInSidebar")
21532
- }),
21533
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
21534
- className: KnowledgePanel_module_css_default.muted,
21535
- children: config.mountPoint + "/" + rendered.path
21536
- })
21537
- ]
22661
+ scope !== "graph" && rendered.kind === "file" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(KnowledgeFilePreview, {
22662
+ path: rendered.path,
22663
+ t,
22664
+ onClose: () => {
22665
+ setSelection(canSeeHome ? { kind: "home" } : { kind: "search" });
22666
+ }
21538
22667
  })
21539
22668
  ]
21540
22669
  })]
@@ -22397,58 +23526,58 @@ window.__ModuleLoader__.load({
22397
23526
  document.head.appendChild(tag);
22398
23527
  }
22399
23528
  var WorkflowPlaza_module_css_default = {
22400
- "reviewEmpty": "lYC_0W_reviewEmpty",
22401
- "mineFooter": "lYC_0W_mineFooter",
22402
- "cards": "lYC_0W_cards",
22403
- "detailInstruction": "lYC_0W_detailInstruction",
22404
- "cardTop": "lYC_0W_cardTop",
22405
- "frequencies": "lYC_0W_frequencies",
22406
- "body": "lYC_0W_body",
23529
+ "tab": "lYC_0W_tab",
22407
23530
  "cardDesc": "lYC_0W_cardDesc",
22408
23531
  "frequencyOn": "lYC_0W_frequencyOn",
23532
+ "reviewEmpty": "lYC_0W_reviewEmpty",
23533
+ "page": "lYC_0W_page",
23534
+ "cronInput": "lYC_0W_cronInput",
22409
23535
  "cronValid": "lYC_0W_cronValid",
22410
- "reviewCard": "lYC_0W_reviewCard",
23536
+ "frequency": "lYC_0W_frequency",
22411
23537
  "failure": "lYC_0W_failure",
23538
+ "state": "lYC_0W_state",
23539
+ "headerRow": "lYC_0W_headerRow",
23540
+ "cardCron": "lYC_0W_cardCron",
22412
23541
  "reviewMeta": "lYC_0W_reviewMeta",
22413
- "tabs": "lYC_0W_tabs",
22414
- "pageTitle": "lYC_0W_pageTitle",
22415
- "page": "lYC_0W_page",
22416
- "dialogIntro": "lYC_0W_dialogIntro",
22417
- "fieldLabel": "lYC_0W_fieldLabel",
22418
- "reviewHead": "lYC_0W_reviewHead",
23542
+ "body": "lYC_0W_body",
22419
23543
  "mark": "lYC_0W_mark",
22420
- "detailDialogBody": "lYC_0W_detailDialogBody",
22421
- "actions": "lYC_0W_actions",
22422
- "reviewList": "lYC_0W_reviewList",
22423
- "field": "lYC_0W_field",
22424
- "tabActive": "lYC_0W_tabActive",
22425
- "reviewDescription": "lYC_0W_reviewDescription",
22426
- "detailDescription": "lYC_0W_detailDescription",
23544
+ "review": "lYC_0W_review",
22427
23545
  "mineStatus": "lYC_0W_mineStatus",
23546
+ "cardIcon": "lYC_0W_cardIcon",
23547
+ "mineFooter": "lYC_0W_mineFooter",
23548
+ "cardTop": "lYC_0W_cardTop",
23549
+ "reviewHead": "lYC_0W_reviewHead",
23550
+ "reviewDescription": "lYC_0W_reviewDescription",
23551
+ "reviewNote": "lYC_0W_reviewNote",
22428
23552
  "mineScope": "lYC_0W_mineScope",
23553
+ "reviewCard": "lYC_0W_reviewCard",
22429
23554
  "dialogBody": "lYC_0W_dialogBody",
22430
- "reviewPrompt": "lYC_0W_reviewPrompt",
22431
- "reviewNote": "lYC_0W_reviewNote",
22432
- "cronInput": "lYC_0W_cronInput",
23555
+ "fieldLabel": "lYC_0W_fieldLabel",
23556
+ "reviewTitle": "lYC_0W_reviewTitle",
23557
+ "card": "lYC_0W_card",
23558
+ "detailInstruction": "lYC_0W_detailInstruction",
23559
+ "cronInvalid": "lYC_0W_cronInvalid",
22433
23560
  "cardFoot": "lYC_0W_cardFoot",
22434
- "mineTime": "lYC_0W_mineTime",
22435
23561
  "dialogFoot": "lYC_0W_dialogFoot",
22436
- "frequency": "lYC_0W_frequency",
22437
- "failureRow": "lYC_0W_failureRow",
22438
- "state": "lYC_0W_state",
22439
- "cronInvalid": "lYC_0W_cronInvalid",
22440
- "headerRow": "lYC_0W_headerRow",
22441
- "cardIcon": "lYC_0W_cardIcon",
22442
- "cardCron": "lYC_0W_cardCron",
22443
- "tab": "lYC_0W_tab",
22444
- "card": "lYC_0W_card",
22445
- "review": "lYC_0W_review",
22446
- "cardTitle": "lYC_0W_cardTitle",
23562
+ "tabActive": "lYC_0W_tabActive",
23563
+ "field": "lYC_0W_field",
23564
+ "reviewPrompt": "lYC_0W_reviewPrompt",
23565
+ "dialogIntro": "lYC_0W_dialogIntro",
23566
+ "detailDialogBody": "lYC_0W_detailDialogBody",
23567
+ "reviewActions": "lYC_0W_reviewActions",
23568
+ "frequencies": "lYC_0W_frequencies",
23569
+ "reviewList": "lYC_0W_reviewList",
23570
+ "actions": "lYC_0W_actions",
22447
23571
  "tabCount": "lYC_0W_tabCount",
22448
- "reviewTitle": "lYC_0W_reviewTitle",
23572
+ "pageTitle": "lYC_0W_pageTitle",
22449
23573
  "mineTags": "lYC_0W_mineTags",
22450
- "reviewActions": "lYC_0W_reviewActions",
22451
- "detailFacts": "lYC_0W_detailFacts"
23574
+ "cardTitle": "lYC_0W_cardTitle",
23575
+ "detailFacts": "lYC_0W_detailFacts",
23576
+ "cards": "lYC_0W_cards",
23577
+ "failureRow": "lYC_0W_failureRow",
23578
+ "tabs": "lYC_0W_tabs",
23579
+ "detailDescription": "lYC_0W_detailDescription",
23580
+ "mineTime": "lYC_0W_mineTime"
22452
23581
  };
22453
23582
  //#endregion
22454
23583
  //#region src/client/workflows/WorkflowPlaza.tsx