@almadar/ui 4.47.9 → 4.49.0
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/avl/index.cjs +76 -52
- package/dist/avl/index.d.cts +27 -1
- package/dist/avl/index.js +76 -52
- package/dist/components/index.cjs +28 -46
- package/dist/components/index.js +28 -46
- package/dist/components/molecules/avl/avl-preview-converter.d.ts +1 -1
- package/dist/components/molecules/avl/avl-preview-types.d.ts +12 -0
- package/dist/components/organisms/avl/FlowCanvas.d.ts +14 -0
- package/dist/providers/index.cjs +28 -46
- package/dist/providers/index.js +28 -46
- package/dist/runtime/index.cjs +28 -46
- package/dist/runtime/index.js +28 -46
- package/package.json +1 -1
package/dist/avl/index.cjs
CHANGED
|
@@ -25078,14 +25078,7 @@ function DataGrid({
|
|
|
25078
25078
|
{
|
|
25079
25079
|
"data-entity-row": true,
|
|
25080
25080
|
"data-entity-id": id,
|
|
25081
|
-
className: cn(
|
|
25082
|
-
"bg-card rounded-lg",
|
|
25083
|
-
"border border-border",
|
|
25084
|
-
"shadow-sm hover:shadow-lg",
|
|
25085
|
-
"hover:border-primary transition-all",
|
|
25086
|
-
"p-4",
|
|
25087
|
-
isSelected && "ring-2 ring-primary border-primary"
|
|
25088
|
-
),
|
|
25081
|
+
className: cn(isSelected && "ring-2 ring-primary rounded-lg"),
|
|
25089
25082
|
children: children(itemData, index)
|
|
25090
25083
|
},
|
|
25091
25084
|
id
|
|
@@ -25470,45 +25463,34 @@ function DataList({
|
|
|
25470
25463
|
if (hasRenderProp) {
|
|
25471
25464
|
const id2 = itemData.id || String(index);
|
|
25472
25465
|
return /* @__PURE__ */ jsxRuntime.jsxs(Box, { "data-entity-row": true, "data-entity-id": id2, children: [
|
|
25473
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
25474
|
-
Box,
|
|
25475
|
-
|
|
25476
|
-
|
|
25477
|
-
|
|
25478
|
-
|
|
25479
|
-
"
|
|
25480
|
-
|
|
25481
|
-
|
|
25482
|
-
children: [
|
|
25483
|
-
/* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
25484
|
-
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
25485
|
-
HStack,
|
|
25466
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "group flex items-stretch gap-2", children: [
|
|
25467
|
+
/* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
25468
|
+
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
25469
|
+
HStack,
|
|
25470
|
+
{
|
|
25471
|
+
gap: "xs",
|
|
25472
|
+
className: "flex-shrink-0",
|
|
25473
|
+
children: itemActions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
25474
|
+
Button,
|
|
25486
25475
|
{
|
|
25487
|
-
|
|
25488
|
-
|
|
25489
|
-
|
|
25490
|
-
|
|
25491
|
-
|
|
25492
|
-
|
|
25493
|
-
|
|
25494
|
-
|
|
25495
|
-
|
|
25496
|
-
|
|
25497
|
-
|
|
25498
|
-
|
|
25499
|
-
|
|
25500
|
-
|
|
25501
|
-
|
|
25502
|
-
|
|
25503
|
-
|
|
25504
|
-
|
|
25505
|
-
idx
|
|
25506
|
-
))
|
|
25507
|
-
}
|
|
25508
|
-
)
|
|
25509
|
-
]
|
|
25510
|
-
}
|
|
25511
|
-
),
|
|
25476
|
+
variant: action.variant ?? "ghost",
|
|
25477
|
+
size: "sm",
|
|
25478
|
+
onClick: handleActionClick(action, itemData),
|
|
25479
|
+
"data-testid": `action-${action.event}`,
|
|
25480
|
+
"data-row-id": String(itemData.id),
|
|
25481
|
+
className: cn(
|
|
25482
|
+
action.variant === "danger" && "text-error hover:bg-error/10"
|
|
25483
|
+
),
|
|
25484
|
+
children: [
|
|
25485
|
+
action.icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: action.icon, size: "xs", className: "mr-1" }),
|
|
25486
|
+
action.label
|
|
25487
|
+
]
|
|
25488
|
+
},
|
|
25489
|
+
idx
|
|
25490
|
+
))
|
|
25491
|
+
}
|
|
25492
|
+
)
|
|
25493
|
+
] }),
|
|
25512
25494
|
isCard && !isLast && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "mx-6 border-b border-border/40" })
|
|
25513
25495
|
] }, id2);
|
|
25514
25496
|
}
|
|
@@ -56165,7 +56147,7 @@ function findCrossLinks(orbitals) {
|
|
|
56165
56147
|
}
|
|
56166
56148
|
return links;
|
|
56167
56149
|
}
|
|
56168
|
-
function schemaToOverviewGraph(schema, mockData, behaviorMeta, layoutHint) {
|
|
56150
|
+
function schemaToOverviewGraph(schema, mockData, behaviorMeta, layoutHint, orbitalStatus) {
|
|
56169
56151
|
const orbitals = getOrbitals(schema);
|
|
56170
56152
|
const nodes = [];
|
|
56171
56153
|
const edges = [];
|
|
@@ -56243,6 +56225,7 @@ function schemaToOverviewGraph(schema, mockData, behaviorMeta, layoutHint) {
|
|
|
56243
56225
|
fieldCount: entityInfo.fieldCount,
|
|
56244
56226
|
traitCount: traits2.length,
|
|
56245
56227
|
pageRoutes,
|
|
56228
|
+
status: orbitalStatus?.[orb.name] ?? "idle",
|
|
56246
56229
|
_fullSchema: schema,
|
|
56247
56230
|
_mockData: mockData
|
|
56248
56231
|
}
|
|
@@ -58775,6 +58758,10 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
58775
58758
|
const eventSources = data.eventSources ?? [];
|
|
58776
58759
|
const layerColor = data.layer ? LAYER_COLORS[data.layer] : void 0;
|
|
58777
58760
|
const isExpanded = Boolean(data.traitName);
|
|
58761
|
+
const status = data.status ?? "idle";
|
|
58762
|
+
const isRunning = status === "running";
|
|
58763
|
+
const isSuccess = status === "success";
|
|
58764
|
+
const isError = status === "error";
|
|
58778
58765
|
const label = isExpanded ? `${data.transitionEvent ?? ""}` : data.orbitalName;
|
|
58779
58766
|
const sublabel = isExpanded ? `${data.fromState ?? ""} \u2192 ${data.toState ?? ""}` : data.entityName ?? "";
|
|
58780
58767
|
const orbitalSchema = React147.useMemo(() => {
|
|
@@ -58909,19 +58896,54 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
58909
58896
|
const handlePreviewDragLeave = React147.useCallback((e) => {
|
|
58910
58897
|
contentRef.current?.querySelectorAll(".drag-hover").forEach((c) => c.classList.remove("drag-hover"));
|
|
58911
58898
|
}, []);
|
|
58899
|
+
const statusBorder = isRunning ? "var(--color-primary)" : isError ? "var(--color-danger)" : isSuccess ? "var(--color-success)" : null;
|
|
58900
|
+
const borderWidth = isRunning || isError || isSuccess ? "2px" : "1.5px";
|
|
58901
|
+
const borderColor = statusBorder ?? (hovered ? "var(--color-primary)" : colors.border);
|
|
58912
58902
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
58913
58903
|
Box,
|
|
58914
58904
|
{
|
|
58915
|
-
className:
|
|
58905
|
+
className: `rounded-lg border shadow-sm bg-card transition-all duration-200 overflow-hidden relative${isRunning ? " orb-preview-running" : ""}`,
|
|
58916
58906
|
style: {
|
|
58917
|
-
borderColor
|
|
58918
|
-
borderWidth
|
|
58907
|
+
borderColor,
|
|
58908
|
+
borderWidth,
|
|
58919
58909
|
width: preset.width
|
|
58920
58910
|
},
|
|
58921
58911
|
onMouseEnter: handleMouseEnter,
|
|
58922
58912
|
onMouseLeave: handleMouseLeave,
|
|
58923
58913
|
children: [
|
|
58924
58914
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: SELECTION_STYLES }),
|
|
58915
|
+
isRunning && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
58916
|
+
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `
|
|
58917
|
+
@keyframes orb-preview-running-pulse {
|
|
58918
|
+
0%, 100% { box-shadow: 0 0 0 0 var(--color-primary); opacity: 0.6; }
|
|
58919
|
+
50% { box-shadow: 0 0 0 4px var(--color-primary); opacity: 0.15; }
|
|
58920
|
+
}
|
|
58921
|
+
.orb-preview-running {
|
|
58922
|
+
animation: orb-preview-running-pulse 1.8s ease-in-out infinite;
|
|
58923
|
+
}
|
|
58924
|
+
@keyframes orb-preview-spinner {
|
|
58925
|
+
from { transform: rotate(0deg); }
|
|
58926
|
+
to { transform: rotate(360deg); }
|
|
58927
|
+
}
|
|
58928
|
+
.orb-preview-spinner {
|
|
58929
|
+
animation: orb-preview-spinner 0.9s linear infinite;
|
|
58930
|
+
}
|
|
58931
|
+
` }),
|
|
58932
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
58933
|
+
Box,
|
|
58934
|
+
{
|
|
58935
|
+
className: "orb-preview-spinner absolute top-2 right-2 rounded-full pointer-events-none",
|
|
58936
|
+
style: {
|
|
58937
|
+
width: 14,
|
|
58938
|
+
height: 14,
|
|
58939
|
+
border: "2px solid var(--color-primary)",
|
|
58940
|
+
borderTopColor: "transparent",
|
|
58941
|
+
zIndex: 2
|
|
58942
|
+
},
|
|
58943
|
+
title: "Coordinator is dispatching to this orbital"
|
|
58944
|
+
}
|
|
58945
|
+
)
|
|
58946
|
+
] }),
|
|
58925
58947
|
layerColor && /* @__PURE__ */ jsxRuntime.jsx(
|
|
58926
58948
|
Box,
|
|
58927
58949
|
{
|
|
@@ -59857,6 +59879,8 @@ function FlowCanvasInner({
|
|
|
59857
59879
|
onPatternDelete,
|
|
59858
59880
|
onEventWire,
|
|
59859
59881
|
behaviorMeta,
|
|
59882
|
+
orbitalStatus,
|
|
59883
|
+
onOrbitalHover,
|
|
59860
59884
|
layoutHint,
|
|
59861
59885
|
onNodeSelect,
|
|
59862
59886
|
composeLevel,
|
|
@@ -59899,7 +59923,7 @@ function FlowCanvasInner({
|
|
|
59899
59923
|
const { composeNodes, composeEdges, overviewNodes, overviewEdges, expandedNodes, expandedEdges } = React147.useMemo(() => {
|
|
59900
59924
|
const t = perfStart("compose-graph");
|
|
59901
59925
|
const compose = composeLevel === "behavior" && behaviorEntries?.length ? behaviorsToComposeGraph(behaviorEntries, behaviorWires ?? [], layoutHint) : { nodes: [], edges: [] };
|
|
59902
|
-
const overview = schemaToOverviewGraph(parsedSchema, mockData, behaviorMeta, layoutHint);
|
|
59926
|
+
const overview = schemaToOverviewGraph(parsedSchema, mockData, behaviorMeta, layoutHint, orbitalStatus);
|
|
59903
59927
|
const expanded = expandedOrbital ? orbitalToExpandedGraph(parsedSchema, expandedOrbital, mockData) : { nodes: [], edges: [] };
|
|
59904
59928
|
perfEnd("compose-graph", t, {
|
|
59905
59929
|
composeNodes: compose.nodes.length,
|
|
@@ -59915,7 +59939,7 @@ function FlowCanvasInner({
|
|
|
59915
59939
|
expandedNodes: expanded.nodes,
|
|
59916
59940
|
expandedEdges: expanded.edges
|
|
59917
59941
|
};
|
|
59918
|
-
}, [parsedSchema, expandedOrbital, behaviorMeta, layoutHint, composeLevel, behaviorEntries, behaviorWires, mockData]);
|
|
59942
|
+
}, [parsedSchema, expandedOrbital, behaviorMeta, layoutHint, composeLevel, behaviorEntries, behaviorWires, mockData, orbitalStatus]);
|
|
59919
59943
|
const activeNodes = atBehaviorLevel && composeNodes.length > 0 ? composeNodes : level === "overview" ? overviewNodes : expandedNodes;
|
|
59920
59944
|
const activeEdges = atBehaviorLevel && composeEdges.length > 0 ? composeEdges : level === "overview" ? overviewEdges : expandedEdges;
|
|
59921
59945
|
const [nodes, setNodes, onNodesChange] = react.useNodesState(activeNodes);
|
package/dist/avl/index.d.cts
CHANGED
|
@@ -901,6 +901,18 @@ interface PreviewNodeData extends Record<string, unknown> {
|
|
|
901
901
|
fieldCount?: number;
|
|
902
902
|
traitCount?: number;
|
|
903
903
|
pageRoutes?: string[];
|
|
904
|
+
/**
|
|
905
|
+
* Generation status for this orbital. When `'running'`, the overview node
|
|
906
|
+
* renders a spinner overlay + accent border so the user can see which
|
|
907
|
+
* orbital the coordinator is currently dispatching to. Other states are
|
|
908
|
+
* available so consumers can also paint success/error treatments
|
|
909
|
+
* (e.g. green border on completion, red on failure). Default is `'idle'`.
|
|
910
|
+
*
|
|
911
|
+
* Set by FlowCanvasProps.orbitalStatus and threaded through the converter.
|
|
912
|
+
* Future expansion: hover over a `'running'` node to surface the subagent
|
|
913
|
+
* trace inline.
|
|
914
|
+
*/
|
|
915
|
+
status?: 'idle' | 'running' | 'success' | 'error';
|
|
904
916
|
}
|
|
905
917
|
/** Data for event flow edges. */
|
|
906
918
|
interface EventEdgeData extends Record<string, unknown> {
|
|
@@ -948,7 +960,7 @@ interface EventEdgeData extends Record<string, unknown> {
|
|
|
948
960
|
*/
|
|
949
961
|
declare function schemaToOverviewGraph(schema: OrbitalSchema, mockData?: Record<string, unknown[]>, behaviorMeta?: Record<string, {
|
|
950
962
|
layer: string;
|
|
951
|
-
}>, layoutHint?: 'pipeline' | 'grid'): {
|
|
963
|
+
}>, layoutHint?: 'pipeline' | 'grid', orbitalStatus?: Record<string, PreviewNodeData['status']>): {
|
|
952
964
|
nodes: Node<PreviewNodeData>[];
|
|
953
965
|
edges: Edge<EventEdgeData>[];
|
|
954
966
|
};
|
|
@@ -1260,6 +1272,20 @@ interface FlowCanvasProps {
|
|
|
1260
1272
|
behaviorMeta?: Record<string, {
|
|
1261
1273
|
layer: string;
|
|
1262
1274
|
}>;
|
|
1275
|
+
/**
|
|
1276
|
+
* Per-orbital generation status. Keyed by orbital name. Drives the spinner
|
|
1277
|
+
* + accent border treatment on the overview node and (future) the hover
|
|
1278
|
+
* trace surface. Defaults to `'idle'` for missing entries. Consumers
|
|
1279
|
+
* derive this from agent subagent_start/complete SSE events.
|
|
1280
|
+
*/
|
|
1281
|
+
orbitalStatus?: Record<string, PreviewNodeData['status']>;
|
|
1282
|
+
/**
|
|
1283
|
+
* Hover handler for overview-level orbital nodes. Fires with the orbital
|
|
1284
|
+
* name on enter and `null` on leave. Reserved for the upcoming trace
|
|
1285
|
+
* tooltip: consumers will use it to anchor a popover that shows the
|
|
1286
|
+
* subagent's live trace + reasoning for the hovered orbital.
|
|
1287
|
+
*/
|
|
1288
|
+
onOrbitalHover?: (orbitalName: string | null) => void;
|
|
1263
1289
|
/** Layout hint: 'pipeline' renders nodes left-to-right, 'grid' (default) uses sqrt-based grid. */
|
|
1264
1290
|
layoutHint?: 'pipeline' | 'grid';
|
|
1265
1291
|
/** Called when the user clicks a node in overview level (for composition hints). */
|
package/dist/avl/index.js
CHANGED
|
@@ -25032,14 +25032,7 @@ function DataGrid({
|
|
|
25032
25032
|
{
|
|
25033
25033
|
"data-entity-row": true,
|
|
25034
25034
|
"data-entity-id": id,
|
|
25035
|
-
className: cn(
|
|
25036
|
-
"bg-card rounded-lg",
|
|
25037
|
-
"border border-border",
|
|
25038
|
-
"shadow-sm hover:shadow-lg",
|
|
25039
|
-
"hover:border-primary transition-all",
|
|
25040
|
-
"p-4",
|
|
25041
|
-
isSelected && "ring-2 ring-primary border-primary"
|
|
25042
|
-
),
|
|
25035
|
+
className: cn(isSelected && "ring-2 ring-primary rounded-lg"),
|
|
25043
25036
|
children: children(itemData, index)
|
|
25044
25037
|
},
|
|
25045
25038
|
id
|
|
@@ -25424,45 +25417,34 @@ function DataList({
|
|
|
25424
25417
|
if (hasRenderProp) {
|
|
25425
25418
|
const id2 = itemData.id || String(index);
|
|
25426
25419
|
return /* @__PURE__ */ jsxs(Box, { "data-entity-row": true, "data-entity-id": id2, children: [
|
|
25427
|
-
/* @__PURE__ */ jsxs(
|
|
25428
|
-
Box,
|
|
25429
|
-
|
|
25430
|
-
|
|
25431
|
-
|
|
25432
|
-
|
|
25433
|
-
"
|
|
25434
|
-
|
|
25435
|
-
|
|
25436
|
-
children: [
|
|
25437
|
-
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
25438
|
-
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsx(
|
|
25439
|
-
HStack,
|
|
25420
|
+
/* @__PURE__ */ jsxs(Box, { className: "group flex items-stretch gap-2", children: [
|
|
25421
|
+
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
25422
|
+
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsx(
|
|
25423
|
+
HStack,
|
|
25424
|
+
{
|
|
25425
|
+
gap: "xs",
|
|
25426
|
+
className: "flex-shrink-0",
|
|
25427
|
+
children: itemActions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
25428
|
+
Button,
|
|
25440
25429
|
{
|
|
25441
|
-
|
|
25442
|
-
|
|
25443
|
-
|
|
25444
|
-
|
|
25445
|
-
|
|
25446
|
-
|
|
25447
|
-
|
|
25448
|
-
|
|
25449
|
-
|
|
25450
|
-
|
|
25451
|
-
|
|
25452
|
-
|
|
25453
|
-
|
|
25454
|
-
|
|
25455
|
-
|
|
25456
|
-
|
|
25457
|
-
|
|
25458
|
-
|
|
25459
|
-
idx
|
|
25460
|
-
))
|
|
25461
|
-
}
|
|
25462
|
-
)
|
|
25463
|
-
]
|
|
25464
|
-
}
|
|
25465
|
-
),
|
|
25430
|
+
variant: action.variant ?? "ghost",
|
|
25431
|
+
size: "sm",
|
|
25432
|
+
onClick: handleActionClick(action, itemData),
|
|
25433
|
+
"data-testid": `action-${action.event}`,
|
|
25434
|
+
"data-row-id": String(itemData.id),
|
|
25435
|
+
className: cn(
|
|
25436
|
+
action.variant === "danger" && "text-error hover:bg-error/10"
|
|
25437
|
+
),
|
|
25438
|
+
children: [
|
|
25439
|
+
action.icon && /* @__PURE__ */ jsx(Icon, { name: action.icon, size: "xs", className: "mr-1" }),
|
|
25440
|
+
action.label
|
|
25441
|
+
]
|
|
25442
|
+
},
|
|
25443
|
+
idx
|
|
25444
|
+
))
|
|
25445
|
+
}
|
|
25446
|
+
)
|
|
25447
|
+
] }),
|
|
25466
25448
|
isCard && !isLast && /* @__PURE__ */ jsx(Box, { className: "mx-6 border-b border-border/40" })
|
|
25467
25449
|
] }, id2);
|
|
25468
25450
|
}
|
|
@@ -56119,7 +56101,7 @@ function findCrossLinks(orbitals) {
|
|
|
56119
56101
|
}
|
|
56120
56102
|
return links;
|
|
56121
56103
|
}
|
|
56122
|
-
function schemaToOverviewGraph(schema, mockData, behaviorMeta, layoutHint) {
|
|
56104
|
+
function schemaToOverviewGraph(schema, mockData, behaviorMeta, layoutHint, orbitalStatus) {
|
|
56123
56105
|
const orbitals = getOrbitals(schema);
|
|
56124
56106
|
const nodes = [];
|
|
56125
56107
|
const edges = [];
|
|
@@ -56197,6 +56179,7 @@ function schemaToOverviewGraph(schema, mockData, behaviorMeta, layoutHint) {
|
|
|
56197
56179
|
fieldCount: entityInfo.fieldCount,
|
|
56198
56180
|
traitCount: traits2.length,
|
|
56199
56181
|
pageRoutes,
|
|
56182
|
+
status: orbitalStatus?.[orb.name] ?? "idle",
|
|
56200
56183
|
_fullSchema: schema,
|
|
56201
56184
|
_mockData: mockData
|
|
56202
56185
|
}
|
|
@@ -58729,6 +58712,10 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
58729
58712
|
const eventSources = data.eventSources ?? [];
|
|
58730
58713
|
const layerColor = data.layer ? LAYER_COLORS[data.layer] : void 0;
|
|
58731
58714
|
const isExpanded = Boolean(data.traitName);
|
|
58715
|
+
const status = data.status ?? "idle";
|
|
58716
|
+
const isRunning = status === "running";
|
|
58717
|
+
const isSuccess = status === "success";
|
|
58718
|
+
const isError = status === "error";
|
|
58732
58719
|
const label = isExpanded ? `${data.transitionEvent ?? ""}` : data.orbitalName;
|
|
58733
58720
|
const sublabel = isExpanded ? `${data.fromState ?? ""} \u2192 ${data.toState ?? ""}` : data.entityName ?? "";
|
|
58734
58721
|
const orbitalSchema = useMemo(() => {
|
|
@@ -58863,19 +58850,54 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
58863
58850
|
const handlePreviewDragLeave = useCallback((e) => {
|
|
58864
58851
|
contentRef.current?.querySelectorAll(".drag-hover").forEach((c) => c.classList.remove("drag-hover"));
|
|
58865
58852
|
}, []);
|
|
58853
|
+
const statusBorder = isRunning ? "var(--color-primary)" : isError ? "var(--color-danger)" : isSuccess ? "var(--color-success)" : null;
|
|
58854
|
+
const borderWidth = isRunning || isError || isSuccess ? "2px" : "1.5px";
|
|
58855
|
+
const borderColor = statusBorder ?? (hovered ? "var(--color-primary)" : colors.border);
|
|
58866
58856
|
return /* @__PURE__ */ jsxs(
|
|
58867
58857
|
Box,
|
|
58868
58858
|
{
|
|
58869
|
-
className:
|
|
58859
|
+
className: `rounded-lg border shadow-sm bg-card transition-all duration-200 overflow-hidden relative${isRunning ? " orb-preview-running" : ""}`,
|
|
58870
58860
|
style: {
|
|
58871
|
-
borderColor
|
|
58872
|
-
borderWidth
|
|
58861
|
+
borderColor,
|
|
58862
|
+
borderWidth,
|
|
58873
58863
|
width: preset.width
|
|
58874
58864
|
},
|
|
58875
58865
|
onMouseEnter: handleMouseEnter,
|
|
58876
58866
|
onMouseLeave: handleMouseLeave,
|
|
58877
58867
|
children: [
|
|
58878
58868
|
/* @__PURE__ */ jsx("style", { children: SELECTION_STYLES }),
|
|
58869
|
+
isRunning && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
58870
|
+
/* @__PURE__ */ jsx("style", { children: `
|
|
58871
|
+
@keyframes orb-preview-running-pulse {
|
|
58872
|
+
0%, 100% { box-shadow: 0 0 0 0 var(--color-primary); opacity: 0.6; }
|
|
58873
|
+
50% { box-shadow: 0 0 0 4px var(--color-primary); opacity: 0.15; }
|
|
58874
|
+
}
|
|
58875
|
+
.orb-preview-running {
|
|
58876
|
+
animation: orb-preview-running-pulse 1.8s ease-in-out infinite;
|
|
58877
|
+
}
|
|
58878
|
+
@keyframes orb-preview-spinner {
|
|
58879
|
+
from { transform: rotate(0deg); }
|
|
58880
|
+
to { transform: rotate(360deg); }
|
|
58881
|
+
}
|
|
58882
|
+
.orb-preview-spinner {
|
|
58883
|
+
animation: orb-preview-spinner 0.9s linear infinite;
|
|
58884
|
+
}
|
|
58885
|
+
` }),
|
|
58886
|
+
/* @__PURE__ */ jsx(
|
|
58887
|
+
Box,
|
|
58888
|
+
{
|
|
58889
|
+
className: "orb-preview-spinner absolute top-2 right-2 rounded-full pointer-events-none",
|
|
58890
|
+
style: {
|
|
58891
|
+
width: 14,
|
|
58892
|
+
height: 14,
|
|
58893
|
+
border: "2px solid var(--color-primary)",
|
|
58894
|
+
borderTopColor: "transparent",
|
|
58895
|
+
zIndex: 2
|
|
58896
|
+
},
|
|
58897
|
+
title: "Coordinator is dispatching to this orbital"
|
|
58898
|
+
}
|
|
58899
|
+
)
|
|
58900
|
+
] }),
|
|
58879
58901
|
layerColor && /* @__PURE__ */ jsx(
|
|
58880
58902
|
Box,
|
|
58881
58903
|
{
|
|
@@ -59811,6 +59833,8 @@ function FlowCanvasInner({
|
|
|
59811
59833
|
onPatternDelete,
|
|
59812
59834
|
onEventWire,
|
|
59813
59835
|
behaviorMeta,
|
|
59836
|
+
orbitalStatus,
|
|
59837
|
+
onOrbitalHover,
|
|
59814
59838
|
layoutHint,
|
|
59815
59839
|
onNodeSelect,
|
|
59816
59840
|
composeLevel,
|
|
@@ -59853,7 +59877,7 @@ function FlowCanvasInner({
|
|
|
59853
59877
|
const { composeNodes, composeEdges, overviewNodes, overviewEdges, expandedNodes, expandedEdges } = useMemo(() => {
|
|
59854
59878
|
const t = perfStart("compose-graph");
|
|
59855
59879
|
const compose = composeLevel === "behavior" && behaviorEntries?.length ? behaviorsToComposeGraph(behaviorEntries, behaviorWires ?? [], layoutHint) : { nodes: [], edges: [] };
|
|
59856
|
-
const overview = schemaToOverviewGraph(parsedSchema, mockData, behaviorMeta, layoutHint);
|
|
59880
|
+
const overview = schemaToOverviewGraph(parsedSchema, mockData, behaviorMeta, layoutHint, orbitalStatus);
|
|
59857
59881
|
const expanded = expandedOrbital ? orbitalToExpandedGraph(parsedSchema, expandedOrbital, mockData) : { nodes: [], edges: [] };
|
|
59858
59882
|
perfEnd("compose-graph", t, {
|
|
59859
59883
|
composeNodes: compose.nodes.length,
|
|
@@ -59869,7 +59893,7 @@ function FlowCanvasInner({
|
|
|
59869
59893
|
expandedNodes: expanded.nodes,
|
|
59870
59894
|
expandedEdges: expanded.edges
|
|
59871
59895
|
};
|
|
59872
|
-
}, [parsedSchema, expandedOrbital, behaviorMeta, layoutHint, composeLevel, behaviorEntries, behaviorWires, mockData]);
|
|
59896
|
+
}, [parsedSchema, expandedOrbital, behaviorMeta, layoutHint, composeLevel, behaviorEntries, behaviorWires, mockData, orbitalStatus]);
|
|
59873
59897
|
const activeNodes = atBehaviorLevel && composeNodes.length > 0 ? composeNodes : level === "overview" ? overviewNodes : expandedNodes;
|
|
59874
59898
|
const activeEdges = atBehaviorLevel && composeEdges.length > 0 ? composeEdges : level === "overview" ? overviewEdges : expandedEdges;
|
|
59875
59899
|
const [nodes, setNodes, onNodesChange] = useNodesState(activeNodes);
|
|
@@ -20245,14 +20245,7 @@ function DataGrid({
|
|
|
20245
20245
|
{
|
|
20246
20246
|
"data-entity-row": true,
|
|
20247
20247
|
"data-entity-id": id,
|
|
20248
|
-
className: cn(
|
|
20249
|
-
"bg-card rounded-lg",
|
|
20250
|
-
"border border-border",
|
|
20251
|
-
"shadow-sm hover:shadow-lg",
|
|
20252
|
-
"hover:border-primary transition-all",
|
|
20253
|
-
"p-4",
|
|
20254
|
-
isSelected && "ring-2 ring-primary border-primary"
|
|
20255
|
-
),
|
|
20248
|
+
className: cn(isSelected && "ring-2 ring-primary rounded-lg"),
|
|
20256
20249
|
children: children(itemData, index)
|
|
20257
20250
|
},
|
|
20258
20251
|
id
|
|
@@ -20637,45 +20630,34 @@ function DataList({
|
|
|
20637
20630
|
if (hasRenderProp) {
|
|
20638
20631
|
const id2 = itemData.id || String(index);
|
|
20639
20632
|
return /* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { "data-entity-row": true, "data-entity-id": id2, children: [
|
|
20640
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
20641
|
-
exports.Box,
|
|
20642
|
-
|
|
20643
|
-
|
|
20644
|
-
|
|
20645
|
-
|
|
20646
|
-
"
|
|
20647
|
-
|
|
20648
|
-
|
|
20649
|
-
children: [
|
|
20650
|
-
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
20651
|
-
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20652
|
-
exports.HStack,
|
|
20633
|
+
/* @__PURE__ */ jsxRuntime.jsxs(exports.Box, { className: "group flex items-stretch gap-2", children: [
|
|
20634
|
+
/* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
20635
|
+
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
20636
|
+
exports.HStack,
|
|
20637
|
+
{
|
|
20638
|
+
gap: "xs",
|
|
20639
|
+
className: "flex-shrink-0",
|
|
20640
|
+
children: itemActions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20641
|
+
exports.Button,
|
|
20653
20642
|
{
|
|
20654
|
-
|
|
20655
|
-
|
|
20656
|
-
|
|
20657
|
-
|
|
20658
|
-
|
|
20659
|
-
|
|
20660
|
-
|
|
20661
|
-
|
|
20662
|
-
|
|
20663
|
-
|
|
20664
|
-
|
|
20665
|
-
|
|
20666
|
-
|
|
20667
|
-
|
|
20668
|
-
|
|
20669
|
-
|
|
20670
|
-
|
|
20671
|
-
|
|
20672
|
-
idx
|
|
20673
|
-
))
|
|
20674
|
-
}
|
|
20675
|
-
)
|
|
20676
|
-
]
|
|
20677
|
-
}
|
|
20678
|
-
),
|
|
20643
|
+
variant: action.variant ?? "ghost",
|
|
20644
|
+
size: "sm",
|
|
20645
|
+
onClick: handleActionClick(action, itemData),
|
|
20646
|
+
"data-testid": `action-${action.event}`,
|
|
20647
|
+
"data-row-id": String(itemData.id),
|
|
20648
|
+
className: cn(
|
|
20649
|
+
action.variant === "danger" && "text-error hover:bg-error/10"
|
|
20650
|
+
),
|
|
20651
|
+
children: [
|
|
20652
|
+
action.icon && /* @__PURE__ */ jsxRuntime.jsx(exports.Icon, { name: action.icon, size: "xs", className: "mr-1" }),
|
|
20653
|
+
action.label
|
|
20654
|
+
]
|
|
20655
|
+
},
|
|
20656
|
+
idx
|
|
20657
|
+
))
|
|
20658
|
+
}
|
|
20659
|
+
)
|
|
20660
|
+
] }),
|
|
20679
20661
|
isCard && !isLast && /* @__PURE__ */ jsxRuntime.jsx(exports.Box, { className: "mx-6 border-b border-border/40" })
|
|
20680
20662
|
] }, id2);
|
|
20681
20663
|
}
|
package/dist/components/index.js
CHANGED
|
@@ -20199,14 +20199,7 @@ function DataGrid({
|
|
|
20199
20199
|
{
|
|
20200
20200
|
"data-entity-row": true,
|
|
20201
20201
|
"data-entity-id": id,
|
|
20202
|
-
className: cn(
|
|
20203
|
-
"bg-card rounded-lg",
|
|
20204
|
-
"border border-border",
|
|
20205
|
-
"shadow-sm hover:shadow-lg",
|
|
20206
|
-
"hover:border-primary transition-all",
|
|
20207
|
-
"p-4",
|
|
20208
|
-
isSelected && "ring-2 ring-primary border-primary"
|
|
20209
|
-
),
|
|
20202
|
+
className: cn(isSelected && "ring-2 ring-primary rounded-lg"),
|
|
20210
20203
|
children: children(itemData, index)
|
|
20211
20204
|
},
|
|
20212
20205
|
id
|
|
@@ -20591,45 +20584,34 @@ function DataList({
|
|
|
20591
20584
|
if (hasRenderProp) {
|
|
20592
20585
|
const id2 = itemData.id || String(index);
|
|
20593
20586
|
return /* @__PURE__ */ jsxs(Box, { "data-entity-row": true, "data-entity-id": id2, children: [
|
|
20594
|
-
/* @__PURE__ */ jsxs(
|
|
20595
|
-
Box,
|
|
20596
|
-
|
|
20597
|
-
|
|
20598
|
-
|
|
20599
|
-
|
|
20600
|
-
"
|
|
20601
|
-
|
|
20602
|
-
|
|
20603
|
-
children: [
|
|
20604
|
-
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
20605
|
-
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsx(
|
|
20606
|
-
HStack,
|
|
20587
|
+
/* @__PURE__ */ jsxs(Box, { className: "group flex items-stretch gap-2", children: [
|
|
20588
|
+
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
20589
|
+
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsx(
|
|
20590
|
+
HStack,
|
|
20591
|
+
{
|
|
20592
|
+
gap: "xs",
|
|
20593
|
+
className: "flex-shrink-0",
|
|
20594
|
+
children: itemActions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
20595
|
+
Button,
|
|
20607
20596
|
{
|
|
20608
|
-
|
|
20609
|
-
|
|
20610
|
-
|
|
20611
|
-
|
|
20612
|
-
|
|
20613
|
-
|
|
20614
|
-
|
|
20615
|
-
|
|
20616
|
-
|
|
20617
|
-
|
|
20618
|
-
|
|
20619
|
-
|
|
20620
|
-
|
|
20621
|
-
|
|
20622
|
-
|
|
20623
|
-
|
|
20624
|
-
|
|
20625
|
-
|
|
20626
|
-
idx
|
|
20627
|
-
))
|
|
20628
|
-
}
|
|
20629
|
-
)
|
|
20630
|
-
]
|
|
20631
|
-
}
|
|
20632
|
-
),
|
|
20597
|
+
variant: action.variant ?? "ghost",
|
|
20598
|
+
size: "sm",
|
|
20599
|
+
onClick: handleActionClick(action, itemData),
|
|
20600
|
+
"data-testid": `action-${action.event}`,
|
|
20601
|
+
"data-row-id": String(itemData.id),
|
|
20602
|
+
className: cn(
|
|
20603
|
+
action.variant === "danger" && "text-error hover:bg-error/10"
|
|
20604
|
+
),
|
|
20605
|
+
children: [
|
|
20606
|
+
action.icon && /* @__PURE__ */ jsx(Icon, { name: action.icon, size: "xs", className: "mr-1" }),
|
|
20607
|
+
action.label
|
|
20608
|
+
]
|
|
20609
|
+
},
|
|
20610
|
+
idx
|
|
20611
|
+
))
|
|
20612
|
+
}
|
|
20613
|
+
)
|
|
20614
|
+
] }),
|
|
20633
20615
|
isCard && !isLast && /* @__PURE__ */ jsx(Box, { className: "mx-6 border-b border-border/40" })
|
|
20634
20616
|
] }, id2);
|
|
20635
20617
|
}
|
|
@@ -21,7 +21,7 @@ import type { PreviewNodeData, EventEdgeData } from './avl-preview-types';
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function schemaToOverviewGraph(schema: OrbitalSchema, mockData?: Record<string, unknown[]>, behaviorMeta?: Record<string, {
|
|
23
23
|
layer: string;
|
|
24
|
-
}>, layoutHint?: 'pipeline' | 'grid'): {
|
|
24
|
+
}>, layoutHint?: 'pipeline' | 'grid', orbitalStatus?: Record<string, PreviewNodeData['status']>): {
|
|
25
25
|
nodes: Node<PreviewNodeData>[];
|
|
26
26
|
edges: Edge<EventEdgeData>[];
|
|
27
27
|
};
|
|
@@ -89,6 +89,18 @@ export interface PreviewNodeData extends Record<string, unknown> {
|
|
|
89
89
|
fieldCount?: number;
|
|
90
90
|
traitCount?: number;
|
|
91
91
|
pageRoutes?: string[];
|
|
92
|
+
/**
|
|
93
|
+
* Generation status for this orbital. When `'running'`, the overview node
|
|
94
|
+
* renders a spinner overlay + accent border so the user can see which
|
|
95
|
+
* orbital the coordinator is currently dispatching to. Other states are
|
|
96
|
+
* available so consumers can also paint success/error treatments
|
|
97
|
+
* (e.g. green border on completion, red on failure). Default is `'idle'`.
|
|
98
|
+
*
|
|
99
|
+
* Set by FlowCanvasProps.orbitalStatus and threaded through the converter.
|
|
100
|
+
* Future expansion: hover over a `'running'` node to surface the subagent
|
|
101
|
+
* trace inline.
|
|
102
|
+
*/
|
|
103
|
+
status?: 'idle' | 'running' | 'success' | 'error';
|
|
92
104
|
}
|
|
93
105
|
/** Data for event flow edges. */
|
|
94
106
|
export interface EventEdgeData extends Record<string, unknown> {
|
|
@@ -78,6 +78,20 @@ export interface FlowCanvasProps {
|
|
|
78
78
|
behaviorMeta?: Record<string, {
|
|
79
79
|
layer: string;
|
|
80
80
|
}>;
|
|
81
|
+
/**
|
|
82
|
+
* Per-orbital generation status. Keyed by orbital name. Drives the spinner
|
|
83
|
+
* + accent border treatment on the overview node and (future) the hover
|
|
84
|
+
* trace surface. Defaults to `'idle'` for missing entries. Consumers
|
|
85
|
+
* derive this from agent subagent_start/complete SSE events.
|
|
86
|
+
*/
|
|
87
|
+
orbitalStatus?: Record<string, PreviewNodeData['status']>;
|
|
88
|
+
/**
|
|
89
|
+
* Hover handler for overview-level orbital nodes. Fires with the orbital
|
|
90
|
+
* name on enter and `null` on leave. Reserved for the upcoming trace
|
|
91
|
+
* tooltip: consumers will use it to anchor a popover that shows the
|
|
92
|
+
* subagent's live trace + reasoning for the hovered orbital.
|
|
93
|
+
*/
|
|
94
|
+
onOrbitalHover?: (orbitalName: string | null) => void;
|
|
81
95
|
/** Layout hint: 'pipeline' renders nodes left-to-right, 'grid' (default) uses sqrt-based grid. */
|
|
82
96
|
layoutHint?: 'pipeline' | 'grid';
|
|
83
97
|
/** Called when the user clicks a node in overview level (for composition hints). */
|
package/dist/providers/index.cjs
CHANGED
|
@@ -21490,14 +21490,7 @@ function DataGrid({
|
|
|
21490
21490
|
{
|
|
21491
21491
|
"data-entity-row": true,
|
|
21492
21492
|
"data-entity-id": id,
|
|
21493
|
-
className: cn(
|
|
21494
|
-
"bg-card rounded-lg",
|
|
21495
|
-
"border border-border",
|
|
21496
|
-
"shadow-sm hover:shadow-lg",
|
|
21497
|
-
"hover:border-primary transition-all",
|
|
21498
|
-
"p-4",
|
|
21499
|
-
isSelected && "ring-2 ring-primary border-primary"
|
|
21500
|
-
),
|
|
21493
|
+
className: cn(isSelected && "ring-2 ring-primary rounded-lg"),
|
|
21501
21494
|
children: children(itemData, index)
|
|
21502
21495
|
},
|
|
21503
21496
|
id
|
|
@@ -21882,45 +21875,34 @@ function DataList({
|
|
|
21882
21875
|
if (hasRenderProp) {
|
|
21883
21876
|
const id2 = itemData.id || String(index);
|
|
21884
21877
|
return /* @__PURE__ */ jsxRuntime.jsxs(Box, { "data-entity-row": true, "data-entity-id": id2, children: [
|
|
21885
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
21886
|
-
Box,
|
|
21887
|
-
|
|
21888
|
-
|
|
21889
|
-
|
|
21890
|
-
|
|
21891
|
-
"
|
|
21892
|
-
|
|
21893
|
-
|
|
21894
|
-
children: [
|
|
21895
|
-
/* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
21896
|
-
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
21897
|
-
HStack,
|
|
21878
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "group flex items-stretch gap-2", children: [
|
|
21879
|
+
/* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
21880
|
+
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
21881
|
+
HStack,
|
|
21882
|
+
{
|
|
21883
|
+
gap: "xs",
|
|
21884
|
+
className: "flex-shrink-0",
|
|
21885
|
+
children: itemActions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21886
|
+
Button,
|
|
21898
21887
|
{
|
|
21899
|
-
|
|
21900
|
-
|
|
21901
|
-
|
|
21902
|
-
|
|
21903
|
-
|
|
21904
|
-
|
|
21905
|
-
|
|
21906
|
-
|
|
21907
|
-
|
|
21908
|
-
|
|
21909
|
-
|
|
21910
|
-
|
|
21911
|
-
|
|
21912
|
-
|
|
21913
|
-
|
|
21914
|
-
|
|
21915
|
-
|
|
21916
|
-
|
|
21917
|
-
idx
|
|
21918
|
-
))
|
|
21919
|
-
}
|
|
21920
|
-
)
|
|
21921
|
-
]
|
|
21922
|
-
}
|
|
21923
|
-
),
|
|
21888
|
+
variant: action.variant ?? "ghost",
|
|
21889
|
+
size: "sm",
|
|
21890
|
+
onClick: handleActionClick(action, itemData),
|
|
21891
|
+
"data-testid": `action-${action.event}`,
|
|
21892
|
+
"data-row-id": String(itemData.id),
|
|
21893
|
+
className: cn(
|
|
21894
|
+
action.variant === "danger" && "text-error hover:bg-error/10"
|
|
21895
|
+
),
|
|
21896
|
+
children: [
|
|
21897
|
+
action.icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: action.icon, size: "xs", className: "mr-1" }),
|
|
21898
|
+
action.label
|
|
21899
|
+
]
|
|
21900
|
+
},
|
|
21901
|
+
idx
|
|
21902
|
+
))
|
|
21903
|
+
}
|
|
21904
|
+
)
|
|
21905
|
+
] }),
|
|
21924
21906
|
isCard && !isLast && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "mx-6 border-b border-border/40" })
|
|
21925
21907
|
] }, id2);
|
|
21926
21908
|
}
|
package/dist/providers/index.js
CHANGED
|
@@ -21444,14 +21444,7 @@ function DataGrid({
|
|
|
21444
21444
|
{
|
|
21445
21445
|
"data-entity-row": true,
|
|
21446
21446
|
"data-entity-id": id,
|
|
21447
|
-
className: cn(
|
|
21448
|
-
"bg-card rounded-lg",
|
|
21449
|
-
"border border-border",
|
|
21450
|
-
"shadow-sm hover:shadow-lg",
|
|
21451
|
-
"hover:border-primary transition-all",
|
|
21452
|
-
"p-4",
|
|
21453
|
-
isSelected && "ring-2 ring-primary border-primary"
|
|
21454
|
-
),
|
|
21447
|
+
className: cn(isSelected && "ring-2 ring-primary rounded-lg"),
|
|
21455
21448
|
children: children(itemData, index)
|
|
21456
21449
|
},
|
|
21457
21450
|
id
|
|
@@ -21836,45 +21829,34 @@ function DataList({
|
|
|
21836
21829
|
if (hasRenderProp) {
|
|
21837
21830
|
const id2 = itemData.id || String(index);
|
|
21838
21831
|
return /* @__PURE__ */ jsxs(Box, { "data-entity-row": true, "data-entity-id": id2, children: [
|
|
21839
|
-
/* @__PURE__ */ jsxs(
|
|
21840
|
-
Box,
|
|
21841
|
-
|
|
21842
|
-
|
|
21843
|
-
|
|
21844
|
-
|
|
21845
|
-
"
|
|
21846
|
-
|
|
21847
|
-
|
|
21848
|
-
children: [
|
|
21849
|
-
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
21850
|
-
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsx(
|
|
21851
|
-
HStack,
|
|
21832
|
+
/* @__PURE__ */ jsxs(Box, { className: "group flex items-stretch gap-2", children: [
|
|
21833
|
+
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
21834
|
+
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsx(
|
|
21835
|
+
HStack,
|
|
21836
|
+
{
|
|
21837
|
+
gap: "xs",
|
|
21838
|
+
className: "flex-shrink-0",
|
|
21839
|
+
children: itemActions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
21840
|
+
Button,
|
|
21852
21841
|
{
|
|
21853
|
-
|
|
21854
|
-
|
|
21855
|
-
|
|
21856
|
-
|
|
21857
|
-
|
|
21858
|
-
|
|
21859
|
-
|
|
21860
|
-
|
|
21861
|
-
|
|
21862
|
-
|
|
21863
|
-
|
|
21864
|
-
|
|
21865
|
-
|
|
21866
|
-
|
|
21867
|
-
|
|
21868
|
-
|
|
21869
|
-
|
|
21870
|
-
|
|
21871
|
-
idx
|
|
21872
|
-
))
|
|
21873
|
-
}
|
|
21874
|
-
)
|
|
21875
|
-
]
|
|
21876
|
-
}
|
|
21877
|
-
),
|
|
21842
|
+
variant: action.variant ?? "ghost",
|
|
21843
|
+
size: "sm",
|
|
21844
|
+
onClick: handleActionClick(action, itemData),
|
|
21845
|
+
"data-testid": `action-${action.event}`,
|
|
21846
|
+
"data-row-id": String(itemData.id),
|
|
21847
|
+
className: cn(
|
|
21848
|
+
action.variant === "danger" && "text-error hover:bg-error/10"
|
|
21849
|
+
),
|
|
21850
|
+
children: [
|
|
21851
|
+
action.icon && /* @__PURE__ */ jsx(Icon, { name: action.icon, size: "xs", className: "mr-1" }),
|
|
21852
|
+
action.label
|
|
21853
|
+
]
|
|
21854
|
+
},
|
|
21855
|
+
idx
|
|
21856
|
+
))
|
|
21857
|
+
}
|
|
21858
|
+
)
|
|
21859
|
+
] }),
|
|
21878
21860
|
isCard && !isLast && /* @__PURE__ */ jsx(Box, { className: "mx-6 border-b border-border/40" })
|
|
21879
21861
|
] }, id2);
|
|
21880
21862
|
}
|
package/dist/runtime/index.cjs
CHANGED
|
@@ -21259,14 +21259,7 @@ function DataGrid({
|
|
|
21259
21259
|
{
|
|
21260
21260
|
"data-entity-row": true,
|
|
21261
21261
|
"data-entity-id": id,
|
|
21262
|
-
className: cn(
|
|
21263
|
-
"bg-card rounded-lg",
|
|
21264
|
-
"border border-border",
|
|
21265
|
-
"shadow-sm hover:shadow-lg",
|
|
21266
|
-
"hover:border-primary transition-all",
|
|
21267
|
-
"p-4",
|
|
21268
|
-
isSelected && "ring-2 ring-primary border-primary"
|
|
21269
|
-
),
|
|
21262
|
+
className: cn(isSelected && "ring-2 ring-primary rounded-lg"),
|
|
21270
21263
|
children: children(itemData, index)
|
|
21271
21264
|
},
|
|
21272
21265
|
id
|
|
@@ -21651,45 +21644,34 @@ function DataList({
|
|
|
21651
21644
|
if (hasRenderProp) {
|
|
21652
21645
|
const id2 = itemData.id || String(index);
|
|
21653
21646
|
return /* @__PURE__ */ jsxRuntime.jsxs(Box, { "data-entity-row": true, "data-entity-id": id2, children: [
|
|
21654
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
21655
|
-
Box,
|
|
21656
|
-
|
|
21657
|
-
|
|
21658
|
-
|
|
21659
|
-
|
|
21660
|
-
"
|
|
21661
|
-
|
|
21662
|
-
|
|
21663
|
-
children: [
|
|
21664
|
-
/* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
21665
|
-
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
21666
|
-
HStack,
|
|
21647
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "group flex items-stretch gap-2", children: [
|
|
21648
|
+
/* @__PURE__ */ jsxRuntime.jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
21649
|
+
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
21650
|
+
HStack,
|
|
21651
|
+
{
|
|
21652
|
+
gap: "xs",
|
|
21653
|
+
className: "flex-shrink-0",
|
|
21654
|
+
children: itemActions.map((action, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21655
|
+
Button,
|
|
21667
21656
|
{
|
|
21668
|
-
|
|
21669
|
-
|
|
21670
|
-
|
|
21671
|
-
|
|
21672
|
-
|
|
21673
|
-
|
|
21674
|
-
|
|
21675
|
-
|
|
21676
|
-
|
|
21677
|
-
|
|
21678
|
-
|
|
21679
|
-
|
|
21680
|
-
|
|
21681
|
-
|
|
21682
|
-
|
|
21683
|
-
|
|
21684
|
-
|
|
21685
|
-
|
|
21686
|
-
idx
|
|
21687
|
-
))
|
|
21688
|
-
}
|
|
21689
|
-
)
|
|
21690
|
-
]
|
|
21691
|
-
}
|
|
21692
|
-
),
|
|
21657
|
+
variant: action.variant ?? "ghost",
|
|
21658
|
+
size: "sm",
|
|
21659
|
+
onClick: handleActionClick(action, itemData),
|
|
21660
|
+
"data-testid": `action-${action.event}`,
|
|
21661
|
+
"data-row-id": String(itemData.id),
|
|
21662
|
+
className: cn(
|
|
21663
|
+
action.variant === "danger" && "text-error hover:bg-error/10"
|
|
21664
|
+
),
|
|
21665
|
+
children: [
|
|
21666
|
+
action.icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: action.icon, size: "xs", className: "mr-1" }),
|
|
21667
|
+
action.label
|
|
21668
|
+
]
|
|
21669
|
+
},
|
|
21670
|
+
idx
|
|
21671
|
+
))
|
|
21672
|
+
}
|
|
21673
|
+
)
|
|
21674
|
+
] }),
|
|
21693
21675
|
isCard && !isLast && /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "mx-6 border-b border-border/40" })
|
|
21694
21676
|
] }, id2);
|
|
21695
21677
|
}
|
package/dist/runtime/index.js
CHANGED
|
@@ -21213,14 +21213,7 @@ function DataGrid({
|
|
|
21213
21213
|
{
|
|
21214
21214
|
"data-entity-row": true,
|
|
21215
21215
|
"data-entity-id": id,
|
|
21216
|
-
className: cn(
|
|
21217
|
-
"bg-card rounded-lg",
|
|
21218
|
-
"border border-border",
|
|
21219
|
-
"shadow-sm hover:shadow-lg",
|
|
21220
|
-
"hover:border-primary transition-all",
|
|
21221
|
-
"p-4",
|
|
21222
|
-
isSelected && "ring-2 ring-primary border-primary"
|
|
21223
|
-
),
|
|
21216
|
+
className: cn(isSelected && "ring-2 ring-primary rounded-lg"),
|
|
21224
21217
|
children: children(itemData, index)
|
|
21225
21218
|
},
|
|
21226
21219
|
id
|
|
@@ -21605,45 +21598,34 @@ function DataList({
|
|
|
21605
21598
|
if (hasRenderProp) {
|
|
21606
21599
|
const id2 = itemData.id || String(index);
|
|
21607
21600
|
return /* @__PURE__ */ jsxs(Box, { "data-entity-row": true, "data-entity-id": id2, children: [
|
|
21608
|
-
/* @__PURE__ */ jsxs(
|
|
21609
|
-
Box,
|
|
21610
|
-
|
|
21611
|
-
|
|
21612
|
-
|
|
21613
|
-
|
|
21614
|
-
"
|
|
21615
|
-
|
|
21616
|
-
|
|
21617
|
-
children: [
|
|
21618
|
-
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
21619
|
-
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsx(
|
|
21620
|
-
HStack,
|
|
21601
|
+
/* @__PURE__ */ jsxs(Box, { className: "group flex items-stretch gap-2", children: [
|
|
21602
|
+
/* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0", children: children(itemData, index) }),
|
|
21603
|
+
itemActions && itemActions.length > 0 && /* @__PURE__ */ jsx(
|
|
21604
|
+
HStack,
|
|
21605
|
+
{
|
|
21606
|
+
gap: "xs",
|
|
21607
|
+
className: "flex-shrink-0",
|
|
21608
|
+
children: itemActions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
21609
|
+
Button,
|
|
21621
21610
|
{
|
|
21622
|
-
|
|
21623
|
-
|
|
21624
|
-
|
|
21625
|
-
|
|
21626
|
-
|
|
21627
|
-
|
|
21628
|
-
|
|
21629
|
-
|
|
21630
|
-
|
|
21631
|
-
|
|
21632
|
-
|
|
21633
|
-
|
|
21634
|
-
|
|
21635
|
-
|
|
21636
|
-
|
|
21637
|
-
|
|
21638
|
-
|
|
21639
|
-
|
|
21640
|
-
idx
|
|
21641
|
-
))
|
|
21642
|
-
}
|
|
21643
|
-
)
|
|
21644
|
-
]
|
|
21645
|
-
}
|
|
21646
|
-
),
|
|
21611
|
+
variant: action.variant ?? "ghost",
|
|
21612
|
+
size: "sm",
|
|
21613
|
+
onClick: handleActionClick(action, itemData),
|
|
21614
|
+
"data-testid": `action-${action.event}`,
|
|
21615
|
+
"data-row-id": String(itemData.id),
|
|
21616
|
+
className: cn(
|
|
21617
|
+
action.variant === "danger" && "text-error hover:bg-error/10"
|
|
21618
|
+
),
|
|
21619
|
+
children: [
|
|
21620
|
+
action.icon && /* @__PURE__ */ jsx(Icon, { name: action.icon, size: "xs", className: "mr-1" }),
|
|
21621
|
+
action.label
|
|
21622
|
+
]
|
|
21623
|
+
},
|
|
21624
|
+
idx
|
|
21625
|
+
))
|
|
21626
|
+
}
|
|
21627
|
+
)
|
|
21628
|
+
] }),
|
|
21647
21629
|
isCard && !isLast && /* @__PURE__ */ jsx(Box, { className: "mx-6 border-b border-border/40" })
|
|
21648
21630
|
] }, id2);
|
|
21649
21631
|
}
|