@lokvis/ui-react 0.2.1 → 0.4.1

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.
Files changed (165) hide show
  1. package/dist/components/AssetPanel.d.ts.map +1 -1
  2. package/dist/components/AssetPanel.js +18 -62
  3. package/dist/components/AssetPanel.js.map +1 -1
  4. package/dist/components/Canvas.d.ts +4 -4
  5. package/dist/components/Canvas.d.ts.map +1 -1
  6. package/dist/components/Canvas.js +9 -9
  7. package/dist/components/Canvas.js.map +1 -1
  8. package/dist/components/CommandPalette.d.ts +7 -7
  9. package/dist/components/CommandPalette.d.ts.map +1 -1
  10. package/dist/components/CommandPalette.js +10 -10
  11. package/dist/components/CommandPalette.js.map +1 -1
  12. package/dist/components/CompareSlider.d.ts +9 -8
  13. package/dist/components/CompareSlider.d.ts.map +1 -1
  14. package/dist/components/CompareSlider.js +10 -9
  15. package/dist/components/CompareSlider.js.map +1 -1
  16. package/dist/components/DownloadPanel.d.ts +3 -3
  17. package/dist/components/DownloadPanel.d.ts.map +1 -1
  18. package/dist/components/DownloadPanel.js +10 -17
  19. package/dist/components/DownloadPanel.js.map +1 -1
  20. package/dist/components/ErrorBanner.d.ts +2 -2
  21. package/dist/components/ErrorBanner.d.ts.map +1 -1
  22. package/dist/components/ErrorBanner.js +3 -3
  23. package/dist/components/ErrorBanner.js.map +1 -1
  24. package/dist/components/ErrorBoundary.d.ts +40 -0
  25. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  26. package/dist/components/ErrorBoundary.js +52 -0
  27. package/dist/components/ErrorBoundary.js.map +1 -0
  28. package/dist/components/ExifPanel.d.ts +1 -1
  29. package/dist/components/ExifPanel.d.ts.map +1 -1
  30. package/dist/components/ExifPanel.js +2 -2
  31. package/dist/components/ExifPanel.js.map +1 -1
  32. package/dist/components/GlobalDropzone.d.ts +5 -5
  33. package/dist/components/GlobalDropzone.d.ts.map +1 -1
  34. package/dist/components/GlobalDropzone.js +15 -8
  35. package/dist/components/GlobalDropzone.js.map +1 -1
  36. package/dist/components/HistoryPanel.d.ts +2 -2
  37. package/dist/components/HistoryPanel.d.ts.map +1 -1
  38. package/dist/components/HistoryPanel.js +23 -23
  39. package/dist/components/HistoryPanel.js.map +1 -1
  40. package/dist/components/Inspector.d.ts.map +1 -1
  41. package/dist/components/Inspector.js +13 -10
  42. package/dist/components/Inspector.js.map +1 -1
  43. package/dist/components/ParamForm.d.ts.map +1 -1
  44. package/dist/components/ParamForm.js +10 -7
  45. package/dist/components/ParamForm.js.map +1 -1
  46. package/dist/components/PipelineBar.d.ts.map +1 -1
  47. package/dist/components/PipelineBar.js +19 -28
  48. package/dist/components/PipelineBar.js.map +1 -1
  49. package/dist/components/ProgressBar.d.ts +4 -4
  50. package/dist/components/ProgressBar.d.ts.map +1 -1
  51. package/dist/components/ProgressBar.js +8 -8
  52. package/dist/components/ProgressBar.js.map +1 -1
  53. package/dist/components/StatusBar.d.ts +3 -3
  54. package/dist/components/StatusBar.d.ts.map +1 -1
  55. package/dist/components/StatusBar.js +12 -21
  56. package/dist/components/StatusBar.js.map +1 -1
  57. package/dist/components/StatusDot.d.ts +12 -0
  58. package/dist/components/StatusDot.d.ts.map +1 -0
  59. package/dist/components/StatusDot.js +15 -0
  60. package/dist/components/StatusDot.js.map +1 -0
  61. package/dist/components/ThemeToggle.d.ts +4 -4
  62. package/dist/components/ThemeToggle.d.ts.map +1 -1
  63. package/dist/components/ThemeToggle.js +7 -7
  64. package/dist/components/ThemeToggle.js.map +1 -1
  65. package/dist/components/ToolRunner.d.ts +53 -0
  66. package/dist/components/ToolRunner.d.ts.map +1 -0
  67. package/dist/components/ToolRunner.js +142 -0
  68. package/dist/components/ToolRunner.js.map +1 -0
  69. package/dist/components/Toolbar.d.ts.map +1 -1
  70. package/dist/components/Toolbar.js +3 -3
  71. package/dist/components/Toolbar.js.map +1 -1
  72. package/dist/components/WorkflowEditor.d.ts +6 -6
  73. package/dist/components/WorkflowEditor.d.ts.map +1 -1
  74. package/dist/components/WorkflowEditor.js +40 -49
  75. package/dist/components/WorkflowEditor.js.map +1 -1
  76. package/dist/components/WorkflowTemplates.d.ts +2 -2
  77. package/dist/components/WorkflowTemplates.d.ts.map +1 -1
  78. package/dist/components/WorkflowTemplates.js +17 -7
  79. package/dist/components/WorkflowTemplates.js.map +1 -1
  80. package/dist/components/Workspace.d.ts +45 -23
  81. package/dist/components/Workspace.d.ts.map +1 -1
  82. package/dist/components/Workspace.js +87 -40
  83. package/dist/components/Workspace.js.map +1 -1
  84. package/dist/hooks/useCustomPresets.d.ts +98 -0
  85. package/dist/hooks/useCustomPresets.d.ts.map +1 -0
  86. package/dist/hooks/useCustomPresets.js +210 -0
  87. package/dist/hooks/useCustomPresets.js.map +1 -0
  88. package/dist/hooks/useLokvis.d.ts +19 -1
  89. package/dist/hooks/useLokvis.d.ts.map +1 -1
  90. package/dist/hooks/useLokvis.js +30 -9
  91. package/dist/hooks/useLokvis.js.map +1 -1
  92. package/dist/index.d.ts +4 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +6 -0
  95. package/dist/index.js.map +1 -1
  96. package/dist/store/assets-slice.d.ts +8 -1
  97. package/dist/store/assets-slice.d.ts.map +1 -1
  98. package/dist/store/assets-slice.js +101 -54
  99. package/dist/store/assets-slice.js.map +1 -1
  100. package/dist/store/capabilities-slice.d.ts +1 -1
  101. package/dist/store/capabilities-slice.d.ts.map +1 -1
  102. package/dist/store/capabilities-slice.js +8 -1
  103. package/dist/store/capabilities-slice.js.map +1 -1
  104. package/dist/store/index.d.ts +1 -1
  105. package/dist/store/index.d.ts.map +1 -1
  106. package/dist/store/index.js +1 -1
  107. package/dist/store/index.js.map +1 -1
  108. package/dist/store/runtime-slice.d.ts.map +1 -1
  109. package/dist/store/runtime-slice.js +22 -16
  110. package/dist/store/runtime-slice.js.map +1 -1
  111. package/dist/store/subscribe-utils.d.ts +45 -0
  112. package/dist/store/subscribe-utils.d.ts.map +1 -0
  113. package/dist/store/subscribe-utils.js +69 -0
  114. package/dist/store/subscribe-utils.js.map +1 -0
  115. package/dist/store/types.d.ts +19 -11
  116. package/dist/store/types.d.ts.map +1 -1
  117. package/dist/store/types.js +0 -10
  118. package/dist/store/types.js.map +1 -1
  119. package/dist/store/workflow-slice.d.ts +1 -1
  120. package/dist/store/workflow-slice.d.ts.map +1 -1
  121. package/dist/store/workflow-slice.js +19 -51
  122. package/dist/store/workflow-slice.js.map +1 -1
  123. package/dist/utils.d.ts +24 -0
  124. package/dist/utils.d.ts.map +1 -0
  125. package/dist/utils.js +31 -0
  126. package/dist/utils.js.map +1 -0
  127. package/package.json +7 -6
  128. package/src/components/AssetPanel.tsx +224 -264
  129. package/src/components/Canvas.tsx +178 -174
  130. package/src/components/CommandPalette.tsx +242 -242
  131. package/src/components/CompareSlider.tsx +168 -165
  132. package/src/components/DownloadPanel.tsx +201 -207
  133. package/src/components/ErrorBanner.tsx +64 -64
  134. package/src/components/ErrorBoundary.tsx +101 -0
  135. package/src/components/ExifPanel.tsx +154 -154
  136. package/src/components/GlobalDropzone.tsx +175 -170
  137. package/src/components/HistoryPanel.tsx +219 -219
  138. package/src/components/Inspector.tsx +145 -137
  139. package/src/components/ParamForm.tsx +140 -137
  140. package/src/components/PipelineBar.tsx +97 -104
  141. package/src/components/ProgressBar.tsx +78 -78
  142. package/src/components/StatusBar.tsx +145 -152
  143. package/src/components/StatusDot.tsx +27 -0
  144. package/src/components/ThemeToggle.tsx +98 -98
  145. package/src/components/ToolRunner.tsx +352 -0
  146. package/src/components/Toolbar.tsx +65 -65
  147. package/src/components/WorkflowEditor.tsx +333 -326
  148. package/src/components/WorkflowTemplates.tsx +101 -78
  149. package/src/components/Workspace.tsx +310 -223
  150. package/src/css-modules.d.ts +3 -0
  151. package/src/hooks/useCustomPresets.ts +284 -0
  152. package/src/hooks/useLokvis.ts +43 -10
  153. package/src/index.ts +7 -0
  154. package/src/store/assets-slice.ts +106 -52
  155. package/src/store/capabilities-slice.ts +10 -2
  156. package/src/store/index.ts +1 -1
  157. package/src/store/runtime-slice.ts +20 -15
  158. package/src/store/subscribe-utils.ts +82 -0
  159. package/src/store/types.ts +19 -12
  160. package/src/store/workflow-slice.ts +19 -53
  161. package/src/utils.ts +41 -0
  162. package/dist/store.d.ts +0 -76
  163. package/dist/store.d.ts.map +0 -1
  164. package/dist/store.js +0 -217
  165. package/dist/store.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryPanel.js","sourceRoot":"","sources":["../../src/components/HistoryPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HistoryPanel.js","sourceRoot":"","sources":["../../src/components/HistoryPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Inspector.d.ts","sourceRoot":"","sources":["../../src/components/Inspector.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAc,EAAE,EAAE,cAAc,qBAiJ3D"}
1
+ {"version":3,"file":"Inspector.d.ts","sourceRoot":"","sources":["../../src/components/Inspector.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,WAAW,cAAc;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAc,EAAE,EAAE,cAAc,qBAwJ3D"}
@@ -6,8 +6,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  * 下半部分:可用 Capabilities 列表(点击添加到工作流)
7
7
  */
8
8
  import * as React from 'react';
9
- import { Icon } from '@lokvis/ui-core';
9
+ import { Icon, Input } from '@lokvis/ui-core';
10
10
  import { useWorkspaceStore } from '../store/index.js';
11
+ import { filterCapabilities } from '../utils.js';
11
12
  import { ParamForm } from './ParamForm.js';
12
13
  import { ExifPanel } from './ExifPanel.js';
13
14
  export function Inspector({ className = '' }) {
@@ -15,13 +16,13 @@ export function Inspector({ className = '' }) {
15
16
  const nodes = useWorkspaceStore((s) => s.nodes);
16
17
  const selectedNodeId = useWorkspaceStore((s) => s.selectedNodeId);
17
18
  const capabilityMap = useWorkspaceStore((s) => s.capabilityMap);
19
+ const stubCapabilities = useWorkspaceStore((s) => s.stubCapabilities);
18
20
  const addNode = useWorkspaceStore((s) => s.addNode);
19
21
  const updateNodeParams = useWorkspaceStore((s) => s.updateNodeParams);
20
22
  const selectedNode = nodes.find((n) => n.id === selectedNodeId);
21
23
  const [filter, setFilter] = React.useState('');
22
24
  const [configureOpen, setConfigureOpen] = React.useState(true);
23
- const filtered = capabilities.filter((c) => c.name.toLowerCase().includes(filter.toLowerCase()) ||
24
- c.description.toLowerCase().includes(filter.toLowerCase()));
25
+ const filtered = filterCapabilities(capabilities, filter);
25
26
  // 按域分组
26
27
  const grouped = React.useMemo(() => {
27
28
  const map = new Map();
@@ -34,15 +35,17 @@ export function Inspector({ className = '' }) {
34
35
  return map;
35
36
  }, [filtered]);
36
37
  const showConfigure = selectedNode && capabilityMap[selectedNode.capability];
37
- return (_jsxs("aside", { className: `flex w-72 shrink-0 flex-col border-l border-zinc-200 dark:border-zinc-800 ${className}`, children: [_jsx(ExifPanel, {}), showConfigure && (_jsxs("div", { className: "shrink-0 border-b border-zinc-200 dark:border-zinc-800", children: [_jsxs("button", { type: "button", onClick: () => setConfigureOpen(!configureOpen), className: "flex w-full items-center justify-between px-3 h-10 text-left transition-colors hover:bg-zinc-50 dark:hover:bg-zinc-800/50", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Icon, { size: 12, className: `text-zinc-400 transition-transform ${configureOpen ? 'rotate-90' : ''}`, children: _jsx("path", { d: "m9 5 7 7-7 7" }) }), _jsx("span", { className: "text-[11px] font-semibold uppercase tracking-wider text-zinc-400", children: "Configure" })] }), _jsx("span", { className: "font-mono text-[10px] text-indigo-500 bg-indigo-50 dark:bg-indigo-950/30 px-1.5 py-0.5 rounded", children: selectedNode.capability })] }), configureOpen && (_jsx("div", { className: "px-3 pb-3 max-h-60 overflow-y-auto", children: _jsx(ParamForm, { capability: capabilityMap[selectedNode.capability], values: selectedNode.params, onChange: (params) => updateNodeParams(selectedNode.id, params) }) }))] })), _jsxs("div", { className: "flex flex-1 flex-col overflow-hidden", children: [_jsxs("div", { className: "flex items-center justify-between px-3 h-10 shrink-0 border-b border-zinc-200 dark:border-zinc-800", children: [_jsx("span", { className: "text-[11px] font-semibold uppercase tracking-wider text-zinc-400", children: "Capabilities" }), _jsx("span", { className: "text-[11px] tabular-nums text-zinc-400", children: filtered.length })] }), _jsx("div", { className: "px-2 py-2 border-b border-zinc-100 dark:border-zinc-800/50", children: _jsxs("div", { className: "relative", children: [_jsxs(Icon, { size: 12, className: "absolute left-2 top-1/2 -translate-y-1/2 text-zinc-400", children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("path", { d: "m21 21-4.3-4.3" })] }), _jsx("input", { type: "text", placeholder: "Search capabilities...", value: filter, onChange: (e) => setFilter(e.target.value), className: "w-full rounded-md border border-zinc-200 bg-white py-1 pl-7 pr-2 text-[11px] placeholder-zinc-400 focus:border-indigo-400 focus:outline-none focus:ring-1 focus:ring-indigo-400 dark:border-zinc-700 dark:bg-zinc-900" })] }) }), _jsx("div", { className: "flex-1 overflow-y-auto p-2", children: capabilities.length === 0 ? (_jsxs("div", { className: "px-2 py-8 text-center", children: [_jsx("p", { className: "text-[11px] text-zinc-400", children: "No capabilities loaded" }), _jsx("p", { className: "mt-1 text-[10px] text-zinc-500", children: "Load a plugin to get started" })] })) : filtered.length === 0 ? (_jsx("p", { className: "px-2 py-4 text-[11px] text-zinc-400", children: "No matching capabilities" })) : (_jsx("div", { className: "space-y-3", children: Array.from(grouped.entries()).map(([domain, caps]) => (_jsxs("div", { children: [_jsx("div", { className: "px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-zinc-400", children: domain }), _jsx("ul", { className: "space-y-0.5", children: caps.map((cap) => {
38
+ return (_jsxs("aside", { className: `flex w-72 shrink-0 flex-col border-l border-[var(--lokvis-border)] ${className}`, children: [_jsx(ExifPanel, {}), showConfigure && (_jsxs("div", { className: "shrink-0 border-b border-[var(--lokvis-border)]", children: [_jsxs("button", { type: "button", onClick: () => setConfigureOpen(!configureOpen), "aria-expanded": configureOpen, "aria-controls": `configure-panel-${selectedNode.id}`, className: "flex w-full items-center justify-between px-3 h-[var(--lokvis-panel-header-h)] text-left transition-colors hover:bg-[var(--lokvis-surface)]", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Icon, { size: 12, className: `text-[var(--lokvis-fg-subtle)] transition-transform ${configureOpen ? 'rotate-90' : ''}`, children: _jsx("path", { d: "m9 5 7 7-7 7" }) }), _jsx("span", { className: "text-[11px] font-semibold uppercase tracking-wider text-[var(--lokvis-fg-subtle)]", children: "Configure" })] }), _jsx("span", { className: "font-mono text-[10px] text-[var(--lokvis-primary)] bg-[var(--lokvis-primary)]/10 px-1.5 py-0.5 rounded", children: selectedNode.capability })] }), configureOpen && (_jsx("div", { id: `configure-panel-${selectedNode.id}`, className: "px-3 pb-3 max-h-60 overflow-y-auto", children: _jsx(ParamForm, { capability: capabilityMap[selectedNode.capability], values: selectedNode.params, onChange: (params) => updateNodeParams(selectedNode.id, params) }) }))] })), _jsxs("div", { className: "flex flex-1 flex-col overflow-hidden", children: [_jsxs("div", { className: "flex items-center justify-between px-3 h-[var(--lokvis-panel-header-h)] shrink-0 border-b border-[var(--lokvis-border)]", children: [_jsx("span", { className: "text-[11px] font-semibold uppercase tracking-wider text-[var(--lokvis-fg-subtle)]", children: "Capabilities" }), _jsx("span", { className: "text-[11px] tabular-nums text-[var(--lokvis-fg-subtle)]", children: filtered.length })] }), _jsx("div", { className: "px-2 py-2 border-b border-[var(--lokvis-border)]", children: _jsx(Input, { size: "sm", placeholder: "Search capabilities...", value: filter, onChange: (e) => setFilter(e.target.value), leadingIcon: _jsxs(Icon, { size: 12, children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("path", { d: "m21 21-4.3-4.3" })] }) }) }), _jsx("div", { className: "flex-1 overflow-y-auto p-2", children: capabilities.length === 0 ? (_jsxs("div", { className: "px-2 py-8 text-center", children: [_jsx("p", { className: "text-[11px] text-[var(--lokvis-fg-subtle)]", children: "No capabilities loaded" }), _jsx("p", { className: "mt-1 text-[10px] text-[var(--lokvis-fg-muted)]", children: "Load a plugin to get started" })] })) : filtered.length === 0 ? (_jsx("p", { className: "px-2 py-4 text-[11px] text-[var(--lokvis-fg-subtle)]", children: "No matching capabilities" })) : (_jsx("div", { className: "space-y-3", children: Array.from(grouped.entries()).map(([domain, caps]) => (_jsxs("div", { children: [_jsx("div", { className: "px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-[var(--lokvis-fg-subtle)]", children: domain }), _jsx("ul", { className: "space-y-0.5", children: caps.map((cap) => {
38
39
  const isInPipeline = nodes.some((n) => n.capability === cap.name);
39
- return (_jsx("li", { children: _jsxs("button", { type: "button", onClick: () => addNode(cap.name), className: `group w-full rounded-md px-2 py-1.5 text-left transition-all ${isInPipeline
40
- ? 'bg-indigo-50/50 ring-1 ring-indigo-200 dark:bg-indigo-950/20 dark:ring-indigo-800'
41
- : 'hover:bg-zinc-50 dark:hover:bg-zinc-800'}`, children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("span", { className: "truncate font-mono text-[11px] font-medium", children: cap.name }), _jsx("span", { className: `shrink-0 rounded px-1 py-0.5 text-[9px] font-medium uppercase ${cap.performance === 'fast'
42
- ? 'bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-400'
40
+ // A7: stub-only 能力显示 "Coming Soon" 标记(无可用引擎)
41
+ const isStubOnly = stubCapabilities.has(cap.name);
42
+ return (_jsx("li", { children: _jsxs("button", { type: "button", onClick: () => addNode(cap.name), title: isStubOnly ? 'Coming soon no engine installed yet' : undefined, className: `group w-full rounded-md px-2 py-1.5 text-left transition-all ${isInPipeline
43
+ ? 'bg-[var(--lokvis-primary)]/5 ring-1 ring-[var(--lokvis-primary)]/40'
44
+ : 'hover:bg-[var(--lokvis-surface)]'}`, children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("span", { className: `truncate font-mono text-[11px] font-medium ${isStubOnly ? 'text-[var(--lokvis-fg-muted)]' : ''}`, children: cap.name }), isStubOnly ? (_jsx("span", { className: "shrink-0 rounded px-1 py-0.5 text-[9px] font-medium uppercase bg-[var(--lokvis-warning)]/15 text-[var(--lokvis-warning)]", children: "Soon" })) : (_jsx("span", { className: `shrink-0 rounded px-1 py-0.5 text-[9px] font-medium uppercase ${cap.performance === 'fast'
45
+ ? 'bg-[var(--lokvis-success)]/15 text-[var(--lokvis-success)]'
43
46
  : cap.performance === 'medium'
44
- ? 'bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400'
45
- : 'bg-zinc-100 text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400'}`, children: cap.performance })] }), _jsx("p", { className: "mt-0.5 truncate text-[10px] text-zinc-500 dark:text-zinc-400", children: cap.description })] }) }, cap.name));
47
+ ? 'bg-[var(--lokvis-warning)]/15 text-[var(--lokvis-warning)]'
48
+ : 'bg-[var(--lokvis-surface-muted)] text-[var(--lokvis-fg-muted)]'}`, children: cap.performance }))] }), _jsx("p", { className: "mt-0.5 truncate text-[10px] text-[var(--lokvis-fg-muted)]", children: cap.description })] }) }, cap.name));
46
49
  }) })] }, domain))) })) })] })] }));
47
50
  }
48
51
  //# sourceMappingURL=Inspector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../src/components/Inspector.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../src/components/Inspector.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ParamForm.d.ts","sourceRoot":"","sources":["../../src/components/ParamForm.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrD;AAED,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,cAAc,+BAyBzE"}
1
+ {"version":3,"file":"ParamForm.d.ts","sourceRoot":"","sources":["../../src/components/ParamForm.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,gBAAgB,CAAC;AAGlE,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACpD;AAED,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,cAAc,+BAyBzE"}
@@ -1,28 +1,31 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Input } from '@lokvis/ui-core';
2
3
  export function ParamForm({ capability, values, onChange }) {
3
4
  const set = (name, value) => {
4
5
  onChange({ ...values, [name]: value });
5
6
  };
6
7
  if (capability.params.length === 0) {
7
- return (_jsx("p", { className: "py-3 text-center text-[11px] text-zinc-400 italic", children: "This capability has no configurable parameters." }));
8
+ return (_jsx("p", { className: "py-3 text-center text-[11px] text-[var(--lokvis-fg-subtle)] italic", children: "This capability has no configurable parameters." }));
8
9
  }
9
10
  return (_jsx("div", { className: "space-y-2.5", children: capability.params.map((p) => (_jsx(ParamField, { param: p, value: values[p.name], onChange: (v) => set(p.name, v) }, p.name))) }));
10
11
  }
11
- const inputBase = 'w-full rounded-md border border-zinc-200 bg-white px-2.5 py-1.5 text-[11px] transition-colors focus:border-indigo-400 focus:outline-none focus:ring-1 focus:ring-indigo-400 dark:border-zinc-700 dark:bg-zinc-900';
12
+ // 仅用于 enum 的原生 <select>(Select 组件 API 不同,不在此迁移);
13
+ // 文本/数字输入已统一改用 <Input size="sm"> 组件,消除重复样式。
14
+ const selectBase = 'w-full rounded-md border border-[var(--lokvis-border)] bg-[var(--lokvis-surface)] px-2.5 py-1.5 text-[11px] transition-colors hover:border-[var(--lokvis-border-strong)] focus:border-[var(--lokvis-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--lokvis-primary)]/30 disabled:cursor-not-allowed disabled:opacity-50';
12
15
  function ParamField({ param, value, onChange, }) {
13
16
  if (param.type === 'boolean') {
14
- return (_jsxs("label", { className: "flex cursor-pointer items-center gap-2 rounded-md px-1 py-1 transition-colors hover:bg-zinc-50 dark:hover:bg-zinc-800/50", children: [_jsx("input", { type: "checkbox", checked: Boolean(value ?? param.default), onChange: (e) => onChange(e.target.checked), className: "h-3.5 w-3.5 rounded border-zinc-300 text-indigo-600 focus:ring-indigo-500" }), _jsx("span", { className: "flex-1 text-[11px] text-zinc-700 dark:text-zinc-300", children: param.name }), param.description && (_jsx("span", { className: "shrink-0 text-[10px] text-zinc-400", children: param.description }))] }));
17
+ return (_jsxs("label", { className: "flex cursor-pointer items-center gap-2 rounded-md px-1 py-1 transition-colors hover:bg-[var(--lokvis-surface)]", children: [_jsx("input", { type: "checkbox", checked: Boolean(value ?? param.default), onChange: (e) => onChange(e.target.checked), className: "h-3.5 w-3.5 rounded border-[var(--lokvis-border-strong)] text-[var(--lokvis-primary)] focus:ring-[var(--lokvis-primary)]" }), _jsx("span", { className: "flex-1 text-[11px] text-[var(--lokvis-fg-muted)]", children: param.name }), param.description && (_jsx("span", { className: "shrink-0 text-[10px] text-[var(--lokvis-fg-subtle)]", children: param.description }))] }));
15
18
  }
16
19
  if (param.type === 'enum' && param.values) {
17
- return (_jsxs("div", { children: [_jsxs("label", { className: "mb-1 block text-[11px] font-medium text-zinc-600 dark:text-zinc-300", children: [param.name, param.required && _jsx("span", { className: "ml-0.5 text-red-500", children: "*" })] }), _jsx("select", { value: value ?? param.default ?? '', onChange: (e) => onChange(e.target.value), className: inputBase, children: param.values.map((v) => (_jsx("option", { value: v, children: v }, v))) })] }));
20
+ return (_jsxs("div", { children: [_jsxs("label", { className: "mb-1 block text-[11px] font-medium text-[var(--lokvis-fg-muted)]", children: [param.name, param.required && _jsx("span", { className: "ml-0.5 text-[var(--lokvis-danger)]", children: "*" })] }), _jsx("select", { value: value ?? param.default ?? '', onChange: (e) => onChange(e.target.value), className: selectBase, children: param.values.map((v) => (_jsx("option", { value: v, children: v }, v))) })] }));
18
21
  }
19
22
  if (param.type === 'color') {
20
- return (_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-[11px] font-medium text-zinc-600 dark:text-zinc-300", children: param.name }), _jsxs("div", { className: "flex gap-2", children: [_jsx("input", { type: "color", value: value ?? param.default ?? '#ffffff', onChange: (e) => onChange(e.target.value), className: "h-7 w-7 shrink-0 cursor-pointer rounded border border-zinc-200 dark:border-zinc-700" }), _jsx("input", { type: "text", value: value ?? param.default ?? '#ffffff', onChange: (e) => onChange(e.target.value), className: inputBase })] })] }));
23
+ return (_jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-[11px] font-medium text-[var(--lokvis-fg-muted)]", children: param.name }), _jsxs("div", { className: "flex gap-2", children: [_jsx("input", { type: "color", value: value ?? param.default ?? '#ffffff', onChange: (e) => onChange(e.target.value), className: "h-7 w-7 shrink-0 cursor-pointer rounded border border-[var(--lokvis-border)]" }), _jsx(Input, { type: "text", size: "sm", value: value ?? param.default ?? '#ffffff', onChange: (e) => onChange(e.target.value) })] })] }));
21
24
  }
22
25
  if (param.type === 'number') {
23
- return (_jsxs("div", { children: [_jsxs("div", { className: "mb-1 flex items-center justify-between", children: [_jsxs("label", { className: "text-[11px] font-medium text-zinc-600 dark:text-zinc-300", children: [param.name, param.required && _jsx("span", { className: "ml-0.5 text-red-500", children: "*" })] }), (param.min !== undefined || param.max !== undefined) && (_jsxs("span", { className: "text-[10px] text-zinc-400", children: [param.min !== undefined ? param.min : '-', ' — ', param.max !== undefined ? param.max : '∞'] }))] }), _jsx("input", { type: "number", value: value === undefined ? param.default ?? '' : value, min: param.min, max: param.max, onChange: (e) => onChange(e.target.value === '' ? undefined : Number(e.target.value)), className: inputBase })] }));
26
+ return (_jsxs("div", { children: [_jsxs("div", { className: "mb-1 flex items-center justify-between", children: [_jsxs("label", { className: "text-[11px] font-medium text-[var(--lokvis-fg-muted)]", children: [param.name, param.required && _jsx("span", { className: "ml-0.5 text-[var(--lokvis-danger)]", children: "*" })] }), (param.min !== undefined || param.max !== undefined) && (_jsxs("span", { className: "text-[10px] text-[var(--lokvis-fg-subtle)]", children: [param.min !== undefined ? param.min : '-', ' — ', param.max !== undefined ? param.max : '∞'] }))] }), _jsx(Input, { type: "number", size: "sm", value: value === undefined ? param.default ?? '' : value, min: param.min, max: param.max, onChange: (e) => onChange(e.target.value === '' ? undefined : Number(e.target.value)) })] }));
24
27
  }
25
28
  // string / file / array / object → text input
26
- return (_jsxs("div", { children: [_jsxs("label", { className: "mb-1 block text-[11px] font-medium text-zinc-600 dark:text-zinc-300", children: [param.name, param.required && _jsx("span", { className: "ml-0.5 text-red-500", children: "*" }), param.description && (_jsx("span", { className: "ml-1 font-normal text-zinc-400", children: param.description }))] }), _jsx("input", { type: "text", value: value ?? param.default ?? '', onChange: (e) => onChange(e.target.value), placeholder: param.type === 'file' ? 'data URL or path' : '', className: inputBase })] }));
29
+ return (_jsxs("div", { children: [_jsxs("label", { className: "mb-1 block text-[11px] font-medium text-[var(--lokvis-fg-muted)]", children: [param.name, param.required && _jsx("span", { className: "ml-0.5 text-[var(--lokvis-danger)]", children: "*" }), param.description && (_jsx("span", { className: "ml-1 font-normal text-[var(--lokvis-fg-subtle)]", children: param.description }))] }), _jsx(Input, { type: "text", size: "sm", value: value ?? param.default ?? '', onChange: (e) => onChange(e.target.value), placeholder: param.type === 'file' ? 'data URL or path' : '' })] }));
27
30
  }
28
31
  //# sourceMappingURL=ParamForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParamForm.js","sourceRoot":"","sources":["../../src/components/ParamForm.tsx"],"names":[],"mappings":";AAeA,MAAM,UAAU,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAkB;IACxE,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE;QAC3C,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,CACL,YAAG,SAAS,EAAC,mDAAmD,gEAE5D,CACL,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,aAAa,YACzB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC5B,KAAC,UAAU,IAET,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAH1B,CAAC,CAAC,IAAI,CAIX,CACH,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GACb,mNAAmN,CAAC;AAEtN,SAAS,UAAU,CAAC,EAClB,KAAK,EACL,KAAK,EACL,QAAQ,GAKT;IACC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CACL,iBAAO,SAAS,EAAC,0HAA0H,aACzI,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,EACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAC3C,SAAS,EAAC,2EAA2E,GACrF,EACF,eAAM,SAAS,EAAC,qDAAqD,YAAE,KAAK,CAAC,IAAI,GAAQ,EACxF,KAAK,CAAC,WAAW,IAAI,CACpB,eAAM,SAAS,EAAC,oCAAoC,YAAE,KAAK,CAAC,WAAW,GAAQ,CAChF,IACK,CACT,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO,CACL,0BACE,iBAAO,SAAS,EAAC,qEAAqE,aACnF,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,QAAQ,IAAI,eAAM,SAAS,EAAC,qBAAqB,kBAAS,IAC3D,EACR,iBACE,KAAK,EAAG,KAAgB,IAAK,KAAK,CAAC,OAAkB,IAAI,EAAE,EAC3D,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,SAAS,EAAE,SAAS,YAEnB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACvB,iBAAgB,KAAK,EAAE,CAAC,YAAG,CAAC,IAAf,CAAC,CAAwB,CACvC,CAAC,GACK,IACL,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,CACL,0BACE,gBAAO,SAAS,EAAC,qEAAqE,YACnF,KAAK,CAAC,IAAI,GACL,EACR,eAAK,SAAS,EAAC,YAAY,aACzB,gBACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAG,KAAgB,IAAK,KAAK,CAAC,OAAkB,IAAI,SAAS,EAClE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,SAAS,EAAC,qFAAqF,GAC/F,EACF,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAG,KAAgB,IAAK,KAAK,CAAC,OAAkB,IAAI,SAAS,EAClE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,SAAS,EAAE,SAAS,GACpB,IACE,IACF,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,CACL,0BACE,eAAK,SAAS,EAAC,wCAAwC,aACrD,iBAAO,SAAS,EAAC,0DAA0D,aACxE,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,QAAQ,IAAI,eAAM,SAAS,EAAC,qBAAqB,kBAAS,IAC3D,EACP,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,CACvD,gBAAM,SAAS,EAAC,2BAA2B,aACxC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EACzC,KAAK,EACL,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IACrC,CACR,IACG,EACN,gBACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAE,KAAK,CAAC,OAA8B,IAAI,EAAE,CAAC,CAAC,CAAE,KAAgB,EAC5F,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACrF,SAAS,EAAE,SAAS,GACpB,IACE,CACP,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,OAAO,CACL,0BACE,iBAAO,SAAS,EAAC,qEAAqE,aACnF,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,QAAQ,IAAI,eAAM,SAAS,EAAC,qBAAqB,kBAAS,EAChE,KAAK,CAAC,WAAW,IAAI,CACpB,eAAM,SAAS,EAAC,gCAAgC,YAAE,KAAK,CAAC,WAAW,GAAQ,CAC5E,IACK,EACR,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAG,KAAgB,IAAK,KAAK,CAAC,OAAkB,IAAI,EAAE,EAC3D,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,WAAW,EAAE,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAC5D,SAAS,EAAE,SAAS,GACpB,IACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ParamForm.js","sourceRoot":"","sources":["../../src/components/ParamForm.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineBar.d.ts","sourceRoot":"","sources":["../../src/components/PipelineBar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAc,EAAE,EAAE,gBAAgB,qBA6F/D"}
1
+ {"version":3,"file":"PipelineBar.d.ts","sourceRoot":"","sources":["../../src/components/PipelineBar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,gBAAgB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAc,EAAE,EAAE,gBAAgB,qBAsG/D"}
@@ -6,40 +6,31 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  * 位于 Canvas 下方、StatusBar 上方。
7
7
  */
8
8
  import * as React from 'react';
9
- import { Icon } from '@lokvis/ui-core';
9
+ import { FOCUS_RING, Icon } from '@lokvis/ui-core';
10
10
  import { useWorkspaceStore } from '../store/index.js';
11
+ import { StatusDot } from './StatusDot.js';
11
12
  export function PipelineBar({ className = '' }) {
12
13
  const nodes = useWorkspaceStore((s) => s.nodes);
13
14
  const selectedNodeId = useWorkspaceStore((s) => s.selectedNodeId);
14
15
  const selectNode = useWorkspaceStore((s) => s.selectNode);
15
16
  const removeNode = useWorkspaceStore((s) => s.removeNode);
16
- return (_jsxs("div", { className: `flex h-10 shrink-0 items-center gap-2 border-t border-zinc-200 bg-white px-3 dark:border-zinc-800 dark:bg-zinc-900 ${className}`, children: [_jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-zinc-400 shrink-0", children: "Pipeline" }), nodes.length === 0 ? (_jsx("span", { className: "text-[11px] text-zinc-400", children: "Empty \u2014 add capabilities from the right panel" })) : (_jsxs("div", { className: "flex flex-1 items-center gap-1 overflow-x-auto min-w-0", children: [_jsxs("div", { className: "flex items-center gap-1 rounded-md bg-zinc-100 px-2 py-1 text-[10px] font-medium text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400 shrink-0", children: [_jsx(Icon, { size: 12, children: _jsx("path", { d: "M12 4.5v15m7.5-7.5h-15" }) }), "Source"] }), _jsx(Icon, { size: 12, className: "shrink-0 text-zinc-300 dark:text-zinc-600", children: _jsx("path", { d: "m9 5 7 7-7 7" }) }), nodes.map((node, i) => {
17
+ return (_jsxs("div", { className: `flex h-10 shrink-0 items-center gap-2 border-t border-[var(--lokvis-border)] bg-[var(--lokvis-surface)] px-3 ${className}`, children: [_jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-[var(--lokvis-fg-subtle)] shrink-0", children: "Pipeline" }), nodes.length === 0 ? (_jsx("span", { className: "text-[11px] text-[var(--lokvis-fg-subtle)]", children: "Empty \u2014 add capabilities from the right panel" })) : (_jsxs("div", { className: "flex flex-1 items-center gap-1 overflow-x-auto min-w-0", children: [_jsxs("div", { className: "flex items-center gap-1 rounded-md bg-[var(--lokvis-surface-muted)] px-2 py-1 text-[10px] font-medium text-[var(--lokvis-fg-muted)] shrink-0", children: [_jsx(Icon, { size: 12, children: _jsx("path", { d: "M12 4.5v15m7.5-7.5h-15" }) }), "Source"] }), _jsx(Icon, { size: 12, className: "shrink-0 text-[var(--lokvis-fg-subtle)]", children: _jsx("path", { d: "m9 5 7 7-7 7" }) }), nodes.map((node, i) => {
17
18
  const selected = node.id === selectedNodeId;
18
- return (_jsxs(React.Fragment, { children: [_jsxs("button", { type: "button", onClick: () => selectNode(node.id), className: `group flex shrink-0 items-center gap-1.5 rounded-md px-2.5 py-1 text-[11px] font-medium transition-all ${selected
19
- ? 'bg-indigo-100 text-indigo-700 ring-1 ring-indigo-300 dark:bg-indigo-950/50 dark:text-indigo-300 dark:ring-indigo-700'
20
- : node.status === 'running'
21
- ? 'bg-amber-100 text-amber-700 dark:bg-amber-950/30 dark:text-amber-400'
22
- : node.status === 'success'
23
- ? 'bg-emerald-100 text-emerald-700 dark:bg-emerald-950/30 dark:text-emerald-400'
24
- : node.status === 'failed'
25
- ? 'bg-red-100 text-red-700 dark:bg-red-950/30 dark:text-red-400'
26
- : 'bg-zinc-100 text-zinc-700 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700'}`, children: [_jsx("span", { className: "font-mono", children: node.capability }), _jsx(StatusDot, { status: node.status }), _jsx("span", { onClick: (e) => {
27
- e.stopPropagation();
28
- removeNode(node.id);
29
- }, className: "ml-0.5 rounded p-0.5 opacity-0 transition-opacity group-hover:opacity-100 hover:bg-red-100 hover:text-red-600 dark:hover:bg-red-900/40", role: "button", "aria-label": "Remove step", children: _jsx(Icon, { size: 10, strokeWidth: 3, children: _jsx("path", { d: "M6 18L18 6M6 6l12 12" }) }) })] }), i < nodes.length - 1 && (_jsx(Icon, { size: 12, className: "shrink-0 text-zinc-300 dark:text-zinc-600", children: _jsx("path", { d: "m9 5 7 7-7 7" }) }))] }, node.id));
30
- }), _jsx(Icon, { size: 12, className: "shrink-0 text-zinc-300 dark:text-zinc-600", children: _jsx("path", { d: "m9 5 7 7-7 7" }) }), _jsxs("div", { className: "flex items-center gap-1 rounded-md bg-zinc-100 px-2 py-1 text-[10px] font-medium text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400 shrink-0", children: [_jsx(Icon, { size: 12, children: _jsx("path", { d: "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3" }) }), "Output"] })] })), nodes.length > 0 && (_jsxs("span", { className: "shrink-0 text-[10px] tabular-nums text-zinc-400", children: [nodes.length, " step", nodes.length !== 1 ? 's' : ''] }))] }));
31
- }
32
- function StatusDot({ status }) {
33
- const color = status === 'running'
34
- ? 'bg-amber-500'
35
- : status === 'success'
36
- ? 'bg-emerald-500'
37
- : status === 'failed'
38
- ? 'bg-red-500'
39
- : status === 'pending'
40
- ? 'bg-zinc-400 dark:bg-zinc-500'
41
- : 'bg-zinc-300 dark:bg-zinc-600';
42
- const animate = status === 'running' ? 'animate-pulse' : '';
43
- return _jsx("span", { className: `h-1.5 w-1.5 rounded-full shrink-0 ${color} ${animate}` });
19
+ return (_jsxs(React.Fragment, { children: [_jsxs("div", { className: "group flex shrink-0 items-center gap-0.5", children: [_jsxs("button", { type: "button", onClick: () => selectNode(node.id), onKeyDown: (e) => {
20
+ // 键盘可达:Delete/Backspace 删除节点(与 WorkflowEditor 一致)
21
+ if (e.key === 'Delete' || e.key === 'Backspace') {
22
+ e.preventDefault();
23
+ removeNode(node.id);
24
+ }
25
+ }, "aria-label": `节点 ${node.capability},位置 ${i + 1},Delete 删除`, "aria-pressed": selected, className: `flex shrink-0 items-center gap-1.5 rounded-md px-2.5 py-1 text-[11px] font-medium transition-all ${FOCUS_RING} ${selected
26
+ ? 'bg-[var(--lokvis-primary)]/15 text-[var(--lokvis-primary)] ring-1 ring-[var(--lokvis-primary)]/50'
27
+ : node.status === 'running'
28
+ ? 'bg-[var(--lokvis-warning)]/15 text-[var(--lokvis-warning)]'
29
+ : node.status === 'success'
30
+ ? 'bg-[var(--lokvis-success)]/15 text-[var(--lokvis-success)]'
31
+ : node.status === 'failed'
32
+ ? 'bg-[var(--lokvis-danger)]/15 text-[var(--lokvis-danger)]'
33
+ : 'bg-[var(--lokvis-surface-muted)] text-[var(--lokvis-fg-muted)] hover:bg-[var(--lokvis-border)]'}`, children: [_jsx("span", { className: "font-mono", children: node.capability }), _jsx(StatusDot, { status: node.status })] }), _jsx("button", { type: "button", onClick: () => removeNode(node.id), className: "rounded p-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--lokvis-danger)] hover:bg-[var(--lokvis-danger)]/15 hover:text-[var(--lokvis-danger)]", "aria-label": "Remove step", children: _jsx(Icon, { size: 10, strokeWidth: 3, children: _jsx("path", { d: "M6 18L18 6M6 6l12 12" }) }) })] }), i < nodes.length - 1 && (_jsx(Icon, { size: 12, className: "shrink-0 text-[var(--lokvis-fg-subtle)]", children: _jsx("path", { d: "m9 5 7 7-7 7" }) }))] }, node.id));
34
+ }), _jsx(Icon, { size: 12, className: "shrink-0 text-[var(--lokvis-fg-subtle)]", children: _jsx("path", { d: "m9 5 7 7-7 7" }) }), _jsxs("div", { className: "flex items-center gap-1 rounded-md bg-[var(--lokvis-surface-muted)] px-2 py-1 text-[10px] font-medium text-[var(--lokvis-fg-muted)] shrink-0", children: [_jsx(Icon, { size: 12, children: _jsx("path", { d: "M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3" }) }), "Output"] })] })), nodes.length > 0 && (_jsxs("span", { className: "shrink-0 text-[10px] tabular-nums text-[var(--lokvis-fg-subtle)]", children: [nodes.length, " step", nodes.length !== 1 ? 's' : ''] }))] }));
44
35
  }
45
36
  //# sourceMappingURL=PipelineBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PipelineBar.js","sourceRoot":"","sources":["../../src/components/PipelineBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PipelineBar.js","sourceRoot":"","sources":["../../src/components/PipelineBar.tsx"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@
2
2
  * ProgressBar - 工作流执行进度条 + 取消按钮(W11.6)
3
3
  *
4
4
  * 展示:
5
- * - 节点完成进度(成功数 / 总数)
6
- * - 横向进度条(running 时动画)
7
- * - Cancel 按钮(调用 cancelRun)
8
- * - 状态消息(statusMessage)
5
+ * - 节点完成进度(成功数 / 总数)
6
+ * - 横向进度条(running 时动画)
7
+ * - Cancel 按钮(调用 cancelRun)
8
+ * - 状态消息(statusMessage)
9
9
  *
10
10
  * 仅在 running 或最近一次执行有结果时显示。
11
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/components/ProgressBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAc,EAAE,EAAE,gBAAgB,sCAiF/D"}
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/components/ProgressBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,WAAW,gBAAgB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAc,EAAE,EAAE,gBAAgB,sCAiF/D"}
@@ -3,10 +3,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  * ProgressBar - 工作流执行进度条 + 取消按钮(W11.6)
4
4
  *
5
5
  * 展示:
6
- * - 节点完成进度(成功数 / 总数)
7
- * - 横向进度条(running 时动画)
8
- * - Cancel 按钮(调用 cancelRun)
9
- * - 状态消息(statusMessage)
6
+ * - 节点完成进度(成功数 / 总数)
7
+ * - 横向进度条(running 时动画)
8
+ * - Cancel 按钮(调用 cancelRun)
9
+ * - 状态消息(statusMessage)
10
10
  *
11
11
  * 仅在 running 或最近一次执行有结果时显示。
12
12
  *
@@ -26,10 +26,10 @@ export function ProgressBar({ className = '' }) {
26
26
  return null;
27
27
  if (!running && done === 0)
28
28
  return null;
29
- return (_jsxs("div", { className: `flex items-center gap-2 border-b border-zinc-200 bg-white px-3 py-1.5 dark:border-zinc-800 dark:bg-zinc-900 ${className}`, role: "status", "aria-live": "polite", "aria-label": `工作流进度:${done} / ${total}`, children: [_jsx("div", { className: "relative h-1.5 flex-1 overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800", children: _jsx("div", { className: `absolute inset-y-0 left-0 transition-all duration-300 ${hasFailure
30
- ? 'bg-red-500'
29
+ return (_jsxs("div", { className: `flex items-center gap-2 border-b border-[var(--lokvis-border)] bg-[var(--lokvis-surface)] px-3 py-1.5 ${className}`, role: "status", "aria-live": "polite", "aria-label": `工作流进度:${done} / ${total}`, children: [_jsx("div", { className: "relative h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--lokvis-border)]", children: _jsx("div", { className: `absolute inset-y-0 left-0 transition-all duration-300 ${hasFailure
30
+ ? 'bg-[var(--lokvis-danger)]'
31
31
  : running
32
- ? 'bg-indigo-500'
33
- : 'bg-emerald-500'} ${running ? 'animate-pulse' : ''}`, style: { width: `${pct}%` } }) }), _jsxs("span", { className: "shrink-0 text-[10px] font-medium tabular-nums text-zinc-500 dark:text-zinc-400", children: [done, "/", total, failedCount > 0 && (_jsxs("span", { className: "ml-1 text-red-500", children: ["(", failedCount, " failed)"] }))] }), running && statusMessage && (_jsx("span", { className: "hidden shrink-0 truncate text-[10px] text-zinc-400 sm:inline", children: statusMessage })), running && (_jsxs("button", { type: "button", onClick: () => void cancelRun(), "aria-label": "\u53D6\u6D88\u8FD0\u884C", title: "\u53D6\u6D88\u8FD0\u884C", className: "flex shrink-0 items-center gap-1 rounded-md bg-red-50 px-2 py-0.5 text-[10px] font-medium text-red-600 transition-colors hover:bg-red-100 dark:bg-red-950/30 dark:text-red-400 dark:hover:bg-red-900/40", children: [_jsx(Icon, { size: 10, strokeWidth: 3, children: _jsx("path", { d: "M6 6l12 12M6 18L18 6" }) }), "Cancel"] })), !running && done === total && (_jsxs("span", { className: `flex shrink-0 items-center gap-1 text-[10px] font-medium ${hasFailure ? 'text-red-500' : 'text-emerald-500'}`, children: [_jsx(Icon, { size: 10, strokeWidth: 3, children: hasFailure ? (_jsx("path", { d: "M12 2L2 22h20L12 2zM12 9v5M12 17v.01" })) : (_jsx("path", { d: "M20 6L9 17l-5-5" })) }), hasFailure ? 'Failed' : 'Done'] }))] }));
32
+ ? 'bg-[var(--lokvis-primary)]'
33
+ : 'bg-[var(--lokvis-success)]'} ${running ? 'animate-pulse' : ''}`, style: { width: `${pct}%` } }) }), _jsxs("span", { className: "shrink-0 text-[10px] font-medium tabular-nums text-[var(--lokvis-fg-muted)]", children: [done, "/", total, failedCount > 0 && (_jsxs("span", { className: "ml-1 text-[var(--lokvis-danger)]", children: ["(", failedCount, " failed)"] }))] }), running && statusMessage && (_jsx("span", { className: "hidden shrink-0 truncate text-[10px] text-[var(--lokvis-fg-subtle)] sm:inline", children: statusMessage })), running && (_jsxs("button", { type: "button", onClick: () => void cancelRun(), "aria-label": "\u53D6\u6D88\u8FD0\u884C", title: "\u53D6\u6D88\u8FD0\u884C", className: "flex shrink-0 items-center gap-1 rounded-md bg-[var(--lokvis-danger)]/10 px-2 py-0.5 text-[10px] font-medium text-[var(--lokvis-danger)] transition-colors hover:bg-[var(--lokvis-danger)]/15", children: [_jsx(Icon, { size: 10, strokeWidth: 3, children: _jsx("path", { d: "M6 6l12 12M6 18L18 6" }) }), "Cancel"] })), !running && done === total && (_jsxs("span", { className: `flex shrink-0 items-center gap-1 text-[10px] font-medium ${hasFailure ? 'text-[var(--lokvis-danger)]' : 'text-[var(--lokvis-success)]'}`, children: [_jsx(Icon, { size: 10, strokeWidth: 3, children: hasFailure ? (_jsx("path", { d: "M12 2L2 22h20L12 2zM12 9v5M12 17v.01" })) : (_jsx("path", { d: "M20 6L9 17l-5-5" })) }), hasFailure ? 'Failed' : 'Done'] }))] }));
34
34
  }
35
35
  //# sourceMappingURL=ProgressBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../src/components/ProgressBar.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAMtE,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,GAAG,EAAE,EAAoB;IAC9D,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAExD,wCAAwC;IACxC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAE5E,qBAAqB;IACrB,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,OAAO,CACL,eACE,SAAS,EAAE,+GAA+G,SAAS,EAAE,EACrI,IAAI,EAAC,QAAQ,eACH,QAAQ,gBACN,SAAS,IAAI,MAAM,KAAK,EAAE,aAGtC,cAAK,SAAS,EAAC,iFAAiF,YAC9F,cACE,SAAS,EAAE,yDACT,UAAU;wBACR,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,OAAO;4BACT,CAAC,CAAC,eAAe;4BACjB,CAAC,CAAC,gBACN,IAAI,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,EACpC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,GAC3B,GACE,EAGN,gBAAM,SAAS,EAAC,gFAAgF,aAC7F,IAAI,OAAG,KAAK,EACZ,WAAW,GAAG,CAAC,IAAI,CAClB,gBAAM,SAAS,EAAC,mBAAmB,kBAAG,WAAW,gBAAgB,CAClE,IACI,EAGN,OAAO,IAAI,aAAa,IAAI,CAC3B,eAAM,SAAS,EAAC,8DAA8D,YAC3E,aAAa,GACT,CACR,EAGA,OAAO,IAAI,CACV,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,EAAE,gBACpB,0BAAM,EACjB,KAAK,EAAC,0BAAM,EACZ,SAAS,EAAC,yMAAyM,aAEnN,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,YAAE,eAAM,CAAC,EAAC,sBAAsB,GAAG,GAAO,cAEjE,CACV,EAGA,CAAC,OAAO,IAAI,IAAI,KAAK,KAAK,IAAI,CAC7B,gBACE,SAAS,EAAE,4DACT,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAChC,EAAE,aAEF,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,YAC3B,UAAU,CAAC,CAAC,CAAC,CACZ,eAAM,CAAC,EAAC,sCAAsC,GAAG,CAClD,CAAC,CAAC,CAAC,CACF,eAAM,CAAC,EAAC,iBAAiB,GAAG,CAC7B,GACI,EACN,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAC1B,CACR,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../src/components/ProgressBar.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAMtE,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,GAAG,EAAE,EAAoB;IAC/D,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAExD,wCAAwC;IACxC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAE5E,qBAAqB;IACrB,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,OAAO,CACP,eACA,SAAS,EAAE,yGAAyG,SAAS,EAAE,EAC/H,IAAI,EAAC,QAAQ,eACH,QAAQ,gBACN,SAAS,IAAI,MAAM,KAAK,EAAE,aAGtC,cAAK,SAAS,EAAC,8EAA8E,YAC7F,cACA,SAAS,EAAE,yDACX,UAAU;wBACV,CAAC,CAAC,2BAA2B;wBAC7B,CAAC,CAAC,OAAO;4BACT,CAAC,CAAC,4BAA4B;4BAC9B,CAAC,CAAC,4BACF,IAAI,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,EACpC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,GACzB,GACI,EAGN,gBAAM,SAAS,EAAC,6EAA6E,aAC5F,IAAI,OAAG,KAAK,EACZ,WAAW,GAAG,CAAC,IAAI,CACpB,gBAAM,SAAS,EAAC,kCAAkC,kBAAG,WAAW,gBAAgB,CAC/E,IACM,EAGN,OAAO,IAAI,aAAa,IAAI,CAC7B,eAAM,SAAS,EAAC,+EAA+E,YAC9F,aAAa,GACP,CACN,EAGA,OAAO,IAAI,CACZ,kBACA,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,EAAE,gBACpB,0BAAM,EACjB,KAAK,EAAC,0BAAM,EACZ,SAAS,EAAC,+LAA+L,aAEzM,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,YAAE,eAAM,CAAC,EAAC,sBAAsB,GAAG,GAAO,cAE/D,CACR,EAGA,CAAC,OAAO,IAAI,IAAI,KAAK,KAAK,IAAI,CAC/B,gBACA,SAAS,EAAE,4DACX,UAAU,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,8BAC7C,EAAE,aAEF,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,YAC7B,UAAU,CAAC,CAAC,CAAC,CACd,eAAM,CAAC,EAAC,sCAAsC,GAAG,CAChD,CAAC,CAAC,CAAC,CACJ,eAAM,CAAC,EAAC,iBAAiB,GAAG,CAC3B,GACM,EACN,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IACxB,CACN,IACK,CACL,CAAC;AACH,CAAC"}
@@ -4,9 +4,9 @@
4
4
  * 紧凑单行:左侧状态指示 + 当前工具 + 进度,右侧在线状态 + 资源统计 + 存储配额。
5
5
  *
6
6
  * W9.6 新增:
7
- * - 当前选中工具名(从 selectedNode 取)
8
- * - 执行进度(已完成节点数 / 总节点数)
9
- * - 在线状态(navigator.onLine + 事件监听)
7
+ * - 当前选中工具名(从 selectedNode 取)
8
+ * - 执行进度(已完成节点数 / 总节点数)
9
+ * - 在线状态(navigator.onLine + 事件监听)
10
10
  */
11
11
  import * as React from 'react';
12
12
  export interface StatusBarProps {
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../src/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4BD,wBAAgB,SAAS,CAAC,EAAE,SAAc,EAAE,EAAE,cAAc,qBAwI3D"}
1
+ {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../src/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,cAAc;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAoBD,wBAAgB,SAAS,CAAC,EAAE,SAAc,EAAE,EAAE,cAAc,qBAwI3D"}
@@ -5,23 +5,14 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
5
5
  * 紧凑单行:左侧状态指示 + 当前工具 + 进度,右侧在线状态 + 资源统计 + 存储配额。
6
6
  *
7
7
  * W9.6 新增:
8
- * - 当前选中工具名(从 selectedNode 取)
9
- * - 执行进度(已完成节点数 / 总节点数)
10
- * - 在线状态(navigator.onLine + 事件监听)
8
+ * - 当前选中工具名(从 selectedNode 取)
9
+ * - 执行进度(已完成节点数 / 总节点数)
10
+ * - 在线状态(navigator.onLine + 事件监听)
11
11
  */
12
12
  import * as React from 'react';
13
13
  import { useWorkspaceStore } from '../store/index.js';
14
14
  import { useWorkflowProgress } from '../hooks/useWorkflowProgress.js';
15
- /** 格式化字节数为人类可读(KB/MB/GB) */
16
- function formatBytes(bytes) {
17
- if (bytes < 1024)
18
- return `${bytes} B`;
19
- if (bytes < 1024 * 1024)
20
- return `${(bytes / 1024).toFixed(1)} KB`;
21
- if (bytes < 1024 * 1024 * 1024)
22
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
23
- return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;
24
- }
15
+ import { formatBytes } from '../utils.js';
25
16
  /** useOnlineStatus - 监听 navigator.onLine + online/offline 事件(W9.6) */
26
17
  function useOnlineStatus() {
27
18
  const [online, setOnline] = React.useState(() => typeof navigator !== 'undefined' ? navigator.onLine : true);
@@ -56,15 +47,15 @@ export function StatusBar({ className = '' }) {
56
47
  const ratio = storageUsage ? storageUsage.usage / storageUsage.quota : 0;
57
48
  const storageCritical = ratio >= 0.95;
58
49
  const storageWarning = ratio >= 0.8 && !storageCritical;
59
- return (_jsxs("footer", { className: `flex h-7 shrink-0 items-center justify-between border-t border-zinc-200 bg-zinc-50 px-3 dark:border-zinc-800 dark:bg-zinc-950 ${className}`, children: [_jsxs("div", { className: "flex items-center gap-2 min-w-0", role: "status", "aria-live": "polite", children: [_jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: `h-1.5 w-1.5 rounded-full shrink-0 ${error
60
- ? 'bg-red-500'
50
+ return (_jsxs("footer", { className: `flex h-[var(--lokvis-statusbar-h)] shrink-0 items-center justify-between border-t border-[var(--lokvis-border)] bg-[var(--lokvis-surface)] px-3 ${className}`, children: [_jsxs("div", { className: "flex items-center gap-2 min-w-0", role: "status", "aria-live": "polite", children: [_jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: `h-1.5 w-1.5 rounded-full shrink-0 ${error
51
+ ? 'bg-[var(--lokvis-danger)]'
61
52
  : running
62
- ? 'bg-amber-500 animate-pulse'
63
- : 'bg-emerald-500'}`, "aria-hidden": "true" }), _jsx("span", { className: `truncate text-[10px] ${error ? 'text-red-500' : 'text-zinc-500'}`, children: statusMessage })] }), selectedNode && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-zinc-300 dark:text-zinc-700", "aria-hidden": "true", children: "\u00B7" }), _jsx("span", { className: "shrink-0 font-mono text-[10px] text-indigo-500 dark:text-indigo-400 truncate max-w-[120px]", children: selectedNode.capability })] })), running && totalNodes > 0 && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-zinc-300 dark:text-zinc-700", "aria-hidden": "true", children: "\u00B7" }), _jsxs("span", { className: "shrink-0 tabular-nums text-[10px] text-amber-600 dark:text-amber-400", children: [doneNodes, "/", totalNodes, " (", progressPct, "%)"] })] })), error && (_jsx("button", { type: "button", onClick: () => setError(null), className: "shrink-0 text-[10px] text-red-500 underline decoration-red-300 hover:text-red-600 dark:decoration-red-800", children: "dismiss" }))] }), _jsxs("div", { className: "flex items-center gap-3 shrink-0 text-[10px] text-zinc-400 tabular-nums", children: [_jsxs("span", { className: `flex items-center gap-1 ${online ? 'text-emerald-500' : 'text-amber-500'}`, title: online ? 'Online' : 'Offline — running locally, no upload needed', "aria-label": online ? 'Online' : 'Offline — files still processed locally', children: [_jsx("span", { className: `h-1.5 w-1.5 rounded-full ${online ? 'bg-emerald-500' : 'bg-amber-500'}`, "aria-hidden": "true" }), online ? 'Online' : 'Offline'] }), _jsx("span", { className: "text-zinc-300 dark:text-zinc-700", "aria-hidden": "true", children: "|" }), storageUsage && (_jsxs(_Fragment, { children: [_jsxs("span", { className: `flex items-center gap-1 ${storageCritical
64
- ? 'text-red-500 font-semibold'
53
+ ? 'bg-[var(--lokvis-warning)] animate-pulse'
54
+ : 'bg-[var(--lokvis-success)]'}`, "aria-hidden": "true" }), _jsx("span", { className: `truncate text-[10px] ${error ? 'text-[var(--lokvis-danger)]' : 'text-[var(--lokvis-fg-muted)]'}`, children: statusMessage })] }), selectedNode && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-[var(--lokvis-fg-subtle)]", "aria-hidden": "true", children: "\u00B7" }), _jsx("span", { className: "shrink-0 font-mono text-[10px] text-[var(--lokvis-primary)] truncate max-w-[120px]", children: selectedNode.capability })] })), running && totalNodes > 0 && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-[var(--lokvis-fg-subtle)]", "aria-hidden": "true", children: "\u00B7" }), _jsxs("span", { className: "shrink-0 tabular-nums text-[10px] text-[var(--lokvis-warning)]", children: [doneNodes, "/", totalNodes, " (", progressPct, "%)"] })] })), error && (_jsx("button", { type: "button", onClick: () => setError(null), className: "shrink-0 text-[10px] text-[var(--lokvis-danger)] underline decoration-[var(--lokvis-danger)]/40 hover:text-[var(--lokvis-danger)]", children: "dismiss" }))] }), _jsxs("div", { className: "flex items-center gap-3 shrink-0 text-[10px] text-[var(--lokvis-fg-subtle)] tabular-nums", children: [_jsxs("span", { className: `flex items-center gap-1 ${online ? 'text-[var(--lokvis-success)]' : 'text-[var(--lokvis-warning)]'}`, title: online ? 'Online' : 'Offline — running locally, no upload needed', "aria-label": online ? 'Online' : 'Offline — files still processed locally', children: [_jsx("span", { className: `h-1.5 w-1.5 rounded-full ${online ? 'bg-[var(--lokvis-success)]' : 'bg-[var(--lokvis-warning)]'}`, "aria-hidden": "true" }), online ? 'Online' : 'Offline'] }), _jsx("span", { className: "text-[var(--lokvis-fg-subtle)]", "aria-hidden": "true", children: "|" }), storageUsage && (_jsxs(_Fragment, { children: [_jsxs("span", { className: `flex items-center gap-1 ${storageCritical
55
+ ? 'text-[var(--lokvis-danger)] font-semibold'
65
56
  : storageWarning
66
- ? 'text-amber-500'
67
- : 'text-zinc-400'}`, title: storageCritical
57
+ ? 'text-[var(--lokvis-warning)]'
58
+ : 'text-[var(--lokvis-fg-subtle)]'}`, title: storageCritical
68
59
  ? `Storage almost full (${Math.round(ratio * 100)}%) — clean up to free space`
69
60
  : storageWarning
70
61
  ? `Storage nearing limit (${Math.round(ratio * 100)}%)`
@@ -72,6 +63,6 @@ export function StatusBar({ className = '' }) {
72
63
  ? `Storage critical: ${formatBytes(storageUsage.usage)} of ${formatBytes(storageUsage.quota)} used, ${Math.round(ratio * 100)} percent. Clean up to free space.`
73
64
  : storageWarning
74
65
  ? `Storage warning: ${formatBytes(storageUsage.usage)} of ${formatBytes(storageUsage.quota)} used, ${Math.round(ratio * 100)} percent.`
75
- : `Storage: ${formatBytes(storageUsage.usage)} of ${formatBytes(storageUsage.quota)} used.`, "aria-live": storageCritical ? 'assertive' : 'polite', children: [(storageCritical || storageWarning) && (_jsx("span", { className: "text-[9px]", "aria-hidden": "true", children: "\u26A0" })), formatBytes(storageUsage.usage), " / ", formatBytes(storageUsage.quota)] }), _jsx("span", { className: "text-zinc-300 dark:text-zinc-700", "aria-hidden": "true", children: "|" })] })), _jsxs("span", { children: [assets.length, " asset", assets.length !== 1 ? 's' : ''] }), _jsx("span", { className: "text-zinc-300 dark:text-zinc-700", "aria-hidden": "true", children: "|" }), _jsxs("span", { children: [capabilities.length, " cap", capabilities.length !== 1 ? 's' : ''] }), _jsx("span", { className: "text-zinc-300 dark:text-zinc-700", "aria-hidden": "true", children: "|" }), _jsxs("span", { children: [nodes.length, " step", nodes.length !== 1 ? 's' : ''] })] })] }));
66
+ : `Storage: ${formatBytes(storageUsage.usage)} of ${formatBytes(storageUsage.quota)} used.`, "aria-live": storageCritical ? 'assertive' : 'polite', children: [(storageCritical || storageWarning) && (_jsx("span", { className: "text-[9px]", "aria-hidden": "true", children: "\u26A0" })), formatBytes(storageUsage.usage), " / ", formatBytes(storageUsage.quota)] }), _jsx("span", { className: "text-[var(--lokvis-fg-subtle)]", "aria-hidden": "true", children: "|" })] })), _jsxs("span", { children: [assets.length, " asset", assets.length !== 1 ? 's' : ''] }), _jsx("span", { className: "text-[var(--lokvis-fg-subtle)]", "aria-hidden": "true", children: "|" }), _jsxs("span", { children: [capabilities.length, " cap", capabilities.length !== 1 ? 's' : ''] }), _jsx("span", { className: "text-[var(--lokvis-fg-subtle)]", "aria-hidden": "true", children: "|" }), _jsxs("span", { children: [nodes.length, " step", nodes.length !== 1 ? 's' : ''] })] })] }));
76
67
  }
77
68
  //# sourceMappingURL=StatusBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../src/components/StatusBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../src/components/StatusBar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * StatusDot - 节点状态指示圆点
3
+ *
4
+ * 根据 status 显示不同颜色,running 时带 pulse 动画。
5
+ * PipelineBar 与 WorkflowEditor 共享此组件。
6
+ */
7
+ export interface StatusDotProps {
8
+ /** 节点状态(pending/running/success/failed/idle) */
9
+ status: string;
10
+ }
11
+ export declare function StatusDot({ status }: StatusDotProps): import("react").JSX.Element;
12
+ //# sourceMappingURL=StatusDot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusDot.d.ts","sourceRoot":"","sources":["../../src/components/StatusDot.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,+BAenD"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function StatusDot({ status }) {
3
+ const color = status === 'running'
4
+ ? 'bg-[var(--lokvis-warning)]'
5
+ : status === 'success'
6
+ ? 'bg-[var(--lokvis-success)]'
7
+ : status === 'failed'
8
+ ? 'bg-[var(--lokvis-danger)]'
9
+ : status === 'pending'
10
+ ? 'bg-[var(--lokvis-fg-subtle)]'
11
+ : 'bg-[var(--lokvis-fg-subtle)]';
12
+ const animate = status === 'running' ? 'animate-pulse' : '';
13
+ return _jsx("span", { className: `h-1.5 w-1.5 rounded-full shrink-0 ${color} ${animate}` });
14
+ }
15
+ //# sourceMappingURL=StatusDot.js.map