@qodalis/vue-cli 2.0.0-beta.12 → 2.0.0-beta.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -375,7 +375,7 @@ var CliPanel = defineComponent3({
375
375
  const statusServerState = ref2("none");
376
376
  const statusServerDetails = ref2([]);
377
377
  const statusUptime = ref2(0);
378
- const statusText = ref2(null);
378
+ const notification = ref2(null);
379
379
  const servicesDropdownOpen = ref2(false);
380
380
  const serversDropdownOpen = ref2(false);
381
381
  const servicesDropdownTriggerRect = ref2(null);
@@ -401,8 +401,8 @@ var CliPanel = defineComponent3({
401
401
  statusExecutionState.value = running ? "running" : "idle";
402
402
  const result = context.lastCommandResult;
403
403
  statusLastCommand.value = result ? { name: result.command, success: result.success } : null;
404
- const text = context.getStatusText?.();
405
- statusText.value = text || null;
404
+ const notif = context.notifier?.current;
405
+ notification.value = notif || null;
406
406
  }, 300);
407
407
  globalPollTimer = setInterval(() => {
408
408
  const tab = tabs.value.find((t) => t.id === resolvedActiveTabId.value);
@@ -898,11 +898,62 @@ var CliPanel = defineComponent3({
898
898
  h2("span", { class: "cli-panel-status-icon", innerHTML: "↑" }),
899
899
  h2("span", { class: "cli-panel-status-label" }, formattedUptime.value)
900
900
  ]) : null,
901
- // Custom status text
902
- statusText.value ? h2("span", { class: "cli-panel-status-item status-text" }, [
903
- h2("span", { class: "cli-panel-status-label" }, statusText.value)
901
+ // Custom notification
902
+ notification.value ? h2("span", { class: `cli-panel-status-item status-text level-${notification.value.level}` }, [
903
+ h2("span", { class: "cli-panel-status-label" }, notification.value.message)
904
904
  ]) : null
905
905
  ].filter(Boolean)) : null,
906
+ // Compact status indicators (left/right positions — CSS controls visibility)
907
+ h2("div", { class: "cli-panel-status-indicators-compact" }, [
908
+ // Execution state
909
+ h2("span", { class: "cli-panel-status-compact-item", title: statusExecutionState.value }, [
910
+ h2("span", { class: ["cli-panel-status-dot", statusExecutionState.value === "running" ? "dot-running" : "dot-idle"].join(" ") })
911
+ ]),
912
+ // Background services
913
+ statusServiceCount.value.total > 0 ? h2("span", {
914
+ class: "cli-panel-status-compact-item status-clickable",
915
+ title: `${statusServiceCount.value.running}/${statusServiceCount.value.total} services`,
916
+ onClick: (e) => {
917
+ e.stopPropagation();
918
+ servicesDropdownTriggerRect.value = e.currentTarget.getBoundingClientRect();
919
+ servicesDropdownOpen.value = !servicesDropdownOpen.value;
920
+ serversDropdownOpen.value = false;
921
+ }
922
+ }, [
923
+ h2("span", { class: "cli-panel-status-icon", innerHTML: "⚙" })
924
+ ]) : null,
925
+ // Last command
926
+ statusLastCommand.value ? h2("span", {
927
+ class: "cli-panel-status-compact-item",
928
+ title: `${statusLastCommand.value.success ? "\u2713" : "\u2717"} ${statusLastCommand.value.name}`
929
+ }, [
930
+ h2("span", {
931
+ class: ["cli-panel-status-icon", statusLastCommand.value.success ? "status-success" : "status-error"].join(" "),
932
+ innerHTML: statusLastCommand.value.success ? "✓" : "✕"
933
+ })
934
+ ]) : null,
935
+ // Server connection
936
+ statusServerState.value !== "none" ? h2("span", {
937
+ class: "cli-panel-status-compact-item status-clickable",
938
+ title: `${statusServerDetails.value.filter((s) => s.connected).length}/${statusServerDetails.value.length} servers`,
939
+ onClick: (e) => {
940
+ e.stopPropagation();
941
+ serversDropdownTriggerRect.value = e.currentTarget.getBoundingClientRect();
942
+ serversDropdownOpen.value = !serversDropdownOpen.value;
943
+ servicesDropdownOpen.value = false;
944
+ }
945
+ }, [
946
+ h2("span", { class: ["cli-panel-status-dot", statusServerState.value === "connected" ? "dot-idle" : "dot-error"].join(" ") })
947
+ ]) : null,
948
+ // Uptime
949
+ statusUptime.value > 0 ? h2("span", { class: "cli-panel-status-compact-item status-muted", title: formattedUptime.value }, [
950
+ h2("span", { class: "cli-panel-status-icon", innerHTML: "↑" })
951
+ ]) : null,
952
+ // Notification
953
+ notification.value ? h2("span", { class: "cli-panel-status-compact-item", title: notification.value.message }, [
954
+ h2("span", { class: `cli-panel-status-compact-dot level-${notification.value.level}` })
955
+ ]) : null
956
+ ].filter(Boolean)),
906
957
  h2("div", { class: "cli-panel-action-buttons" }, [
907
958
  h2("div", {
908
959
  class: "cli-panel-btn-position-wrapper",
@@ -1307,7 +1358,17 @@ var CliPanel = defineComponent3({
1307
1358
  style: (() => {
1308
1359
  const rect = servicesDropdownTriggerRect.value;
1309
1360
  if (!rect) return {};
1310
- return resolvedPosition.value === "top" ? { position: "fixed", top: `${rect.bottom + 4}px`, left: `${rect.left}px`, zIndex: 1100 } : { position: "fixed", bottom: `${window.innerHeight - rect.top + 4}px`, left: `${rect.left}px`, zIndex: 1100 };
1361
+ const base = { position: "fixed", zIndex: 1100 };
1362
+ switch (resolvedPosition.value) {
1363
+ case "top":
1364
+ return { ...base, top: `${rect.bottom + 4}px`, left: `${rect.left}px` };
1365
+ case "left":
1366
+ return { ...base, top: `${rect.top}px`, left: `${rect.right + 4}px` };
1367
+ case "right":
1368
+ return { ...base, top: `${rect.top}px`, right: `${window.innerWidth - rect.left + 4}px` };
1369
+ default:
1370
+ return { ...base, bottom: `${window.innerHeight - rect.top + 4}px`, left: `${rect.left}px` };
1371
+ }
1311
1372
  })(),
1312
1373
  onClick: (e) => e.stopPropagation()
1313
1374
  }, [
@@ -1333,7 +1394,17 @@ var CliPanel = defineComponent3({
1333
1394
  style: (() => {
1334
1395
  const rect = serversDropdownTriggerRect.value;
1335
1396
  if (!rect) return {};
1336
- return resolvedPosition.value === "top" ? { position: "fixed", top: `${rect.bottom + 4}px`, left: `${rect.left}px`, zIndex: 1100 } : { position: "fixed", bottom: `${window.innerHeight - rect.top + 4}px`, left: `${rect.left}px`, zIndex: 1100 };
1397
+ const base = { position: "fixed", zIndex: 1100 };
1398
+ switch (resolvedPosition.value) {
1399
+ case "top":
1400
+ return { ...base, top: `${rect.bottom + 4}px`, left: `${rect.left}px` };
1401
+ case "left":
1402
+ return { ...base, top: `${rect.top}px`, left: `${rect.right + 4}px` };
1403
+ case "right":
1404
+ return { ...base, top: `${rect.top}px`, right: `${window.innerWidth - rect.left + 4}px` };
1405
+ default:
1406
+ return { ...base, bottom: `${window.innerHeight - rect.top + 4}px`, left: `${rect.left}px` };
1407
+ }
1337
1408
  })(),
1338
1409
  onClick: (e) => e.stopPropagation()
1339
1410
  }, [