@phren/cli 0.0.18 → 0.0.20

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.
@@ -2,7 +2,7 @@ import { WEB_UI_STYLES, renderWebUiScript } from "./memory-ui-assets.js";
2
2
  import { renderGraphScript } from "./memory-ui-graph.js";
3
3
  import { readSyncSnapshot } from "./memory-ui-data.js";
4
4
  import { PROJECT_REFERENCE_UI_STYLES, SETTINGS_TAB_UI_STYLES, TASK_UI_STYLES } from "./memory-ui-styles.js";
5
- import { renderSharedWebUiHelpers, renderSkillUiEnhancementScript, renderProjectReferenceEnhancementScript, renderReviewQueueEditSyncScript, renderTasksAndSettingsScript, renderSearchScript, renderEventWiringScript, } from "./memory-ui-scripts.js";
5
+ import { renderSharedWebUiHelpers, renderSkillUiEnhancementScript, renderProjectReferenceEnhancementScript, renderReviewQueueEditSyncScript, renderTasksAndSettingsScript, renderSearchScript, renderEventWiringScript, renderGraphHostScript, } from "./memory-ui-scripts.js";
6
6
  function h(s) {
7
7
  return s
8
8
  .replace(/&/g, "&")
@@ -96,7 +96,7 @@ ${TASK_UI_STYLES}
96
96
  </label>
97
97
  <span id="review-filter-count" class="text-muted" style="font-size:var(--text-sm);margin-left:auto"></span>
98
98
  <label id="review-select-all" style="display:none;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--muted);cursor:pointer;user-select:none">
99
- <input type="checkbox" onchange="toggleSelectAll(this.checked)" style="width:14px;height:14px;cursor:pointer;accent-color:var(--accent)" />
99
+ <input type="checkbox" id="review-select-all-cb" style="width:14px;height:14px;cursor:pointer;accent-color:var(--accent)" />
100
100
  Select all
101
101
  </label>
102
102
  <span id="review-sync-status" class="review-sync-dot" title="Sync status">
@@ -106,9 +106,9 @@ ${TASK_UI_STYLES}
106
106
 
107
107
  <div id="batch-bar" class="batch-bar">
108
108
  <span id="batch-count" class="batch-bar-count"></span>
109
- <button class="btn btn-sm btn-approve" onclick="batchAction('approve')">Approve selected</button>
110
- <button class="btn btn-sm btn-reject" onclick="batchAction('reject')">Reject selected</button>
111
- <button class="btn btn-sm" onclick="clearBatchSelection()">Clear</button>
109
+ <button class="btn btn-sm btn-approve" data-batch-action="approve">Approve selected</button>
110
+ <button class="btn btn-sm btn-reject" data-batch-action="reject">Reject selected</button>
111
+ <button class="btn btn-sm" data-batch-action="clear">Clear</button>
112
112
  </div>
113
113
 
114
114
  <div class="review-cards" id="review-cards-list">
@@ -155,7 +155,7 @@ ${TASK_UI_STYLES}
155
155
  <!-- ── Graph Tab ─────────────────────────────────────────── -->
156
156
  <div id="tab-graph" class="tab-content">
157
157
  <div class="graph-container">
158
- <canvas id="graph-canvas"></canvas>
158
+ <div id="graph-canvas" aria-label="Knowledge graph"></div>
159
159
  <div class="graph-tooltip" id="graph-tooltip"></div>
160
160
  <div class="graph-controls">
161
161
  <button id="graph-zoom-in" title="Zoom in">+</button>
@@ -167,15 +167,11 @@ ${TASK_UI_STYLES}
167
167
  <div class="graph-filter" id="graph-project-filter"></div>
168
168
  <div class="graph-filter" id="graph-limit-row" style="align-items:center;gap:8px"></div>
169
169
  </div>
170
- <!-- legend removed: colors explained in Filters dropdown -->
171
- </div>
172
- <div id="graph-detail-panel" class="card" style="margin-top:16px">
173
- <div class="card-header">
174
- <h2>Selected Bubble</h2>
175
- <span id="graph-detail-meta" class="text-muted" style="font-size:var(--text-sm)">Click a bubble to inspect it.</span>
176
- </div>
177
- <div class="card-body" id="graph-detail-body" style="display:flex;flex-direction:column;gap:12px">
178
- <p class="text-muted" style="margin:0">Use the graph filters, then click a project or finding bubble to pin its details here.</p>
170
+ <div id="graph-node-popover" style="display:none;position:absolute;left:0;top:0;z-index:12;max-width:min(440px,calc(100% - 24px));pointer-events:none">
171
+ <div id="graph-node-popover-card" class="card" style="pointer-events:auto;position:relative;box-shadow:var(--shadow-lg);border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 96%, transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)">
172
+ <button id="graph-node-close" type="button" aria-label="Close selected node" title="Close" style="position:absolute;top:10px;right:10px;width:38px;height:38px;border-radius:999px;border:1px solid var(--border);background:var(--surface-raised);color:var(--ink);cursor:pointer;font-size:20px;line-height:1;display:grid;place-items:center">×</button>
173
+ <div id="graph-node-content" style="padding:18px 18px 16px 18px"></div>
174
+ </div>
179
175
  </div>
180
176
  </div>
181
177
  </div>
@@ -308,6 +304,9 @@ ${renderWebUiScript(authToken || "")}
308
304
  ${renderGraphScript()}
309
305
  </script>
310
306
  <script${nonceAttr}>
307
+ ${renderGraphHostScript()}
308
+ </script>
309
+ <script${nonceAttr}>
311
310
  ${renderReviewQueueEditSyncScript()}
312
311
  </script>
313
312
  <script${nonceAttr}>
@@ -320,10 +319,10 @@ ${renderSkillUiEnhancementScript(h(authToken || ""))}
320
319
  ${renderProjectReferenceEnhancementScript(h(authToken || ""))}
321
320
  </script>
322
321
  <script${nonceAttr}>
323
- ${renderTasksAndSettingsScript(h(authToken || ""))}
322
+ ${renderTasksAndSettingsScript(authToken || "")}
324
323
  </script>
325
324
  <script${nonceAttr}>
326
- ${renderSearchScript(h(authToken || ""))}
325
+ ${renderSearchScript(authToken || "")}
327
326
  </script>
328
327
  <script${nonceAttr}>
329
328
  ${renderEventWiringScript()}