@railtownai/railtracks-visualizer 0.0.58 → 0.0.60
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/cjs/index.js +1509 -1716
- package/dist/esm/index.js +1507 -1717
- package/dist/types/agenthub/components/AggregateResultsTable.d.ts +6 -1
- package/dist/types/agenthub/components/JsonValueTree.d.ts +11 -0
- package/dist/types/agenthub/components/SessionTree.d.ts +2 -0
- package/dist/types/agenthub/pages/evaluations.types.d.ts +4 -1
- package/dist/types/agenthub/pages/evaluator-result-page.d.ts +6 -1
- package/dist/types/agenthub/pages/evaluator-result.d.ts +5 -0
- package/dist/types/agenthub/pages/session-details.d.ts +6 -0
- package/dist/types/agenthub/utils/evaluatorResultFromDto.d.ts +1 -1
- package/dist/types/agenthub/utils/llmInferenceAggregateTree.d.ts +9 -2
- package/dist/types/agenthub/utils/toolUseAggregateTree.d.ts +18 -1
- package/dist/types/components/Edge.d.ts +2 -0
- package/dist/types/components/Node.d.ts +1 -1
- package/dist/types/components/nodes/AgentNode.d.ts +2 -2
- package/dist/types/components/nodes/NodeDetailsDrawer.d.ts +3 -1
- package/dist/types/components/nodes/ToolNode.d.ts +1 -1
- package/dist/types/components/nodes/constants.d.ts +6 -0
- package/dist/types/components/nodes/index.d.ts +0 -1
- package/dist/types/dto/AgentRunNode.d.ts +1 -1
- package/dist/types/dto/Evaluation.d.ts +7 -1
- package/dist/types/lib/utils.d.ts +12 -0
- package/package.json +1 -1
- package/dist/types/components/nodes/CoordinatorNode.d.ts +0 -22
package/dist/cjs/index.js
CHANGED
|
@@ -29,6 +29,12 @@ var LoadingOutlined = require('@ant-design/icons/es/icons/LoadingOutlined');
|
|
|
29
29
|
var RcColorPicker = require('@rc-component/color-picker');
|
|
30
30
|
var RightOutlined = require('@ant-design/icons/es/icons/RightOutlined');
|
|
31
31
|
var RcCollapse = require('@rc-component/collapse');
|
|
32
|
+
var CheckCircleFilled = require('@ant-design/icons/es/icons/CheckCircleFilled');
|
|
33
|
+
var CloseCircleFilled = require('@ant-design/icons/es/icons/CloseCircleFilled');
|
|
34
|
+
var ExclamationCircleFilled = require('@ant-design/icons/es/icons/ExclamationCircleFilled');
|
|
35
|
+
var InfoCircleFilled = require('@ant-design/icons/es/icons/InfoCircleFilled');
|
|
36
|
+
var notification = require('@rc-component/notification');
|
|
37
|
+
var RcTooltip = require('@rc-component/tooltip');
|
|
32
38
|
var RcTree = require('@rc-component/tree');
|
|
33
39
|
var FileOutlined = require('@ant-design/icons/es/icons/FileOutlined');
|
|
34
40
|
var FolderOpenOutlined = require('@ant-design/icons/es/icons/FolderOpenOutlined');
|
|
@@ -39,16 +45,10 @@ var HolderOutlined = require('@ant-design/icons/es/icons/HolderOutlined');
|
|
|
39
45
|
var CaretDownFilled = require('@ant-design/icons/es/icons/CaretDownFilled');
|
|
40
46
|
var MinusSquareOutlined = require('@ant-design/icons/es/icons/MinusSquareOutlined');
|
|
41
47
|
var PlusSquareOutlined = require('@ant-design/icons/es/icons/PlusSquareOutlined');
|
|
42
|
-
var CheckCircleFilled = require('@ant-design/icons/es/icons/CheckCircleFilled');
|
|
43
|
-
var CloseCircleFilled = require('@ant-design/icons/es/icons/CloseCircleFilled');
|
|
44
|
-
var ExclamationCircleFilled = require('@ant-design/icons/es/icons/ExclamationCircleFilled');
|
|
45
|
-
var InfoCircleFilled = require('@ant-design/icons/es/icons/InfoCircleFilled');
|
|
46
|
-
var notification = require('@rc-component/notification');
|
|
47
48
|
var EditOutlined = require('@ant-design/icons/es/icons/EditOutlined');
|
|
48
49
|
var ResizeObserver$1 = require('@rc-component/resize-observer');
|
|
49
50
|
require('@rc-component/util/es/Dom/canUseDom');
|
|
50
51
|
var styleChecker = require('@rc-component/util/es/Dom/styleChecker');
|
|
51
|
-
var RcTooltip = require('@rc-component/tooltip');
|
|
52
52
|
var EnterOutlined = require('@ant-design/icons/es/icons/EnterOutlined');
|
|
53
53
|
var KeyCode = require('@rc-component/util/es/KeyCode');
|
|
54
54
|
var RcTextArea = require('@rc-component/textarea');
|
|
@@ -57,9 +57,6 @@ var focus$1 = require('@rc-component/util/es/Dom/focus');
|
|
|
57
57
|
var CheckOutlined = require('@ant-design/icons/es/icons/CheckOutlined');
|
|
58
58
|
var CopyOutlined = require('@ant-design/icons/es/icons/CopyOutlined');
|
|
59
59
|
var RcSwitch = require('@rc-component/switch');
|
|
60
|
-
var EllipsisOutlined = require('@ant-design/icons/es/icons/EllipsisOutlined');
|
|
61
|
-
var PlusOutlined = require('@ant-design/icons/es/icons/PlusOutlined');
|
|
62
|
-
var RcTabs = require('@rc-component/tabs');
|
|
63
60
|
var RcSelect = require('@rc-component/select');
|
|
64
61
|
var DownOutlined = require('@ant-design/icons/es/icons/DownOutlined');
|
|
65
62
|
var SearchOutlined = require('@ant-design/icons/es/icons/SearchOutlined');
|
|
@@ -70,6 +67,7 @@ var LeftOutlined = require('@ant-design/icons/es/icons/LeftOutlined');
|
|
|
70
67
|
var RcDropdown = require('@rc-component/dropdown');
|
|
71
68
|
var RcMenu = require('@rc-component/menu');
|
|
72
69
|
var BarsOutlined = require('@ant-design/icons/es/icons/BarsOutlined');
|
|
70
|
+
var EllipsisOutlined = require('@ant-design/icons/es/icons/EllipsisOutlined');
|
|
73
71
|
require('@rc-component/util/es/Dom/findDOMNode');
|
|
74
72
|
var useColumns = require('@rc-component/table/es/hooks/useColumns');
|
|
75
73
|
var DoubleLeftOutlined = require('@ant-design/icons/es/icons/DoubleLeftOutlined');
|
|
@@ -78,6 +76,8 @@ var RcPagination = require('@rc-component/pagination');
|
|
|
78
76
|
var FilterFilled = require('@ant-design/icons/es/icons/FilterFilled');
|
|
79
77
|
var CaretDownOutlined = require('@ant-design/icons/es/icons/CaretDownOutlined');
|
|
80
78
|
var CaretUpOutlined = require('@ant-design/icons/es/icons/CaretUpOutlined');
|
|
79
|
+
var PlusOutlined = require('@ant-design/icons/es/icons/PlusOutlined');
|
|
80
|
+
var RcTabs = require('@rc-component/tabs');
|
|
81
81
|
|
|
82
82
|
function _interopNamespaceDefault(e) {
|
|
83
83
|
var n = Object.create(null);
|
|
@@ -12923,7 +12923,7 @@ const createLucideIcon = (iconName, iconNode)=>{
|
|
|
12923
12923
|
return Component;
|
|
12924
12924
|
};
|
|
12925
12925
|
|
|
12926
|
-
const __iconNode$
|
|
12926
|
+
const __iconNode$x = [
|
|
12927
12927
|
[
|
|
12928
12928
|
"path",
|
|
12929
12929
|
{
|
|
@@ -12939,9 +12939,9 @@ const __iconNode$u = [
|
|
|
12939
12939
|
}
|
|
12940
12940
|
]
|
|
12941
12941
|
];
|
|
12942
|
-
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$
|
|
12942
|
+
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$x);
|
|
12943
12943
|
|
|
12944
|
-
const __iconNode$
|
|
12944
|
+
const __iconNode$w = [
|
|
12945
12945
|
[
|
|
12946
12946
|
"path",
|
|
12947
12947
|
{
|
|
@@ -12957,9 +12957,9 @@ const __iconNode$t = [
|
|
|
12957
12957
|
}
|
|
12958
12958
|
]
|
|
12959
12959
|
];
|
|
12960
|
-
const ArrowRight = createLucideIcon("arrow-right", __iconNode$
|
|
12960
|
+
const ArrowRight = createLucideIcon("arrow-right", __iconNode$w);
|
|
12961
12961
|
|
|
12962
|
-
const __iconNode$
|
|
12962
|
+
const __iconNode$v = [
|
|
12963
12963
|
[
|
|
12964
12964
|
"path",
|
|
12965
12965
|
{
|
|
@@ -13007,9 +13007,9 @@ const __iconNode$s = [
|
|
|
13007
13007
|
}
|
|
13008
13008
|
]
|
|
13009
13009
|
];
|
|
13010
|
-
const Bot = createLucideIcon("bot", __iconNode$
|
|
13010
|
+
const Bot = createLucideIcon("bot", __iconNode$v);
|
|
13011
13011
|
|
|
13012
|
-
const __iconNode$
|
|
13012
|
+
const __iconNode$u = [
|
|
13013
13013
|
[
|
|
13014
13014
|
"path",
|
|
13015
13015
|
{
|
|
@@ -13043,9 +13043,9 @@ const __iconNode$r = [
|
|
|
13043
13043
|
}
|
|
13044
13044
|
]
|
|
13045
13045
|
];
|
|
13046
|
-
const Calendar = createLucideIcon("calendar", __iconNode$
|
|
13046
|
+
const Calendar = createLucideIcon("calendar", __iconNode$u);
|
|
13047
13047
|
|
|
13048
|
-
const __iconNode$
|
|
13048
|
+
const __iconNode$t = [
|
|
13049
13049
|
[
|
|
13050
13050
|
"path",
|
|
13051
13051
|
{
|
|
@@ -13102,9 +13102,9 @@ const __iconNode$q = [
|
|
|
13102
13102
|
}
|
|
13103
13103
|
]
|
|
13104
13104
|
];
|
|
13105
|
-
const ChartNetwork = createLucideIcon("chart-network", __iconNode$
|
|
13105
|
+
const ChartNetwork = createLucideIcon("chart-network", __iconNode$t);
|
|
13106
13106
|
|
|
13107
|
-
const __iconNode$
|
|
13107
|
+
const __iconNode$s = [
|
|
13108
13108
|
[
|
|
13109
13109
|
"path",
|
|
13110
13110
|
{
|
|
@@ -13113,9 +13113,9 @@ const __iconNode$p = [
|
|
|
13113
13113
|
}
|
|
13114
13114
|
]
|
|
13115
13115
|
];
|
|
13116
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
13116
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$s);
|
|
13117
13117
|
|
|
13118
|
-
const __iconNode$
|
|
13118
|
+
const __iconNode$r = [
|
|
13119
13119
|
[
|
|
13120
13120
|
"path",
|
|
13121
13121
|
{
|
|
@@ -13124,9 +13124,9 @@ const __iconNode$o = [
|
|
|
13124
13124
|
}
|
|
13125
13125
|
]
|
|
13126
13126
|
];
|
|
13127
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
13127
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$r);
|
|
13128
13128
|
|
|
13129
|
-
const __iconNode$
|
|
13129
|
+
const __iconNode$q = [
|
|
13130
13130
|
[
|
|
13131
13131
|
"path",
|
|
13132
13132
|
{
|
|
@@ -13142,9 +13142,9 @@ const __iconNode$n = [
|
|
|
13142
13142
|
}
|
|
13143
13143
|
]
|
|
13144
13144
|
];
|
|
13145
|
-
const ChevronsDown = createLucideIcon("chevrons-down", __iconNode$
|
|
13145
|
+
const ChevronsDown = createLucideIcon("chevrons-down", __iconNode$q);
|
|
13146
13146
|
|
|
13147
|
-
const __iconNode$
|
|
13147
|
+
const __iconNode$p = [
|
|
13148
13148
|
[
|
|
13149
13149
|
"path",
|
|
13150
13150
|
{
|
|
@@ -13160,9 +13160,9 @@ const __iconNode$m = [
|
|
|
13160
13160
|
}
|
|
13161
13161
|
]
|
|
13162
13162
|
];
|
|
13163
|
-
const ChevronsUp = createLucideIcon("chevrons-up", __iconNode$
|
|
13163
|
+
const ChevronsUp = createLucideIcon("chevrons-up", __iconNode$p);
|
|
13164
13164
|
|
|
13165
|
-
const __iconNode$
|
|
13165
|
+
const __iconNode$o = [
|
|
13166
13166
|
[
|
|
13167
13167
|
"circle",
|
|
13168
13168
|
{
|
|
@@ -13193,9 +13193,9 @@ const __iconNode$l = [
|
|
|
13193
13193
|
}
|
|
13194
13194
|
]
|
|
13195
13195
|
];
|
|
13196
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
13196
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$o);
|
|
13197
13197
|
|
|
13198
|
-
const __iconNode$
|
|
13198
|
+
const __iconNode$n = [
|
|
13199
13199
|
[
|
|
13200
13200
|
"path",
|
|
13201
13201
|
{
|
|
@@ -13211,9 +13211,36 @@ const __iconNode$k = [
|
|
|
13211
13211
|
}
|
|
13212
13212
|
]
|
|
13213
13213
|
];
|
|
13214
|
-
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$
|
|
13214
|
+
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$n);
|
|
13215
13215
|
|
|
13216
|
-
const __iconNode$
|
|
13216
|
+
const __iconNode$m = [
|
|
13217
|
+
[
|
|
13218
|
+
"circle",
|
|
13219
|
+
{
|
|
13220
|
+
cx: "12",
|
|
13221
|
+
cy: "12",
|
|
13222
|
+
r: "10",
|
|
13223
|
+
key: "1mglay"
|
|
13224
|
+
}
|
|
13225
|
+
],
|
|
13226
|
+
[
|
|
13227
|
+
"path",
|
|
13228
|
+
{
|
|
13229
|
+
d: "M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",
|
|
13230
|
+
key: "1h4pet"
|
|
13231
|
+
}
|
|
13232
|
+
],
|
|
13233
|
+
[
|
|
13234
|
+
"path",
|
|
13235
|
+
{
|
|
13236
|
+
d: "M12 18V6",
|
|
13237
|
+
key: "zqpxq5"
|
|
13238
|
+
}
|
|
13239
|
+
]
|
|
13240
|
+
];
|
|
13241
|
+
const CircleDollarSign = createLucideIcon("circle-dollar-sign", __iconNode$m);
|
|
13242
|
+
|
|
13243
|
+
const __iconNode$l = [
|
|
13217
13244
|
[
|
|
13218
13245
|
"circle",
|
|
13219
13246
|
{
|
|
@@ -13231,9 +13258,9 @@ const __iconNode$j = [
|
|
|
13231
13258
|
}
|
|
13232
13259
|
]
|
|
13233
13260
|
];
|
|
13234
|
-
const Clock = createLucideIcon("clock", __iconNode$
|
|
13261
|
+
const Clock = createLucideIcon("clock", __iconNode$l);
|
|
13235
13262
|
|
|
13236
|
-
const __iconNode$
|
|
13263
|
+
const __iconNode$k = [
|
|
13237
13264
|
[
|
|
13238
13265
|
"path",
|
|
13239
13266
|
{
|
|
@@ -13249,9 +13276,9 @@ const __iconNode$i = [
|
|
|
13249
13276
|
}
|
|
13250
13277
|
]
|
|
13251
13278
|
];
|
|
13252
|
-
const CloudLightning = createLucideIcon("cloud-lightning", __iconNode$
|
|
13279
|
+
const CloudLightning = createLucideIcon("cloud-lightning", __iconNode$k);
|
|
13253
13280
|
|
|
13254
|
-
const __iconNode$
|
|
13281
|
+
const __iconNode$j = [
|
|
13255
13282
|
[
|
|
13256
13283
|
"rect",
|
|
13257
13284
|
{
|
|
@@ -13272,9 +13299,9 @@ const __iconNode$h = [
|
|
|
13272
13299
|
}
|
|
13273
13300
|
]
|
|
13274
13301
|
];
|
|
13275
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
13302
|
+
const Copy = createLucideIcon("copy", __iconNode$j);
|
|
13276
13303
|
|
|
13277
|
-
const __iconNode$
|
|
13304
|
+
const __iconNode$i = [
|
|
13278
13305
|
[
|
|
13279
13306
|
"path",
|
|
13280
13307
|
{
|
|
@@ -13382,9 +13409,9 @@ const __iconNode$g = [
|
|
|
13382
13409
|
}
|
|
13383
13410
|
]
|
|
13384
13411
|
];
|
|
13385
|
-
const Cpu = createLucideIcon("cpu", __iconNode$
|
|
13412
|
+
const Cpu = createLucideIcon("cpu", __iconNode$i);
|
|
13386
13413
|
|
|
13387
|
-
const __iconNode$
|
|
13414
|
+
const __iconNode$h = [
|
|
13388
13415
|
[
|
|
13389
13416
|
"line",
|
|
13390
13417
|
{
|
|
@@ -13403,9 +13430,9 @@ const __iconNode$f = [
|
|
|
13403
13430
|
}
|
|
13404
13431
|
]
|
|
13405
13432
|
];
|
|
13406
|
-
const DollarSign = createLucideIcon("dollar-sign", __iconNode$
|
|
13433
|
+
const DollarSign = createLucideIcon("dollar-sign", __iconNode$h);
|
|
13407
13434
|
|
|
13408
|
-
const __iconNode$
|
|
13435
|
+
const __iconNode$g = [
|
|
13409
13436
|
[
|
|
13410
13437
|
"path",
|
|
13411
13438
|
{
|
|
@@ -13435,9 +13462,9 @@ const __iconNode$e = [
|
|
|
13435
13462
|
}
|
|
13436
13463
|
]
|
|
13437
13464
|
];
|
|
13438
|
-
const FileInput = createLucideIcon("file-input", __iconNode$
|
|
13465
|
+
const FileInput = createLucideIcon("file-input", __iconNode$g);
|
|
13439
13466
|
|
|
13440
|
-
const __iconNode$
|
|
13467
|
+
const __iconNode$f = [
|
|
13441
13468
|
[
|
|
13442
13469
|
"path",
|
|
13443
13470
|
{
|
|
@@ -13467,9 +13494,69 @@ const __iconNode$d = [
|
|
|
13467
13494
|
}
|
|
13468
13495
|
]
|
|
13469
13496
|
];
|
|
13470
|
-
const FileOutput = createLucideIcon("file-output", __iconNode$
|
|
13497
|
+
const FileOutput = createLucideIcon("file-output", __iconNode$f);
|
|
13471
13498
|
|
|
13472
|
-
const __iconNode$
|
|
13499
|
+
const __iconNode$e = [
|
|
13500
|
+
[
|
|
13501
|
+
"path",
|
|
13502
|
+
{
|
|
13503
|
+
d: "M12 22v-6",
|
|
13504
|
+
key: "6o8u61"
|
|
13505
|
+
}
|
|
13506
|
+
],
|
|
13507
|
+
[
|
|
13508
|
+
"path",
|
|
13509
|
+
{
|
|
13510
|
+
d: "M12 8V2",
|
|
13511
|
+
key: "1wkif3"
|
|
13512
|
+
}
|
|
13513
|
+
],
|
|
13514
|
+
[
|
|
13515
|
+
"path",
|
|
13516
|
+
{
|
|
13517
|
+
d: "M4 12H2",
|
|
13518
|
+
key: "rhcxmi"
|
|
13519
|
+
}
|
|
13520
|
+
],
|
|
13521
|
+
[
|
|
13522
|
+
"path",
|
|
13523
|
+
{
|
|
13524
|
+
d: "M10 12H8",
|
|
13525
|
+
key: "s88cx1"
|
|
13526
|
+
}
|
|
13527
|
+
],
|
|
13528
|
+
[
|
|
13529
|
+
"path",
|
|
13530
|
+
{
|
|
13531
|
+
d: "M16 12h-2",
|
|
13532
|
+
key: "10asgb"
|
|
13533
|
+
}
|
|
13534
|
+
],
|
|
13535
|
+
[
|
|
13536
|
+
"path",
|
|
13537
|
+
{
|
|
13538
|
+
d: "M22 12h-2",
|
|
13539
|
+
key: "14jgyd"
|
|
13540
|
+
}
|
|
13541
|
+
],
|
|
13542
|
+
[
|
|
13543
|
+
"path",
|
|
13544
|
+
{
|
|
13545
|
+
d: "m15 19-3-3-3 3",
|
|
13546
|
+
key: "e37ymu"
|
|
13547
|
+
}
|
|
13548
|
+
],
|
|
13549
|
+
[
|
|
13550
|
+
"path",
|
|
13551
|
+
{
|
|
13552
|
+
d: "m15 5-3 3-3-3",
|
|
13553
|
+
key: "19d6lf"
|
|
13554
|
+
}
|
|
13555
|
+
]
|
|
13556
|
+
];
|
|
13557
|
+
const FoldVertical = createLucideIcon("fold-vertical", __iconNode$e);
|
|
13558
|
+
|
|
13559
|
+
const __iconNode$d = [
|
|
13473
13560
|
[
|
|
13474
13561
|
"line",
|
|
13475
13562
|
{
|
|
@@ -13511,9 +13598,9 @@ const __iconNode$c = [
|
|
|
13511
13598
|
}
|
|
13512
13599
|
]
|
|
13513
13600
|
];
|
|
13514
|
-
const Hash = createLucideIcon("hash", __iconNode$
|
|
13601
|
+
const Hash = createLucideIcon("hash", __iconNode$d);
|
|
13515
13602
|
|
|
13516
|
-
const __iconNode$
|
|
13603
|
+
const __iconNode$c = [
|
|
13517
13604
|
[
|
|
13518
13605
|
"circle",
|
|
13519
13606
|
{
|
|
@@ -13538,9 +13625,9 @@ const __iconNode$b = [
|
|
|
13538
13625
|
}
|
|
13539
13626
|
]
|
|
13540
13627
|
];
|
|
13541
|
-
const Info = createLucideIcon("info", __iconNode$
|
|
13628
|
+
const Info = createLucideIcon("info", __iconNode$c);
|
|
13542
13629
|
|
|
13543
|
-
const __iconNode$
|
|
13630
|
+
const __iconNode$b = [
|
|
13544
13631
|
[
|
|
13545
13632
|
"path",
|
|
13546
13633
|
{
|
|
@@ -13577,9 +13664,9 @@ const __iconNode$a = [
|
|
|
13577
13664
|
}
|
|
13578
13665
|
]
|
|
13579
13666
|
];
|
|
13580
|
-
const ListChecks = createLucideIcon("list-checks", __iconNode$
|
|
13667
|
+
const ListChecks = createLucideIcon("list-checks", __iconNode$b);
|
|
13581
13668
|
|
|
13582
|
-
const __iconNode$
|
|
13669
|
+
const __iconNode$a = [
|
|
13583
13670
|
[
|
|
13584
13671
|
"path",
|
|
13585
13672
|
{
|
|
@@ -13595,9 +13682,9 @@ const __iconNode$9 = [
|
|
|
13595
13682
|
}
|
|
13596
13683
|
]
|
|
13597
13684
|
];
|
|
13598
|
-
const MessagesSquare = createLucideIcon("messages-square", __iconNode$
|
|
13685
|
+
const MessagesSquare = createLucideIcon("messages-square", __iconNode$a);
|
|
13599
13686
|
|
|
13600
|
-
const __iconNode$
|
|
13687
|
+
const __iconNode$9 = [
|
|
13601
13688
|
[
|
|
13602
13689
|
"path",
|
|
13603
13690
|
{
|
|
@@ -13606,9 +13693,9 @@ const __iconNode$8 = [
|
|
|
13606
13693
|
}
|
|
13607
13694
|
]
|
|
13608
13695
|
];
|
|
13609
|
-
const MessageSquare = createLucideIcon("message-square", __iconNode$
|
|
13696
|
+
const MessageSquare = createLucideIcon("message-square", __iconNode$9);
|
|
13610
13697
|
|
|
13611
|
-
const __iconNode$
|
|
13698
|
+
const __iconNode$8 = [
|
|
13612
13699
|
[
|
|
13613
13700
|
"rect",
|
|
13614
13701
|
{
|
|
@@ -13628,9 +13715,9 @@ const __iconNode$7 = [
|
|
|
13628
13715
|
}
|
|
13629
13716
|
]
|
|
13630
13717
|
];
|
|
13631
|
-
const PanelLeft = createLucideIcon("panel-left", __iconNode$
|
|
13718
|
+
const PanelLeft = createLucideIcon("panel-left", __iconNode$8);
|
|
13632
13719
|
|
|
13633
|
-
const __iconNode$
|
|
13720
|
+
const __iconNode$7 = [
|
|
13634
13721
|
[
|
|
13635
13722
|
"path",
|
|
13636
13723
|
{
|
|
@@ -13660,9 +13747,9 @@ const __iconNode$6 = [
|
|
|
13660
13747
|
}
|
|
13661
13748
|
]
|
|
13662
13749
|
];
|
|
13663
|
-
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$
|
|
13750
|
+
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$7);
|
|
13664
13751
|
|
|
13665
|
-
const __iconNode$
|
|
13752
|
+
const __iconNode$6 = [
|
|
13666
13753
|
[
|
|
13667
13754
|
"path",
|
|
13668
13755
|
{
|
|
@@ -13699,9 +13786,9 @@ const __iconNode$5 = [
|
|
|
13699
13786
|
}
|
|
13700
13787
|
]
|
|
13701
13788
|
];
|
|
13702
|
-
const Scale = createLucideIcon("scale", __iconNode$
|
|
13789
|
+
const Scale = createLucideIcon("scale", __iconNode$6);
|
|
13703
13790
|
|
|
13704
|
-
const __iconNode$
|
|
13791
|
+
const __iconNode$5 = [
|
|
13705
13792
|
[
|
|
13706
13793
|
"path",
|
|
13707
13794
|
{
|
|
@@ -13724,9 +13811,9 @@ const __iconNode$4 = [
|
|
|
13724
13811
|
}
|
|
13725
13812
|
]
|
|
13726
13813
|
];
|
|
13727
|
-
const Share = createLucideIcon("share", __iconNode$
|
|
13814
|
+
const Share = createLucideIcon("share", __iconNode$5);
|
|
13728
13815
|
|
|
13729
|
-
const __iconNode$
|
|
13816
|
+
const __iconNode$4 = [
|
|
13730
13817
|
[
|
|
13731
13818
|
"circle",
|
|
13732
13819
|
{
|
|
@@ -13755,9 +13842,9 @@ const __iconNode$3 = [
|
|
|
13755
13842
|
}
|
|
13756
13843
|
]
|
|
13757
13844
|
];
|
|
13758
|
-
const Target = createLucideIcon("target", __iconNode$
|
|
13845
|
+
const Target = createLucideIcon("target", __iconNode$4);
|
|
13759
13846
|
|
|
13760
|
-
const __iconNode$
|
|
13847
|
+
const __iconNode$3 = [
|
|
13761
13848
|
[
|
|
13762
13849
|
"line",
|
|
13763
13850
|
{
|
|
@@ -13788,7 +13875,67 @@ const __iconNode$2 = [
|
|
|
13788
13875
|
}
|
|
13789
13876
|
]
|
|
13790
13877
|
];
|
|
13791
|
-
const Timer = createLucideIcon("timer", __iconNode$
|
|
13878
|
+
const Timer = createLucideIcon("timer", __iconNode$3);
|
|
13879
|
+
|
|
13880
|
+
const __iconNode$2 = [
|
|
13881
|
+
[
|
|
13882
|
+
"path",
|
|
13883
|
+
{
|
|
13884
|
+
d: "M12 22v-6",
|
|
13885
|
+
key: "6o8u61"
|
|
13886
|
+
}
|
|
13887
|
+
],
|
|
13888
|
+
[
|
|
13889
|
+
"path",
|
|
13890
|
+
{
|
|
13891
|
+
d: "M12 8V2",
|
|
13892
|
+
key: "1wkif3"
|
|
13893
|
+
}
|
|
13894
|
+
],
|
|
13895
|
+
[
|
|
13896
|
+
"path",
|
|
13897
|
+
{
|
|
13898
|
+
d: "M4 12H2",
|
|
13899
|
+
key: "rhcxmi"
|
|
13900
|
+
}
|
|
13901
|
+
],
|
|
13902
|
+
[
|
|
13903
|
+
"path",
|
|
13904
|
+
{
|
|
13905
|
+
d: "M10 12H8",
|
|
13906
|
+
key: "s88cx1"
|
|
13907
|
+
}
|
|
13908
|
+
],
|
|
13909
|
+
[
|
|
13910
|
+
"path",
|
|
13911
|
+
{
|
|
13912
|
+
d: "M16 12h-2",
|
|
13913
|
+
key: "10asgb"
|
|
13914
|
+
}
|
|
13915
|
+
],
|
|
13916
|
+
[
|
|
13917
|
+
"path",
|
|
13918
|
+
{
|
|
13919
|
+
d: "M22 12h-2",
|
|
13920
|
+
key: "14jgyd"
|
|
13921
|
+
}
|
|
13922
|
+
],
|
|
13923
|
+
[
|
|
13924
|
+
"path",
|
|
13925
|
+
{
|
|
13926
|
+
d: "m15 19-3 3-3-3",
|
|
13927
|
+
key: "11eu04"
|
|
13928
|
+
}
|
|
13929
|
+
],
|
|
13930
|
+
[
|
|
13931
|
+
"path",
|
|
13932
|
+
{
|
|
13933
|
+
d: "m15 5-3-3-3 3",
|
|
13934
|
+
key: "itvq4r"
|
|
13935
|
+
}
|
|
13936
|
+
]
|
|
13937
|
+
];
|
|
13938
|
+
const UnfoldVertical = createLucideIcon("unfold-vertical", __iconNode$2);
|
|
13792
13939
|
|
|
13793
13940
|
const __iconNode$1 = [
|
|
13794
13941
|
[
|
|
@@ -15973,19 +16120,18 @@ const useComponentTheme = (themeProp)=>{
|
|
|
15973
16120
|
return themeProp || contextTheme;
|
|
15974
16121
|
};
|
|
15975
16122
|
|
|
15976
|
-
const Edge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, style = {}, markerEnd, bidirectional = false, data, clientToSvgCoords, svgRef })=>{
|
|
16123
|
+
const Edge = ({ id, sourceX, sourceY, targetX, targetY, sourcePosition, targetPosition, animated = false, style = {}, markerEnd, bidirectional = false, data, clientToSvgCoords, svgRef })=>{
|
|
15977
16124
|
const [isHovered, setIsHovered] = React.useState(false);
|
|
15978
16125
|
const { theme } = useTheme$1();
|
|
15979
16126
|
const themeColors = theme.colors;
|
|
15980
|
-
// Function to determine stroke color based on edge status and theme
|
|
15981
16127
|
const getStrokeColor = ()=>{
|
|
15982
16128
|
const status = data?.details?.status;
|
|
15983
|
-
|
|
15984
|
-
// Check for error indicators
|
|
15985
|
-
const hasError = status === "Failed";
|
|
15986
|
-
if (hasError) {
|
|
16129
|
+
if (status === "Failed") {
|
|
15987
16130
|
return themeColors.destructive;
|
|
15988
16131
|
}
|
|
16132
|
+
if (animated) {
|
|
16133
|
+
return themeColors.primary;
|
|
16134
|
+
}
|
|
15989
16135
|
return themeColors.mutedForeground;
|
|
15990
16136
|
};
|
|
15991
16137
|
const [edgePath] = React.useMemo(()=>{
|
|
@@ -20873,6 +21019,25 @@ function cn(...inputs) {
|
|
|
20873
21019
|
}
|
|
20874
21020
|
return text.substring(0, maxLength - 3) + "...";
|
|
20875
21021
|
}
|
|
21022
|
+
/**
|
|
21023
|
+
* True for plain object literals (own enumerable keys, not arrays, Date, etc.).
|
|
21024
|
+
*/ function isPlainObject(value) {
|
|
21025
|
+
return value !== null && typeof value === "object" && !Array.isArray(value) && value.constructor === Object;
|
|
21026
|
+
}
|
|
21027
|
+
/**
|
|
21028
|
+
* Escapes `\` and `.` in a segment so dot-delimited path keys stay unambiguous (e.g. JSON tree UIs).
|
|
21029
|
+
*/ function escapeDotPathSegment(segment) {
|
|
21030
|
+
return segment.replace(/\\/g, "\\\\").replace(/\./g, "\\.");
|
|
21031
|
+
}
|
|
21032
|
+
/**
|
|
21033
|
+
* Compact JSON-like string for tree / debug views: strings use JSON quoting; null and undefined as words.
|
|
21034
|
+
*/ function formatJsonTreePrimitive(value) {
|
|
21035
|
+
if (value === null) return "null";
|
|
21036
|
+
if (value === undefined) return "undefined";
|
|
21037
|
+
if (typeof value === "string") return JSON.stringify(value);
|
|
21038
|
+
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
21039
|
+
return String(value);
|
|
21040
|
+
}
|
|
20876
21041
|
/**
|
|
20877
21042
|
* Styled-components utility for conditional styling
|
|
20878
21043
|
* @param condition - The condition to check
|
|
@@ -21148,500 +21313,6 @@ const AppleIcon = ({ width = "1.5rem", height = "1.5rem" })=>/*#__PURE__*/ React
|
|
|
21148
21313
|
d: "M18.71 19.5C17.88 20.74 17 21.95 15.66 21.97C14.32 22 13.89 21.18 12.37 21.18C10.84 21.18 10.37 21.95 9.09997 22C7.78997 22.05 6.79997 20.68 5.95997 19.47C4.24997 17 2.93997 12.45 4.69997 9.39C5.56997 7.87 7.12997 6.91 8.81997 6.88C10.1 6.86 11.32 7.75 12.11 7.75C12.89 7.75 14.37 6.68 15.92 6.84C16.57 6.87 18.39 7.1 19.56 8.82C19.47 8.88 17.39 10.1 17.41 12.63C17.44 15.65 20.06 16.66 20.09 16.67C20.06 16.74 19.67 18.11 18.71 19.5ZM13 3.5C13.73 2.67 14.94 2.04 15.94 2C16.07 3.17 15.6 4.35 14.9 5.19C14.21 6.04 13.07 6.7 11.95 6.61C11.8 5.46 12.36 4.26 13 3.5Z"
|
|
21149
21314
|
}));
|
|
21150
21315
|
|
|
21151
|
-
const TooltipContainer = styled.div`
|
|
21152
|
-
position: relative;
|
|
21153
|
-
display: inline-block;
|
|
21154
|
-
`;
|
|
21155
|
-
const TooltipContent = styled.div`
|
|
21156
|
-
position: absolute;
|
|
21157
|
-
z-index: 1000;
|
|
21158
|
-
padding: 8px 12px;
|
|
21159
|
-
font-weight: 400;
|
|
21160
|
-
background-color: ${({ themeColors })=>themeColors.popover};
|
|
21161
|
-
color: ${({ themeColors })=>themeColors.popoverForeground};
|
|
21162
|
-
border: 1px solid ${({ themeColors })=>themeColors.border};
|
|
21163
|
-
border-radius: 6px;
|
|
21164
|
-
font-size: 12px;
|
|
21165
|
-
line-height: 1.4;
|
|
21166
|
-
white-space: nowrap;
|
|
21167
|
-
box-shadow:
|
|
21168
|
-
0 4px 6px -1px rgba(0, 0, 0, 0.1),
|
|
21169
|
-
0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
21170
|
-
opacity: ${({ isVisible })=>isVisible ? 1 : 0};
|
|
21171
|
-
visibility: ${({ isVisible })=>isVisible ? "visible" : "hidden"};
|
|
21172
|
-
transition:
|
|
21173
|
-
opacity 0.15s ease-in-out,
|
|
21174
|
-
visibility 0.15s ease-in-out;
|
|
21175
|
-
pointer-events: none;
|
|
21176
|
-
|
|
21177
|
-
/* Arrow */
|
|
21178
|
-
&::before {
|
|
21179
|
-
content: "";
|
|
21180
|
-
position: absolute;
|
|
21181
|
-
width: 0;
|
|
21182
|
-
height: 0;
|
|
21183
|
-
border: 4px solid transparent;
|
|
21184
|
-
}
|
|
21185
|
-
|
|
21186
|
-
/* Placement-specific positioning and arrow */
|
|
21187
|
-
${({ placement, themeColors })=>{
|
|
21188
|
-
switch(placement){
|
|
21189
|
-
case "top":
|
|
21190
|
-
return `
|
|
21191
|
-
bottom: 100%;
|
|
21192
|
-
left: 50%;
|
|
21193
|
-
transform: translateX(-50%);
|
|
21194
|
-
margin-bottom: 8px;
|
|
21195
|
-
&::before {
|
|
21196
|
-
top: 100%;
|
|
21197
|
-
left: 50%;
|
|
21198
|
-
transform: translateX(-50%);
|
|
21199
|
-
border-top-color: ${themeColors.border};
|
|
21200
|
-
}
|
|
21201
|
-
&::after {
|
|
21202
|
-
content: "";
|
|
21203
|
-
position: absolute;
|
|
21204
|
-
top: 100%;
|
|
21205
|
-
left: 50%;
|
|
21206
|
-
transform: translateX(-50%);
|
|
21207
|
-
width: 0;
|
|
21208
|
-
height: 0;
|
|
21209
|
-
border: 3px solid transparent;
|
|
21210
|
-
border-top-color: ${themeColors.popover};
|
|
21211
|
-
}
|
|
21212
|
-
`;
|
|
21213
|
-
case "bottom":
|
|
21214
|
-
return `
|
|
21215
|
-
top: 100%;
|
|
21216
|
-
left: 50%;
|
|
21217
|
-
transform: translateX(-50%);
|
|
21218
|
-
margin-top: 8px;
|
|
21219
|
-
&::before {
|
|
21220
|
-
bottom: 100%;
|
|
21221
|
-
left: 50%;
|
|
21222
|
-
transform: translateX(-50%);
|
|
21223
|
-
border-bottom-color: ${themeColors.border};
|
|
21224
|
-
}
|
|
21225
|
-
&::after {
|
|
21226
|
-
content: "";
|
|
21227
|
-
position: absolute;
|
|
21228
|
-
bottom: 100%;
|
|
21229
|
-
left: 50%;
|
|
21230
|
-
transform: translateX(-50%);
|
|
21231
|
-
width: 0;
|
|
21232
|
-
height: 0;
|
|
21233
|
-
border: 3px solid transparent;
|
|
21234
|
-
border-bottom-color: ${themeColors.popover};
|
|
21235
|
-
}
|
|
21236
|
-
`;
|
|
21237
|
-
case "left":
|
|
21238
|
-
return `
|
|
21239
|
-
right: 100%;
|
|
21240
|
-
top: 50%;
|
|
21241
|
-
transform: translateY(-50%);
|
|
21242
|
-
margin-right: 8px;
|
|
21243
|
-
&::before {
|
|
21244
|
-
left: 100%;
|
|
21245
|
-
top: 50%;
|
|
21246
|
-
transform: translateY(-50%);
|
|
21247
|
-
border-left-color: ${themeColors.border};
|
|
21248
|
-
}
|
|
21249
|
-
&::after {
|
|
21250
|
-
content: "";
|
|
21251
|
-
position: absolute;
|
|
21252
|
-
left: 100%;
|
|
21253
|
-
top: 50%;
|
|
21254
|
-
transform: translateY(-50%);
|
|
21255
|
-
width: 0;
|
|
21256
|
-
height: 0;
|
|
21257
|
-
border: 3px solid transparent;
|
|
21258
|
-
border-left-color: ${themeColors.popover};
|
|
21259
|
-
}
|
|
21260
|
-
`;
|
|
21261
|
-
case "right":
|
|
21262
|
-
return `
|
|
21263
|
-
left: 100%;
|
|
21264
|
-
top: 50%;
|
|
21265
|
-
transform: translateY(-50%);
|
|
21266
|
-
margin-left: 8px;
|
|
21267
|
-
&::before {
|
|
21268
|
-
right: 100%;
|
|
21269
|
-
top: 50%;
|
|
21270
|
-
transform: translateY(-50%);
|
|
21271
|
-
border-right-color: ${themeColors.border};
|
|
21272
|
-
}
|
|
21273
|
-
&::after {
|
|
21274
|
-
content: "";
|
|
21275
|
-
position: absolute;
|
|
21276
|
-
right: 100%;
|
|
21277
|
-
top: 50%;
|
|
21278
|
-
transform: translateY(-50%);
|
|
21279
|
-
width: 0;
|
|
21280
|
-
height: 0;
|
|
21281
|
-
border: 3px solid transparent;
|
|
21282
|
-
border-right-color: ${themeColors.popover};
|
|
21283
|
-
}
|
|
21284
|
-
`;
|
|
21285
|
-
case "topLeft":
|
|
21286
|
-
return `
|
|
21287
|
-
bottom: 100%;
|
|
21288
|
-
right: 0;
|
|
21289
|
-
margin-bottom: 8px;
|
|
21290
|
-
&::before {
|
|
21291
|
-
top: 100%;
|
|
21292
|
-
right: 8px;
|
|
21293
|
-
border-top-color: ${themeColors.border};
|
|
21294
|
-
}
|
|
21295
|
-
&::after {
|
|
21296
|
-
content: "";
|
|
21297
|
-
position: absolute;
|
|
21298
|
-
top: 100%;
|
|
21299
|
-
right: 8px;
|
|
21300
|
-
width: 0;
|
|
21301
|
-
height: 0;
|
|
21302
|
-
border: 3px solid transparent;
|
|
21303
|
-
border-top-color: ${themeColors.popover};
|
|
21304
|
-
}
|
|
21305
|
-
`;
|
|
21306
|
-
case "topRight":
|
|
21307
|
-
return `
|
|
21308
|
-
bottom: 100%;
|
|
21309
|
-
left: 0;
|
|
21310
|
-
margin-bottom: 8px;
|
|
21311
|
-
&::before {
|
|
21312
|
-
top: 100%;
|
|
21313
|
-
left: 8px;
|
|
21314
|
-
border-top-color: ${themeColors.border};
|
|
21315
|
-
}
|
|
21316
|
-
&::after {
|
|
21317
|
-
content: "";
|
|
21318
|
-
position: absolute;
|
|
21319
|
-
top: 100%;
|
|
21320
|
-
left: 8px;
|
|
21321
|
-
width: 0;
|
|
21322
|
-
height: 0;
|
|
21323
|
-
border: 3px solid transparent;
|
|
21324
|
-
border-top-color: ${themeColors.popover};
|
|
21325
|
-
}
|
|
21326
|
-
`;
|
|
21327
|
-
case "bottomLeft":
|
|
21328
|
-
return `
|
|
21329
|
-
top: 100%;
|
|
21330
|
-
right: 0;
|
|
21331
|
-
margin-top: 8px;
|
|
21332
|
-
&::before {
|
|
21333
|
-
bottom: 100%;
|
|
21334
|
-
right: 8px;
|
|
21335
|
-
border-bottom-color: ${themeColors.border};
|
|
21336
|
-
}
|
|
21337
|
-
&::after {
|
|
21338
|
-
content: "";
|
|
21339
|
-
position: absolute;
|
|
21340
|
-
bottom: 100%;
|
|
21341
|
-
right: 8px;
|
|
21342
|
-
width: 0;
|
|
21343
|
-
height: 0;
|
|
21344
|
-
border: 3px solid transparent;
|
|
21345
|
-
border-bottom-color: ${themeColors.popover};
|
|
21346
|
-
}
|
|
21347
|
-
`;
|
|
21348
|
-
case "bottomRight":
|
|
21349
|
-
return `
|
|
21350
|
-
top: 100%;
|
|
21351
|
-
left: 0;
|
|
21352
|
-
margin-top: 8px;
|
|
21353
|
-
&::before {
|
|
21354
|
-
bottom: 100%;
|
|
21355
|
-
left: 8px;
|
|
21356
|
-
border-bottom-color: ${themeColors.border};
|
|
21357
|
-
}
|
|
21358
|
-
&::after {
|
|
21359
|
-
content: "";
|
|
21360
|
-
position: absolute;
|
|
21361
|
-
bottom: 100%;
|
|
21362
|
-
left: 8px;
|
|
21363
|
-
width: 0;
|
|
21364
|
-
height: 0;
|
|
21365
|
-
border: 3px solid transparent;
|
|
21366
|
-
border-bottom-color: ${themeColors.popover};
|
|
21367
|
-
}
|
|
21368
|
-
`;
|
|
21369
|
-
case "leftTop":
|
|
21370
|
-
return `
|
|
21371
|
-
right: 100%;
|
|
21372
|
-
bottom: 0;
|
|
21373
|
-
margin-right: 8px;
|
|
21374
|
-
&::before {
|
|
21375
|
-
left: 100%;
|
|
21376
|
-
bottom: 8px;
|
|
21377
|
-
border-left-color: ${themeColors.border};
|
|
21378
|
-
}
|
|
21379
|
-
&::after {
|
|
21380
|
-
content: "";
|
|
21381
|
-
position: absolute;
|
|
21382
|
-
left: 100%;
|
|
21383
|
-
bottom: 8px;
|
|
21384
|
-
width: 0;
|
|
21385
|
-
height: 0;
|
|
21386
|
-
border: 3px solid transparent;
|
|
21387
|
-
border-left-color: ${themeColors.popover};
|
|
21388
|
-
}
|
|
21389
|
-
`;
|
|
21390
|
-
case "leftBottom":
|
|
21391
|
-
return `
|
|
21392
|
-
right: 100%;
|
|
21393
|
-
top: 0;
|
|
21394
|
-
margin-right: 8px;
|
|
21395
|
-
&::before {
|
|
21396
|
-
left: 100%;
|
|
21397
|
-
top: 8px;
|
|
21398
|
-
border-left-color: ${themeColors.border};
|
|
21399
|
-
}
|
|
21400
|
-
&::after {
|
|
21401
|
-
content: "";
|
|
21402
|
-
position: absolute;
|
|
21403
|
-
left: 100%;
|
|
21404
|
-
top: 8px;
|
|
21405
|
-
width: 0;
|
|
21406
|
-
height: 0;
|
|
21407
|
-
border: 3px solid transparent;
|
|
21408
|
-
border-left-color: ${themeColors.popover};
|
|
21409
|
-
}
|
|
21410
|
-
`;
|
|
21411
|
-
case "rightTop":
|
|
21412
|
-
return `
|
|
21413
|
-
left: 100%;
|
|
21414
|
-
bottom: 0;
|
|
21415
|
-
margin-left: 8px;
|
|
21416
|
-
&::before {
|
|
21417
|
-
right: 100%;
|
|
21418
|
-
bottom: 8px;
|
|
21419
|
-
border-right-color: ${themeColors.border};
|
|
21420
|
-
}
|
|
21421
|
-
&::after {
|
|
21422
|
-
content: "";
|
|
21423
|
-
position: absolute;
|
|
21424
|
-
right: 100%;
|
|
21425
|
-
bottom: 8px;
|
|
21426
|
-
width: 0;
|
|
21427
|
-
height: 0;
|
|
21428
|
-
border: 3px solid transparent;
|
|
21429
|
-
border-right-color: ${themeColors.popover};
|
|
21430
|
-
}
|
|
21431
|
-
`;
|
|
21432
|
-
case "rightBottom":
|
|
21433
|
-
return `
|
|
21434
|
-
left: 100%;
|
|
21435
|
-
top: 0;
|
|
21436
|
-
margin-left: 8px;
|
|
21437
|
-
&::before {
|
|
21438
|
-
right: 100%;
|
|
21439
|
-
top: 8px;
|
|
21440
|
-
border-right-color: ${themeColors.border};
|
|
21441
|
-
}
|
|
21442
|
-
&::after {
|
|
21443
|
-
content: "";
|
|
21444
|
-
position: absolute;
|
|
21445
|
-
right: 100%;
|
|
21446
|
-
top: 8px;
|
|
21447
|
-
width: 0;
|
|
21448
|
-
height: 0;
|
|
21449
|
-
border: 3px solid transparent;
|
|
21450
|
-
border-right-color: ${themeColors.popover};
|
|
21451
|
-
}
|
|
21452
|
-
`;
|
|
21453
|
-
default:
|
|
21454
|
-
return `
|
|
21455
|
-
bottom: 100%;
|
|
21456
|
-
left: 50%;
|
|
21457
|
-
transform: translateX(-50%);
|
|
21458
|
-
margin-bottom: 8px;
|
|
21459
|
-
&::before {
|
|
21460
|
-
top: 100%;
|
|
21461
|
-
left: 50%;
|
|
21462
|
-
transform: translateX(-50%);
|
|
21463
|
-
border-top-color: ${themeColors.border};
|
|
21464
|
-
}
|
|
21465
|
-
&::after {
|
|
21466
|
-
content: "";
|
|
21467
|
-
position: absolute;
|
|
21468
|
-
top: 100%;
|
|
21469
|
-
left: 50%;
|
|
21470
|
-
transform: translateX(-50%);
|
|
21471
|
-
width: 0;
|
|
21472
|
-
height: 0;
|
|
21473
|
-
border: 3px solid transparent;
|
|
21474
|
-
border-top-color: ${themeColors.popover};
|
|
21475
|
-
}
|
|
21476
|
-
`;
|
|
21477
|
-
}
|
|
21478
|
-
}}
|
|
21479
|
-
`;
|
|
21480
|
-
const Tooltip$1 = ({ children, content, placement = "top", delay = 300 })=>{
|
|
21481
|
-
const { theme } = useTheme$1();
|
|
21482
|
-
const [isVisible, setIsVisible] = React__namespace.useState(false);
|
|
21483
|
-
const timeoutRef = React__namespace.useRef();
|
|
21484
|
-
const showTooltip = ()=>{
|
|
21485
|
-
if (timeoutRef.current) {
|
|
21486
|
-
clearTimeout(timeoutRef.current);
|
|
21487
|
-
}
|
|
21488
|
-
timeoutRef.current = setTimeout(()=>{
|
|
21489
|
-
setIsVisible(true);
|
|
21490
|
-
}, delay);
|
|
21491
|
-
};
|
|
21492
|
-
const hideTooltip = ()=>{
|
|
21493
|
-
if (timeoutRef.current) {
|
|
21494
|
-
clearTimeout(timeoutRef.current);
|
|
21495
|
-
}
|
|
21496
|
-
setIsVisible(false);
|
|
21497
|
-
};
|
|
21498
|
-
React__namespace.useEffect(()=>{
|
|
21499
|
-
return ()=>{
|
|
21500
|
-
if (timeoutRef.current) {
|
|
21501
|
-
clearTimeout(timeoutRef.current);
|
|
21502
|
-
}
|
|
21503
|
-
};
|
|
21504
|
-
}, []);
|
|
21505
|
-
return /*#__PURE__*/ React__namespace.createElement(TooltipContainer, {
|
|
21506
|
-
onMouseEnter: showTooltip,
|
|
21507
|
-
onMouseLeave: hideTooltip,
|
|
21508
|
-
onFocus: showTooltip,
|
|
21509
|
-
onBlur: hideTooltip
|
|
21510
|
-
}, children, /*#__PURE__*/ React__namespace.createElement(TooltipContent, {
|
|
21511
|
-
isVisible: isVisible,
|
|
21512
|
-
placement: placement,
|
|
21513
|
-
themeColors: theme.colors,
|
|
21514
|
-
role: "tooltip"
|
|
21515
|
-
}, content));
|
|
21516
|
-
};
|
|
21517
|
-
|
|
21518
|
-
const BadgeContainer$3 = styled.div`
|
|
21519
|
-
display: inline-flex;
|
|
21520
|
-
align-items: center;
|
|
21521
|
-
border-radius: 9999px;
|
|
21522
|
-
border: 1px solid transparent;
|
|
21523
|
-
padding: 0.125rem 0.625rem;
|
|
21524
|
-
font-size: 0.75rem;
|
|
21525
|
-
font-weight: 600;
|
|
21526
|
-
transition: colors 0.2s ease-in-out;
|
|
21527
|
-
outline: none;
|
|
21528
|
-
|
|
21529
|
-
&:focus {
|
|
21530
|
-
outline: none;
|
|
21531
|
-
box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
|
|
21532
|
-
}
|
|
21533
|
-
|
|
21534
|
-
${({ variant, themeColors })=>{
|
|
21535
|
-
switch(variant){
|
|
21536
|
-
case "default":
|
|
21537
|
-
return `
|
|
21538
|
-
background-color: ${themeColors.primary};
|
|
21539
|
-
color: ${themeColors.primaryForeground};
|
|
21540
|
-
&:hover {
|
|
21541
|
-
background-color: ${themeColors.primary};
|
|
21542
|
-
opacity: 0.9;
|
|
21543
|
-
}
|
|
21544
|
-
`;
|
|
21545
|
-
case "secondary":
|
|
21546
|
-
return `
|
|
21547
|
-
background-color: ${themeColors.secondary};
|
|
21548
|
-
color: ${themeColors.secondaryForeground};
|
|
21549
|
-
&:hover {
|
|
21550
|
-
background-color: ${themeColors.muted};
|
|
21551
|
-
}
|
|
21552
|
-
`;
|
|
21553
|
-
case "destructive":
|
|
21554
|
-
return `
|
|
21555
|
-
background-color: ${themeColors.destructive};
|
|
21556
|
-
color: ${themeColors.destructiveForeground};
|
|
21557
|
-
&:hover {
|
|
21558
|
-
background-color: ${themeColors.destructive};
|
|
21559
|
-
opacity: 0.9;
|
|
21560
|
-
}
|
|
21561
|
-
`;
|
|
21562
|
-
case "outline":
|
|
21563
|
-
return `
|
|
21564
|
-
background-color: transparent;
|
|
21565
|
-
color: ${themeColors.cardForeground};
|
|
21566
|
-
border-color: ${themeColors.border};
|
|
21567
|
-
`;
|
|
21568
|
-
case "cost":
|
|
21569
|
-
return `
|
|
21570
|
-
background-color: ${themeColors.secondary};
|
|
21571
|
-
color: ${themeColors.secondaryForeground};
|
|
21572
|
-
&:hover {
|
|
21573
|
-
background-color: ${themeColors.muted};
|
|
21574
|
-
}
|
|
21575
|
-
`;
|
|
21576
|
-
case "gray":
|
|
21577
|
-
return `
|
|
21578
|
-
background-color: ${themeColors.secondary};
|
|
21579
|
-
color: ${themeColors.secondaryForeground};
|
|
21580
|
-
&:hover {
|
|
21581
|
-
background-color: ${themeColors.muted};
|
|
21582
|
-
}
|
|
21583
|
-
`;
|
|
21584
|
-
case "latency":
|
|
21585
|
-
return `
|
|
21586
|
-
background-color: ${themeColors.secondary};
|
|
21587
|
-
color: ${themeColors.secondaryForeground};
|
|
21588
|
-
&:hover {
|
|
21589
|
-
background-color: ${themeColors.muted};
|
|
21590
|
-
}
|
|
21591
|
-
`;
|
|
21592
|
-
case "latencyLow":
|
|
21593
|
-
return `
|
|
21594
|
-
background-color: ${themeColors.secondary};
|
|
21595
|
-
color: ${themeColors.secondaryForeground};
|
|
21596
|
-
&:hover {
|
|
21597
|
-
background-color: ${themeColors.muted};
|
|
21598
|
-
}
|
|
21599
|
-
`;
|
|
21600
|
-
case "latencyMedium":
|
|
21601
|
-
return `
|
|
21602
|
-
background-color: ${themeColors.secondary};
|
|
21603
|
-
color: ${themeColors.secondaryForeground};
|
|
21604
|
-
&:hover {
|
|
21605
|
-
background-color: ${themeColors.muted};
|
|
21606
|
-
}
|
|
21607
|
-
`;
|
|
21608
|
-
case "latencyHigh":
|
|
21609
|
-
return `
|
|
21610
|
-
background-color: ${themeColors.destructive};
|
|
21611
|
-
color: ${themeColors.destructiveForeground};
|
|
21612
|
-
&:hover {
|
|
21613
|
-
background-color: ${themeColors.destructive};
|
|
21614
|
-
opacity: 0.9;
|
|
21615
|
-
}
|
|
21616
|
-
`;
|
|
21617
|
-
default:
|
|
21618
|
-
return `
|
|
21619
|
-
background-color: ${themeColors.primary};
|
|
21620
|
-
color: ${themeColors.primaryForeground};
|
|
21621
|
-
&:hover {
|
|
21622
|
-
background-color: ${themeColors.primary};
|
|
21623
|
-
opacity: 0.9;
|
|
21624
|
-
}
|
|
21625
|
-
`;
|
|
21626
|
-
}
|
|
21627
|
-
}}
|
|
21628
|
-
`;
|
|
21629
|
-
const Badge = ({ variant = "default", children, title, placement = "top" })=>{
|
|
21630
|
-
const { theme } = useTheme$1();
|
|
21631
|
-
const themeColors = theme.colors;
|
|
21632
|
-
const badgeContent = /*#__PURE__*/ React__namespace.createElement(BadgeContainer$3, {
|
|
21633
|
-
variant: variant,
|
|
21634
|
-
themeColors: themeColors
|
|
21635
|
-
}, children);
|
|
21636
|
-
if (title) {
|
|
21637
|
-
return /*#__PURE__*/ React__namespace.createElement(Tooltip$1, {
|
|
21638
|
-
content: title,
|
|
21639
|
-
placement: placement
|
|
21640
|
-
}, badgeContent);
|
|
21641
|
-
}
|
|
21642
|
-
return badgeContent;
|
|
21643
|
-
};
|
|
21644
|
-
|
|
21645
21316
|
function noop$2() {}
|
|
21646
21317
|
const { resetWarned: rcResetWarned } = util.warning;
|
|
21647
21318
|
let deprecatedWarnList = null;
|
|
@@ -23668,7 +23339,7 @@ const genActionStyle = (token)=>{
|
|
|
23668
23339
|
}
|
|
23669
23340
|
};
|
|
23670
23341
|
};
|
|
23671
|
-
const prepareComponentToken$
|
|
23342
|
+
const prepareComponentToken$m = (token)=>{
|
|
23672
23343
|
const paddingHorizontal = 12; // Fixed value here.
|
|
23673
23344
|
return {
|
|
23674
23345
|
withDescriptionIconSize: token.fontSizeHeading3,
|
|
@@ -23676,11 +23347,11 @@ const prepareComponentToken$n = (token)=>{
|
|
|
23676
23347
|
withDescriptionPadding: `${token.paddingMD}px ${token.paddingContentHorizontalLG}px`
|
|
23677
23348
|
};
|
|
23678
23349
|
};
|
|
23679
|
-
var useStyle$
|
|
23350
|
+
var useStyle$t = genStyleHooks('Alert', (token)=>[
|
|
23680
23351
|
genBaseStyle$6(token),
|
|
23681
23352
|
genTypeStyle(token),
|
|
23682
23353
|
genActionStyle(token)
|
|
23683
|
-
], prepareComponentToken$
|
|
23354
|
+
], prepareComponentToken$m);
|
|
23684
23355
|
|
|
23685
23356
|
const IconNode = (props)=>{
|
|
23686
23357
|
const { icon, type, className, style, successIcon, infoIcon, warningIcon, errorIcon } = props;
|
|
@@ -23732,7 +23403,7 @@ const Alert$1 = /*#__PURE__*/ React__namespace.forwardRef((props, ref$1)=>{
|
|
|
23732
23403
|
}));
|
|
23733
23404
|
const { getPrefixCls, direction, closable: contextClosable, closeIcon: contextCloseIcon, className: contextClassName, style: contextStyle, classNames: contextClassNames, styles: contextStyles, successIcon, infoIcon, warningIcon, errorIcon } = useComponentConfig('alert');
|
|
23734
23405
|
const prefixCls = getPrefixCls('alert', customizePrefixCls);
|
|
23735
|
-
const [hashId, cssVarCls] = useStyle$
|
|
23406
|
+
const [hashId, cssVarCls] = useStyle$t(prefixCls);
|
|
23736
23407
|
const { onClose: closableOnClose, afterClose: closableAfterClose } = closable && typeof closable === 'object' ? closable : {};
|
|
23737
23408
|
const handleClose = (e)=>{
|
|
23738
23409
|
setClosed(true);
|
|
@@ -24772,19 +24443,19 @@ const genMessageStyle = (token)=>{
|
|
|
24772
24443
|
}
|
|
24773
24444
|
];
|
|
24774
24445
|
};
|
|
24775
|
-
const prepareComponentToken$
|
|
24446
|
+
const prepareComponentToken$l = (token)=>({
|
|
24776
24447
|
zIndexPopup: token.zIndexPopupBase + CONTAINER_MAX_OFFSET + 10,
|
|
24777
24448
|
contentBg: token.colorBgElevated,
|
|
24778
24449
|
contentPadding: `${(token.controlHeightLG - token.fontSize * token.lineHeight) / 2}px ${token.paddingSM}px`
|
|
24779
24450
|
});
|
|
24780
24451
|
// ============================== Export ==============================
|
|
24781
|
-
var useStyle$
|
|
24452
|
+
var useStyle$s = genStyleHooks('Message', (token)=>{
|
|
24782
24453
|
// Gen-style functions here
|
|
24783
24454
|
const combinedToken = cssinjsUtils.mergeToken(token, {
|
|
24784
24455
|
height: 150
|
|
24785
24456
|
});
|
|
24786
24457
|
return genMessageStyle(combinedToken);
|
|
24787
|
-
}, prepareComponentToken$
|
|
24458
|
+
}, prepareComponentToken$l);
|
|
24788
24459
|
|
|
24789
24460
|
const TypeIcon = {
|
|
24790
24461
|
info: /*#__PURE__*/ React__namespace.createElement(InfoCircleFilled, null),
|
|
@@ -24818,7 +24489,7 @@ const PureContent = (props)=>{
|
|
|
24818
24489
|
const { getPrefixCls, className: contextClassName, style: contextStyle, classNames: contextClassNames, styles: contextStyles } = useComponentConfig('message');
|
|
24819
24490
|
const prefixCls = staticPrefixCls || getPrefixCls('message');
|
|
24820
24491
|
const rootCls = useCSSVarCls(prefixCls);
|
|
24821
|
-
const [hashId, cssVarCls] = useStyle$
|
|
24492
|
+
const [hashId, cssVarCls] = useStyle$s(prefixCls, rootCls);
|
|
24822
24493
|
const [mergedClassNames, mergedStyles] = useMergeSemantic([
|
|
24823
24494
|
contextClassNames,
|
|
24824
24495
|
messageClassNames
|
|
@@ -24873,7 +24544,7 @@ const DEFAULT_OFFSET = 8;
|
|
|
24873
24544
|
const DEFAULT_DURATION = 3;
|
|
24874
24545
|
const Wrapper = ({ children, prefixCls })=>{
|
|
24875
24546
|
const rootCls = useCSSVarCls(prefixCls);
|
|
24876
|
-
const [hashId, cssVarCls] = useStyle$
|
|
24547
|
+
const [hashId, cssVarCls] = useStyle$s(prefixCls, rootCls);
|
|
24877
24548
|
return /*#__PURE__*/ React__namespace.createElement(notification.NotificationProvider, {
|
|
24878
24549
|
classNames: {
|
|
24879
24550
|
list: clsx(hashId, cssVarCls, rootCls)
|
|
@@ -25151,7 +24822,7 @@ const genWaveStyle = (token)=>{
|
|
|
25151
24822
|
}
|
|
25152
24823
|
};
|
|
25153
24824
|
};
|
|
25154
|
-
var useStyle$
|
|
24825
|
+
var useStyle$r = genComponentStyleHook('Wave', genWaveStyle);
|
|
25155
24826
|
|
|
25156
24827
|
const TARGET_CLS = `${defaultPrefixCls}-wave-target`;
|
|
25157
24828
|
|
|
@@ -25326,7 +24997,7 @@ const Wave = (props)=>{
|
|
|
25326
24997
|
const containerRef = React.useRef(null);
|
|
25327
24998
|
// ============================== Style ===============================
|
|
25328
24999
|
const prefixCls = getPrefixCls('wave');
|
|
25329
|
-
const hashId = useStyle$
|
|
25000
|
+
const hashId = useStyle$r(prefixCls);
|
|
25330
25001
|
// =============================== Wave ===============================
|
|
25331
25002
|
const showWave = useWave(containerRef, clsx(prefixCls, hashId), component, colorSource);
|
|
25332
25003
|
// ============================== Effect ==============================
|
|
@@ -25404,7 +25075,7 @@ const genSpaceCompactStyle = (token)=>{
|
|
|
25404
25075
|
};
|
|
25405
25076
|
};
|
|
25406
25077
|
// ============================== Export ==============================
|
|
25407
|
-
var useStyle$
|
|
25078
|
+
var useStyle$q = genStyleHooks([
|
|
25408
25079
|
'Space',
|
|
25409
25080
|
'Compact'
|
|
25410
25081
|
], genSpaceCompactStyle, ()=>({}), {
|
|
@@ -25463,7 +25134,7 @@ const Compact$1 = (props)=>{
|
|
|
25463
25134
|
const [mergedOrientation, mergedVertical] = useOrientation(orientation, vertical, direction);
|
|
25464
25135
|
const mergedSize = useSize((ctx)=>size ?? ctx);
|
|
25465
25136
|
const prefixCls = getPrefixCls('space-compact', customizePrefixCls);
|
|
25466
|
-
const [hashId] = useStyle$
|
|
25137
|
+
const [hashId] = useStyle$q(prefixCls);
|
|
25467
25138
|
const clx = clsx(prefixCls, hashId, {
|
|
25468
25139
|
[`${prefixCls}-rtl`]: directionConfig === 'rtl',
|
|
25469
25140
|
[`${prefixCls}-block`]: block,
|
|
@@ -26678,7 +26349,7 @@ const genGhostStyle = (token)=>{
|
|
|
26678
26349
|
}
|
|
26679
26350
|
};
|
|
26680
26351
|
};
|
|
26681
|
-
const prepareComponentToken$
|
|
26352
|
+
const prepareComponentToken$k = (token)=>({
|
|
26682
26353
|
headerPadding: `${token.paddingSM}px ${token.padding}px`,
|
|
26683
26354
|
headerBg: token.colorFillAlter,
|
|
26684
26355
|
contentPadding: `${token.padding}px 16px`,
|
|
@@ -26687,7 +26358,7 @@ const prepareComponentToken$l = (token)=>({
|
|
|
26687
26358
|
borderlessContentPadding: `${token.paddingXXS}px 16px ${token.padding}px`,
|
|
26688
26359
|
borderlessContentBg: 'transparent'
|
|
26689
26360
|
});
|
|
26690
|
-
var useStyle$
|
|
26361
|
+
var useStyle$p = genStyleHooks('Collapse', (token)=>{
|
|
26691
26362
|
const collapseToken = cssinjsUtils.mergeToken(token, {
|
|
26692
26363
|
collapseHeaderPaddingSM: `${cssinjs.unit(token.paddingXS)} ${cssinjs.unit(token.paddingSM)}`,
|
|
26693
26364
|
collapseHeaderPaddingLG: `${cssinjs.unit(token.padding)} ${cssinjs.unit(token.paddingLG)}`,
|
|
@@ -26700,7 +26371,7 @@ var useStyle$q = genStyleHooks('Collapse', (token)=>{
|
|
|
26700
26371
|
genArrowStyle(collapseToken),
|
|
26701
26372
|
genCollapseMotion(collapseToken)
|
|
26702
26373
|
];
|
|
26703
|
-
}, prepareComponentToken$
|
|
26374
|
+
}, prepareComponentToken$k);
|
|
26704
26375
|
|
|
26705
26376
|
const Collapse$1 = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>{
|
|
26706
26377
|
const { getPrefixCls, direction, expandIcon: contextExpandIcon, className: contextClassName, style: contextStyle, classNames: contextClassNames, styles: contextStyles } = useComponentConfig('collapse');
|
|
@@ -26708,7 +26379,7 @@ const Collapse$1 = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>{
|
|
|
26708
26379
|
const mergedSize = useSize((ctx)=>customizeSize ?? ctx ?? 'middle');
|
|
26709
26380
|
const prefixCls = getPrefixCls('collapse', customizePrefixCls);
|
|
26710
26381
|
const rootPrefixCls = getPrefixCls();
|
|
26711
|
-
const [hashId, cssVarCls] = useStyle$
|
|
26382
|
+
const [hashId, cssVarCls] = useStyle$p(prefixCls);
|
|
26712
26383
|
const mergedPlacement = expandIconPlacement ?? expandIconPosition ?? 'start';
|
|
26713
26384
|
// =========== Merged Props for Semantic ===========
|
|
26714
26385
|
const mergedProps = {
|
|
@@ -26831,7 +26502,7 @@ const prepareToken$2 = (token)=>{
|
|
|
26831
26502
|
});
|
|
26832
26503
|
return buttonToken;
|
|
26833
26504
|
};
|
|
26834
|
-
const prepareComponentToken$
|
|
26505
|
+
const prepareComponentToken$j = (token)=>{
|
|
26835
26506
|
const contentFontSize = token.contentFontSize ?? token.fontSize;
|
|
26836
26507
|
const contentFontSizeSM = token.contentFontSizeSM ?? token.fontSize;
|
|
26837
26508
|
const contentFontSizeLG = token.contentFontSizeLG ?? token.fontSizeLG;
|
|
@@ -27341,7 +27012,7 @@ const genBlockButtonStyle = (token)=>{
|
|
|
27341
27012
|
};
|
|
27342
27013
|
};
|
|
27343
27014
|
// ============================== Export ==============================
|
|
27344
|
-
var useStyle$
|
|
27015
|
+
var useStyle$o = genStyleHooks('Button', (token)=>{
|
|
27345
27016
|
const buttonToken = prepareToken$2(token);
|
|
27346
27017
|
return [
|
|
27347
27018
|
// Shared
|
|
@@ -27357,7 +27028,7 @@ var useStyle$p = genStyleHooks('Button', (token)=>{
|
|
|
27357
27028
|
// Button Group
|
|
27358
27029
|
genGroupStyle$1(buttonToken)
|
|
27359
27030
|
];
|
|
27360
|
-
}, prepareComponentToken$
|
|
27031
|
+
}, prepareComponentToken$j, {
|
|
27361
27032
|
unitless: {
|
|
27362
27033
|
fontWeight: true,
|
|
27363
27034
|
contentLineHeight: true,
|
|
@@ -27541,7 +27212,7 @@ var Compact = genSubStyleComponent([
|
|
|
27541
27212
|
genCompactItemVerticalStyle(buttonToken),
|
|
27542
27213
|
genButtonCompactStyle(buttonToken)
|
|
27543
27214
|
];
|
|
27544
|
-
}, prepareComponentToken$
|
|
27215
|
+
}, prepareComponentToken$j);
|
|
27545
27216
|
|
|
27546
27217
|
function getLoadingConfig(loading) {
|
|
27547
27218
|
if (typeof loading === 'object' && loading) {
|
|
@@ -27649,7 +27320,7 @@ const InternalCompoundedButton = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
|
27649
27320
|
const mergedColorText = isDanger ? 'dangerous' : mergedColor;
|
|
27650
27321
|
const mergedInsertSpace = autoInsertSpace ?? contextAutoInsertSpace ?? true;
|
|
27651
27322
|
const prefixCls = getPrefixCls('btn', customizePrefixCls);
|
|
27652
|
-
const [hashId, cssVarCls] = useStyle$
|
|
27323
|
+
const [hashId, cssVarCls] = useStyle$o(prefixCls);
|
|
27653
27324
|
const disabled = React.useContext(DisabledContext);
|
|
27654
27325
|
const mergedDisabled = customDisabled ?? disabled;
|
|
27655
27326
|
const groupSize = React.useContext(GroupSizeContext);
|
|
@@ -28219,7 +27890,7 @@ const genBaseStyle$4 = (token)=>{
|
|
|
28219
27890
|
};
|
|
28220
27891
|
};
|
|
28221
27892
|
// ============================== Export ==============================
|
|
28222
|
-
const prepareComponentToken$
|
|
27893
|
+
const prepareComponentToken$i = (token)=>{
|
|
28223
27894
|
const { colorFillContent, colorFill } = token;
|
|
28224
27895
|
const gradientFromColor = colorFillContent;
|
|
28225
27896
|
const gradientToColor = colorFill;
|
|
@@ -28234,7 +27905,7 @@ const prepareComponentToken$j = (token)=>{
|
|
|
28234
27905
|
paragraphLiHeight: token.controlHeight / 2
|
|
28235
27906
|
};
|
|
28236
27907
|
};
|
|
28237
|
-
var useStyle$
|
|
27908
|
+
var useStyle$n = genStyleHooks('Skeleton', (token)=>{
|
|
28238
27909
|
const { componentCls, calc } = token;
|
|
28239
27910
|
const skeletonToken = cssinjsUtils.mergeToken(token, {
|
|
28240
27911
|
skeletonAvatarCls: `${componentCls}-avatar`,
|
|
@@ -28251,7 +27922,7 @@ var useStyle$o = genStyleHooks('Skeleton', (token)=>{
|
|
|
28251
27922
|
skeletonLoadingMotionDuration: '1.4s'
|
|
28252
27923
|
});
|
|
28253
27924
|
return genBaseStyle$4(skeletonToken);
|
|
28254
|
-
}, prepareComponentToken$
|
|
27925
|
+
}, prepareComponentToken$i, {
|
|
28255
27926
|
deprecatedTokens: [
|
|
28256
27927
|
[
|
|
28257
27928
|
'color',
|
|
@@ -28268,7 +27939,7 @@ const SkeletonAvatar = (props)=>{
|
|
|
28268
27939
|
const { prefixCls: customizePrefixCls, className, classNames, rootClassName, active, style, styles, shape = 'circle', size = 'default', ...rest } = props;
|
|
28269
27940
|
const { getPrefixCls } = React__namespace.useContext(ConfigContext);
|
|
28270
27941
|
const prefixCls = getPrefixCls('skeleton', customizePrefixCls);
|
|
28271
|
-
const [hashId, cssVarCls] = useStyle$
|
|
27942
|
+
const [hashId, cssVarCls] = useStyle$n(prefixCls);
|
|
28272
27943
|
const cls = clsx(prefixCls, `${prefixCls}-element`, {
|
|
28273
27944
|
[`${prefixCls}-active`]: active
|
|
28274
27945
|
}, classNames?.root, className, rootClassName, hashId, cssVarCls);
|
|
@@ -28292,7 +27963,7 @@ const SkeletonButton = (props)=>{
|
|
|
28292
27963
|
const { prefixCls: customizePrefixCls, className, rootClassName, classNames, active, style, styles, block = false, size = 'default', ...rest } = props;
|
|
28293
27964
|
const { getPrefixCls } = React__namespace.useContext(ConfigContext);
|
|
28294
27965
|
const prefixCls = getPrefixCls('skeleton', customizePrefixCls);
|
|
28295
|
-
const [hashId, cssVarCls] = useStyle$
|
|
27966
|
+
const [hashId, cssVarCls] = useStyle$n(prefixCls);
|
|
28296
27967
|
const cls = clsx(prefixCls, `${prefixCls}-element`, {
|
|
28297
27968
|
[`${prefixCls}-active`]: active,
|
|
28298
27969
|
[`${prefixCls}-block`]: block
|
|
@@ -28316,7 +27987,7 @@ const SkeletonNode = (props)=>{
|
|
|
28316
27987
|
const { prefixCls: customizePrefixCls, className, classNames, rootClassName, internalClassName, style, styles, active, children } = props;
|
|
28317
27988
|
const { getPrefixCls } = React__namespace.useContext(ConfigContext);
|
|
28318
27989
|
const prefixCls = getPrefixCls('skeleton', customizePrefixCls);
|
|
28319
|
-
const [hashId, cssVarCls] = useStyle$
|
|
27990
|
+
const [hashId, cssVarCls] = useStyle$n(prefixCls);
|
|
28320
27991
|
const cls = clsx(prefixCls, `${prefixCls}-element`, {
|
|
28321
27992
|
[`${prefixCls}-active`]: active
|
|
28322
27993
|
}, hashId, classNames?.root, className, rootClassName, cssVarCls);
|
|
@@ -28352,7 +28023,7 @@ const SkeletonInput = (props)=>{
|
|
|
28352
28023
|
const { prefixCls: customizePrefixCls, className, classNames, rootClassName, active, block, style, styles, size = 'default', ...rest } = props;
|
|
28353
28024
|
const { getPrefixCls } = React__namespace.useContext(ConfigContext);
|
|
28354
28025
|
const prefixCls = getPrefixCls('skeleton', customizePrefixCls);
|
|
28355
|
-
const [hashId, cssVarCls] = useStyle$
|
|
28026
|
+
const [hashId, cssVarCls] = useStyle$n(prefixCls);
|
|
28356
28027
|
const cls = clsx(prefixCls, `${prefixCls}-element`, {
|
|
28357
28028
|
[`${prefixCls}-active`]: active,
|
|
28358
28029
|
[`${prefixCls}-block`]: block
|
|
@@ -28460,7 +28131,7 @@ const Skeleton = (props)=>{
|
|
|
28460
28131
|
const { prefixCls: customizePrefixCls, loading, className, rootClassName, classNames, style, styles, children, avatar = false, title = true, paragraph = true, active, round } = props;
|
|
28461
28132
|
const { getPrefixCls, direction, className: contextClassName, style: contextStyle, classNames: contextClassNames, styles: contextStyles } = useComponentConfig('skeleton');
|
|
28462
28133
|
const prefixCls = getPrefixCls('skeleton', customizePrefixCls);
|
|
28463
|
-
const [hashId, cssVarCls] = useStyle$
|
|
28134
|
+
const [hashId, cssVarCls] = useStyle$n(prefixCls);
|
|
28464
28135
|
const mergedProps = {
|
|
28465
28136
|
...props,
|
|
28466
28137
|
avatar,
|
|
@@ -28986,7 +28657,7 @@ const genSharedEmptyStyle = (token)=>{
|
|
|
28986
28657
|
};
|
|
28987
28658
|
};
|
|
28988
28659
|
// ============================== Export ==============================
|
|
28989
|
-
var useStyle$
|
|
28660
|
+
var useStyle$m = genStyleHooks('Empty', (token)=>{
|
|
28990
28661
|
const { componentCls, controlHeightLG, calc } = token;
|
|
28991
28662
|
const emptyToken = cssinjsUtils.mergeToken(token, {
|
|
28992
28663
|
emptyImgCls: `${componentCls}-img`,
|
|
@@ -29003,7 +28674,7 @@ const Empty = (props)=>{
|
|
|
29003
28674
|
const { className, rootClassName, prefixCls: customizePrefixCls, image, description, children, imageStyle, style, classNames, styles, ...restProps } = props;
|
|
29004
28675
|
const { getPrefixCls, direction, className: contextClassName, style: contextStyle, classNames: contextClassNames, styles: contextStyles, image: contextImage } = useComponentConfig('empty');
|
|
29005
28676
|
const prefixCls = getPrefixCls('empty', customizePrefixCls);
|
|
29006
|
-
const [hashId, cssVarCls] = useStyle$
|
|
28677
|
+
const [hashId, cssVarCls] = useStyle$m(prefixCls);
|
|
29007
28678
|
const [mergedClassNames, mergedStyles] = useMergeSemantic([
|
|
29008
28679
|
contextClassNames,
|
|
29009
28680
|
classNames
|
|
@@ -29795,7 +29466,7 @@ const genSelectInputStyle = (token)=>{
|
|
|
29795
29466
|
};
|
|
29796
29467
|
};
|
|
29797
29468
|
|
|
29798
|
-
const prepareComponentToken$
|
|
29469
|
+
const prepareComponentToken$h = (token)=>{
|
|
29799
29470
|
const { fontSize, lineHeight, lineWidth, controlHeight, controlHeightSM, controlHeightLG, paddingXXS, controlPaddingHorizontal, zIndexPopupBase, colorText, fontWeightStrong, controlItemBgActive, controlItemBgHover, colorBgContainer, colorFillSecondary, colorBgContainerDisabled, colorTextDisabled, colorPrimaryHover, colorPrimary, controlOutline } = token;
|
|
29800
29471
|
// Item height default use `controlHeight - 2 * paddingXXS`,
|
|
29801
29472
|
// but some case `paddingXXS=0`.
|
|
@@ -29963,7 +29634,7 @@ var useSelectStyle = genStyleHooks('Select', (token, { rootPrefixCls })=>{
|
|
|
29963
29634
|
genSelectStyle(selectToken),
|
|
29964
29635
|
genSelectInputStyle(selectToken)
|
|
29965
29636
|
];
|
|
29966
|
-
}, prepareComponentToken$
|
|
29637
|
+
}, prepareComponentToken$h, {
|
|
29967
29638
|
unitless: {
|
|
29968
29639
|
optionLineHeight: true,
|
|
29969
29640
|
optionSelectedFontWeight: true
|
|
@@ -30281,16 +29952,6 @@ const getResponsiveMap = (token)=>({
|
|
|
30281
29952
|
});
|
|
30282
29953
|
return token;
|
|
30283
29954
|
};
|
|
30284
|
-
const matchScreen = (screens, screenSizes)=>{
|
|
30285
|
-
if (!screenSizes) {
|
|
30286
|
-
return;
|
|
30287
|
-
}
|
|
30288
|
-
for (const breakpoint of responsiveArray){
|
|
30289
|
-
if (screens[breakpoint] && screenSizes?.[breakpoint] !== undefined) {
|
|
30290
|
-
return screenSizes[breakpoint];
|
|
30291
|
-
}
|
|
30292
|
-
}
|
|
30293
|
-
};
|
|
30294
29955
|
const useResponsiveObserver = ()=>{
|
|
30295
29956
|
const [, token] = useToken();
|
|
30296
29957
|
const responsiveMap = getResponsiveMap(validateBreakpoints(token));
|
|
@@ -31004,7 +30665,7 @@ const genTooltipStyle = (token)=>{
|
|
|
31004
30665
|
];
|
|
31005
30666
|
};
|
|
31006
30667
|
// ============================== Export ==============================
|
|
31007
|
-
const prepareComponentToken$
|
|
30668
|
+
const prepareComponentToken$g = (token)=>({
|
|
31008
30669
|
zIndexPopup: token.zIndexPopupBase + 70,
|
|
31009
30670
|
maxWidth: 250,
|
|
31010
30671
|
...getArrowOffsetToken({
|
|
@@ -31015,7 +30676,7 @@ const prepareComponentToken$h = (token)=>({
|
|
|
31015
30676
|
borderRadiusOuter: Math.min(token.borderRadiusOuter, 4)
|
|
31016
30677
|
}))
|
|
31017
30678
|
});
|
|
31018
|
-
var useStyle$
|
|
30679
|
+
var useStyle$l = ((prefixCls, rootCls, injectStyle = true)=>{
|
|
31019
30680
|
const useStyle = genStyleHooks('Tooltip', (token)=>{
|
|
31020
30681
|
const { borderRadius, colorTextLightSolid, colorBgSpotlight, maxWidth } = token;
|
|
31021
30682
|
const TooltipToken = cssinjsUtils.mergeToken(token, {
|
|
@@ -31029,7 +30690,7 @@ var useStyle$m = ((prefixCls, rootCls, injectStyle = true)=>{
|
|
|
31029
30690
|
genTooltipStyle(TooltipToken),
|
|
31030
30691
|
initZoomMotion(token, 'zoom-big-fast')
|
|
31031
30692
|
];
|
|
31032
|
-
}, prepareComponentToken$
|
|
30693
|
+
}, prepareComponentToken$g, {
|
|
31033
30694
|
resetStyle: false,
|
|
31034
30695
|
// Popover use Tooltip as internal component. We do not need to handle this.
|
|
31035
30696
|
injectStyle
|
|
@@ -31088,7 +30749,7 @@ const parseColor = (rootPrefixCls, prefixCls, color)=>{
|
|
|
31088
30749
|
const prefixCls = getPrefixCls('tooltip', customizePrefixCls);
|
|
31089
30750
|
const rootPrefixCls = getPrefixCls();
|
|
31090
30751
|
const rootCls = useCSSVarCls(prefixCls);
|
|
31091
|
-
const [hashId, cssVarCls] = useStyle$
|
|
30752
|
+
const [hashId, cssVarCls] = useStyle$l(prefixCls, rootCls);
|
|
31092
30753
|
// Color
|
|
31093
30754
|
const colorInfo = parseColor(rootPrefixCls, prefixCls, color);
|
|
31094
30755
|
const arrowContentStyle = colorInfo.arrowStyle;
|
|
@@ -31250,7 +30911,7 @@ const InternalTooltip = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>
|
|
|
31250
30911
|
const childCls = !childProps.className || typeof childProps.className === 'string' ? clsx(childProps.className, openClassName || `${prefixCls}-open`) : childProps.className;
|
|
31251
30912
|
// Style
|
|
31252
30913
|
const rootCls = useCSSVarCls(prefixCls);
|
|
31253
|
-
const [hashId, cssVarCls] = useStyle$
|
|
30914
|
+
const [hashId, cssVarCls] = useStyle$l(prefixCls, rootCls, !injectFromPopover);
|
|
31254
30915
|
// Color
|
|
31255
30916
|
const colorInfo = parseColor(rootPrefixCls, prefixCls, color);
|
|
31256
30917
|
const arrowContentStyle = colorInfo.arrowStyle;
|
|
@@ -31314,12 +30975,12 @@ const InternalTooltip = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>
|
|
|
31314
30975
|
value: contextZIndex
|
|
31315
30976
|
}, content);
|
|
31316
30977
|
});
|
|
31317
|
-
const Tooltip = InternalTooltip;
|
|
30978
|
+
const Tooltip$1 = InternalTooltip;
|
|
31318
30979
|
if (process.env.NODE_ENV !== 'production') {
|
|
31319
|
-
Tooltip.displayName = 'Tooltip';
|
|
30980
|
+
Tooltip$1.displayName = 'Tooltip';
|
|
31320
30981
|
}
|
|
31321
|
-
Tooltip._InternalPanelDoNotUseOrYouWillBeFired = PurePanel$2;
|
|
31322
|
-
Tooltip.UniqueProvider = UniqueProvider;
|
|
30982
|
+
Tooltip$1._InternalPanelDoNotUseOrYouWillBeFired = PurePanel$2;
|
|
30983
|
+
Tooltip$1.UniqueProvider = UniqueProvider;
|
|
31323
30984
|
|
|
31324
30985
|
const isPrimitive = (value)=>typeof value !== 'object' && typeof value !== 'function' || value === null;
|
|
31325
30986
|
|
|
@@ -31388,7 +31049,7 @@ const genLayoutStyle = (token)=>{
|
|
|
31388
31049
|
}
|
|
31389
31050
|
};
|
|
31390
31051
|
};
|
|
31391
|
-
const prepareComponentToken$
|
|
31052
|
+
const prepareComponentToken$f = (token)=>{
|
|
31392
31053
|
const { colorBgLayout, controlHeight, controlHeightLG, colorText, controlHeightSM, marginXXS, colorTextLightSolid, colorBgContainer } = token;
|
|
31393
31054
|
const paddingInline = controlHeightLG * 1.25;
|
|
31394
31055
|
return {
|
|
@@ -31429,7 +31090,7 @@ const DEPRECATED_TOKENS = [
|
|
|
31429
31090
|
'triggerBg'
|
|
31430
31091
|
]
|
|
31431
31092
|
];
|
|
31432
|
-
genStyleHooks('Layout', genLayoutStyle, prepareComponentToken$
|
|
31093
|
+
genStyleHooks('Layout', genLayoutStyle, prepareComponentToken$f, {
|
|
31433
31094
|
deprecatedTokens: DEPRECATED_TOKENS
|
|
31434
31095
|
});
|
|
31435
31096
|
|
|
@@ -31523,10 +31184,10 @@ const genSiderStyle = (token)=>{
|
|
|
31523
31184
|
}
|
|
31524
31185
|
};
|
|
31525
31186
|
};
|
|
31526
|
-
var useStyle$
|
|
31187
|
+
var useStyle$k = genStyleHooks([
|
|
31527
31188
|
'Layout',
|
|
31528
31189
|
'Sider'
|
|
31529
|
-
], genSiderStyle, prepareComponentToken$
|
|
31190
|
+
], genSiderStyle, prepareComponentToken$f, {
|
|
31530
31191
|
deprecatedTokens: DEPRECATED_TOKENS
|
|
31531
31192
|
});
|
|
31532
31193
|
|
|
@@ -31569,7 +31230,7 @@ const Sider = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>{
|
|
|
31569
31230
|
// =========================== Prefix ===========================
|
|
31570
31231
|
const { getPrefixCls, direction } = React.useContext(ConfigContext);
|
|
31571
31232
|
const prefixCls = getPrefixCls('layout-sider', customizePrefixCls);
|
|
31572
|
-
const [hashId, cssVarCls] = useStyle$
|
|
31233
|
+
const [hashId, cssVarCls] = useStyle$k(prefixCls);
|
|
31573
31234
|
// ========================= Responsive =========================
|
|
31574
31235
|
const responsiveHandlerRef = React.useRef(null);
|
|
31575
31236
|
responsiveHandlerRef.current = (mql)=>{
|
|
@@ -31764,7 +31425,7 @@ const MenuItem = (props)=>{
|
|
|
31764
31425
|
const resolvedClassNames = tooltipConfig.classNames(info);
|
|
31765
31426
|
return mergeTooltipRootClassName(resolvedClassNames);
|
|
31766
31427
|
} : mergeTooltipRootClassName(tooltipConfig?.classNames);
|
|
31767
|
-
returnNode = /*#__PURE__*/ React__namespace.createElement(Tooltip, {
|
|
31428
|
+
returnNode = /*#__PURE__*/ React__namespace.createElement(Tooltip$1, {
|
|
31768
31429
|
...tooltipProps,
|
|
31769
31430
|
placement: mergedTooltipPlacement,
|
|
31770
31431
|
classNames: mergedTooltipClassNames
|
|
@@ -32561,7 +32222,7 @@ const getBaseStyle = (token)=>{
|
|
|
32561
32222
|
}
|
|
32562
32223
|
];
|
|
32563
32224
|
};
|
|
32564
|
-
const prepareComponentToken$
|
|
32225
|
+
const prepareComponentToken$e = (token)=>{
|
|
32565
32226
|
const { colorPrimary, colorError, colorTextDisabled, colorErrorBg, colorText, colorTextDescription, colorBgContainer, colorFillAlter, colorFillContent, lineWidth, lineWidthBold, controlItemBgActive, colorBgTextHover, controlHeightLG, lineHeight, colorBgElevated, marginXXS, padding, fontSize, controlHeightSM, fontSizeLG, colorTextLightSolid, colorErrorHover } = token;
|
|
32566
32227
|
const activeBarWidth = token.activeBarWidth ?? 0;
|
|
32567
32228
|
const activeBarBorderWidth = token.activeBarBorderWidth ?? lineWidth;
|
|
@@ -32655,7 +32316,7 @@ const prepareComponentToken$f = (token)=>{
|
|
|
32655
32316
|
};
|
|
32656
32317
|
};
|
|
32657
32318
|
// ============================== Export ==============================
|
|
32658
|
-
var useStyle$
|
|
32319
|
+
var useStyle$j = ((prefixCls, rootCls = prefixCls, injectStyle = true)=>{
|
|
32659
32320
|
const useStyle = genStyleHooks('Menu', (token)=>{
|
|
32660
32321
|
const { colorBgElevated, controlHeightLG, fontSize, darkItemColor, darkDangerItemColor, darkItemBg, darkSubMenuItemBg, darkItemSelectedColor, darkItemSelectedBg, darkDangerItemSelectedBg, darkItemHoverBg, darkGroupTitleColor, darkItemHoverColor, darkItemDisabledColor, darkDangerItemHoverColor, darkDangerItemSelectedColor, darkDangerItemActiveBg, popupBg, darkPopupBg } = token;
|
|
32661
32322
|
const menuArrowSize = token.calc(fontSize).div(7).mul(5).equal();
|
|
@@ -32715,7 +32376,7 @@ var useStyle$k = ((prefixCls, rootCls = prefixCls, injectStyle = true)=>{
|
|
|
32715
32376
|
initSlideMotion(menuToken, 'slide-down'),
|
|
32716
32377
|
initZoomMotion(menuToken, 'zoom-big')
|
|
32717
32378
|
];
|
|
32718
|
-
}, prepareComponentToken$
|
|
32379
|
+
}, prepareComponentToken$e, {
|
|
32719
32380
|
deprecatedTokens: [
|
|
32720
32381
|
[
|
|
32721
32382
|
'colorGroupTitle',
|
|
@@ -32953,7 +32614,7 @@ const InternalMenu = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
|
32953
32614
|
};
|
|
32954
32615
|
const prefixCls = getPrefixCls('menu', customizePrefixCls || overrideObj.prefixCls);
|
|
32955
32616
|
const rootCls = useCSSVarCls(prefixCls);
|
|
32956
|
-
const [hashId, cssVarCls] = useStyle$
|
|
32617
|
+
const [hashId, cssVarCls] = useStyle$j(prefixCls, rootCls, !override);
|
|
32957
32618
|
const menuClassName = clsx(`${prefixCls}-${theme}`, contextClassName, className);
|
|
32958
32619
|
// ====================== ExpandIcon ========================
|
|
32959
32620
|
const mergedExpandIcon = React__namespace.useMemo(()=>{
|
|
@@ -33340,7 +33001,7 @@ const genBaseStyle$2 = (token)=>{
|
|
|
33340
33001
|
];
|
|
33341
33002
|
};
|
|
33342
33003
|
// ============================== Export ==============================
|
|
33343
|
-
const prepareComponentToken$
|
|
33004
|
+
const prepareComponentToken$d = (token)=>({
|
|
33344
33005
|
zIndexPopup: token.zIndexPopupBase + 50,
|
|
33345
33006
|
paddingBlock: (token.controlHeight - token.fontSize * token.lineHeight) / 2,
|
|
33346
33007
|
...getArrowOffsetToken({
|
|
@@ -33349,7 +33010,7 @@ const prepareComponentToken$e = (token)=>({
|
|
|
33349
33010
|
}),
|
|
33350
33011
|
...getArrowToken(token)
|
|
33351
33012
|
});
|
|
33352
|
-
var useStyle$
|
|
33013
|
+
var useStyle$i = genStyleHooks('Dropdown', (token)=>{
|
|
33353
33014
|
const { marginXXS, sizePopupArrow, paddingXXS, componentCls } = token;
|
|
33354
33015
|
const dropdownToken = cssinjsUtils.mergeToken(token, {
|
|
33355
33016
|
menuCls: `${componentCls}-menu`,
|
|
@@ -33360,7 +33021,7 @@ var useStyle$j = genStyleHooks('Dropdown', (token)=>{
|
|
|
33360
33021
|
genBaseStyle$2(dropdownToken),
|
|
33361
33022
|
genStatusStyle(dropdownToken)
|
|
33362
33023
|
];
|
|
33363
|
-
}, prepareComponentToken$
|
|
33024
|
+
}, prepareComponentToken$d, {
|
|
33364
33025
|
resetStyle: false
|
|
33365
33026
|
});
|
|
33366
33027
|
|
|
@@ -33432,7 +33093,7 @@ const Dropdown$1 = (props)=>{
|
|
|
33432
33093
|
]);
|
|
33433
33094
|
const prefixCls = getPrefixCls('dropdown', customizePrefixCls);
|
|
33434
33095
|
const rootCls = useCSSVarCls(prefixCls);
|
|
33435
|
-
const [hashId, cssVarCls] = useStyle$
|
|
33096
|
+
const [hashId, cssVarCls] = useStyle$i(prefixCls, rootCls);
|
|
33436
33097
|
const [, token] = useToken();
|
|
33437
33098
|
const child = React__namespace.Children.only(isPrimitive(children) ? /*#__PURE__*/ React__namespace.createElement("span", null, children) : children);
|
|
33438
33099
|
const popupTrigger = cloneElement(child, {
|
|
@@ -33995,7 +33656,7 @@ const getRadioButtonStyle = (token)=>{
|
|
|
33995
33656
|
};
|
|
33996
33657
|
};
|
|
33997
33658
|
// ============================== Export ==============================
|
|
33998
|
-
const prepareComponentToken$
|
|
33659
|
+
const prepareComponentToken$c = (token)=>{
|
|
33999
33660
|
const { wireframe, padding, marginXS, lineWidth, fontSizeLG, colorText, colorBgContainer, colorTextDisabled, controlItemBgActiveDisabled, colorTextLightSolid, colorPrimary, colorPrimaryHover, colorPrimaryActive, colorWhite } = token;
|
|
34000
33661
|
const dotPadding = 4; // Fixed value
|
|
34001
33662
|
const radioSize = fontSizeLG;
|
|
@@ -34022,7 +33683,7 @@ const prepareComponentToken$d = (token)=>{
|
|
|
34022
33683
|
radioBgColor: wireframe ? colorBgContainer : colorPrimary
|
|
34023
33684
|
};
|
|
34024
33685
|
};
|
|
34025
|
-
var useStyle$
|
|
33686
|
+
var useStyle$h = genStyleHooks('Radio', (token)=>{
|
|
34026
33687
|
const { controlOutline, controlOutlineWidth } = token;
|
|
34027
33688
|
const radioFocusShadow = `0 0 0 ${cssinjs.unit(controlOutlineWidth)} ${controlOutline}`;
|
|
34028
33689
|
const radioButtonFocusShadow = radioFocusShadow;
|
|
@@ -34035,7 +33696,7 @@ var useStyle$i = genStyleHooks('Radio', (token)=>{
|
|
|
34035
33696
|
getRadioBasicStyle(radioToken),
|
|
34036
33697
|
getRadioButtonStyle(radioToken)
|
|
34037
33698
|
];
|
|
34038
|
-
}, prepareComponentToken$
|
|
33699
|
+
}, prepareComponentToken$c, {
|
|
34039
33700
|
unitless: {
|
|
34040
33701
|
radioSize: true,
|
|
34041
33702
|
dotSize: true
|
|
@@ -34063,7 +33724,7 @@ const InternalRadio = (props, ref$1)=>{
|
|
|
34063
33724
|
const prefixCls = isButtonType ? `${radioPrefixCls}-button` : radioPrefixCls;
|
|
34064
33725
|
// Style
|
|
34065
33726
|
const rootCls = useCSSVarCls(radioPrefixCls);
|
|
34066
|
-
const [hashId, cssVarCls] = useStyle$
|
|
33727
|
+
const [hashId, cssVarCls] = useStyle$h(radioPrefixCls, rootCls);
|
|
34067
33728
|
const radioProps = {
|
|
34068
33729
|
...restProps
|
|
34069
33730
|
};
|
|
@@ -34162,7 +33823,7 @@ const RadioGroup = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>{
|
|
|
34162
33823
|
const groupPrefixCls = `${prefixCls}-group`;
|
|
34163
33824
|
// Style
|
|
34164
33825
|
const rootCls = useCSSVarCls(prefixCls);
|
|
34165
|
-
const [hashId, cssVarCls] = useStyle$
|
|
33826
|
+
const [hashId, cssVarCls] = useStyle$h(prefixCls, rootCls);
|
|
34166
33827
|
let childrenToRender = children;
|
|
34167
33828
|
// 如果存在 options, 优先使用
|
|
34168
33829
|
if (options && options.length > 0) {
|
|
@@ -35126,7 +34787,7 @@ const useSharedStyle = genStyleHooks([
|
|
|
35126
34787
|
}, initComponentToken$1, {
|
|
35127
34788
|
resetFont: false
|
|
35128
34789
|
});
|
|
35129
|
-
var useStyle$
|
|
34790
|
+
var useStyle$g = genStyleHooks([
|
|
35130
34791
|
'Input',
|
|
35131
34792
|
'Component'
|
|
35132
34793
|
], (token)=>{
|
|
@@ -36012,7 +35673,7 @@ const genTabsStyle = (token)=>{
|
|
|
36012
35673
|
}
|
|
36013
35674
|
};
|
|
36014
35675
|
};
|
|
36015
|
-
const prepareComponentToken$
|
|
35676
|
+
const prepareComponentToken$b = (token)=>{
|
|
36016
35677
|
const { cardHeight, cardHeightSM, cardHeightLG, controlHeight, controlHeightLG } = token;
|
|
36017
35678
|
const mergedCardHeight = cardHeight || controlHeightLG;
|
|
36018
35679
|
const mergedCardHeightSM = cardHeightSM || controlHeight;
|
|
@@ -36053,7 +35714,7 @@ const prepareComponentToken$c = (token)=>{
|
|
|
36053
35714
|
};
|
|
36054
35715
|
};
|
|
36055
35716
|
// ============================== Export ==============================
|
|
36056
|
-
var useStyle$
|
|
35717
|
+
var useStyle$f = genStyleHooks('Tabs', (token)=>{
|
|
36057
35718
|
const tabsToken = cssinjsUtils.mergeToken(token, {
|
|
36058
35719
|
// `cardPadding` is empty by default, so we could calculate with dynamic `cardHeight`
|
|
36059
35720
|
tabsCardPadding: token.cardPadding,
|
|
@@ -36072,7 +35733,7 @@ var useStyle$g = genStyleHooks('Tabs', (token)=>{
|
|
|
36072
35733
|
genTabsStyle(tabsToken),
|
|
36073
35734
|
genMotionStyle$1(tabsToken)
|
|
36074
35735
|
];
|
|
36075
|
-
}, prepareComponentToken$
|
|
35736
|
+
}, prepareComponentToken$b);
|
|
36076
35737
|
|
|
36077
35738
|
const TabPane = ()=>null;
|
|
36078
35739
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -36086,7 +35747,7 @@ const InternalTabs = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>{
|
|
|
36086
35747
|
const { tabs } = React__namespace.useContext(ConfigContext);
|
|
36087
35748
|
const prefixCls = getPrefixCls('tabs', customizePrefixCls);
|
|
36088
35749
|
const rootCls = useCSSVarCls(prefixCls);
|
|
36089
|
-
const [hashId, cssVarCls] = useStyle$
|
|
35750
|
+
const [hashId, cssVarCls] = useStyle$f(prefixCls, rootCls);
|
|
36090
35751
|
const tabsRef = React__namespace.useRef(null);
|
|
36091
35752
|
React__namespace.useImperativeHandle(ref, ()=>({
|
|
36092
35753
|
nativeElement: tabsRef.current
|
|
@@ -36518,7 +36179,7 @@ const genCardSizeStyle = (token)=>{
|
|
|
36518
36179
|
}
|
|
36519
36180
|
};
|
|
36520
36181
|
};
|
|
36521
|
-
const prepareComponentToken$
|
|
36182
|
+
const prepareComponentToken$a = (token)=>({
|
|
36522
36183
|
headerBg: 'transparent',
|
|
36523
36184
|
headerFontSize: token.fontSizeLG,
|
|
36524
36185
|
headerFontSizeSM: token.fontSize,
|
|
@@ -36535,7 +36196,7 @@ const prepareComponentToken$b = (token)=>({
|
|
|
36535
36196
|
headerPadding: token.headerPadding ?? token.paddingLG
|
|
36536
36197
|
});
|
|
36537
36198
|
// ============================== Export ==============================
|
|
36538
|
-
var useStyle$
|
|
36199
|
+
var useStyle$e = genStyleHooks('Card', (token)=>{
|
|
36539
36200
|
const cardToken = cssinjsUtils.mergeToken(token, {
|
|
36540
36201
|
cardShadow: token.boxShadowCard,
|
|
36541
36202
|
cardHeadPadding: token.padding,
|
|
@@ -36548,7 +36209,7 @@ var useStyle$f = genStyleHooks('Card', (token)=>{
|
|
|
36548
36209
|
// Size
|
|
36549
36210
|
genCardSizeStyle(cardToken)
|
|
36550
36211
|
];
|
|
36551
|
-
}, prepareComponentToken$
|
|
36212
|
+
}, prepareComponentToken$a);
|
|
36552
36213
|
|
|
36553
36214
|
const ActionNode = (props)=>{
|
|
36554
36215
|
const { actionClasses, actions = [], actionStyle } = props;
|
|
@@ -36619,7 +36280,7 @@ const Card$1 = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>{
|
|
|
36619
36280
|
children
|
|
36620
36281
|
]);
|
|
36621
36282
|
const prefixCls = getPrefixCls('card', customizePrefixCls);
|
|
36622
|
-
const [hashId, cssVarCls] = useStyle$
|
|
36283
|
+
const [hashId, cssVarCls] = useStyle$e(prefixCls);
|
|
36623
36284
|
const loadingBlock = /*#__PURE__*/ React__namespace.createElement(Skeleton, {
|
|
36624
36285
|
loading: true,
|
|
36625
36286
|
active: true,
|
|
@@ -36975,7 +36636,7 @@ function getStyle(prefixCls, token) {
|
|
|
36975
36636
|
});
|
|
36976
36637
|
return genCheckboxStyle(checkboxToken);
|
|
36977
36638
|
}
|
|
36978
|
-
var useStyle$
|
|
36639
|
+
var useStyle$d = genStyleHooks('Checkbox', (token, { prefixCls })=>[
|
|
36979
36640
|
getStyle(prefixCls, token)
|
|
36980
36641
|
]);
|
|
36981
36642
|
|
|
@@ -37039,7 +36700,7 @@ const InternalCheckbox = (props, ref$1)=>{
|
|
|
37039
36700
|
// ============================== Style ===============================
|
|
37040
36701
|
const prefixCls = getPrefixCls('checkbox', customizePrefixCls);
|
|
37041
36702
|
const rootCls = useCSSVarCls(prefixCls);
|
|
37042
|
-
const [hashId, cssVarCls] = useStyle$
|
|
36703
|
+
const [hashId, cssVarCls] = useStyle$d(prefixCls, rootCls);
|
|
37043
36704
|
const checkboxProps = {
|
|
37044
36705
|
...restProps
|
|
37045
36706
|
};
|
|
@@ -37157,7 +36818,7 @@ const CheckboxGroup = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>{
|
|
|
37157
36818
|
const prefixCls = getPrefixCls('checkbox', customizePrefixCls);
|
|
37158
36819
|
const groupPrefixCls = `${prefixCls}-group`;
|
|
37159
36820
|
const rootCls = useCSSVarCls(prefixCls);
|
|
37160
|
-
const [hashId, cssVarCls] = useStyle$
|
|
36821
|
+
const [hashId, cssVarCls] = useStyle$d(prefixCls, rootCls);
|
|
37161
36822
|
const domProps = util.omit(restProps, [
|
|
37162
36823
|
'value',
|
|
37163
36824
|
'disabled'
|
|
@@ -37367,7 +37028,7 @@ function useMergedPropByScreen(oriProp, screen) {
|
|
|
37367
37028
|
]);
|
|
37368
37029
|
return prop;
|
|
37369
37030
|
}
|
|
37370
|
-
const Row
|
|
37031
|
+
const Row = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>{
|
|
37371
37032
|
const { prefixCls: customizePrefixCls, justify, align, className, style, children, gutter = 0, wrap, ...others } = props;
|
|
37372
37033
|
const { getPrefixCls, direction } = React__namespace.useContext(ConfigContext);
|
|
37373
37034
|
const screens = useBreakpoint(true, null);
|
|
@@ -37416,7 +37077,7 @@ const Row$1 = /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>{
|
|
|
37416
37077
|
}, children));
|
|
37417
37078
|
});
|
|
37418
37079
|
if (process.env.NODE_ENV !== 'production') {
|
|
37419
|
-
Row
|
|
37080
|
+
Row.displayName = 'Row';
|
|
37420
37081
|
}
|
|
37421
37082
|
|
|
37422
37083
|
// ============================== Size ================================
|
|
@@ -37577,13 +37238,13 @@ const genSharedDividerStyle = (token)=>{
|
|
|
37577
37238
|
}
|
|
37578
37239
|
};
|
|
37579
37240
|
};
|
|
37580
|
-
const prepareComponentToken$
|
|
37241
|
+
const prepareComponentToken$9 = (token)=>({
|
|
37581
37242
|
textPaddingInline: '1em',
|
|
37582
37243
|
orientationMargin: 0.05,
|
|
37583
37244
|
verticalMarginInline: token.marginXS
|
|
37584
37245
|
});
|
|
37585
37246
|
// ============================== Export ==============================
|
|
37586
|
-
var useStyle$
|
|
37247
|
+
var useStyle$c = genStyleHooks('Divider', (token)=>{
|
|
37587
37248
|
const dividerToken = cssinjsUtils.mergeToken(token, {
|
|
37588
37249
|
dividerHorizontalWithTextGutterMargin: token.margin,
|
|
37589
37250
|
sizePaddingEdgeHorizontal: 0
|
|
@@ -37592,7 +37253,7 @@ var useStyle$d = genStyleHooks('Divider', (token)=>{
|
|
|
37592
37253
|
genSharedDividerStyle(dividerToken),
|
|
37593
37254
|
genSizeDividerStyle(dividerToken)
|
|
37594
37255
|
];
|
|
37595
|
-
}, prepareComponentToken$
|
|
37256
|
+
}, prepareComponentToken$9, {
|
|
37596
37257
|
unitless: {
|
|
37597
37258
|
orientationMargin: true
|
|
37598
37259
|
}
|
|
@@ -37614,7 +37275,7 @@ const Divider = (props)=>{
|
|
|
37614
37275
|
const { prefixCls: customizePrefixCls, type, orientation, vertical, titlePlacement, orientationMargin, className, rootClassName, children, dashed, variant = 'solid', plain, style, size: customSize, classNames, styles, ...restProps } = props;
|
|
37615
37276
|
const prefixCls = getPrefixCls('divider', customizePrefixCls);
|
|
37616
37277
|
const railCls = `${prefixCls}-rail`;
|
|
37617
|
-
const [hashId, cssVarCls] = useStyle$
|
|
37278
|
+
const [hashId, cssVarCls] = useStyle$c(prefixCls);
|
|
37618
37279
|
const sizeFullName = useSize(customSize);
|
|
37619
37280
|
const sizeCls = sizeClassNameMap[sizeFullName];
|
|
37620
37281
|
const hasChildren = !!children;
|
|
@@ -37832,7 +37493,7 @@ const genSpaceAddonStyle = (token)=>{
|
|
|
37832
37493
|
};
|
|
37833
37494
|
};
|
|
37834
37495
|
// ============================== Export ==============================
|
|
37835
|
-
var useStyle$
|
|
37496
|
+
var useStyle$b = genStyleHooks([
|
|
37836
37497
|
'Space',
|
|
37837
37498
|
'Addon'
|
|
37838
37499
|
], (token)=>[
|
|
@@ -37846,7 +37507,7 @@ const SpaceAddon = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
|
37846
37507
|
const { className, children, style, prefixCls: customizePrefixCls, variant = 'outlined', disabled, status, ...restProps } = props;
|
|
37847
37508
|
const { getPrefixCls, direction: directionConfig } = React.useContext(ConfigContext);
|
|
37848
37509
|
const prefixCls = getPrefixCls('space-addon', customizePrefixCls);
|
|
37849
|
-
const [hashId, cssVarCls] = useStyle$
|
|
37510
|
+
const [hashId, cssVarCls] = useStyle$b(prefixCls);
|
|
37850
37511
|
const { compactItemClassnames, compactSize } = useCompactItemContext(prefixCls, directionConfig);
|
|
37851
37512
|
const statusCls = getStatusClassNames(prefixCls, status);
|
|
37852
37513
|
const classes = clsx(prefixCls, hashId, compactItemClassnames, cssVarCls, `${prefixCls}-variant-${variant}`, statusCls, {
|
|
@@ -37926,7 +37587,7 @@ const Input = /*#__PURE__*/ React.forwardRef((props, ref$1)=>{
|
|
|
37926
37587
|
// Style
|
|
37927
37588
|
const rootCls = useCSSVarCls(prefixCls);
|
|
37928
37589
|
const [hashId, cssVarCls] = useSharedStyle(prefixCls, rootClassName);
|
|
37929
|
-
useStyle$
|
|
37590
|
+
useStyle$g(prefixCls, rootCls);
|
|
37930
37591
|
// ===================== Compact Item =====================
|
|
37931
37592
|
const { compactSize, compactItemClassnames } = useCompactItemContext(prefixCls, direction);
|
|
37932
37593
|
// ===================== Size =====================
|
|
@@ -38041,583 +37702,6 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
38041
37702
|
Input.displayName = 'Input';
|
|
38042
37703
|
}
|
|
38043
37704
|
|
|
38044
|
-
const DEFAULT_COLUMN_MAP = {
|
|
38045
|
-
xxxl: 4,
|
|
38046
|
-
xxl: 3,
|
|
38047
|
-
xl: 3,
|
|
38048
|
-
lg: 3,
|
|
38049
|
-
md: 3,
|
|
38050
|
-
sm: 2,
|
|
38051
|
-
xs: 1
|
|
38052
|
-
};
|
|
38053
|
-
|
|
38054
|
-
const DescriptionsContext = /*#__PURE__*/ React.createContext(null);
|
|
38055
|
-
|
|
38056
|
-
// Convert children into items
|
|
38057
|
-
const transChildren2Items = (childNodes)=>util.toArray(childNodes).map((node)=>({
|
|
38058
|
-
...node?.props,
|
|
38059
|
-
key: node.key
|
|
38060
|
-
}));
|
|
38061
|
-
function useItems(screens, items, children) {
|
|
38062
|
-
const mergedItems = React__namespace.useMemo(()=>// Take `items` first or convert `children` into items
|
|
38063
|
-
items || transChildren2Items(children), [
|
|
38064
|
-
items,
|
|
38065
|
-
children
|
|
38066
|
-
]);
|
|
38067
|
-
const responsiveItems = React__namespace.useMemo(()=>mergedItems.map(({ span, ...restItem })=>{
|
|
38068
|
-
if (span === 'filled') {
|
|
38069
|
-
return {
|
|
38070
|
-
...restItem,
|
|
38071
|
-
filled: true
|
|
38072
|
-
};
|
|
38073
|
-
}
|
|
38074
|
-
return {
|
|
38075
|
-
...restItem,
|
|
38076
|
-
span: typeof span === 'number' ? span : matchScreen(screens, span)
|
|
38077
|
-
};
|
|
38078
|
-
}), [
|
|
38079
|
-
mergedItems,
|
|
38080
|
-
screens
|
|
38081
|
-
]);
|
|
38082
|
-
return responsiveItems;
|
|
38083
|
-
}
|
|
38084
|
-
|
|
38085
|
-
// Calculate the sum of span in a row
|
|
38086
|
-
function getCalcRows(rowItems, mergedColumn) {
|
|
38087
|
-
let rows = [];
|
|
38088
|
-
let tmpRow = [];
|
|
38089
|
-
let exceed = false;
|
|
38090
|
-
let count = 0;
|
|
38091
|
-
rowItems.filter((n)=>n).forEach((rowItem)=>{
|
|
38092
|
-
const { filled, ...restItem } = rowItem;
|
|
38093
|
-
if (filled) {
|
|
38094
|
-
tmpRow.push(restItem);
|
|
38095
|
-
rows.push(tmpRow);
|
|
38096
|
-
// reset
|
|
38097
|
-
tmpRow = [];
|
|
38098
|
-
count = 0;
|
|
38099
|
-
return;
|
|
38100
|
-
}
|
|
38101
|
-
const restSpan = mergedColumn - count;
|
|
38102
|
-
count += rowItem.span || 1;
|
|
38103
|
-
if (count >= mergedColumn) {
|
|
38104
|
-
if (count > mergedColumn) {
|
|
38105
|
-
exceed = true;
|
|
38106
|
-
tmpRow.push({
|
|
38107
|
-
...restItem,
|
|
38108
|
-
span: restSpan
|
|
38109
|
-
});
|
|
38110
|
-
} else {
|
|
38111
|
-
tmpRow.push(restItem);
|
|
38112
|
-
}
|
|
38113
|
-
rows.push(tmpRow);
|
|
38114
|
-
// reset
|
|
38115
|
-
tmpRow = [];
|
|
38116
|
-
count = 0;
|
|
38117
|
-
} else {
|
|
38118
|
-
tmpRow.push(restItem);
|
|
38119
|
-
}
|
|
38120
|
-
});
|
|
38121
|
-
if (tmpRow.length > 0) {
|
|
38122
|
-
rows.push(tmpRow);
|
|
38123
|
-
}
|
|
38124
|
-
rows = rows.map((rows)=>{
|
|
38125
|
-
const count = rows.reduce((acc, item)=>acc + (item.span || 1), 0);
|
|
38126
|
-
if (count < mergedColumn) {
|
|
38127
|
-
// If the span of the last element in the current row is less than the column, then add its span to the remaining columns
|
|
38128
|
-
const last = rows[rows.length - 1];
|
|
38129
|
-
last.span = mergedColumn - (count - (last.span || 1));
|
|
38130
|
-
return rows;
|
|
38131
|
-
}
|
|
38132
|
-
return rows;
|
|
38133
|
-
});
|
|
38134
|
-
return [
|
|
38135
|
-
rows,
|
|
38136
|
-
exceed
|
|
38137
|
-
];
|
|
38138
|
-
}
|
|
38139
|
-
const useRow = (mergedColumn, items)=>{
|
|
38140
|
-
const [rows, exceed] = React.useMemo(()=>getCalcRows(items, mergedColumn), [
|
|
38141
|
-
items,
|
|
38142
|
-
mergedColumn
|
|
38143
|
-
]);
|
|
38144
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
38145
|
-
const warning = devUseWarning('Descriptions');
|
|
38146
|
-
process.env.NODE_ENV !== "production" ? warning(!exceed, 'usage', 'Sum of column `span` in a line not match `column` of Descriptions.') : void 0;
|
|
38147
|
-
}
|
|
38148
|
-
return rows;
|
|
38149
|
-
};
|
|
38150
|
-
|
|
38151
|
-
// JSX Structure Syntactic Sugar. Never reach the render code.
|
|
38152
|
-
/* istanbul ignore next */ const DescriptionsItem = (props)=>{
|
|
38153
|
-
return props.children;
|
|
38154
|
-
};
|
|
38155
|
-
|
|
38156
|
-
const Cell = (props)=>{
|
|
38157
|
-
const { itemPrefixCls, component, span, className, style, labelStyle, contentStyle, bordered, label, content, colon, type, styles, classNames } = props;
|
|
38158
|
-
const Component = component;
|
|
38159
|
-
const { classNames: contextClassNames, styles: contextStyles } = React.useContext(DescriptionsContext);
|
|
38160
|
-
const [mergedClassNames, mergedStyles] = useMergeSemantic([
|
|
38161
|
-
contextClassNames,
|
|
38162
|
-
classNames
|
|
38163
|
-
], [
|
|
38164
|
-
contextStyles,
|
|
38165
|
-
styles
|
|
38166
|
-
], {
|
|
38167
|
-
props
|
|
38168
|
-
});
|
|
38169
|
-
const mergedLabelStyle = {
|
|
38170
|
-
...labelStyle,
|
|
38171
|
-
...mergedStyles.label
|
|
38172
|
-
};
|
|
38173
|
-
const mergedContentStyle = {
|
|
38174
|
-
...contentStyle,
|
|
38175
|
-
...mergedStyles.content
|
|
38176
|
-
};
|
|
38177
|
-
if (bordered) {
|
|
38178
|
-
return /*#__PURE__*/ React.createElement(Component, {
|
|
38179
|
-
colSpan: span,
|
|
38180
|
-
style: style,
|
|
38181
|
-
className: clsx(className, {
|
|
38182
|
-
[`${itemPrefixCls}-item-${type}`]: type === 'label' || type === 'content',
|
|
38183
|
-
[mergedClassNames.label]: mergedClassNames.label && type === 'label',
|
|
38184
|
-
[mergedClassNames.content]: mergedClassNames.content && type === 'content'
|
|
38185
|
-
})
|
|
38186
|
-
}, isNonNullable(label) && /*#__PURE__*/ React.createElement("span", {
|
|
38187
|
-
style: mergedLabelStyle
|
|
38188
|
-
}, label), isNonNullable(content) && /*#__PURE__*/ React.createElement("span", {
|
|
38189
|
-
style: mergedContentStyle
|
|
38190
|
-
}, content));
|
|
38191
|
-
}
|
|
38192
|
-
return /*#__PURE__*/ React.createElement(Component, {
|
|
38193
|
-
className: clsx(`${itemPrefixCls}-item`, className),
|
|
38194
|
-
style: style,
|
|
38195
|
-
colSpan: span
|
|
38196
|
-
}, /*#__PURE__*/ React.createElement("div", {
|
|
38197
|
-
className: `${itemPrefixCls}-item-container`
|
|
38198
|
-
}, isNonNullable(label) && /*#__PURE__*/ React.createElement("span", {
|
|
38199
|
-
style: mergedLabelStyle,
|
|
38200
|
-
className: clsx(`${itemPrefixCls}-item-label`, mergedClassNames.label, {
|
|
38201
|
-
[`${itemPrefixCls}-item-no-colon`]: !colon
|
|
38202
|
-
})
|
|
38203
|
-
}, label), isNonNullable(content) && /*#__PURE__*/ React.createElement("span", {
|
|
38204
|
-
style: mergedContentStyle,
|
|
38205
|
-
className: clsx(`${itemPrefixCls}-item-content`, mergedClassNames.content)
|
|
38206
|
-
}, content)));
|
|
38207
|
-
};
|
|
38208
|
-
|
|
38209
|
-
function renderCells(items, { colon, prefixCls, bordered }, { component, type, showLabel, showContent, labelStyle: rootLabelStyle, contentStyle: rootContentStyle, styles: rootStyles }) {
|
|
38210
|
-
return items.map(({ label, children, prefixCls: itemPrefixCls = prefixCls, className, style, labelStyle, contentStyle, span = 1, key, styles, classNames }, index)=>{
|
|
38211
|
-
if (typeof component === 'string') {
|
|
38212
|
-
return /*#__PURE__*/ React__namespace.createElement(Cell, {
|
|
38213
|
-
key: `${type}-${key || index}`,
|
|
38214
|
-
className: className,
|
|
38215
|
-
style: style,
|
|
38216
|
-
classNames: classNames,
|
|
38217
|
-
styles: {
|
|
38218
|
-
label: {
|
|
38219
|
-
...rootLabelStyle,
|
|
38220
|
-
...rootStyles?.label,
|
|
38221
|
-
...labelStyle,
|
|
38222
|
-
...styles?.label
|
|
38223
|
-
},
|
|
38224
|
-
content: {
|
|
38225
|
-
...rootContentStyle,
|
|
38226
|
-
...rootStyles?.content,
|
|
38227
|
-
...contentStyle,
|
|
38228
|
-
...styles?.content
|
|
38229
|
-
}
|
|
38230
|
-
},
|
|
38231
|
-
span: span,
|
|
38232
|
-
colon: colon,
|
|
38233
|
-
component: component,
|
|
38234
|
-
itemPrefixCls: itemPrefixCls,
|
|
38235
|
-
bordered: bordered,
|
|
38236
|
-
label: showLabel ? label : null,
|
|
38237
|
-
content: showContent ? children : null,
|
|
38238
|
-
type: type
|
|
38239
|
-
});
|
|
38240
|
-
}
|
|
38241
|
-
return [
|
|
38242
|
-
/*#__PURE__*/ React__namespace.createElement(Cell, {
|
|
38243
|
-
key: `label-${key || index}`,
|
|
38244
|
-
className: className,
|
|
38245
|
-
style: {
|
|
38246
|
-
...rootLabelStyle,
|
|
38247
|
-
...rootStyles?.label,
|
|
38248
|
-
...style,
|
|
38249
|
-
...labelStyle,
|
|
38250
|
-
...styles?.label
|
|
38251
|
-
},
|
|
38252
|
-
span: 1,
|
|
38253
|
-
colon: colon,
|
|
38254
|
-
component: component[0],
|
|
38255
|
-
itemPrefixCls: itemPrefixCls,
|
|
38256
|
-
bordered: bordered,
|
|
38257
|
-
label: label,
|
|
38258
|
-
type: "label"
|
|
38259
|
-
}),
|
|
38260
|
-
/*#__PURE__*/ React__namespace.createElement(Cell, {
|
|
38261
|
-
key: `content-${key || index}`,
|
|
38262
|
-
className: className,
|
|
38263
|
-
style: {
|
|
38264
|
-
...rootContentStyle,
|
|
38265
|
-
...rootStyles?.content,
|
|
38266
|
-
...style,
|
|
38267
|
-
...contentStyle,
|
|
38268
|
-
...styles?.content
|
|
38269
|
-
},
|
|
38270
|
-
span: span * 2 - 1,
|
|
38271
|
-
component: component[1],
|
|
38272
|
-
itemPrefixCls: itemPrefixCls,
|
|
38273
|
-
bordered: bordered,
|
|
38274
|
-
content: children,
|
|
38275
|
-
type: "content"
|
|
38276
|
-
})
|
|
38277
|
-
];
|
|
38278
|
-
});
|
|
38279
|
-
}
|
|
38280
|
-
const Row = (props)=>{
|
|
38281
|
-
const descContext = React__namespace.useContext(DescriptionsContext);
|
|
38282
|
-
const { prefixCls, vertical, row, index, bordered } = props;
|
|
38283
|
-
if (vertical) {
|
|
38284
|
-
return /*#__PURE__*/ React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/ React__namespace.createElement("tr", {
|
|
38285
|
-
key: `label-${index}`,
|
|
38286
|
-
className: `${prefixCls}-row`
|
|
38287
|
-
}, renderCells(row, props, {
|
|
38288
|
-
component: 'th',
|
|
38289
|
-
type: 'label',
|
|
38290
|
-
showLabel: true,
|
|
38291
|
-
...descContext
|
|
38292
|
-
})), /*#__PURE__*/ React__namespace.createElement("tr", {
|
|
38293
|
-
key: `content-${index}`,
|
|
38294
|
-
className: `${prefixCls}-row`
|
|
38295
|
-
}, renderCells(row, props, {
|
|
38296
|
-
component: 'td',
|
|
38297
|
-
type: 'content',
|
|
38298
|
-
showContent: true,
|
|
38299
|
-
...descContext
|
|
38300
|
-
})));
|
|
38301
|
-
}
|
|
38302
|
-
return /*#__PURE__*/ React__namespace.createElement("tr", {
|
|
38303
|
-
key: index,
|
|
38304
|
-
className: `${prefixCls}-row`
|
|
38305
|
-
}, renderCells(row, props, {
|
|
38306
|
-
component: bordered ? [
|
|
38307
|
-
'th',
|
|
38308
|
-
'td'
|
|
38309
|
-
] : 'td',
|
|
38310
|
-
type: 'item',
|
|
38311
|
-
showLabel: true,
|
|
38312
|
-
showContent: true,
|
|
38313
|
-
...descContext
|
|
38314
|
-
}));
|
|
38315
|
-
};
|
|
38316
|
-
|
|
38317
|
-
const genBorderedStyle$2 = (token)=>{
|
|
38318
|
-
const { componentCls, labelBg } = token;
|
|
38319
|
-
return {
|
|
38320
|
-
[`&${componentCls}-bordered`]: {
|
|
38321
|
-
[`> ${componentCls}-view`]: {
|
|
38322
|
-
border: `${cssinjs.unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`,
|
|
38323
|
-
'> table': {
|
|
38324
|
-
tableLayout: 'auto'
|
|
38325
|
-
},
|
|
38326
|
-
[`${componentCls}-row`]: {
|
|
38327
|
-
borderBottom: `${cssinjs.unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`,
|
|
38328
|
-
'&:first-child': {
|
|
38329
|
-
'> th:first-child, > td:first-child': {
|
|
38330
|
-
borderStartStartRadius: token.borderRadiusLG
|
|
38331
|
-
}
|
|
38332
|
-
},
|
|
38333
|
-
'&:last-child': {
|
|
38334
|
-
borderBottom: 'none',
|
|
38335
|
-
'> th:first-child, > td:first-child': {
|
|
38336
|
-
borderEndStartRadius: token.borderRadiusLG
|
|
38337
|
-
}
|
|
38338
|
-
},
|
|
38339
|
-
[`> ${componentCls}-item-label, > ${componentCls}-item-content`]: {
|
|
38340
|
-
padding: `${cssinjs.unit(token.padding)} ${cssinjs.unit(token.paddingLG)}`,
|
|
38341
|
-
borderInlineEnd: `${cssinjs.unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`,
|
|
38342
|
-
'&:last-child': {
|
|
38343
|
-
borderInlineEnd: 'none'
|
|
38344
|
-
}
|
|
38345
|
-
},
|
|
38346
|
-
[`> ${componentCls}-item-label`]: {
|
|
38347
|
-
color: token.colorTextSecondary,
|
|
38348
|
-
backgroundColor: labelBg,
|
|
38349
|
-
'&::after': {
|
|
38350
|
-
display: 'none'
|
|
38351
|
-
}
|
|
38352
|
-
}
|
|
38353
|
-
}
|
|
38354
|
-
},
|
|
38355
|
-
[`&${componentCls}-middle`]: {
|
|
38356
|
-
[`${componentCls}-row`]: {
|
|
38357
|
-
[`> ${componentCls}-item-label, > ${componentCls}-item-content`]: {
|
|
38358
|
-
padding: `${cssinjs.unit(token.paddingSM)} ${cssinjs.unit(token.paddingLG)}`
|
|
38359
|
-
}
|
|
38360
|
-
}
|
|
38361
|
-
},
|
|
38362
|
-
[`&${componentCls}-small`]: {
|
|
38363
|
-
[`${componentCls}-row`]: {
|
|
38364
|
-
[`> ${componentCls}-item-label, > ${componentCls}-item-content`]: {
|
|
38365
|
-
padding: `${cssinjs.unit(token.paddingXS)} ${cssinjs.unit(token.padding)}`
|
|
38366
|
-
}
|
|
38367
|
-
}
|
|
38368
|
-
}
|
|
38369
|
-
}
|
|
38370
|
-
};
|
|
38371
|
-
};
|
|
38372
|
-
const genDescriptionStyles = (token)=>{
|
|
38373
|
-
const { componentCls, extraColor, itemPaddingBottom, itemPaddingEnd, colonMarginRight, colonMarginLeft, titleMarginBottom } = token;
|
|
38374
|
-
return {
|
|
38375
|
-
[componentCls]: {
|
|
38376
|
-
...resetComponent(token),
|
|
38377
|
-
...genBorderedStyle$2(token),
|
|
38378
|
-
'&-rtl': {
|
|
38379
|
-
direction: 'rtl'
|
|
38380
|
-
},
|
|
38381
|
-
[`${componentCls}-header`]: {
|
|
38382
|
-
display: 'flex',
|
|
38383
|
-
alignItems: 'center',
|
|
38384
|
-
marginBottom: titleMarginBottom
|
|
38385
|
-
},
|
|
38386
|
-
[`${componentCls}-title`]: {
|
|
38387
|
-
...textEllipsis,
|
|
38388
|
-
flex: 'auto',
|
|
38389
|
-
color: token.titleColor,
|
|
38390
|
-
fontWeight: token.fontWeightStrong,
|
|
38391
|
-
fontSize: token.fontSizeLG,
|
|
38392
|
-
lineHeight: token.lineHeightLG
|
|
38393
|
-
},
|
|
38394
|
-
[`${componentCls}-extra`]: {
|
|
38395
|
-
marginInlineStart: 'auto',
|
|
38396
|
-
color: extraColor,
|
|
38397
|
-
fontSize: token.fontSize
|
|
38398
|
-
},
|
|
38399
|
-
[`${componentCls}-view`]: {
|
|
38400
|
-
width: '100%',
|
|
38401
|
-
borderRadius: token.borderRadiusLG,
|
|
38402
|
-
table: {
|
|
38403
|
-
width: '100%',
|
|
38404
|
-
tableLayout: 'fixed',
|
|
38405
|
-
borderCollapse: 'collapse'
|
|
38406
|
-
}
|
|
38407
|
-
},
|
|
38408
|
-
[`${componentCls}-row`]: {
|
|
38409
|
-
'> th, > td': {
|
|
38410
|
-
paddingBottom: itemPaddingBottom,
|
|
38411
|
-
paddingInlineEnd: itemPaddingEnd
|
|
38412
|
-
},
|
|
38413
|
-
'> th:last-child, > td:last-child': {
|
|
38414
|
-
paddingInlineEnd: 0
|
|
38415
|
-
},
|
|
38416
|
-
'&:last-child': {
|
|
38417
|
-
borderBottom: 'none',
|
|
38418
|
-
'> th, > td': {
|
|
38419
|
-
paddingBottom: 0
|
|
38420
|
-
}
|
|
38421
|
-
}
|
|
38422
|
-
},
|
|
38423
|
-
[`${componentCls}-item-label`]: {
|
|
38424
|
-
color: token.labelColor,
|
|
38425
|
-
fontWeight: 'normal',
|
|
38426
|
-
fontSize: token.fontSize,
|
|
38427
|
-
lineHeight: token.lineHeight,
|
|
38428
|
-
textAlign: 'start',
|
|
38429
|
-
'&::after': {
|
|
38430
|
-
content: '":"',
|
|
38431
|
-
position: 'relative',
|
|
38432
|
-
top: -0.5,
|
|
38433
|
-
// magic for position
|
|
38434
|
-
marginInline: `${cssinjs.unit(colonMarginLeft)} ${cssinjs.unit(colonMarginRight)}`
|
|
38435
|
-
},
|
|
38436
|
-
[`&${componentCls}-item-no-colon::after`]: {
|
|
38437
|
-
content: '""'
|
|
38438
|
-
}
|
|
38439
|
-
},
|
|
38440
|
-
[`${componentCls}-item-no-label`]: {
|
|
38441
|
-
'&::after': {
|
|
38442
|
-
margin: 0,
|
|
38443
|
-
content: '""'
|
|
38444
|
-
}
|
|
38445
|
-
},
|
|
38446
|
-
[`${componentCls}-item-content`]: {
|
|
38447
|
-
display: 'table-cell',
|
|
38448
|
-
flex: 1,
|
|
38449
|
-
color: token.contentColor,
|
|
38450
|
-
fontSize: token.fontSize,
|
|
38451
|
-
lineHeight: token.lineHeight,
|
|
38452
|
-
wordBreak: 'break-word',
|
|
38453
|
-
overflowWrap: 'break-word'
|
|
38454
|
-
},
|
|
38455
|
-
[`${componentCls}-item`]: {
|
|
38456
|
-
paddingBottom: 0,
|
|
38457
|
-
verticalAlign: 'top',
|
|
38458
|
-
'&-container': {
|
|
38459
|
-
display: 'flex',
|
|
38460
|
-
[`${componentCls}-item-label`]: {
|
|
38461
|
-
display: 'inline-flex',
|
|
38462
|
-
alignItems: 'baseline'
|
|
38463
|
-
},
|
|
38464
|
-
[`${componentCls}-item-content`]: {
|
|
38465
|
-
display: 'inline-flex',
|
|
38466
|
-
alignItems: 'baseline',
|
|
38467
|
-
minWidth: '1em'
|
|
38468
|
-
}
|
|
38469
|
-
}
|
|
38470
|
-
},
|
|
38471
|
-
'&-middle': {
|
|
38472
|
-
[`${componentCls}-row`]: {
|
|
38473
|
-
'> th, > td': {
|
|
38474
|
-
paddingBottom: token.paddingSM
|
|
38475
|
-
}
|
|
38476
|
-
}
|
|
38477
|
-
},
|
|
38478
|
-
'&-small': {
|
|
38479
|
-
[`${componentCls}-row`]: {
|
|
38480
|
-
'> th, > td': {
|
|
38481
|
-
paddingBottom: token.paddingXS
|
|
38482
|
-
}
|
|
38483
|
-
}
|
|
38484
|
-
}
|
|
38485
|
-
}
|
|
38486
|
-
};
|
|
38487
|
-
};
|
|
38488
|
-
const prepareComponentToken$9 = (token)=>({
|
|
38489
|
-
labelBg: token.colorFillAlter,
|
|
38490
|
-
labelColor: token.colorTextTertiary,
|
|
38491
|
-
titleColor: token.colorText,
|
|
38492
|
-
titleMarginBottom: token.fontSizeSM * token.lineHeightSM,
|
|
38493
|
-
itemPaddingBottom: token.padding,
|
|
38494
|
-
itemPaddingEnd: token.padding,
|
|
38495
|
-
colonMarginRight: token.marginXS,
|
|
38496
|
-
colonMarginLeft: token.marginXXS / 2,
|
|
38497
|
-
contentColor: token.colorText,
|
|
38498
|
-
extraColor: token.colorText
|
|
38499
|
-
});
|
|
38500
|
-
// ============================== Export ==============================
|
|
38501
|
-
var useStyle$b = genStyleHooks('Descriptions', (token)=>{
|
|
38502
|
-
const descriptionToken = cssinjsUtils.mergeToken(token, {});
|
|
38503
|
-
return genDescriptionStyles(descriptionToken);
|
|
38504
|
-
}, prepareComponentToken$9);
|
|
38505
|
-
|
|
38506
|
-
const Descriptions = (props)=>{
|
|
38507
|
-
const { prefixCls: customizePrefixCls, title, extra, column, colon = true, bordered, layout, children, className, rootClassName, style, size: customizeSize, labelStyle, contentStyle, styles, items, classNames, ...restProps } = props;
|
|
38508
|
-
const { getPrefixCls, direction, className: contextClassName, style: contextStyle, classNames: contextClassNames, styles: contextStyles } = useComponentConfig('descriptions');
|
|
38509
|
-
const prefixCls = getPrefixCls('descriptions', customizePrefixCls);
|
|
38510
|
-
const screens = useBreakpoint();
|
|
38511
|
-
// ============================== Warn ==============================
|
|
38512
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
38513
|
-
const warning = devUseWarning('Descriptions');
|
|
38514
|
-
[
|
|
38515
|
-
[
|
|
38516
|
-
'labelStyle',
|
|
38517
|
-
'styles.label'
|
|
38518
|
-
],
|
|
38519
|
-
[
|
|
38520
|
-
'contentStyle',
|
|
38521
|
-
'styles.content'
|
|
38522
|
-
]
|
|
38523
|
-
].forEach(([deprecatedName, newName])=>{
|
|
38524
|
-
warning.deprecated(!(deprecatedName in props), deprecatedName, newName);
|
|
38525
|
-
});
|
|
38526
|
-
}
|
|
38527
|
-
// Column count
|
|
38528
|
-
const mergedColumn = React__namespace.useMemo(()=>{
|
|
38529
|
-
if (typeof column === 'number') {
|
|
38530
|
-
return column;
|
|
38531
|
-
}
|
|
38532
|
-
return matchScreen(screens, {
|
|
38533
|
-
...DEFAULT_COLUMN_MAP,
|
|
38534
|
-
...column
|
|
38535
|
-
}) ?? 3;
|
|
38536
|
-
}, [
|
|
38537
|
-
screens,
|
|
38538
|
-
column
|
|
38539
|
-
]);
|
|
38540
|
-
// Items with responsive
|
|
38541
|
-
const mergedItems = useItems(screens, items, children);
|
|
38542
|
-
const mergedSize = useSize(customizeSize);
|
|
38543
|
-
const rows = useRow(mergedColumn, mergedItems);
|
|
38544
|
-
const [hashId, cssVarCls] = useStyle$b(prefixCls);
|
|
38545
|
-
// =========== Merged Props for Semantic ==========
|
|
38546
|
-
const mergedProps = {
|
|
38547
|
-
...props,
|
|
38548
|
-
column: mergedColumn,
|
|
38549
|
-
items: mergedItems,
|
|
38550
|
-
size: mergedSize
|
|
38551
|
-
};
|
|
38552
|
-
const [mergedClassNames, mergedStyles] = useMergeSemantic([
|
|
38553
|
-
contextClassNames,
|
|
38554
|
-
classNames
|
|
38555
|
-
], [
|
|
38556
|
-
contextStyles,
|
|
38557
|
-
styles
|
|
38558
|
-
], {
|
|
38559
|
-
props: mergedProps
|
|
38560
|
-
});
|
|
38561
|
-
// ======================== Render ========================
|
|
38562
|
-
const memoizedValue = React__namespace.useMemo(()=>({
|
|
38563
|
-
labelStyle,
|
|
38564
|
-
contentStyle,
|
|
38565
|
-
styles: {
|
|
38566
|
-
label: mergedStyles.label,
|
|
38567
|
-
content: mergedStyles.content
|
|
38568
|
-
},
|
|
38569
|
-
classNames: {
|
|
38570
|
-
label: mergedClassNames.label,
|
|
38571
|
-
content: mergedClassNames.content
|
|
38572
|
-
}
|
|
38573
|
-
}), [
|
|
38574
|
-
labelStyle,
|
|
38575
|
-
contentStyle,
|
|
38576
|
-
mergedStyles.label,
|
|
38577
|
-
mergedStyles.content,
|
|
38578
|
-
mergedClassNames.label,
|
|
38579
|
-
mergedClassNames.content
|
|
38580
|
-
]);
|
|
38581
|
-
return /*#__PURE__*/ React__namespace.createElement(DescriptionsContext.Provider, {
|
|
38582
|
-
value: memoizedValue
|
|
38583
|
-
}, /*#__PURE__*/ React__namespace.createElement("div", {
|
|
38584
|
-
className: clsx(prefixCls, contextClassName, mergedClassNames.root, {
|
|
38585
|
-
[`${prefixCls}-${mergedSize}`]: mergedSize && mergedSize !== 'default',
|
|
38586
|
-
[`${prefixCls}-bordered`]: !!bordered,
|
|
38587
|
-
[`${prefixCls}-rtl`]: direction === 'rtl'
|
|
38588
|
-
}, className, rootClassName, hashId, cssVarCls),
|
|
38589
|
-
style: {
|
|
38590
|
-
...contextStyle,
|
|
38591
|
-
...mergedStyles.root,
|
|
38592
|
-
...style
|
|
38593
|
-
},
|
|
38594
|
-
...restProps
|
|
38595
|
-
}, (title || extra) && /*#__PURE__*/ React__namespace.createElement("div", {
|
|
38596
|
-
className: clsx(`${prefixCls}-header`, mergedClassNames.header),
|
|
38597
|
-
style: mergedStyles.header
|
|
38598
|
-
}, title && /*#__PURE__*/ React__namespace.createElement("div", {
|
|
38599
|
-
className: clsx(`${prefixCls}-title`, mergedClassNames.title),
|
|
38600
|
-
style: mergedStyles.title
|
|
38601
|
-
}, title), extra && /*#__PURE__*/ React__namespace.createElement("div", {
|
|
38602
|
-
className: clsx(`${prefixCls}-extra`, mergedClassNames.extra),
|
|
38603
|
-
style: mergedStyles.extra
|
|
38604
|
-
}, extra)), /*#__PURE__*/ React__namespace.createElement("div", {
|
|
38605
|
-
className: `${prefixCls}-view`
|
|
38606
|
-
}, /*#__PURE__*/ React__namespace.createElement("table", null, /*#__PURE__*/ React__namespace.createElement("tbody", null, rows.map((row, index)=>/*#__PURE__*/ React__namespace.createElement(Row, {
|
|
38607
|
-
key: index,
|
|
38608
|
-
index: index,
|
|
38609
|
-
colon: colon,
|
|
38610
|
-
prefixCls: prefixCls,
|
|
38611
|
-
vertical: layout === 'vertical',
|
|
38612
|
-
bordered: bordered,
|
|
38613
|
-
row: row
|
|
38614
|
-
})))))));
|
|
38615
|
-
};
|
|
38616
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
38617
|
-
Descriptions.displayName = 'Descriptions';
|
|
38618
|
-
}
|
|
38619
|
-
Descriptions.Item = DescriptionsItem;
|
|
38620
|
-
|
|
38621
37705
|
const DrawerPanel = (props)=>{
|
|
38622
37706
|
const { prefixCls, ariaId, title, footer, extra, closable, loading, onClose, headerStyle, bodyStyle, footerStyle, children, classNames: drawerClassNames, styles: drawerStyles } = props;
|
|
38623
37707
|
const drawerContext = useComponentConfig('drawer');
|
|
@@ -44384,11 +43468,11 @@ const injectSorter = (prefixCls, columns, sorterStates, triggerSorter, defaultSo
|
|
|
44384
43468
|
if (typeof showSorterTooltip !== 'boolean' && showSorterTooltip?.target === 'sorter-icon') {
|
|
44385
43469
|
return /*#__PURE__*/ React__namespace.createElement("div", {
|
|
44386
43470
|
className: clsx(columnSortersClass, `${columnSortersClass}-tooltip-target-sorter`)
|
|
44387
|
-
}, renderColumnTitleWrapper, /*#__PURE__*/ React__namespace.createElement(Tooltip, {
|
|
43471
|
+
}, renderColumnTitleWrapper, /*#__PURE__*/ React__namespace.createElement(Tooltip$1, {
|
|
44388
43472
|
...tooltipProps
|
|
44389
43473
|
}, sorter));
|
|
44390
43474
|
}
|
|
44391
|
-
return /*#__PURE__*/ React__namespace.createElement(Tooltip, {
|
|
43475
|
+
return /*#__PURE__*/ React__namespace.createElement(Tooltip$1, {
|
|
44392
43476
|
...tooltipProps
|
|
44393
43477
|
}, renderSortTitle);
|
|
44394
43478
|
}
|
|
@@ -47471,7 +46555,7 @@ const CopyBtn = ({ prefixCls, copied, locale, iconOnly, tooltips, icon, tabIndex
|
|
|
47471
46555
|
const systemStr = copied ? copiedText : copyText;
|
|
47472
46556
|
const copyTitle = getNode(tooltipNodes[copied ? 1 : 0], systemStr);
|
|
47473
46557
|
const ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;
|
|
47474
|
-
return /*#__PURE__*/ React__namespace.createElement(Tooltip, {
|
|
46558
|
+
return /*#__PURE__*/ React__namespace.createElement(Tooltip$1, {
|
|
47475
46559
|
title: copyTitle
|
|
47476
46560
|
}, /*#__PURE__*/ React__namespace.createElement("button", {
|
|
47477
46561
|
type: "button",
|
|
@@ -47715,7 +46799,7 @@ const EllipsisTooltip = ({ enableEllipsis, isEllipsis, open, children, tooltipPr
|
|
|
47715
46799
|
return children;
|
|
47716
46800
|
}
|
|
47717
46801
|
const mergedOpen = open && isEllipsis;
|
|
47718
|
-
return /*#__PURE__*/ React__namespace.createElement(Tooltip, {
|
|
46802
|
+
return /*#__PURE__*/ React__namespace.createElement(Tooltip$1, {
|
|
47719
46803
|
open: mergedOpen,
|
|
47720
46804
|
...tooltipProps
|
|
47721
46805
|
}, children);
|
|
@@ -47969,7 +47053,7 @@ const Base = /*#__PURE__*/ React__namespace.forwardRef((props, ref$1)=>{
|
|
|
47969
47053
|
const { icon, tooltip, tabIndex } = editConfig;
|
|
47970
47054
|
const editTitle = util.toArray(tooltip)[0] || textLocale?.edit;
|
|
47971
47055
|
const ariaLabel = typeof editTitle === 'string' ? editTitle : '';
|
|
47972
|
-
return triggerType.includes('icon') ? /*#__PURE__*/ React__namespace.createElement(Tooltip, {
|
|
47056
|
+
return triggerType.includes('icon') ? /*#__PURE__*/ React__namespace.createElement(Tooltip$1, {
|
|
47973
47057
|
key: "edit",
|
|
47974
47058
|
title: tooltip === false ? '' : editTitle
|
|
47975
47059
|
}, /*#__PURE__*/ React__namespace.createElement("button", {
|
|
@@ -48577,7 +47661,10 @@ const JsonTreeViewer = ({ data, maxDepth = 4, initialExpanded = false, expanded
|
|
|
48577
47661
|
})()));
|
|
48578
47662
|
};
|
|
48579
47663
|
|
|
48580
|
-
const NODE_MAX_WIDTH = 500;
|
|
47664
|
+
/** Max width for rich content (drawer output blocks, etc.) */ const NODE_MAX_WIDTH = 500;
|
|
47665
|
+
/** Compact xyflow node card width range */ const FLOW_NODE_MIN_WIDTH = 176;
|
|
47666
|
+
const FLOW_NODE_MAX_WIDTH = 250;
|
|
47667
|
+
/** Used by auto-layout horizontal spacing (~typical card width between min and max) */ const LAYOUT_NODE_WIDTH = Math.round((FLOW_NODE_MIN_WIDTH + FLOW_NODE_MAX_WIDTH) / 2);
|
|
48581
47668
|
|
|
48582
47669
|
const OutputRenderer = ({ data })=>{
|
|
48583
47670
|
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
@@ -49098,6 +48185,25 @@ const CountUpLatency = ({ value })=>{
|
|
|
49098
48185
|
});
|
|
49099
48186
|
}
|
|
49100
48187
|
};
|
|
48188
|
+
/** Merged tool internals + first edge detail (same shape ToolNode used on-canvas). */ function buildToolDrawerPayload(nodeData) {
|
|
48189
|
+
const internals = nodeData.details?.internals;
|
|
48190
|
+
const base = internals && typeof internals === "object" ? {
|
|
48191
|
+
...internals
|
|
48192
|
+
} : {};
|
|
48193
|
+
const edges = nodeData.edgeDetails;
|
|
48194
|
+
if (edges && edges.length > 0) {
|
|
48195
|
+
const d0 = edges[0];
|
|
48196
|
+
return {
|
|
48197
|
+
...base,
|
|
48198
|
+
input: {
|
|
48199
|
+
...d0?.input_kwargs ?? {}
|
|
48200
|
+
},
|
|
48201
|
+
output: d0?.output,
|
|
48202
|
+
status: d0?.status
|
|
48203
|
+
};
|
|
48204
|
+
}
|
|
48205
|
+
return Object.keys(base).length > 0 ? base : null;
|
|
48206
|
+
}
|
|
49101
48207
|
const NodeDetailsDrawer = ({ isVisible, onClose, nodeData })=>{
|
|
49102
48208
|
const { theme } = useTheme$1();
|
|
49103
48209
|
const [selectedRowIndex, setSelectedRowIndex] = React.useState(null);
|
|
@@ -49131,12 +48237,16 @@ const NodeDetailsDrawer = ({ isVisible, onClose, nodeData })=>{
|
|
|
49131
48237
|
}, [
|
|
49132
48238
|
nodeData?.details?.internals?.llm_details?.length
|
|
49133
48239
|
]);
|
|
49134
|
-
const
|
|
49135
|
-
const
|
|
49136
|
-
const
|
|
49137
|
-
const
|
|
49138
|
-
const
|
|
49139
|
-
const
|
|
48240
|
+
const nodeType = nodeData.nodeType || "Agent";
|
|
48241
|
+
const llmDetailsList = nodeData.details?.internals?.llm_details || [];
|
|
48242
|
+
const llOverviewDetails = getOverviewLlmDetails(llmDetailsList);
|
|
48243
|
+
const totalCost = sumTotalCost(llmDetailsList);
|
|
48244
|
+
const totalInputTokens = sumTotalInputTokens(llmDetailsList);
|
|
48245
|
+
const totalOutputTokens = sumTotalOutputTokens(llmDetailsList);
|
|
48246
|
+
const totalLatency = sumTotalLatency(llmDetailsList);
|
|
48247
|
+
const toolDrawerPayload = nodeType === "Tool" ? buildToolDrawerPayload(nodeData) : null;
|
|
48248
|
+
const nodeLatencySeconds = nodeData.details?.internals?.latency?.total_time;
|
|
48249
|
+
const drawerTitle = /*#__PURE__*/ React.createElement(DrawerTitleContent, null, /*#__PURE__*/ React.createElement(NodeIcon$2, null, getNodeIcon({
|
|
49140
48250
|
nodeType: (nodeData.nodeType || "Agent").toLowerCase(),
|
|
49141
48251
|
modelProvider: llOverviewDetails?.model_provider,
|
|
49142
48252
|
modelName: llOverviewDetails?.model_name
|
|
@@ -49148,7 +48258,7 @@ const NodeDetailsDrawer = ({ isVisible, onClose, nodeData })=>{
|
|
|
49148
48258
|
onClose: onClose,
|
|
49149
48259
|
closable: {
|
|
49150
48260
|
closeIcon: /*#__PURE__*/ React.createElement(Button$1, {
|
|
49151
|
-
type: "
|
|
48261
|
+
type: "link",
|
|
49152
48262
|
icon: /*#__PURE__*/ React.createElement(X$1, {
|
|
49153
48263
|
size: 16,
|
|
49154
48264
|
color: theme.colors.foreground
|
|
@@ -49160,7 +48270,7 @@ const NodeDetailsDrawer = ({ isVisible, onClose, nodeData })=>{
|
|
|
49160
48270
|
"aria-label": "Close drawer"
|
|
49161
48271
|
})
|
|
49162
48272
|
},
|
|
49163
|
-
size: "
|
|
48273
|
+
size: "500px",
|
|
49164
48274
|
getContainer: ()=>document.body,
|
|
49165
48275
|
zIndex: 1100,
|
|
49166
48276
|
"data-testid": "node-details-drawer",
|
|
@@ -49176,8 +48286,15 @@ const NodeDetailsDrawer = ({ isVisible, onClose, nodeData })=>{
|
|
|
49176
48286
|
}
|
|
49177
48287
|
}, /*#__PURE__*/ React.createElement(DrawerBodyContent, {
|
|
49178
48288
|
"data-testid": "node-details-drawer-content"
|
|
49179
|
-
},
|
|
49180
|
-
|
|
48289
|
+
}, nodeType === "Tool" && /*#__PURE__*/ React.createElement(React.Fragment, null, nodeLatencySeconds != null && /*#__PURE__*/ React.createElement(Section, null, /*#__PURE__*/ React.createElement(InfoItem, null, /*#__PURE__*/ React.createElement(InfoLabel, null, "Latency"), /*#__PURE__*/ React.createElement(InfoValue, null, formatLatency(nodeLatencySeconds)))), toolDrawerPayload ? /*#__PURE__*/ React.createElement(Section, {
|
|
48290
|
+
"data-testid": "tool-drawer-json"
|
|
48291
|
+
}, /*#__PURE__*/ React.createElement(JsonTreeViewer, {
|
|
48292
|
+
excludeKeys: [
|
|
48293
|
+
"latency"
|
|
48294
|
+
],
|
|
48295
|
+
data: toolDrawerPayload
|
|
48296
|
+
})) : null), nodeType === "Agent" && !llOverviewDetails && nodeLatencySeconds != null && /*#__PURE__*/ React.createElement(Section, null, /*#__PURE__*/ React.createElement(InfoItem, null, /*#__PURE__*/ React.createElement(InfoLabel, null, "Latency"), /*#__PURE__*/ React.createElement(InfoValue, null, formatLatency(nodeLatencySeconds)))), nodeType === "Agent" && llOverviewDetails && /*#__PURE__*/ React.createElement(Section, null, /*#__PURE__*/ React.createElement(InfoGrid, null, (()=>{
|
|
48297
|
+
const llmDetails = llmDetailsList;
|
|
49181
48298
|
const isAggregateSelected = selectedRowIndex === llmDetails.length;
|
|
49182
48299
|
const selectedDetails = isAggregateSelected ? null // Use aggregate values
|
|
49183
48300
|
: llmDetails[selectedRowIndex || 0];
|
|
@@ -49214,7 +48331,13 @@ const NodeDetailsDrawer = ({ isVisible, onClose, nodeData })=>{
|
|
|
49214
48331
|
prefix: "$",
|
|
49215
48332
|
suffix: " USD"
|
|
49216
48333
|
}) : "N/A")));
|
|
49217
|
-
})())),
|
|
48334
|
+
})())), nodeType === "Agent" && llOverviewDetails && llmDetailsList.length === 1 && /*#__PURE__*/ React.createElement(Section, {
|
|
48335
|
+
"data-testid": "agent-single-llm-messages"
|
|
48336
|
+
}, /*#__PURE__*/ React.createElement(InputArrayRenderer, {
|
|
48337
|
+
input: llOverviewDetails.input || []
|
|
48338
|
+
}), llOverviewDetails.output ? /*#__PURE__*/ React.createElement(OutputRenderer, {
|
|
48339
|
+
data: llOverviewDetails.output
|
|
48340
|
+
}) : null), nodeType === "Agent" && llmDetailsList.length > 1 && /*#__PURE__*/ React.createElement(Section, null, /*#__PURE__*/ React.createElement(TableWrapper, null, /*#__PURE__*/ React.createElement("table", null, /*#__PURE__*/ React.createElement("thead", null, /*#__PURE__*/ React.createElement("tr", null, /*#__PURE__*/ React.createElement("th", {
|
|
49218
48341
|
style: {
|
|
49219
48342
|
textAlign: "center"
|
|
49220
48343
|
}
|
|
@@ -49234,7 +48357,7 @@ const NodeDetailsDrawer = ({ isVisible, onClose, nodeData })=>{
|
|
|
49234
48357
|
style: {
|
|
49235
48358
|
textAlign: "right"
|
|
49236
48359
|
}
|
|
49237
|
-
}, "Latency"))), /*#__PURE__*/ React.createElement("tbody", null,
|
|
48360
|
+
}, "Latency"))), /*#__PURE__*/ React.createElement("tbody", null, llmDetailsList.map((details, index)=>/*#__PURE__*/ React.createElement("tr", {
|
|
49238
48361
|
key: index,
|
|
49239
48362
|
onClick: ()=>handleShowModelDetails(details, index),
|
|
49240
48363
|
className: selectedRowIndex === index ? "selected-row" : ""
|
|
@@ -49275,7 +48398,7 @@ const NodeDetailsDrawer = ({ isVisible, onClose, nodeData })=>{
|
|
|
49275
48398
|
value: details.latency
|
|
49276
48399
|
}) : "N/A"))), /*#__PURE__*/ React.createElement("tr", {
|
|
49277
48400
|
key: "total",
|
|
49278
|
-
className: `total-row ${selectedRowIndex ===
|
|
48401
|
+
className: `total-row ${selectedRowIndex === llmDetailsList.length ? "selected-row" : ""}`,
|
|
49279
48402
|
onClick: handleShowAggregateDetails
|
|
49280
48403
|
}, /*#__PURE__*/ React.createElement("td", {
|
|
49281
48404
|
style: {
|
|
@@ -49435,7 +48558,7 @@ const InfoValue = styled.span`
|
|
|
49435
48558
|
color: ${(p)=>p.theme?.colors?.foreground ?? "inherit"};
|
|
49436
48559
|
word-break: break-word;
|
|
49437
48560
|
`;
|
|
49438
|
-
const NodeIcon$
|
|
48561
|
+
const NodeIcon$2 = styled.div`
|
|
49439
48562
|
font-size: ${(p)=>p.theme?.fontSize?.xl ?? "1.25rem"};
|
|
49440
48563
|
display: flex;
|
|
49441
48564
|
align-items: center;
|
|
@@ -49455,7 +48578,6 @@ const resolveProviderFromModelName = (modelName)=>{
|
|
|
49455
48578
|
const { nodeType, modelProvider, modelName, size = 16 } = options ?? {};
|
|
49456
48579
|
const normalizedNodeType = nodeType?.toLowerCase();
|
|
49457
48580
|
if (normalizedNodeType === "tool") return "🔧";
|
|
49458
|
-
if (normalizedNodeType === "coordinator") return "🎯";
|
|
49459
48581
|
const normalizedProvider = modelProvider?.toLowerCase();
|
|
49460
48582
|
const resolvedProvider = !normalizedProvider || normalizedProvider === "unknown" ? resolveProviderFromModelName(modelName) : normalizedProvider;
|
|
49461
48583
|
if (resolvedProvider === "openai") return /*#__PURE__*/ React.createElement(OpenAIIcon, {
|
|
@@ -49531,18 +48653,12 @@ const AgentNode = ({ data, id, onInspect, defaultDrawerOpen })=>{
|
|
|
49531
48653
|
primary: "hsl(221.2 83.2% 53.3%)",
|
|
49532
48654
|
background: "hsl(0 0% 100%)"
|
|
49533
48655
|
};
|
|
49534
|
-
// State for inspection drawer
|
|
49535
48656
|
const [isDrawerOpen, setIsDrawerOpen] = React.useState(defaultDrawerOpen ?? false);
|
|
49536
|
-
const nodeRef = React.useRef(null);
|
|
49537
|
-
// Check if this node has any outgoing edges (source edges)
|
|
49538
48657
|
const hasOutgoingEdges = data.edges?.some((edge)=>edge.source === id) || false;
|
|
49539
|
-
// Check if this node has any incoming edges (target edges)
|
|
49540
48658
|
const hasIncomingEdges = data.edges?.some((edge)=>edge.target === id) || false;
|
|
49541
48659
|
const handleNodeClick = ()=>{
|
|
49542
48660
|
setIsDrawerOpen(true);
|
|
49543
|
-
|
|
49544
|
-
onInspect(data);
|
|
49545
|
-
}
|
|
48661
|
+
onInspect?.(data);
|
|
49546
48662
|
};
|
|
49547
48663
|
const handleCloseDrawer = ()=>{
|
|
49548
48664
|
setIsDrawerOpen(false);
|
|
@@ -49558,12 +48674,8 @@ const AgentNode = ({ data, id, onInspect, defaultDrawerOpen })=>{
|
|
|
49558
48674
|
});
|
|
49559
48675
|
const totalCost = sumTotalCost(data.details?.internals?.llm_details || []);
|
|
49560
48676
|
const totalCostFormatted = formatCurrency(totalCost);
|
|
49561
|
-
const
|
|
49562
|
-
|
|
49563
|
-
const inputArray = nodeDetails?.input || [];
|
|
49564
|
-
const output = nodeDetails?.output || null;
|
|
49565
|
-
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(NodeContainer$2, {
|
|
49566
|
-
ref: nodeRef,
|
|
48677
|
+
const providerLine = `${modelName || "—"}`;
|
|
48678
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(NodeContainer$1, {
|
|
49567
48679
|
onClick: handleNodeClick,
|
|
49568
48680
|
className: "nowheel agent-node"
|
|
49569
48681
|
}, hasIncomingEdges && /*#__PURE__*/ React.createElement(Handle$1, {
|
|
@@ -49577,17 +48689,21 @@ const AgentNode = ({ data, id, onInspect, defaultDrawerOpen })=>{
|
|
|
49577
48689
|
cursor: "default"
|
|
49578
48690
|
},
|
|
49579
48691
|
isConnectable: false
|
|
49580
|
-
}), /*#__PURE__*/ React.createElement(
|
|
49581
|
-
|
|
49582
|
-
|
|
49583
|
-
|
|
49584
|
-
|
|
49585
|
-
|
|
49586
|
-
},
|
|
49587
|
-
|
|
49588
|
-
|
|
49589
|
-
|
|
49590
|
-
|
|
48692
|
+
}), /*#__PURE__*/ React.createElement(NodeBody$1, null, /*#__PURE__*/ React.createElement(TitleRow$1, null, /*#__PURE__*/ React.createElement(NodeIcon$1, null, nodeIcon), /*#__PURE__*/ React.createElement(NodeLabel$1, {
|
|
48693
|
+
title: nodeLabel
|
|
48694
|
+
}, nodeLabel)), /*#__PURE__*/ React.createElement(MetaLine, {
|
|
48695
|
+
title: providerLine
|
|
48696
|
+
}, /*#__PURE__*/ React.createElement(MetaLineIcon, {
|
|
48697
|
+
"aria-hidden": true
|
|
48698
|
+
}, /*#__PURE__*/ React.createElement(Cpu, {
|
|
48699
|
+
size: 12,
|
|
48700
|
+
strokeWidth: 2
|
|
48701
|
+
})), /*#__PURE__*/ React.createElement(MetaLineText, null, providerLine)), /*#__PURE__*/ React.createElement(CostLine, null, /*#__PURE__*/ React.createElement(CostLineIcon, {
|
|
48702
|
+
"aria-hidden": true
|
|
48703
|
+
}, /*#__PURE__*/ React.createElement(CircleDollarSign, {
|
|
48704
|
+
size: 13,
|
|
48705
|
+
strokeWidth: 2
|
|
48706
|
+
})), totalCostFormatted)), hasOutgoingEdges && /*#__PURE__*/ React.createElement(Handle$1, {
|
|
49591
48707
|
type: "source",
|
|
49592
48708
|
position: Position.Bottom,
|
|
49593
48709
|
style: {
|
|
@@ -49607,16 +48723,16 @@ const AgentNode = ({ data, id, onInspect, defaultDrawerOpen })=>{
|
|
|
49607
48723
|
}
|
|
49608
48724
|
})));
|
|
49609
48725
|
};
|
|
49610
|
-
|
|
49611
|
-
const NodeContainer$2 = styled.div`
|
|
48726
|
+
const NodeContainer$1 = styled.div`
|
|
49612
48727
|
border-radius: 0.5rem;
|
|
49613
48728
|
background-color: ${(props)=>props.theme?.colors?.card || "hsl(0 0% 100%)"};
|
|
49614
48729
|
border: 2px solid ${(props)=>props.theme?.colors?.border || "hsl(214.3 31.8% 91.4%)"};
|
|
49615
48730
|
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
49616
|
-
min-width:
|
|
49617
|
-
max-width: ${
|
|
48731
|
+
min-width: ${FLOW_NODE_MIN_WIDTH}px;
|
|
48732
|
+
max-width: ${FLOW_NODE_MAX_WIDTH}px;
|
|
49618
48733
|
transition: all 0.2s ease-in-out;
|
|
49619
48734
|
position: relative;
|
|
48735
|
+
cursor: pointer;
|
|
49620
48736
|
|
|
49621
48737
|
&:hover {
|
|
49622
48738
|
border-color: ${(props)=>props.theme?.colors?.primary || "hsl(221.2 83.2% 53.3%)"};
|
|
@@ -49625,68 +48741,98 @@ const NodeContainer$2 = styled.div`
|
|
|
49625
48741
|
0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
49626
48742
|
}
|
|
49627
48743
|
`;
|
|
49628
|
-
const
|
|
48744
|
+
const NodeBody$1 = styled.div`
|
|
49629
48745
|
display: flex;
|
|
49630
|
-
|
|
49631
|
-
|
|
49632
|
-
|
|
49633
|
-
padding: 0.75rem;
|
|
49634
|
-
border-bottom: 1px solid ${(props)=>props.theme?.colors?.border || "hsl(214.3 31.8% 91.4%)"};
|
|
48746
|
+
flex-direction: column;
|
|
48747
|
+
gap: 0.35rem;
|
|
48748
|
+
padding: 0.5rem 0.625rem;
|
|
49635
48749
|
`;
|
|
49636
|
-
const
|
|
48750
|
+
const TitleRow$1 = styled.div`
|
|
49637
48751
|
display: flex;
|
|
49638
48752
|
align-items: center;
|
|
49639
|
-
gap: 0.
|
|
48753
|
+
gap: 0.375rem;
|
|
48754
|
+
min-width: 0;
|
|
48755
|
+
width: 100%;
|
|
49640
48756
|
`;
|
|
49641
|
-
const NodeIcon$
|
|
49642
|
-
font-size: 1.
|
|
48757
|
+
const NodeIcon$1 = styled.div`
|
|
48758
|
+
font-size: 1.125rem;
|
|
49643
48759
|
display: flex;
|
|
49644
48760
|
align-items: center;
|
|
49645
48761
|
justify-content: center;
|
|
48762
|
+
flex-shrink: 0;
|
|
49646
48763
|
color: ${(props)=>props.theme?.colors?.foreground || "hsl(222.2 84% 4.9%)"};
|
|
49647
48764
|
`;
|
|
49648
|
-
const NodeLabel$
|
|
48765
|
+
const NodeLabel$1 = styled.div`
|
|
48766
|
+
flex: 1 1 0;
|
|
48767
|
+
min-width: 0;
|
|
49649
48768
|
font-weight: 600;
|
|
49650
48769
|
color: ${(props)=>props.theme?.colors?.foreground || "hsl(222.2 84% 4.9%)"};
|
|
49651
|
-
font-size: 0.
|
|
49652
|
-
|
|
48770
|
+
font-size: 0.8125rem;
|
|
48771
|
+
line-height: 1.25;
|
|
48772
|
+
overflow: hidden;
|
|
48773
|
+
text-overflow: ellipsis;
|
|
48774
|
+
white-space: nowrap;
|
|
49653
48775
|
`;
|
|
49654
|
-
const
|
|
48776
|
+
const MetaLine = styled.div`
|
|
49655
48777
|
display: flex;
|
|
49656
|
-
|
|
49657
|
-
|
|
49658
|
-
|
|
48778
|
+
align-items: flex-start;
|
|
48779
|
+
gap: 0.3rem;
|
|
48780
|
+
font-size: 0.6875rem;
|
|
48781
|
+
line-height: 1.3;
|
|
48782
|
+
color: ${(props)=>props.theme?.colors?.mutedForeground || "hsl(215.4 16.3% 46.9%)"};
|
|
49659
48783
|
`;
|
|
49660
|
-
const
|
|
49661
|
-
|
|
48784
|
+
const MetaLineIcon = styled.span`
|
|
48785
|
+
display: inline-flex;
|
|
48786
|
+
flex-shrink: 0;
|
|
48787
|
+
margin-top: 0.1em;
|
|
48788
|
+
color: inherit;
|
|
48789
|
+
`;
|
|
48790
|
+
const MetaLineText = styled.span`
|
|
48791
|
+
min-width: 0;
|
|
48792
|
+
flex: 1;
|
|
48793
|
+
word-break: break-word;
|
|
48794
|
+
display: -webkit-box;
|
|
48795
|
+
-webkit-line-clamp: 2;
|
|
48796
|
+
-webkit-box-orient: vertical;
|
|
48797
|
+
overflow: hidden;
|
|
48798
|
+
`;
|
|
48799
|
+
const CostLine = styled.div`
|
|
49662
48800
|
display: flex;
|
|
49663
|
-
|
|
49664
|
-
|
|
49665
|
-
|
|
49666
|
-
|
|
48801
|
+
align-items: center;
|
|
48802
|
+
gap: 0.3rem;
|
|
48803
|
+
font-color: inherit;
|
|
48804
|
+
font-size: 0.75rem;
|
|
48805
|
+
font-weight: 600;
|
|
48806
|
+
`;
|
|
48807
|
+
const CostLineIcon = styled.span`
|
|
48808
|
+
display: inline-flex;
|
|
48809
|
+
flex-shrink: 0;
|
|
48810
|
+
color: inherit;
|
|
49667
48811
|
`;
|
|
49668
48812
|
|
|
49669
|
-
const
|
|
48813
|
+
const ToolNode = ({ data, id, onInspect })=>{
|
|
49670
48814
|
const { theme } = useTheme$1();
|
|
49671
48815
|
const themeColors = theme?.colors || {
|
|
49672
48816
|
primary: "hsl(221.2 83.2% 53.3%)",
|
|
49673
48817
|
background: "hsl(0 0% 100%)"
|
|
49674
48818
|
};
|
|
49675
|
-
|
|
48819
|
+
const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);
|
|
49676
48820
|
const hasOutgoingEdges = data.edges?.some((edge)=>edge.source === id) || false;
|
|
49677
|
-
// Check if this node has any incoming edges (target edges)
|
|
49678
48821
|
const hasIncomingEdges = data.edges?.some((edge)=>edge.target === id) || false;
|
|
49679
48822
|
const handleNodeClick = ()=>{
|
|
49680
|
-
|
|
49681
|
-
|
|
49682
|
-
|
|
49683
|
-
|
|
49684
|
-
|
|
49685
|
-
});
|
|
48823
|
+
setIsDrawerOpen(true);
|
|
48824
|
+
onInspect?.(data);
|
|
48825
|
+
};
|
|
48826
|
+
const handleCloseDrawer = ()=>{
|
|
48827
|
+
setIsDrawerOpen(false);
|
|
49686
48828
|
};
|
|
49687
|
-
const nodeLabel = data.label || toTitleCase("
|
|
49688
|
-
|
|
49689
|
-
|
|
48829
|
+
const nodeLabel = data.label || toTitleCase("Tool") || "Tool";
|
|
48830
|
+
const nodeIcon = getNodeIcon({
|
|
48831
|
+
nodeType: "tool"
|
|
48832
|
+
});
|
|
48833
|
+
return /*#__PURE__*/ React.createElement(NodeContainer, {
|
|
48834
|
+
onClick: handleNodeClick,
|
|
48835
|
+
className: "nowheel"
|
|
49690
48836
|
}, hasIncomingEdges && /*#__PURE__*/ React.createElement(Handle$1, {
|
|
49691
48837
|
type: "target",
|
|
49692
48838
|
position: Position.Top,
|
|
@@ -49698,11 +48844,9 @@ const CoordinatorNode = ({ data, id, onInspect })=>{
|
|
|
49698
48844
|
cursor: "default"
|
|
49699
48845
|
},
|
|
49700
48846
|
isConnectable: false
|
|
49701
|
-
}), /*#__PURE__*/ React.createElement(
|
|
49702
|
-
|
|
49703
|
-
},
|
|
49704
|
-
data: data.details?.internals || {}
|
|
49705
|
-
})), hasOutgoingEdges && /*#__PURE__*/ React.createElement(Handle$1, {
|
|
48847
|
+
}), /*#__PURE__*/ React.createElement(NodeBody, null, /*#__PURE__*/ React.createElement(TitleRow, null, /*#__PURE__*/ React.createElement(NodeIcon, null, nodeIcon), /*#__PURE__*/ React.createElement(NodeLabel, {
|
|
48848
|
+
title: nodeLabel
|
|
48849
|
+
}, nodeLabel))), hasOutgoingEdges && /*#__PURE__*/ React.createElement(Handle$1, {
|
|
49706
48850
|
type: "source",
|
|
49707
48851
|
position: Position.Bottom,
|
|
49708
48852
|
style: {
|
|
@@ -49713,15 +48857,22 @@ const CoordinatorNode = ({ data, id, onInspect })=>{
|
|
|
49713
48857
|
cursor: "default"
|
|
49714
48858
|
},
|
|
49715
48859
|
isConnectable: false
|
|
48860
|
+
}), /*#__PURE__*/ React.createElement(NodeDetailsDrawer, {
|
|
48861
|
+
isVisible: isDrawerOpen,
|
|
48862
|
+
onClose: handleCloseDrawer,
|
|
48863
|
+
nodeData: {
|
|
48864
|
+
...data,
|
|
48865
|
+
id
|
|
48866
|
+
}
|
|
49716
48867
|
}));
|
|
49717
48868
|
};
|
|
49718
|
-
|
|
49719
|
-
const NodeContainer$1 = styled.div`
|
|
48869
|
+
const NodeContainer = styled.div`
|
|
49720
48870
|
border-radius: 0.5rem;
|
|
49721
48871
|
background-color: ${(props)=>props.theme?.colors?.card || "hsl(0 0% 100%)"};
|
|
49722
48872
|
border: 2px solid ${(props)=>props.theme?.colors?.border || "hsl(214.3 31.8% 91.4%)"};
|
|
49723
48873
|
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
49724
|
-
min-width:
|
|
48874
|
+
min-width: ${FLOW_NODE_MIN_WIDTH}px;
|
|
48875
|
+
max-width: ${FLOW_NODE_MAX_WIDTH}px;
|
|
49725
48876
|
transition: all 0.2s ease-in-out;
|
|
49726
48877
|
position: relative;
|
|
49727
48878
|
cursor: pointer;
|
|
@@ -49733,205 +48884,553 @@ const NodeContainer$1 = styled.div`
|
|
|
49733
48884
|
0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
49734
48885
|
}
|
|
49735
48886
|
`;
|
|
49736
|
-
const
|
|
48887
|
+
const NodeBody = styled.div`
|
|
49737
48888
|
display: flex;
|
|
49738
|
-
|
|
49739
|
-
|
|
49740
|
-
gap: 0.5rem;
|
|
49741
|
-
padding: 0.75rem;
|
|
49742
|
-
border-bottom: 1px solid ${(props)=>props.theme?.colors?.border || "hsl(214.3 31.8% 91.4%)"};
|
|
48889
|
+
flex-direction: column;
|
|
48890
|
+
padding: 0.5rem 0.625rem;
|
|
49743
48891
|
`;
|
|
49744
|
-
const
|
|
48892
|
+
const TitleRow = styled.div`
|
|
49745
48893
|
display: flex;
|
|
49746
48894
|
align-items: center;
|
|
49747
|
-
gap: 0.
|
|
48895
|
+
gap: 0.375rem;
|
|
48896
|
+
min-width: 0;
|
|
49748
48897
|
`;
|
|
49749
|
-
const NodeIcon
|
|
49750
|
-
font-size: 1.
|
|
48898
|
+
const NodeIcon = styled.div`
|
|
48899
|
+
font-size: 1.125rem;
|
|
49751
48900
|
display: flex;
|
|
49752
48901
|
align-items: center;
|
|
49753
48902
|
justify-content: center;
|
|
48903
|
+
flex-shrink: 0;
|
|
49754
48904
|
color: ${(props)=>props.theme?.colors?.foreground || "hsl(222.2 84% 4.9%)"};
|
|
49755
48905
|
`;
|
|
49756
|
-
const NodeLabel
|
|
48906
|
+
const NodeLabel = styled.div`
|
|
49757
48907
|
font-weight: 600;
|
|
49758
48908
|
color: ${(props)=>props.theme?.colors?.foreground || "hsl(222.2 84% 4.9%)"};
|
|
49759
|
-
font-size: 0.
|
|
49760
|
-
|
|
48909
|
+
font-size: 0.8125rem;
|
|
48910
|
+
line-height: 1.25;
|
|
48911
|
+
word-break: break-word;
|
|
48912
|
+
min-width: 0;
|
|
49761
48913
|
`;
|
|
49762
|
-
|
|
49763
|
-
|
|
49764
|
-
|
|
49765
|
-
|
|
49766
|
-
|
|
48914
|
+
|
|
48915
|
+
const Node$1 = ({ data, id })=>{
|
|
48916
|
+
const nodeType = data.nodeType || "Agent";
|
|
48917
|
+
const onInspect = data.onInspect;
|
|
48918
|
+
switch(nodeType){
|
|
48919
|
+
case "Agent":
|
|
48920
|
+
return /*#__PURE__*/ React.createElement(AgentNode, {
|
|
48921
|
+
data: data,
|
|
48922
|
+
id: id,
|
|
48923
|
+
onInspect: onInspect,
|
|
48924
|
+
defaultDrawerOpen: data.defaultDrawerOpen
|
|
48925
|
+
});
|
|
48926
|
+
case "Tool":
|
|
48927
|
+
return /*#__PURE__*/ React.createElement(ToolNode, {
|
|
48928
|
+
data: data,
|
|
48929
|
+
id: id,
|
|
48930
|
+
onInspect: onInspect
|
|
48931
|
+
});
|
|
48932
|
+
default:
|
|
48933
|
+
return /*#__PURE__*/ React.createElement(AgentNode, {
|
|
48934
|
+
data: data,
|
|
48935
|
+
id: id,
|
|
48936
|
+
onInspect: onInspect,
|
|
48937
|
+
defaultDrawerOpen: data.defaultDrawerOpen
|
|
48938
|
+
});
|
|
48939
|
+
}
|
|
48940
|
+
};
|
|
48941
|
+
|
|
48942
|
+
const TooltipContainer = styled.div`
|
|
48943
|
+
position: relative;
|
|
48944
|
+
display: inline-block;
|
|
49767
48945
|
`;
|
|
49768
|
-
const
|
|
49769
|
-
|
|
49770
|
-
|
|
49771
|
-
|
|
49772
|
-
|
|
49773
|
-
|
|
49774
|
-
|
|
48946
|
+
const TooltipContent = styled.div`
|
|
48947
|
+
position: absolute;
|
|
48948
|
+
z-index: 1000;
|
|
48949
|
+
padding: 8px 12px;
|
|
48950
|
+
font-weight: 400;
|
|
48951
|
+
background-color: ${({ themeColors })=>themeColors.popover};
|
|
48952
|
+
color: ${({ themeColors })=>themeColors.popoverForeground};
|
|
48953
|
+
border: 1px solid ${({ themeColors })=>themeColors.border};
|
|
48954
|
+
border-radius: 6px;
|
|
48955
|
+
font-size: 12px;
|
|
48956
|
+
line-height: 1.4;
|
|
48957
|
+
white-space: nowrap;
|
|
48958
|
+
box-shadow:
|
|
48959
|
+
0 4px 6px -1px rgba(0, 0, 0, 0.1),
|
|
48960
|
+
0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
48961
|
+
opacity: ${({ isVisible })=>isVisible ? 1 : 0};
|
|
48962
|
+
visibility: ${({ isVisible })=>isVisible ? "visible" : "hidden"};
|
|
48963
|
+
transition:
|
|
48964
|
+
opacity 0.15s ease-in-out,
|
|
48965
|
+
visibility 0.15s ease-in-out;
|
|
48966
|
+
pointer-events: none;
|
|
48967
|
+
|
|
48968
|
+
/* Arrow */
|
|
48969
|
+
&::before {
|
|
48970
|
+
content: "";
|
|
48971
|
+
position: absolute;
|
|
48972
|
+
width: 0;
|
|
48973
|
+
height: 0;
|
|
48974
|
+
border: 4px solid transparent;
|
|
48975
|
+
}
|
|
48976
|
+
|
|
48977
|
+
/* Placement-specific positioning and arrow */
|
|
48978
|
+
${({ placement, themeColors })=>{
|
|
48979
|
+
switch(placement){
|
|
48980
|
+
case "top":
|
|
48981
|
+
return `
|
|
48982
|
+
bottom: 100%;
|
|
48983
|
+
left: 50%;
|
|
48984
|
+
transform: translateX(-50%);
|
|
48985
|
+
margin-bottom: 8px;
|
|
48986
|
+
&::before {
|
|
48987
|
+
top: 100%;
|
|
48988
|
+
left: 50%;
|
|
48989
|
+
transform: translateX(-50%);
|
|
48990
|
+
border-top-color: ${themeColors.border};
|
|
48991
|
+
}
|
|
48992
|
+
&::after {
|
|
48993
|
+
content: "";
|
|
48994
|
+
position: absolute;
|
|
48995
|
+
top: 100%;
|
|
48996
|
+
left: 50%;
|
|
48997
|
+
transform: translateX(-50%);
|
|
48998
|
+
width: 0;
|
|
48999
|
+
height: 0;
|
|
49000
|
+
border: 3px solid transparent;
|
|
49001
|
+
border-top-color: ${themeColors.popover};
|
|
49002
|
+
}
|
|
49003
|
+
`;
|
|
49004
|
+
case "bottom":
|
|
49005
|
+
return `
|
|
49006
|
+
top: 100%;
|
|
49007
|
+
left: 50%;
|
|
49008
|
+
transform: translateX(-50%);
|
|
49009
|
+
margin-top: 8px;
|
|
49010
|
+
&::before {
|
|
49011
|
+
bottom: 100%;
|
|
49012
|
+
left: 50%;
|
|
49013
|
+
transform: translateX(-50%);
|
|
49014
|
+
border-bottom-color: ${themeColors.border};
|
|
49015
|
+
}
|
|
49016
|
+
&::after {
|
|
49017
|
+
content: "";
|
|
49018
|
+
position: absolute;
|
|
49019
|
+
bottom: 100%;
|
|
49020
|
+
left: 50%;
|
|
49021
|
+
transform: translateX(-50%);
|
|
49022
|
+
width: 0;
|
|
49023
|
+
height: 0;
|
|
49024
|
+
border: 3px solid transparent;
|
|
49025
|
+
border-bottom-color: ${themeColors.popover};
|
|
49026
|
+
}
|
|
49027
|
+
`;
|
|
49028
|
+
case "left":
|
|
49029
|
+
return `
|
|
49030
|
+
right: 100%;
|
|
49031
|
+
top: 50%;
|
|
49032
|
+
transform: translateY(-50%);
|
|
49033
|
+
margin-right: 8px;
|
|
49034
|
+
&::before {
|
|
49035
|
+
left: 100%;
|
|
49036
|
+
top: 50%;
|
|
49037
|
+
transform: translateY(-50%);
|
|
49038
|
+
border-left-color: ${themeColors.border};
|
|
49039
|
+
}
|
|
49040
|
+
&::after {
|
|
49041
|
+
content: "";
|
|
49042
|
+
position: absolute;
|
|
49043
|
+
left: 100%;
|
|
49044
|
+
top: 50%;
|
|
49045
|
+
transform: translateY(-50%);
|
|
49046
|
+
width: 0;
|
|
49047
|
+
height: 0;
|
|
49048
|
+
border: 3px solid transparent;
|
|
49049
|
+
border-left-color: ${themeColors.popover};
|
|
49050
|
+
}
|
|
49051
|
+
`;
|
|
49052
|
+
case "right":
|
|
49053
|
+
return `
|
|
49054
|
+
left: 100%;
|
|
49055
|
+
top: 50%;
|
|
49056
|
+
transform: translateY(-50%);
|
|
49057
|
+
margin-left: 8px;
|
|
49058
|
+
&::before {
|
|
49059
|
+
right: 100%;
|
|
49060
|
+
top: 50%;
|
|
49061
|
+
transform: translateY(-50%);
|
|
49062
|
+
border-right-color: ${themeColors.border};
|
|
49063
|
+
}
|
|
49064
|
+
&::after {
|
|
49065
|
+
content: "";
|
|
49066
|
+
position: absolute;
|
|
49067
|
+
right: 100%;
|
|
49068
|
+
top: 50%;
|
|
49069
|
+
transform: translateY(-50%);
|
|
49070
|
+
width: 0;
|
|
49071
|
+
height: 0;
|
|
49072
|
+
border: 3px solid transparent;
|
|
49073
|
+
border-right-color: ${themeColors.popover};
|
|
49074
|
+
}
|
|
49075
|
+
`;
|
|
49076
|
+
case "topLeft":
|
|
49077
|
+
return `
|
|
49078
|
+
bottom: 100%;
|
|
49079
|
+
right: 0;
|
|
49080
|
+
margin-bottom: 8px;
|
|
49081
|
+
&::before {
|
|
49082
|
+
top: 100%;
|
|
49083
|
+
right: 8px;
|
|
49084
|
+
border-top-color: ${themeColors.border};
|
|
49085
|
+
}
|
|
49086
|
+
&::after {
|
|
49087
|
+
content: "";
|
|
49088
|
+
position: absolute;
|
|
49089
|
+
top: 100%;
|
|
49090
|
+
right: 8px;
|
|
49091
|
+
width: 0;
|
|
49092
|
+
height: 0;
|
|
49093
|
+
border: 3px solid transparent;
|
|
49094
|
+
border-top-color: ${themeColors.popover};
|
|
49095
|
+
}
|
|
49096
|
+
`;
|
|
49097
|
+
case "topRight":
|
|
49098
|
+
return `
|
|
49099
|
+
bottom: 100%;
|
|
49100
|
+
left: 0;
|
|
49101
|
+
margin-bottom: 8px;
|
|
49102
|
+
&::before {
|
|
49103
|
+
top: 100%;
|
|
49104
|
+
left: 8px;
|
|
49105
|
+
border-top-color: ${themeColors.border};
|
|
49106
|
+
}
|
|
49107
|
+
&::after {
|
|
49108
|
+
content: "";
|
|
49109
|
+
position: absolute;
|
|
49110
|
+
top: 100%;
|
|
49111
|
+
left: 8px;
|
|
49112
|
+
width: 0;
|
|
49113
|
+
height: 0;
|
|
49114
|
+
border: 3px solid transparent;
|
|
49115
|
+
border-top-color: ${themeColors.popover};
|
|
49116
|
+
}
|
|
49117
|
+
`;
|
|
49118
|
+
case "bottomLeft":
|
|
49119
|
+
return `
|
|
49120
|
+
top: 100%;
|
|
49121
|
+
right: 0;
|
|
49122
|
+
margin-top: 8px;
|
|
49123
|
+
&::before {
|
|
49124
|
+
bottom: 100%;
|
|
49125
|
+
right: 8px;
|
|
49126
|
+
border-bottom-color: ${themeColors.border};
|
|
49127
|
+
}
|
|
49128
|
+
&::after {
|
|
49129
|
+
content: "";
|
|
49130
|
+
position: absolute;
|
|
49131
|
+
bottom: 100%;
|
|
49132
|
+
right: 8px;
|
|
49133
|
+
width: 0;
|
|
49134
|
+
height: 0;
|
|
49135
|
+
border: 3px solid transparent;
|
|
49136
|
+
border-bottom-color: ${themeColors.popover};
|
|
49137
|
+
}
|
|
49138
|
+
`;
|
|
49139
|
+
case "bottomRight":
|
|
49140
|
+
return `
|
|
49141
|
+
top: 100%;
|
|
49142
|
+
left: 0;
|
|
49143
|
+
margin-top: 8px;
|
|
49144
|
+
&::before {
|
|
49145
|
+
bottom: 100%;
|
|
49146
|
+
left: 8px;
|
|
49147
|
+
border-bottom-color: ${themeColors.border};
|
|
49148
|
+
}
|
|
49149
|
+
&::after {
|
|
49150
|
+
content: "";
|
|
49151
|
+
position: absolute;
|
|
49152
|
+
bottom: 100%;
|
|
49153
|
+
left: 8px;
|
|
49154
|
+
width: 0;
|
|
49155
|
+
height: 0;
|
|
49156
|
+
border: 3px solid transparent;
|
|
49157
|
+
border-bottom-color: ${themeColors.popover};
|
|
49158
|
+
}
|
|
49159
|
+
`;
|
|
49160
|
+
case "leftTop":
|
|
49161
|
+
return `
|
|
49162
|
+
right: 100%;
|
|
49163
|
+
bottom: 0;
|
|
49164
|
+
margin-right: 8px;
|
|
49165
|
+
&::before {
|
|
49166
|
+
left: 100%;
|
|
49167
|
+
bottom: 8px;
|
|
49168
|
+
border-left-color: ${themeColors.border};
|
|
49169
|
+
}
|
|
49170
|
+
&::after {
|
|
49171
|
+
content: "";
|
|
49172
|
+
position: absolute;
|
|
49173
|
+
left: 100%;
|
|
49174
|
+
bottom: 8px;
|
|
49175
|
+
width: 0;
|
|
49176
|
+
height: 0;
|
|
49177
|
+
border: 3px solid transparent;
|
|
49178
|
+
border-left-color: ${themeColors.popover};
|
|
49179
|
+
}
|
|
49180
|
+
`;
|
|
49181
|
+
case "leftBottom":
|
|
49182
|
+
return `
|
|
49183
|
+
right: 100%;
|
|
49184
|
+
top: 0;
|
|
49185
|
+
margin-right: 8px;
|
|
49186
|
+
&::before {
|
|
49187
|
+
left: 100%;
|
|
49188
|
+
top: 8px;
|
|
49189
|
+
border-left-color: ${themeColors.border};
|
|
49190
|
+
}
|
|
49191
|
+
&::after {
|
|
49192
|
+
content: "";
|
|
49193
|
+
position: absolute;
|
|
49194
|
+
left: 100%;
|
|
49195
|
+
top: 8px;
|
|
49196
|
+
width: 0;
|
|
49197
|
+
height: 0;
|
|
49198
|
+
border: 3px solid transparent;
|
|
49199
|
+
border-left-color: ${themeColors.popover};
|
|
49200
|
+
}
|
|
49201
|
+
`;
|
|
49202
|
+
case "rightTop":
|
|
49203
|
+
return `
|
|
49204
|
+
left: 100%;
|
|
49205
|
+
bottom: 0;
|
|
49206
|
+
margin-left: 8px;
|
|
49207
|
+
&::before {
|
|
49208
|
+
right: 100%;
|
|
49209
|
+
bottom: 8px;
|
|
49210
|
+
border-right-color: ${themeColors.border};
|
|
49211
|
+
}
|
|
49212
|
+
&::after {
|
|
49213
|
+
content: "";
|
|
49214
|
+
position: absolute;
|
|
49215
|
+
right: 100%;
|
|
49216
|
+
bottom: 8px;
|
|
49217
|
+
width: 0;
|
|
49218
|
+
height: 0;
|
|
49219
|
+
border: 3px solid transparent;
|
|
49220
|
+
border-right-color: ${themeColors.popover};
|
|
49221
|
+
}
|
|
49222
|
+
`;
|
|
49223
|
+
case "rightBottom":
|
|
49224
|
+
return `
|
|
49225
|
+
left: 100%;
|
|
49226
|
+
top: 0;
|
|
49227
|
+
margin-left: 8px;
|
|
49228
|
+
&::before {
|
|
49229
|
+
right: 100%;
|
|
49230
|
+
top: 8px;
|
|
49231
|
+
border-right-color: ${themeColors.border};
|
|
49232
|
+
}
|
|
49233
|
+
&::after {
|
|
49234
|
+
content: "";
|
|
49235
|
+
position: absolute;
|
|
49236
|
+
right: 100%;
|
|
49237
|
+
top: 8px;
|
|
49238
|
+
width: 0;
|
|
49239
|
+
height: 0;
|
|
49240
|
+
border: 3px solid transparent;
|
|
49241
|
+
border-right-color: ${themeColors.popover};
|
|
49242
|
+
}
|
|
49243
|
+
`;
|
|
49244
|
+
default:
|
|
49245
|
+
return `
|
|
49246
|
+
bottom: 100%;
|
|
49247
|
+
left: 50%;
|
|
49248
|
+
transform: translateX(-50%);
|
|
49249
|
+
margin-bottom: 8px;
|
|
49250
|
+
&::before {
|
|
49251
|
+
top: 100%;
|
|
49252
|
+
left: 50%;
|
|
49253
|
+
transform: translateX(-50%);
|
|
49254
|
+
border-top-color: ${themeColors.border};
|
|
49255
|
+
}
|
|
49256
|
+
&::after {
|
|
49257
|
+
content: "";
|
|
49258
|
+
position: absolute;
|
|
49259
|
+
top: 100%;
|
|
49260
|
+
left: 50%;
|
|
49261
|
+
transform: translateX(-50%);
|
|
49262
|
+
width: 0;
|
|
49263
|
+
height: 0;
|
|
49264
|
+
border: 3px solid transparent;
|
|
49265
|
+
border-top-color: ${themeColors.popover};
|
|
49266
|
+
}
|
|
49267
|
+
`;
|
|
49268
|
+
}
|
|
49269
|
+
}}
|
|
49775
49270
|
`;
|
|
49776
|
-
|
|
49777
|
-
const ToolNode = ({ data, id, onInspect })=>{
|
|
49271
|
+
const Tooltip = ({ children, content, placement = "top", delay = 300 })=>{
|
|
49778
49272
|
const { theme } = useTheme$1();
|
|
49779
|
-
const
|
|
49780
|
-
|
|
49781
|
-
|
|
49273
|
+
const [isVisible, setIsVisible] = React__namespace.useState(false);
|
|
49274
|
+
const timeoutRef = React__namespace.useRef();
|
|
49275
|
+
const showTooltip = ()=>{
|
|
49276
|
+
if (timeoutRef.current) {
|
|
49277
|
+
clearTimeout(timeoutRef.current);
|
|
49278
|
+
}
|
|
49279
|
+
timeoutRef.current = setTimeout(()=>{
|
|
49280
|
+
setIsVisible(true);
|
|
49281
|
+
}, delay);
|
|
49782
49282
|
};
|
|
49783
|
-
|
|
49784
|
-
|
|
49785
|
-
|
|
49786
|
-
const hasIncomingEdges = data.edges?.some((edge)=>edge.target === id) || false;
|
|
49787
|
-
const handleNodeClick = ()=>{
|
|
49788
|
-
if (onInspect) {
|
|
49789
|
-
onInspect(data);
|
|
49283
|
+
const hideTooltip = ()=>{
|
|
49284
|
+
if (timeoutRef.current) {
|
|
49285
|
+
clearTimeout(timeoutRef.current);
|
|
49790
49286
|
}
|
|
49287
|
+
setIsVisible(false);
|
|
49791
49288
|
};
|
|
49792
|
-
|
|
49793
|
-
|
|
49794
|
-
|
|
49795
|
-
|
|
49796
|
-
|
|
49797
|
-
nodeData = {
|
|
49798
|
-
...baseData,
|
|
49799
|
-
input: {
|
|
49800
|
-
...data.edgeDetails[0]?.input_kwargs
|
|
49801
|
-
},
|
|
49802
|
-
output: data.edgeDetails[0]?.output,
|
|
49803
|
-
status: data.edgeDetails[0]?.status
|
|
49289
|
+
React__namespace.useEffect(()=>{
|
|
49290
|
+
return ()=>{
|
|
49291
|
+
if (timeoutRef.current) {
|
|
49292
|
+
clearTimeout(timeoutRef.current);
|
|
49293
|
+
}
|
|
49804
49294
|
};
|
|
49805
|
-
}
|
|
49806
|
-
return /*#__PURE__*/
|
|
49807
|
-
|
|
49808
|
-
|
|
49809
|
-
|
|
49810
|
-
|
|
49811
|
-
|
|
49812
|
-
|
|
49813
|
-
|
|
49814
|
-
|
|
49815
|
-
|
|
49816
|
-
|
|
49817
|
-
cursor: "default"
|
|
49818
|
-
},
|
|
49819
|
-
isConnectable: false
|
|
49820
|
-
}), /*#__PURE__*/ React.createElement(NodeHeader, null, /*#__PURE__*/ React.createElement(NodeIconContainer, null, /*#__PURE__*/ React.createElement(NodeIcon, null, "🔧"), /*#__PURE__*/ React.createElement(NodeLabel, null, nodeLabel)), latency != null && /*#__PURE__*/ React.createElement(BadgeContainer, null, /*#__PURE__*/ React.createElement(Badge, {
|
|
49821
|
-
variant: "latency"
|
|
49822
|
-
}, formatLatency(latency)))), nodeData && /*#__PURE__*/ React.createElement(NodeContent, {
|
|
49823
|
-
className: "nodrag"
|
|
49824
|
-
}, /*#__PURE__*/ React.createElement(JsonTreeViewer, {
|
|
49825
|
-
excludeKeys: [
|
|
49826
|
-
"latency"
|
|
49827
|
-
],
|
|
49828
|
-
data: nodeData
|
|
49829
|
-
})), hasOutgoingEdges && /*#__PURE__*/ React.createElement(Handle$1, {
|
|
49830
|
-
type: "source",
|
|
49831
|
-
position: Position.Bottom,
|
|
49832
|
-
style: {
|
|
49833
|
-
width: "8px",
|
|
49834
|
-
height: "8px",
|
|
49835
|
-
border: `2px solid ${themeColors.primary}`,
|
|
49836
|
-
backgroundColor: themeColors.background,
|
|
49837
|
-
cursor: "default"
|
|
49838
|
-
},
|
|
49839
|
-
isConnectable: false
|
|
49840
|
-
}));
|
|
49295
|
+
}, []);
|
|
49296
|
+
return /*#__PURE__*/ React__namespace.createElement(TooltipContainer, {
|
|
49297
|
+
onMouseEnter: showTooltip,
|
|
49298
|
+
onMouseLeave: hideTooltip,
|
|
49299
|
+
onFocus: showTooltip,
|
|
49300
|
+
onBlur: hideTooltip
|
|
49301
|
+
}, children, /*#__PURE__*/ React__namespace.createElement(TooltipContent, {
|
|
49302
|
+
isVisible: isVisible,
|
|
49303
|
+
placement: placement,
|
|
49304
|
+
themeColors: theme.colors,
|
|
49305
|
+
role: "tooltip"
|
|
49306
|
+
}, content));
|
|
49841
49307
|
};
|
|
49842
|
-
// Styled components
|
|
49843
|
-
const NodeContainer = styled.div`
|
|
49844
|
-
border-radius: 0.5rem;
|
|
49845
|
-
background-color: ${(props)=>props.theme?.colors?.card || "hsl(0 0% 100%)"};
|
|
49846
|
-
border: 2px solid ${(props)=>props.theme?.colors?.border || "hsl(214.3 31.8% 91.4%)"};
|
|
49847
|
-
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
49848
|
-
min-width: 300px;
|
|
49849
|
-
max-width: ${NODE_MAX_WIDTH}px;
|
|
49850
|
-
transition: all 0.2s ease-in-out;
|
|
49851
|
-
position: relative;
|
|
49852
|
-
cursor: pointer;
|
|
49853
49308
|
|
|
49854
|
-
&:hover {
|
|
49855
|
-
border-color: ${(props)=>props.theme?.colors?.primary || "hsl(221.2 83.2% 53.3%)"};
|
|
49856
|
-
box-shadow:
|
|
49857
|
-
0 4px 6px -1px rgba(0, 0, 0, 0.1),
|
|
49858
|
-
0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
49859
|
-
}
|
|
49860
|
-
`;
|
|
49861
|
-
const NodeHeader = styled.div`
|
|
49862
|
-
display: flex;
|
|
49863
|
-
justify-content: space-between;
|
|
49864
|
-
align-items: center;
|
|
49865
|
-
gap: 0.5rem;
|
|
49866
|
-
padding: 0.75rem;
|
|
49867
|
-
border-bottom: 1px solid ${(props)=>props.theme?.colors?.border || "hsl(214.3 31.8% 91.4%)"};
|
|
49868
|
-
`;
|
|
49869
|
-
const NodeIconContainer = styled.div`
|
|
49870
|
-
display: flex;
|
|
49871
|
-
align-items: center;
|
|
49872
|
-
gap: 0.5rem;
|
|
49873
|
-
`;
|
|
49874
|
-
const NodeIcon = styled.div`
|
|
49875
|
-
font-size: 1.25rem;
|
|
49876
|
-
display: flex;
|
|
49877
|
-
align-items: center;
|
|
49878
|
-
justify-content: center;
|
|
49879
|
-
color: ${(props)=>props.theme?.colors?.foreground || "hsl(222.2 84% 4.9%)"};
|
|
49880
|
-
`;
|
|
49881
|
-
const NodeLabel = styled.div`
|
|
49882
|
-
font-weight: 600;
|
|
49883
|
-
color: ${(props)=>props.theme?.colors?.foreground || "hsl(222.2 84% 4.9%)"};
|
|
49884
|
-
font-size: 0.875rem;
|
|
49885
|
-
word-break: break-words;
|
|
49886
|
-
`;
|
|
49887
49309
|
const BadgeContainer = styled.div`
|
|
49888
|
-
display: flex;
|
|
49889
|
-
gap: 0.5rem;
|
|
49890
|
-
justify-content: flex-end;
|
|
49310
|
+
display: inline-flex;
|
|
49891
49311
|
align-items: center;
|
|
49892
|
-
|
|
49893
|
-
|
|
49894
|
-
padding: 0.
|
|
49895
|
-
|
|
49896
|
-
|
|
49897
|
-
|
|
49898
|
-
|
|
49899
|
-
gap: 0.5rem;
|
|
49900
|
-
`;
|
|
49312
|
+
border-radius: 9999px;
|
|
49313
|
+
border: 1px solid transparent;
|
|
49314
|
+
padding: 0.125rem 0.625rem;
|
|
49315
|
+
font-size: 0.75rem;
|
|
49316
|
+
font-weight: 600;
|
|
49317
|
+
transition: colors 0.2s ease-in-out;
|
|
49318
|
+
outline: none;
|
|
49901
49319
|
|
|
49902
|
-
|
|
49903
|
-
|
|
49904
|
-
|
|
49905
|
-
|
|
49906
|
-
|
|
49907
|
-
|
|
49908
|
-
|
|
49909
|
-
|
|
49910
|
-
|
|
49911
|
-
|
|
49912
|
-
|
|
49913
|
-
|
|
49914
|
-
|
|
49915
|
-
|
|
49916
|
-
|
|
49917
|
-
|
|
49918
|
-
|
|
49919
|
-
|
|
49920
|
-
|
|
49921
|
-
|
|
49922
|
-
|
|
49923
|
-
|
|
49924
|
-
|
|
49925
|
-
|
|
49320
|
+
&:focus {
|
|
49321
|
+
outline: none;
|
|
49322
|
+
box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
|
|
49323
|
+
}
|
|
49324
|
+
|
|
49325
|
+
${({ variant, themeColors })=>{
|
|
49326
|
+
switch(variant){
|
|
49327
|
+
case "default":
|
|
49328
|
+
return `
|
|
49329
|
+
background-color: ${themeColors.primary};
|
|
49330
|
+
color: ${themeColors.primaryForeground};
|
|
49331
|
+
&:hover {
|
|
49332
|
+
background-color: ${themeColors.primary};
|
|
49333
|
+
opacity: 0.9;
|
|
49334
|
+
}
|
|
49335
|
+
`;
|
|
49336
|
+
case "secondary":
|
|
49337
|
+
return `
|
|
49338
|
+
background-color: ${themeColors.secondary};
|
|
49339
|
+
color: ${themeColors.secondaryForeground};
|
|
49340
|
+
&:hover {
|
|
49341
|
+
background-color: ${themeColors.muted};
|
|
49342
|
+
}
|
|
49343
|
+
`;
|
|
49344
|
+
case "destructive":
|
|
49345
|
+
return `
|
|
49346
|
+
background-color: ${themeColors.destructive};
|
|
49347
|
+
color: ${themeColors.destructiveForeground};
|
|
49348
|
+
&:hover {
|
|
49349
|
+
background-color: ${themeColors.destructive};
|
|
49350
|
+
opacity: 0.9;
|
|
49351
|
+
}
|
|
49352
|
+
`;
|
|
49353
|
+
case "outline":
|
|
49354
|
+
return `
|
|
49355
|
+
background-color: transparent;
|
|
49356
|
+
color: ${themeColors.cardForeground};
|
|
49357
|
+
border-color: ${themeColors.border};
|
|
49358
|
+
`;
|
|
49359
|
+
case "cost":
|
|
49360
|
+
return `
|
|
49361
|
+
background-color: ${themeColors.secondary};
|
|
49362
|
+
color: ${themeColors.secondaryForeground};
|
|
49363
|
+
&:hover {
|
|
49364
|
+
background-color: ${themeColors.muted};
|
|
49365
|
+
}
|
|
49366
|
+
`;
|
|
49367
|
+
case "gray":
|
|
49368
|
+
return `
|
|
49369
|
+
background-color: ${themeColors.secondary};
|
|
49370
|
+
color: ${themeColors.secondaryForeground};
|
|
49371
|
+
&:hover {
|
|
49372
|
+
background-color: ${themeColors.muted};
|
|
49373
|
+
}
|
|
49374
|
+
`;
|
|
49375
|
+
case "latency":
|
|
49376
|
+
return `
|
|
49377
|
+
background-color: ${themeColors.secondary};
|
|
49378
|
+
color: ${themeColors.secondaryForeground};
|
|
49379
|
+
&:hover {
|
|
49380
|
+
background-color: ${themeColors.muted};
|
|
49381
|
+
}
|
|
49382
|
+
`;
|
|
49383
|
+
case "latencyLow":
|
|
49384
|
+
return `
|
|
49385
|
+
background-color: ${themeColors.secondary};
|
|
49386
|
+
color: ${themeColors.secondaryForeground};
|
|
49387
|
+
&:hover {
|
|
49388
|
+
background-color: ${themeColors.muted};
|
|
49389
|
+
}
|
|
49390
|
+
`;
|
|
49391
|
+
case "latencyMedium":
|
|
49392
|
+
return `
|
|
49393
|
+
background-color: ${themeColors.secondary};
|
|
49394
|
+
color: ${themeColors.secondaryForeground};
|
|
49395
|
+
&:hover {
|
|
49396
|
+
background-color: ${themeColors.muted};
|
|
49397
|
+
}
|
|
49398
|
+
`;
|
|
49399
|
+
case "latencyHigh":
|
|
49400
|
+
return `
|
|
49401
|
+
background-color: ${themeColors.destructive};
|
|
49402
|
+
color: ${themeColors.destructiveForeground};
|
|
49403
|
+
&:hover {
|
|
49404
|
+
background-color: ${themeColors.destructive};
|
|
49405
|
+
opacity: 0.9;
|
|
49406
|
+
}
|
|
49407
|
+
`;
|
|
49926
49408
|
default:
|
|
49927
|
-
|
|
49928
|
-
|
|
49929
|
-
|
|
49930
|
-
|
|
49931
|
-
|
|
49932
|
-
|
|
49933
|
-
|
|
49409
|
+
return `
|
|
49410
|
+
background-color: ${themeColors.primary};
|
|
49411
|
+
color: ${themeColors.primaryForeground};
|
|
49412
|
+
&:hover {
|
|
49413
|
+
background-color: ${themeColors.primary};
|
|
49414
|
+
opacity: 0.9;
|
|
49415
|
+
}
|
|
49416
|
+
`;
|
|
49417
|
+
}
|
|
49418
|
+
}}
|
|
49419
|
+
`;
|
|
49420
|
+
const Badge = ({ variant = "default", children, title, placement = "top" })=>{
|
|
49421
|
+
const { theme } = useTheme$1();
|
|
49422
|
+
const themeColors = theme.colors;
|
|
49423
|
+
const badgeContent = /*#__PURE__*/ React__namespace.createElement(BadgeContainer, {
|
|
49424
|
+
variant: variant,
|
|
49425
|
+
themeColors: themeColors
|
|
49426
|
+
}, children);
|
|
49427
|
+
if (title) {
|
|
49428
|
+
return /*#__PURE__*/ React__namespace.createElement(Tooltip, {
|
|
49429
|
+
content: title,
|
|
49430
|
+
placement: placement
|
|
49431
|
+
}, badgeContent);
|
|
49934
49432
|
}
|
|
49433
|
+
return badgeContent;
|
|
49935
49434
|
};
|
|
49936
49435
|
|
|
49937
49436
|
// Styled Components
|
|
@@ -52612,7 +52111,7 @@ SheetDescription.displayName = Description.displayName;
|
|
|
52612
52111
|
/**
|
|
52613
52112
|
* Calculates a clean tree layout: parents centered above children, siblings spaced evenly, no overlap.
|
|
52614
52113
|
*/ const calculateAutoLayout = (nodes, edges, options = {})=>{
|
|
52615
|
-
const { minNodeSpacing =
|
|
52114
|
+
const { minNodeSpacing = 72, containerWidth = 600 } = options;
|
|
52616
52115
|
// Handle undefined or null nodes
|
|
52617
52116
|
if (!nodes || nodes.length === 0) {
|
|
52618
52117
|
return new Map();
|
|
@@ -52662,8 +52161,8 @@ SheetDescription.displayName = Description.displayName;
|
|
|
52662
52161
|
});
|
|
52663
52162
|
// Calculate subtree widths for each node (for centering horizontally)
|
|
52664
52163
|
const subtreeWidth = new Map();
|
|
52665
|
-
const nodeWidth =
|
|
52666
|
-
const nodeSpacing = Math.max(
|
|
52164
|
+
const nodeWidth = LAYOUT_NODE_WIDTH;
|
|
52165
|
+
const nodeSpacing = Math.max(8, Math.floor(minNodeSpacing / 8));
|
|
52667
52166
|
const calcSubtreeWidth = (nodeId)=>{
|
|
52668
52167
|
const children = childrenMap.get(nodeId) || [];
|
|
52669
52168
|
if (children.length === 0) {
|
|
@@ -52681,8 +52180,8 @@ SheetDescription.displayName = Description.displayName;
|
|
|
52681
52180
|
roots.forEach((root)=>calcSubtreeWidth(root.identifier));
|
|
52682
52181
|
// Assign positions recursively - now top to bottom
|
|
52683
52182
|
const positions = new Map();
|
|
52684
|
-
const levelSpacing = Math.max(
|
|
52685
|
-
const verticalMargin =
|
|
52183
|
+
const levelSpacing = Math.max(130, minNodeSpacing + 42);
|
|
52184
|
+
const verticalMargin = 40;
|
|
52686
52185
|
const assignPositions = (nodeId, xLeft, level)=>{
|
|
52687
52186
|
const width = subtreeWidth.get(nodeId) || nodeWidth;
|
|
52688
52187
|
const y = level * levelSpacing + verticalMargin; // Add margin here
|
|
@@ -52766,13 +52265,12 @@ SheetDescription.displayName = Description.displayName;
|
|
|
52766
52265
|
|
|
52767
52266
|
const nodeTypes = {
|
|
52768
52267
|
Agent: Node$1,
|
|
52769
|
-
Tool: Node$1
|
|
52770
|
-
Coordinator: Node$1
|
|
52268
|
+
Tool: Node$1
|
|
52771
52269
|
};
|
|
52772
52270
|
const AgenticFlowVisualizer = ({ flowData: propFlowData, width = "100dvw", height = "100dvh", className = "", defaultZoom = 1, defaultPan = {
|
|
52773
52271
|
x: 0,
|
|
52774
52272
|
y: 0
|
|
52775
|
-
}, disableAutoFit = true, defaultAutoFitDuration = 1000, defaultAutoFitDelay = 250, showTimeline = false, minNodeSpacing =
|
|
52273
|
+
}, disableAutoFit = true, defaultAutoFitDuration = 1000, defaultAutoFitDelay = 250, showTimeline = false, minNodeSpacing = 72, onInspect, panToNodeId })=>{
|
|
52776
52274
|
const { theme, isDarkMode } = useTheme$1();
|
|
52777
52275
|
const themeColors = theme.colors;
|
|
52778
52276
|
// Helper function to determine if we should apply minimum dimensions
|
|
@@ -52964,15 +52462,17 @@ const AgenticFlowVisualizer = ({ flowData: propFlowData, width = "100dvw", heigh
|
|
|
52964
52462
|
y: 0
|
|
52965
52463
|
};
|
|
52966
52464
|
const isActive = node.stamp.step === currentStep;
|
|
52465
|
+
const rawType = node.node_type || "Agent";
|
|
52466
|
+
const resolvedType = rawType === "Coordinator" ? "Agent" : rawType;
|
|
52967
52467
|
// Extract edge details for Tool nodes
|
|
52968
52468
|
const edgeDetails = node.node_type === "Tool" ? stepEdges.filter((edge)=>edge.target === node.identifier && edge.details).map((edge)=>edge.details) : undefined;
|
|
52969
52469
|
return {
|
|
52970
52470
|
id: node.identifier,
|
|
52971
|
-
type:
|
|
52471
|
+
type: resolvedType,
|
|
52972
52472
|
position,
|
|
52973
52473
|
data: {
|
|
52974
52474
|
label: node.name || node.node_type,
|
|
52975
|
-
nodeType:
|
|
52475
|
+
nodeType: resolvedType,
|
|
52976
52476
|
details: node.details,
|
|
52977
52477
|
isActive,
|
|
52978
52478
|
id: node.identifier,
|
|
@@ -53004,7 +52504,6 @@ const AgenticFlowVisualizer = ({ flowData: propFlowData, width = "100dvw", heigh
|
|
|
53004
52504
|
animated: isActive,
|
|
53005
52505
|
bidirectional: true,
|
|
53006
52506
|
style: {
|
|
53007
|
-
stroke: isActive ? themeColors.primary : themeColors.mutedForeground,
|
|
53008
52507
|
strokeWidth: isActive ? 3 : 2
|
|
53009
52508
|
},
|
|
53010
52509
|
label: edge.stamp?.identifier ? truncateText(String(edge.stamp.identifier), 50) : undefined,
|
|
@@ -53020,9 +52519,7 @@ const AgenticFlowVisualizer = ({ flowData: propFlowData, width = "100dvw", heigh
|
|
|
53020
52519
|
});
|
|
53021
52520
|
}, [
|
|
53022
52521
|
currentStep,
|
|
53023
|
-
getEdgesForStep
|
|
53024
|
-
themeColors.primary,
|
|
53025
|
-
themeColors.mutedForeground
|
|
52522
|
+
getEdgesForStep
|
|
53026
52523
|
]);
|
|
53027
52524
|
const [nodesState, setNodes, onNodesChange] = useNodesState(nodes);
|
|
53028
52525
|
const [edgesState, setEdges, onEdgesChange] = useEdgesState(edges);
|
|
@@ -112750,7 +112247,328 @@ class ErrorBoundary extends React.Component {
|
|
|
112750
112247
|
}
|
|
112751
112248
|
}
|
|
112752
112249
|
|
|
112250
|
+
const MAX_TITLE_LEN = 200;
|
|
112251
|
+
const TOOLBAR_ICON_SIZE = 15;
|
|
112252
|
+
const JsonValueTree = ({ data, className, maxHeight = "auto" })=>{
|
|
112253
|
+
const { theme } = useTheme$1();
|
|
112254
|
+
const { mutedForeground } = theme.colors;
|
|
112255
|
+
const treeData = React.useMemo(()=>buildTreeData(data), [
|
|
112256
|
+
data
|
|
112257
|
+
]);
|
|
112258
|
+
const defaultExpandedKeys = React.useMemo(()=>collectKeysToDepth(treeData, 2), [
|
|
112259
|
+
treeData
|
|
112260
|
+
]);
|
|
112261
|
+
const allExpandableKeys = React.useMemo(()=>collectAllExpandableKeys(treeData), [
|
|
112262
|
+
treeData
|
|
112263
|
+
]);
|
|
112264
|
+
const [expandedKeys, setExpandedKeys] = React.useState(()=>defaultExpandedKeys);
|
|
112265
|
+
const hasBranches = allExpandableKeys.length > 0;
|
|
112266
|
+
const isAllExpanded = hasBranches && allExpandableKeys.every((k)=>expandedKeys.includes(k));
|
|
112267
|
+
React.useEffect(()=>{
|
|
112268
|
+
setExpandedKeys(defaultExpandedKeys);
|
|
112269
|
+
}, [
|
|
112270
|
+
defaultExpandedKeys
|
|
112271
|
+
]);
|
|
112272
|
+
const handleCopyJson = React.useCallback(async ()=>{
|
|
112273
|
+
try {
|
|
112274
|
+
const text = JSON.stringify(data, null, 2);
|
|
112275
|
+
await navigator.clipboard.writeText(text);
|
|
112276
|
+
staticMethods.success("JSON copied to clipboard");
|
|
112277
|
+
} catch {
|
|
112278
|
+
staticMethods.error("Could not copy to clipboard");
|
|
112279
|
+
}
|
|
112280
|
+
}, [
|
|
112281
|
+
data
|
|
112282
|
+
]);
|
|
112283
|
+
const handleToggleExpandCollapse = React.useCallback(()=>{
|
|
112284
|
+
if (isAllExpanded) {
|
|
112285
|
+
setExpandedKeys([]);
|
|
112286
|
+
} else {
|
|
112287
|
+
setExpandedKeys(allExpandableKeys);
|
|
112288
|
+
}
|
|
112289
|
+
}, [
|
|
112290
|
+
isAllExpanded,
|
|
112291
|
+
allExpandableKeys
|
|
112292
|
+
]);
|
|
112293
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
112294
|
+
className: className,
|
|
112295
|
+
style: {
|
|
112296
|
+
maxHeight,
|
|
112297
|
+
display: "flex",
|
|
112298
|
+
flexDirection: "column",
|
|
112299
|
+
borderRadius: 4,
|
|
112300
|
+
overflow: "hidden"
|
|
112301
|
+
}
|
|
112302
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
112303
|
+
style: {
|
|
112304
|
+
display: "flex",
|
|
112305
|
+
justifyContent: "flex-end",
|
|
112306
|
+
alignItems: "center",
|
|
112307
|
+
gap: 2,
|
|
112308
|
+
padding: "4px 6px 2px",
|
|
112309
|
+
flexShrink: 0,
|
|
112310
|
+
background: "transparent"
|
|
112311
|
+
}
|
|
112312
|
+
}, /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
112313
|
+
title: "Copy JSON"
|
|
112314
|
+
}, /*#__PURE__*/ React.createElement(Button$1, {
|
|
112315
|
+
type: "text",
|
|
112316
|
+
size: "small",
|
|
112317
|
+
"aria-label": "Copy JSON to clipboard",
|
|
112318
|
+
icon: /*#__PURE__*/ React.createElement(Copy, {
|
|
112319
|
+
size: TOOLBAR_ICON_SIZE,
|
|
112320
|
+
color: mutedForeground
|
|
112321
|
+
}),
|
|
112322
|
+
onClick: handleCopyJson
|
|
112323
|
+
})), /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
112324
|
+
title: isAllExpanded ? "Collapse all" : "Expand all"
|
|
112325
|
+
}, /*#__PURE__*/ React.createElement(Button$1, {
|
|
112326
|
+
type: "text",
|
|
112327
|
+
size: "small",
|
|
112328
|
+
"aria-label": isAllExpanded ? "Collapse all tree nodes" : "Expand all tree nodes",
|
|
112329
|
+
disabled: !hasBranches,
|
|
112330
|
+
icon: isAllExpanded ? /*#__PURE__*/ React.createElement(FoldVertical, {
|
|
112331
|
+
size: TOOLBAR_ICON_SIZE,
|
|
112332
|
+
color: mutedForeground
|
|
112333
|
+
}) : /*#__PURE__*/ React.createElement(UnfoldVertical, {
|
|
112334
|
+
size: TOOLBAR_ICON_SIZE,
|
|
112335
|
+
color: mutedForeground
|
|
112336
|
+
}),
|
|
112337
|
+
onClick: handleToggleExpandCollapse
|
|
112338
|
+
}))), /*#__PURE__*/ React.createElement("div", {
|
|
112339
|
+
style: {
|
|
112340
|
+
flex: 1,
|
|
112341
|
+
minHeight: 0,
|
|
112342
|
+
overflow: "auto",
|
|
112343
|
+
padding: "4px 0"
|
|
112344
|
+
}
|
|
112345
|
+
}, /*#__PURE__*/ React.createElement(Tree, {
|
|
112346
|
+
// No showLine — connector lines look like a floating spine for many top-level fields.
|
|
112347
|
+
showLine: true,
|
|
112348
|
+
blockNode: true,
|
|
112349
|
+
expandAction: "click",
|
|
112350
|
+
selectable: false,
|
|
112351
|
+
showIcon: false,
|
|
112352
|
+
treeData: treeData,
|
|
112353
|
+
expandedKeys: expandedKeys,
|
|
112354
|
+
onExpand: (keys)=>setExpandedKeys(keys),
|
|
112355
|
+
rootStyle: {
|
|
112356
|
+
backgroundColor: "transparent",
|
|
112357
|
+
padding: "0 4px"
|
|
112358
|
+
}
|
|
112359
|
+
})));
|
|
112360
|
+
};
|
|
112361
|
+
function collectKeysToDepth(nodes, maxDepth, depth = 0) {
|
|
112362
|
+
if (depth >= maxDepth) return [];
|
|
112363
|
+
const keys = [];
|
|
112364
|
+
for (const n of nodes){
|
|
112365
|
+
if (n.children && n.children.length > 0) {
|
|
112366
|
+
keys.push(n.key);
|
|
112367
|
+
keys.push(...collectKeysToDepth(n.children, maxDepth, depth + 1));
|
|
112368
|
+
}
|
|
112369
|
+
}
|
|
112370
|
+
return keys;
|
|
112371
|
+
}
|
|
112372
|
+
function collectAllExpandableKeys(nodes) {
|
|
112373
|
+
const keys = [];
|
|
112374
|
+
for (const n of nodes){
|
|
112375
|
+
if (n.children && n.children.length > 0) {
|
|
112376
|
+
keys.push(n.key);
|
|
112377
|
+
keys.push(...collectAllExpandableKeys(n.children));
|
|
112378
|
+
}
|
|
112379
|
+
}
|
|
112380
|
+
return keys;
|
|
112381
|
+
}
|
|
112382
|
+
/**
|
|
112383
|
+
* Object keys A→Z, but any property whose value is an array is listed after all non-array properties
|
|
112384
|
+
* (each block still A→Z). Tree has no built-in sort — this defines `treeData` order.
|
|
112385
|
+
*/ function sortObjectEntriesForTree(entries) {
|
|
112386
|
+
return [
|
|
112387
|
+
...entries
|
|
112388
|
+
].sort((a, b)=>{
|
|
112389
|
+
const aArr = Array.isArray(a[1]);
|
|
112390
|
+
const bArr = Array.isArray(b[1]);
|
|
112391
|
+
if (aArr !== bArr) {
|
|
112392
|
+
return aArr ? 1 : -1;
|
|
112393
|
+
}
|
|
112394
|
+
return a[0].localeCompare(b[0], undefined, {
|
|
112395
|
+
sensitivity: "base",
|
|
112396
|
+
numeric: true
|
|
112397
|
+
});
|
|
112398
|
+
});
|
|
112399
|
+
}
|
|
112400
|
+
function valueToTreeNodes(value, path) {
|
|
112401
|
+
if (value === null || value === undefined) {
|
|
112402
|
+
return [
|
|
112403
|
+
{
|
|
112404
|
+
key: path,
|
|
112405
|
+
title: formatJsonTreePrimitive(value),
|
|
112406
|
+
isLeaf: true
|
|
112407
|
+
}
|
|
112408
|
+
];
|
|
112409
|
+
}
|
|
112410
|
+
if (Array.isArray(value)) {
|
|
112411
|
+
if (value.length === 0) {
|
|
112412
|
+
return [
|
|
112413
|
+
{
|
|
112414
|
+
key: `${path}.__empty_arr__`,
|
|
112415
|
+
title: "[] (0 items)",
|
|
112416
|
+
isLeaf: true
|
|
112417
|
+
}
|
|
112418
|
+
];
|
|
112419
|
+
}
|
|
112420
|
+
return value.map((item, i)=>{
|
|
112421
|
+
const seg = `[${i}]`;
|
|
112422
|
+
const childPath = `${path}.${escapeDotPathSegment(seg)}`;
|
|
112423
|
+
if (item === null || item === undefined || typeof item !== "object") {
|
|
112424
|
+
return {
|
|
112425
|
+
key: childPath,
|
|
112426
|
+
title: `${seg}: ${formatJsonTreePrimitive(item)}`,
|
|
112427
|
+
isLeaf: true
|
|
112428
|
+
};
|
|
112429
|
+
}
|
|
112430
|
+
if (Array.isArray(item) || isPlainObject(item)) {
|
|
112431
|
+
const children = valueToTreeNodes(item, childPath);
|
|
112432
|
+
return {
|
|
112433
|
+
key: childPath,
|
|
112434
|
+
title: `${seg} (${Array.isArray(item) ? `Array(${item.length})` : `Object(${Object.keys(item).length})`})`,
|
|
112435
|
+
children
|
|
112436
|
+
};
|
|
112437
|
+
}
|
|
112438
|
+
return {
|
|
112439
|
+
key: childPath,
|
|
112440
|
+
title: `${seg}: ${formatJsonTreePrimitive(item)}`,
|
|
112441
|
+
isLeaf: true
|
|
112442
|
+
};
|
|
112443
|
+
});
|
|
112444
|
+
}
|
|
112445
|
+
if (isPlainObject(value)) {
|
|
112446
|
+
const entries = sortObjectEntriesForTree(Object.entries(value));
|
|
112447
|
+
if (entries.length === 0) {
|
|
112448
|
+
return [
|
|
112449
|
+
{
|
|
112450
|
+
key: `${path}.__empty_obj__`,
|
|
112451
|
+
title: "{} (0 keys)",
|
|
112452
|
+
isLeaf: true
|
|
112453
|
+
}
|
|
112454
|
+
];
|
|
112455
|
+
}
|
|
112456
|
+
return entries.map(([k, v])=>{
|
|
112457
|
+
const childPath = `${path}.${escapeDotPathSegment(k)}`;
|
|
112458
|
+
if (v === null || v === undefined || typeof v !== "object") {
|
|
112459
|
+
const text = `${k}: ${formatJsonTreePrimitive(v)}`;
|
|
112460
|
+
const title = text.length > MAX_TITLE_LEN ? /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
112461
|
+
title: text
|
|
112462
|
+
}, /*#__PURE__*/ React.createElement("span", null, text.slice(0, MAX_TITLE_LEN), "…")) : text;
|
|
112463
|
+
return {
|
|
112464
|
+
key: childPath,
|
|
112465
|
+
title,
|
|
112466
|
+
isLeaf: true
|
|
112467
|
+
};
|
|
112468
|
+
}
|
|
112469
|
+
if (Array.isArray(v) || isPlainObject(v)) {
|
|
112470
|
+
const children = valueToTreeNodes(v, childPath);
|
|
112471
|
+
const summary = Array.isArray(v) ? `Array(${v.length})` : `Object(${Object.keys(v).length})`;
|
|
112472
|
+
return {
|
|
112473
|
+
key: childPath,
|
|
112474
|
+
title: `${k}: ${summary}`,
|
|
112475
|
+
children
|
|
112476
|
+
};
|
|
112477
|
+
}
|
|
112478
|
+
const text = `${k}: ${formatJsonTreePrimitive(v)}`;
|
|
112479
|
+
return {
|
|
112480
|
+
key: childPath,
|
|
112481
|
+
title: text.length > MAX_TITLE_LEN ? /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
112482
|
+
title: text
|
|
112483
|
+
}, /*#__PURE__*/ React.createElement("span", null, text.slice(0, MAX_TITLE_LEN), "…")) : text,
|
|
112484
|
+
isLeaf: true
|
|
112485
|
+
};
|
|
112486
|
+
});
|
|
112487
|
+
}
|
|
112488
|
+
const text = formatJsonTreePrimitive(value);
|
|
112489
|
+
return [
|
|
112490
|
+
{
|
|
112491
|
+
key: path,
|
|
112492
|
+
title: text.length > MAX_TITLE_LEN ? /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
112493
|
+
title: text
|
|
112494
|
+
}, /*#__PURE__*/ React.createElement("span", null, text.slice(0, MAX_TITLE_LEN), "…")) : text,
|
|
112495
|
+
isLeaf: true
|
|
112496
|
+
}
|
|
112497
|
+
];
|
|
112498
|
+
}
|
|
112499
|
+
/** Top-level tree for tabular session output: plain object or array of plain objects. */ function buildTreeData(data) {
|
|
112500
|
+
if (data === null || data === undefined) {
|
|
112501
|
+
return [
|
|
112502
|
+
{
|
|
112503
|
+
key: "root",
|
|
112504
|
+
title: String(data),
|
|
112505
|
+
isLeaf: true
|
|
112506
|
+
}
|
|
112507
|
+
];
|
|
112508
|
+
}
|
|
112509
|
+
if (Array.isArray(data)) {
|
|
112510
|
+
if (data.length === 0) {
|
|
112511
|
+
return [
|
|
112512
|
+
{
|
|
112513
|
+
key: "$top",
|
|
112514
|
+
title: "Array (0 items)",
|
|
112515
|
+
isLeaf: true
|
|
112516
|
+
}
|
|
112517
|
+
];
|
|
112518
|
+
}
|
|
112519
|
+
const children = data.map((item, index)=>{
|
|
112520
|
+
const path = `$root[${index}]`;
|
|
112521
|
+
if (!isPlainObject(item)) {
|
|
112522
|
+
return {
|
|
112523
|
+
key: path,
|
|
112524
|
+
title: `[${index}]: ${formatJsonTreePrimitive(item)}`,
|
|
112525
|
+
isLeaf: true
|
|
112526
|
+
};
|
|
112527
|
+
}
|
|
112528
|
+
const itemChildren = valueToTreeNodes(item, path);
|
|
112529
|
+
return {
|
|
112530
|
+
key: path,
|
|
112531
|
+
title: `[${index}] (${Object.keys(item).length} keys)`,
|
|
112532
|
+
children: itemChildren
|
|
112533
|
+
};
|
|
112534
|
+
});
|
|
112535
|
+
return [
|
|
112536
|
+
{
|
|
112537
|
+
key: "$top",
|
|
112538
|
+
title: `Array (${data.length} items)`,
|
|
112539
|
+
children
|
|
112540
|
+
}
|
|
112541
|
+
];
|
|
112542
|
+
}
|
|
112543
|
+
if (isPlainObject(data)) {
|
|
112544
|
+
const objectKeys = Object.keys(data);
|
|
112545
|
+
if (objectKeys.length === 0) {
|
|
112546
|
+
return [
|
|
112547
|
+
{
|
|
112548
|
+
key: "$top",
|
|
112549
|
+
title: "Object (0 keys)",
|
|
112550
|
+
isLeaf: true
|
|
112551
|
+
}
|
|
112552
|
+
];
|
|
112553
|
+
}
|
|
112554
|
+
const children = valueToTreeNodes(data, "$root");
|
|
112555
|
+
return [
|
|
112556
|
+
{
|
|
112557
|
+
key: "$top",
|
|
112558
|
+
title: `Object (${objectKeys.length} keys)`,
|
|
112559
|
+
children
|
|
112560
|
+
}
|
|
112561
|
+
];
|
|
112562
|
+
}
|
|
112563
|
+
return valueToTreeNodes(data, "$root");
|
|
112564
|
+
}
|
|
112565
|
+
|
|
112753
112566
|
const getNodeLatency = (node)=>node.details?.internals?.latency?.total_time ?? 0;
|
|
112567
|
+
/** Tool/agent failure is carried on the incoming edge's details.status (e.g. Failed), same as flow edges and session I/O. */ function isNodeFailureFromIncomingEdge(run, nodeId) {
|
|
112568
|
+
const incoming = run.edges?.filter((e)=>e.target === nodeId) ?? [];
|
|
112569
|
+
const status = incoming[0]?.details?.status;
|
|
112570
|
+
return Boolean(status && getStatusColor(status) === "error");
|
|
112571
|
+
}
|
|
112754
112572
|
// Parse tree node key to extract metadata (format: "node::runId::nodeId" to handle dashes in IDs)
|
|
112755
112573
|
const parseTreeNodeKey = (key)=>{
|
|
112756
112574
|
if (key.startsWith("flow-")) {
|
|
@@ -112860,13 +112678,15 @@ const buildNodeTree = (run)=>{
|
|
|
112860
112678
|
const childLatency = children.reduce((s, c)=>s + (c.subtreeLatency ?? 0), 0);
|
|
112861
112679
|
const subtreeLatency = getNodeLatency(node) + childLatency;
|
|
112862
112680
|
const isTool = node.node_type === "Tool";
|
|
112681
|
+
const failed = isNodeFailureFromIncomingEdge(run, node.identifier);
|
|
112682
|
+
const iconBg = failed ? "#ff4d4f" : isTool ? "#1890ff" : "#52c41a";
|
|
112863
112683
|
const icon = /*#__PURE__*/ React.createElement("span", {
|
|
112864
112684
|
style: {
|
|
112865
112685
|
display: "block",
|
|
112866
112686
|
width: 22,
|
|
112867
112687
|
height: 22,
|
|
112868
112688
|
borderRadius: 4,
|
|
112869
|
-
background:
|
|
112689
|
+
background: iconBg
|
|
112870
112690
|
}
|
|
112871
112691
|
}, isTool ? /*#__PURE__*/ React.createElement(Wrench, {
|
|
112872
112692
|
size: 14,
|
|
@@ -112998,7 +112818,6 @@ const useShareAgentSession = (session)=>{
|
|
|
112998
112818
|
const { Text } = Typography;
|
|
112999
112819
|
// Shared theme color fallbacks
|
|
113000
112820
|
const DEFAULT_THEME_COLORS = {
|
|
113001
|
-
mutedForeground: "hsl(215.4 16.3% 46.9%)",
|
|
113002
112821
|
border: "hsl(214.3 31.8% 91.4%)",
|
|
113003
112822
|
foreground: "hsl(222.2 84% 4.9%)"
|
|
113004
112823
|
};
|
|
@@ -113027,145 +112846,6 @@ const isTabularData = (data)=>{
|
|
|
113027
112846
|
}
|
|
113028
112847
|
return false;
|
|
113029
112848
|
};
|
|
113030
|
-
const ObjectCardRenderer = ({ data, isDarkMode })=>{
|
|
113031
|
-
const { theme } = useTheme$1();
|
|
113032
|
-
const themeColors = theme?.colors || DEFAULT_THEME_COLORS;
|
|
113033
|
-
// Helper to render a value (handles nested objects/arrays)
|
|
113034
|
-
const renderValue = (value)=>{
|
|
113035
|
-
if (value === null || value === undefined) {
|
|
113036
|
-
return /*#__PURE__*/ React.createElement("span", {
|
|
113037
|
-
style: {
|
|
113038
|
-
color: themeColors.mutedForeground
|
|
113039
|
-
}
|
|
113040
|
-
}, "null");
|
|
113041
|
-
}
|
|
113042
|
-
// Handle nested objects
|
|
113043
|
-
if (typeof value === "object" && !Array.isArray(value) && value.constructor === Object) {
|
|
113044
|
-
const nestedItems = Object.entries(value).map(([key, val])=>({
|
|
113045
|
-
key: `nested-${key}`,
|
|
113046
|
-
label: key,
|
|
113047
|
-
children: renderValue(val)
|
|
113048
|
-
}));
|
|
113049
|
-
return /*#__PURE__*/ React.createElement(Collapse, {
|
|
113050
|
-
items: [
|
|
113051
|
-
{
|
|
113052
|
-
key: "nested-object",
|
|
113053
|
-
label: /*#__PURE__*/ React.createElement("span", {
|
|
113054
|
-
style: {
|
|
113055
|
-
fontSize: "12px"
|
|
113056
|
-
}
|
|
113057
|
-
}, "Object (", Object.keys(value).length, " keys)"),
|
|
113058
|
-
children: /*#__PURE__*/ React.createElement(Descriptions, {
|
|
113059
|
-
column: 1,
|
|
113060
|
-
size: "small",
|
|
113061
|
-
items: nestedItems,
|
|
113062
|
-
style: {
|
|
113063
|
-
marginTop: "8px"
|
|
113064
|
-
}
|
|
113065
|
-
})
|
|
113066
|
-
}
|
|
113067
|
-
],
|
|
113068
|
-
size: "small",
|
|
113069
|
-
style: {
|
|
113070
|
-
background: "transparent"
|
|
113071
|
-
}
|
|
113072
|
-
});
|
|
113073
|
-
}
|
|
113074
|
-
// Handle arrays
|
|
113075
|
-
if (Array.isArray(value)) {
|
|
113076
|
-
return /*#__PURE__*/ React.createElement(Collapse, {
|
|
113077
|
-
items: [
|
|
113078
|
-
{
|
|
113079
|
-
key: "nested-array",
|
|
113080
|
-
label: /*#__PURE__*/ React.createElement("span", {
|
|
113081
|
-
style: {
|
|
113082
|
-
fontSize: "12px"
|
|
113083
|
-
}
|
|
113084
|
-
}, "Array (", value.length, " items)"),
|
|
113085
|
-
children: /*#__PURE__*/ React.createElement("div", {
|
|
113086
|
-
style: {
|
|
113087
|
-
marginTop: "8px"
|
|
113088
|
-
}
|
|
113089
|
-
}, value.map((item, idx)=>/*#__PURE__*/ React.createElement("div", {
|
|
113090
|
-
key: idx,
|
|
113091
|
-
style: {
|
|
113092
|
-
marginBottom: "8px"
|
|
113093
|
-
}
|
|
113094
|
-
}, typeof item === "object" && item !== null && !Array.isArray(item) ? /*#__PURE__*/ React.createElement(Descriptions, {
|
|
113095
|
-
column: 1,
|
|
113096
|
-
size: "small",
|
|
113097
|
-
items: Object.entries(item).map(([key, val])=>({
|
|
113098
|
-
key: `array-item-${idx}-${key}`,
|
|
113099
|
-
label: key,
|
|
113100
|
-
children: renderValue(val)
|
|
113101
|
-
}))
|
|
113102
|
-
}) : /*#__PURE__*/ React.createElement("pre", {
|
|
113103
|
-
style: {
|
|
113104
|
-
margin: 0,
|
|
113105
|
-
padding: "8px",
|
|
113106
|
-
background: isDarkMode ? "#1f1f1f" : "#fafafa",
|
|
113107
|
-
border: `1px solid ${themeColors.border}`,
|
|
113108
|
-
borderRadius: "4px",
|
|
113109
|
-
fontSize: "12px",
|
|
113110
|
-
whiteSpace: "pre-wrap",
|
|
113111
|
-
wordWrap: "break-word"
|
|
113112
|
-
}
|
|
113113
|
-
}, JSON.stringify(item, null, 2)))))
|
|
113114
|
-
}
|
|
113115
|
-
],
|
|
113116
|
-
size: "small",
|
|
113117
|
-
style: {
|
|
113118
|
-
background: "transparent"
|
|
113119
|
-
}
|
|
113120
|
-
});
|
|
113121
|
-
}
|
|
113122
|
-
// Handle primitive values
|
|
113123
|
-
return /*#__PURE__*/ React.createElement("span", null, String(value));
|
|
113124
|
-
};
|
|
113125
|
-
// Normalize to array
|
|
113126
|
-
const objectsArray = Array.isArray(data) ? data : [
|
|
113127
|
-
data
|
|
113128
|
-
];
|
|
113129
|
-
return /*#__PURE__*/ React.createElement("div", {
|
|
113130
|
-
style: {
|
|
113131
|
-
display: "flex",
|
|
113132
|
-
flexDirection: "column",
|
|
113133
|
-
gap: "12px"
|
|
113134
|
-
}
|
|
113135
|
-
}, objectsArray.map((obj, index)=>{
|
|
113136
|
-
if (!obj || typeof obj !== "object") {
|
|
113137
|
-
return null;
|
|
113138
|
-
}
|
|
113139
|
-
const items = Object.entries(obj).map(([key, value])=>({
|
|
113140
|
-
key,
|
|
113141
|
-
label: key,
|
|
113142
|
-
children: renderValue(value)
|
|
113143
|
-
}));
|
|
113144
|
-
return /*#__PURE__*/ React.createElement(Card, {
|
|
113145
|
-
key: index,
|
|
113146
|
-
size: "small",
|
|
113147
|
-
style: {
|
|
113148
|
-
background: isDarkMode ? "#1f1f1f" : "#fff",
|
|
113149
|
-
border: `1px solid ${themeColors.border}`
|
|
113150
|
-
},
|
|
113151
|
-
bodyStyle: {
|
|
113152
|
-
padding: "16px"
|
|
113153
|
-
}
|
|
113154
|
-
}, /*#__PURE__*/ React.createElement(Descriptions, {
|
|
113155
|
-
column: 1,
|
|
113156
|
-
size: "small",
|
|
113157
|
-
items: items,
|
|
113158
|
-
labelStyle: {
|
|
113159
|
-
color: themeColors.mutedForeground,
|
|
113160
|
-
fontWeight: 500,
|
|
113161
|
-
width: "30%"
|
|
113162
|
-
},
|
|
113163
|
-
contentStyle: {
|
|
113164
|
-
color: themeColors.foreground
|
|
113165
|
-
}
|
|
113166
|
-
}));
|
|
113167
|
-
}));
|
|
113168
|
-
};
|
|
113169
112849
|
// Helper function to format output as text
|
|
113170
112850
|
const formatOutputAsText = (output, toolOutput)=>{
|
|
113171
112851
|
if (toolOutput !== null && toolOutput !== undefined) {
|
|
@@ -113461,9 +113141,8 @@ const NodeDetailsPanel = ({ selectedNode, session, isDarkMode })=>{
|
|
|
113461
113141
|
label: /*#__PURE__*/ React.createElement(Text, {
|
|
113462
113142
|
strong: true
|
|
113463
113143
|
}, "Outputs"),
|
|
113464
|
-
children: hasOutputs ? isToolOutputTabular ? /*#__PURE__*/ React.createElement(
|
|
113465
|
-
data: toolOutput
|
|
113466
|
-
isDarkMode: isDarkMode
|
|
113144
|
+
children: hasOutputs ? isToolOutputTabular ? /*#__PURE__*/ React.createElement(JsonValueTree, {
|
|
113145
|
+
data: toolOutput
|
|
113467
113146
|
}) : /*#__PURE__*/ React.createElement("pre", {
|
|
113468
113147
|
style: {
|
|
113469
113148
|
margin: 0,
|
|
@@ -113599,7 +113278,7 @@ const RunContent = ({ run, isDarkMode, showTimeline })=>{
|
|
|
113599
113278
|
height: "100%"
|
|
113600
113279
|
})));
|
|
113601
113280
|
};
|
|
113602
|
-
const SessionDetails = ({ session, open, onClose })=>{
|
|
113281
|
+
const SessionDetails = ({ session, open, onClose, initialNodeId, initialRunId, loading = false })=>{
|
|
113603
113282
|
const { isDarkMode, theme } = useTheme$1();
|
|
113604
113283
|
const [isFullScreen, setIsFullScreen] = React.useState(false);
|
|
113605
113284
|
const [selectedNodeKey, setSelectedNodeKey] = React.useState(null);
|
|
@@ -113652,8 +113331,7 @@ const SessionDetails = ({ session, open, onClose })=>{
|
|
|
113652
113331
|
}, [
|
|
113653
113332
|
open
|
|
113654
113333
|
]);
|
|
113655
|
-
// Default to first root node when session loads
|
|
113656
|
-
// Combined with session_id reset to avoid effect ordering overwriting the selection.
|
|
113334
|
+
// Default to first root node when session loads, or use initialNodeId/initialRunId when provided.
|
|
113657
113335
|
const hasAutoSelectedRef = React.useRef(false);
|
|
113658
113336
|
React.useEffect(()=>{
|
|
113659
113337
|
if (!open) {
|
|
@@ -113662,6 +113340,19 @@ const SessionDetails = ({ session, open, onClose })=>{
|
|
|
113662
113340
|
}
|
|
113663
113341
|
if (!session?.runs?.length) return;
|
|
113664
113342
|
if (hasAutoSelectedRef.current && selectedNodeInfo !== null) return;
|
|
113343
|
+
// Prefer initial node when provided (e.g. from evaluation link)
|
|
113344
|
+
if (initialNodeId) {
|
|
113345
|
+
const run = initialRunId ? session.runs.find((r)=>r.run_id === initialRunId) : session.runs.find((r)=>r.nodes?.some((n)=>n.identifier === initialNodeId));
|
|
113346
|
+
if (run?.run_id && getNodeFromRun(initialNodeId, run)) {
|
|
113347
|
+
handleSelectNode({
|
|
113348
|
+
nodeId: initialNodeId,
|
|
113349
|
+
runId: run.run_id
|
|
113350
|
+
});
|
|
113351
|
+
hasAutoSelectedRef.current = true;
|
|
113352
|
+
return;
|
|
113353
|
+
}
|
|
113354
|
+
}
|
|
113355
|
+
// Fallback: first root node
|
|
113665
113356
|
for (const run of session.runs){
|
|
113666
113357
|
const firstRoot = getFirstRootNodeFromRun(run);
|
|
113667
113358
|
if (firstRoot && run.run_id) {
|
|
@@ -113678,7 +113369,9 @@ const SessionDetails = ({ session, open, onClose })=>{
|
|
|
113678
113369
|
}, [
|
|
113679
113370
|
open,
|
|
113680
113371
|
session,
|
|
113681
|
-
selectedNodeInfo
|
|
113372
|
+
selectedNodeInfo,
|
|
113373
|
+
initialNodeId,
|
|
113374
|
+
initialRunId
|
|
113682
113375
|
]);
|
|
113683
113376
|
// Reset hasAutoSelectedRef when session changes so auto-select runs for the new session
|
|
113684
113377
|
React.useEffect(()=>{
|
|
@@ -113723,7 +113416,7 @@ const SessionDetails = ({ session, open, onClose })=>{
|
|
|
113723
113416
|
size: "small"
|
|
113724
113417
|
})), /*#__PURE__*/ React.createElement(Divider, {
|
|
113725
113418
|
type: "vertical"
|
|
113726
|
-
}), /*#__PURE__*/ React.createElement(Tooltip, {
|
|
113419
|
+
}), /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
113727
113420
|
title: "Show Session Details"
|
|
113728
113421
|
}, /*#__PURE__*/ React.createElement(Button$1, {
|
|
113729
113422
|
type: "text",
|
|
@@ -113732,7 +113425,7 @@ const SessionDetails = ({ session, open, onClose })=>{
|
|
|
113732
113425
|
}),
|
|
113733
113426
|
onClick: ()=>setIsFullScreen(false),
|
|
113734
113427
|
disabled: !session?.session_id
|
|
113735
|
-
}, "Session Details"))) : /*#__PURE__*/ React.createElement(Tooltip, {
|
|
113428
|
+
}, "Session Details"))) : /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
113736
113429
|
title: "Open Visualizer"
|
|
113737
113430
|
}, /*#__PURE__*/ React.createElement(Button$1, {
|
|
113738
113431
|
type: "text",
|
|
@@ -113743,7 +113436,7 @@ const SessionDetails = ({ session, open, onClose })=>{
|
|
|
113743
113436
|
disabled: !session?.session_id
|
|
113744
113437
|
}, "Visualizer")), /*#__PURE__*/ React.createElement(Divider, {
|
|
113745
113438
|
type: "vertical"
|
|
113746
|
-
}), /*#__PURE__*/ React.createElement(Tooltip, {
|
|
113439
|
+
}), /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
113747
113440
|
title: "Copy Session ID to Clipboard"
|
|
113748
113441
|
}, /*#__PURE__*/ React.createElement(Button$1, {
|
|
113749
113442
|
type: "text",
|
|
@@ -113752,7 +113445,7 @@ const SessionDetails = ({ session, open, onClose })=>{
|
|
|
113752
113445
|
}),
|
|
113753
113446
|
onClick: handleCopyId,
|
|
113754
113447
|
disabled: !session?.session_id
|
|
113755
|
-
})), /*#__PURE__*/ React.createElement(Tooltip, {
|
|
113448
|
+
})), /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
113756
113449
|
title: "Coming Soon!"
|
|
113757
113450
|
}, /*#__PURE__*/ React.createElement(Button$1, {
|
|
113758
113451
|
type: "text",
|
|
@@ -113771,7 +113464,18 @@ const SessionDetails = ({ session, open, onClose })=>{
|
|
|
113771
113464
|
flexDirection: "column"
|
|
113772
113465
|
}
|
|
113773
113466
|
}
|
|
113774
|
-
},
|
|
113467
|
+
}, loading ? /*#__PURE__*/ React.createElement("div", {
|
|
113468
|
+
style: {
|
|
113469
|
+
display: "flex",
|
|
113470
|
+
alignItems: "center",
|
|
113471
|
+
justifyContent: "center",
|
|
113472
|
+
height: "100%",
|
|
113473
|
+
color: isDarkMode ? "#8c8c8c" : "#595959"
|
|
113474
|
+
}
|
|
113475
|
+
}, /*#__PURE__*/ React.createElement(Spin, {
|
|
113476
|
+
size: "large",
|
|
113477
|
+
tip: "Loading session..."
|
|
113478
|
+
})) : !session ? /*#__PURE__*/ React.createElement("div", {
|
|
113775
113479
|
style: {
|
|
113776
113480
|
display: "flex",
|
|
113777
113481
|
alignItems: "center",
|
|
@@ -114030,14 +113734,20 @@ function dtoMetricToMetric(def) {
|
|
|
114030
113734
|
};
|
|
114031
113735
|
}
|
|
114032
113736
|
}
|
|
114033
|
-
// Build runs from agents.agent_node_ids
|
|
114034
|
-
const
|
|
114035
|
-
|
|
114036
|
-
|
|
114037
|
-
|
|
113737
|
+
// Build runs from agents.agent_node_ids (support legacy string[] and new { session_id, agent_node_id }[])
|
|
113738
|
+
const agentNodeEntries = evalDto.agents.flatMap((a)=>{
|
|
113739
|
+
const ids = a.agent_node_ids ?? [];
|
|
113740
|
+
return ids.map((entry)=>typeof entry === "string" ? {
|
|
113741
|
+
session_id: "",
|
|
113742
|
+
agent_node_id: entry
|
|
113743
|
+
} : entry);
|
|
113744
|
+
});
|
|
113745
|
+
const runs = agentNodeEntries.map(({ session_id, agent_node_id })=>({
|
|
113746
|
+
session_id,
|
|
113747
|
+
run_id: agent_node_id,
|
|
114038
113748
|
results: {}
|
|
114039
113749
|
}));
|
|
114040
|
-
// Agent name(s) for display - comma-separated when multiple;
|
|
113750
|
+
// Agent name(s) for display - comma-separated when multiple; pass through agent_node_ids for LLM tree (both formats)
|
|
114041
113751
|
const agents = evalDto.agents.map((a)=>({
|
|
114042
113752
|
agent_name: a.agent_name,
|
|
114043
113753
|
agent_node_ids: a.agent_node_ids
|
|
@@ -114455,7 +114165,7 @@ const EvaluationsCompareDrawer = ({ open, onClose, evaluationId1, evaluationId2,
|
|
|
114455
114165
|
display: "flex",
|
|
114456
114166
|
gap: 8
|
|
114457
114167
|
}
|
|
114458
|
-
}, /*#__PURE__*/ React.createElement(Tooltip, {
|
|
114168
|
+
}, /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
114459
114169
|
title: "Copy IDs to Clipboard"
|
|
114460
114170
|
}, /*#__PURE__*/ React.createElement(Button$1, {
|
|
114461
114171
|
type: "text",
|
|
@@ -114464,7 +114174,7 @@ const EvaluationsCompareDrawer = ({ open, onClose, evaluationId1, evaluationId2,
|
|
|
114464
114174
|
}),
|
|
114465
114175
|
onClick: handleCopyIds,
|
|
114466
114176
|
disabled: !evaluationId1 || !evaluationId2
|
|
114467
|
-
})), /*#__PURE__*/ React.createElement(Tooltip, {
|
|
114177
|
+
})), /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
114468
114178
|
title: "Share"
|
|
114469
114179
|
}, /*#__PURE__*/ React.createElement(Button$1, {
|
|
114470
114180
|
type: "text",
|
|
@@ -114526,7 +114236,7 @@ const EvaluationDetailsDrawer = ({ evaluation, open, onClose, getEvaluatorResult
|
|
|
114526
114236
|
gap: 4,
|
|
114527
114237
|
justifyContent: "space-between"
|
|
114528
114238
|
}
|
|
114529
|
-
}, /*#__PURE__*/ React.createElement("span", null, normalizedEvaluation.name || "Evaluation Details"), normalizedEvaluation.completed_at && /*#__PURE__*/ React.createElement(Tooltip, {
|
|
114239
|
+
}, /*#__PURE__*/ React.createElement("span", null, normalizedEvaluation.name || "Evaluation Details"), normalizedEvaluation.completed_at && /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
114530
114240
|
title: formatDateFriendly(normalizedEvaluation.completed_at),
|
|
114531
114241
|
getPopupContainer: ()=>document.body
|
|
114532
114242
|
}, /*#__PURE__*/ React.createElement("span", {
|
|
@@ -114577,7 +114287,7 @@ const EvaluationDetailsDrawer = ({ evaluation, open, onClose, getEvaluatorResult
|
|
|
114577
114287
|
style: {
|
|
114578
114288
|
marginBottom: "24px"
|
|
114579
114289
|
}
|
|
114580
|
-
}, /*#__PURE__*/ React.createElement(Row
|
|
114290
|
+
}, /*#__PURE__*/ React.createElement(Row, {
|
|
114581
114291
|
gutter: [
|
|
114582
114292
|
24,
|
|
114583
114293
|
16
|
|
@@ -114717,7 +114427,7 @@ const EvaluationDetailsDrawer = ({ evaluation, open, onClose, getEvaluatorResult
|
|
|
114717
114427
|
key: metric.sha || `${metric.name}-${i}`,
|
|
114718
114428
|
style: tagStyle
|
|
114719
114429
|
}, metric.name);
|
|
114720
|
-
return metric.description ? /*#__PURE__*/ React.createElement(Tooltip, {
|
|
114430
|
+
return metric.description ? /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
114721
114431
|
key: metric.sha || `${metric.name}-${i}`,
|
|
114722
114432
|
title: metric.description,
|
|
114723
114433
|
getPopupContainer: ()=>document.body
|
|
@@ -114979,7 +114689,7 @@ const EvaluationsTable = ({ evaluations, loading = false, error = null, onRefres
|
|
|
114979
114689
|
const bVal = b.completed_at ? moment(b.completed_at).unix() : 0;
|
|
114980
114690
|
return aVal - bVal;
|
|
114981
114691
|
},
|
|
114982
|
-
render: (completedAt)=>completedAt ? /*#__PURE__*/ React.createElement(Tooltip, {
|
|
114692
|
+
render: (completedAt)=>completedAt ? /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
114983
114693
|
title: completedAt
|
|
114984
114694
|
}, /*#__PURE__*/ React.createElement("span", null, formatDateShort(completedAt))) : "-"
|
|
114985
114695
|
},
|
|
@@ -117095,12 +116805,17 @@ function isLLMNode(n) {
|
|
|
117095
116805
|
function isLLMAggregateNode(n) {
|
|
117096
116806
|
return isLLMInferenceAggregate(n);
|
|
117097
116807
|
}
|
|
117098
|
-
/**
|
|
116808
|
+
/** Normalize agent_node_ids to { nodeId, sessionId? }[] */ function normalizeAgentNodeEntries(agents) {
|
|
117099
116809
|
const map = new Map();
|
|
117100
116810
|
if (!agents) return map;
|
|
117101
116811
|
for (const a of agents){
|
|
117102
|
-
for (const
|
|
117103
|
-
|
|
116812
|
+
for (const entry of a.agent_node_ids ?? []){
|
|
116813
|
+
const nodeId = typeof entry === "string" ? entry : entry.agent_node_id;
|
|
116814
|
+
const sessionId = typeof entry === "string" ? undefined : entry.session_id;
|
|
116815
|
+
map.set(nodeId, {
|
|
116816
|
+
agentName: a.agent_name,
|
|
116817
|
+
sessionId
|
|
116818
|
+
});
|
|
117104
116819
|
}
|
|
117105
116820
|
}
|
|
117106
116821
|
return map;
|
|
@@ -117112,7 +116827,7 @@ function isLLMAggregateNode(n) {
|
|
|
117112
116827
|
*/ function buildLLMInferenceTreeFromAggregateResults(agg) {
|
|
117113
116828
|
const { roots, nodes, agents } = agg;
|
|
117114
116829
|
const nodeMap = nodes;
|
|
117115
|
-
const
|
|
116830
|
+
const agentNodeInfo = normalizeAgentNodeEntries(agents);
|
|
117116
116831
|
// Resolve root IDs to aggregate nodes
|
|
117117
116832
|
const rootAggregates = [];
|
|
117118
116833
|
for (const id of roots){
|
|
@@ -117145,14 +116860,17 @@ function isLLMAggregateNode(n) {
|
|
|
117145
116860
|
}
|
|
117146
116861
|
const sortedCalls = Array.from(llmCallIndices).sort((a, b)=>a - b);
|
|
117147
116862
|
const sortedMetrics = Array.from(metricNames).sort();
|
|
117148
|
-
// Group agent_node_ids by agent
|
|
117149
|
-
const
|
|
117150
|
-
for (const [nodeId,
|
|
117151
|
-
if (!
|
|
117152
|
-
|
|
116863
|
+
// Group agent_node_ids by agent: { nodeId, sessionId? }[]
|
|
116864
|
+
const agentToNodeEntries = new Map();
|
|
116865
|
+
for (const [nodeId, info] of agentNodeInfo){
|
|
116866
|
+
if (!agentToNodeEntries.has(info.agentName)) agentToNodeEntries.set(info.agentName, []);
|
|
116867
|
+
agentToNodeEntries.get(info.agentName).push({
|
|
116868
|
+
nodeId,
|
|
116869
|
+
sessionId: info.sessionId
|
|
116870
|
+
});
|
|
117153
116871
|
}
|
|
117154
116872
|
// If no agents provided, infer from data: collect unique agent_data_ids into "Agent (root)"
|
|
117155
|
-
if (
|
|
116873
|
+
if (agentToNodeEntries.size === 0) {
|
|
117156
116874
|
const seen = new Set();
|
|
117157
116875
|
for (const aggNode of rootAggregates){
|
|
117158
116876
|
for (const childId of aggNode.children ?? []){
|
|
@@ -117164,17 +116882,21 @@ function isLLMAggregateNode(n) {
|
|
|
117164
116882
|
}
|
|
117165
116883
|
}
|
|
117166
116884
|
if (seen.size > 0) {
|
|
117167
|
-
|
|
116885
|
+
agentToNodeEntries.set("Agent (root)", Array.from(seen).map((nodeId)=>({
|
|
116886
|
+
nodeId,
|
|
116887
|
+
sessionId: undefined
|
|
116888
|
+
})));
|
|
117168
116889
|
}
|
|
117169
116890
|
}
|
|
117170
116891
|
const rows = [];
|
|
117171
|
-
for (const [agentName,
|
|
116892
|
+
for (const [agentName, nodeEntries] of agentToNodeEntries){
|
|
116893
|
+
const nodeIds = nodeEntries.map((e)=>e.nodeId);
|
|
117172
116894
|
const agentKey = `agent-${agentName.replace(/\s+/g, "-")}`;
|
|
117173
116895
|
const llmCallChildren = [];
|
|
117174
116896
|
for (const callIdx of sortedCalls){
|
|
117175
116897
|
const callKey = `${agentKey}-call-${callIdx}`;
|
|
117176
116898
|
const nodeChildren = [];
|
|
117177
|
-
|
|
116899
|
+
nodeEntries.forEach(({ nodeId, sessionId })=>{
|
|
117178
116900
|
const metrics = {};
|
|
117179
116901
|
for (const m of sortedMetrics){
|
|
117180
116902
|
const k = `${nodeId}|${callIdx}|${m}`;
|
|
@@ -117190,6 +116912,7 @@ function isLLMAggregateNode(n) {
|
|
|
117190
116912
|
metrics,
|
|
117191
116913
|
value: metrics[primaryMetric],
|
|
117192
116914
|
agentNodeId: nodeId,
|
|
116915
|
+
sessionId,
|
|
117193
116916
|
children: undefined
|
|
117194
116917
|
});
|
|
117195
116918
|
}
|
|
@@ -117268,7 +116991,19 @@ const LATENCY_RESULT_PREFIXES = [
|
|
|
117268
116991
|
"Latency/",
|
|
117269
116992
|
"Runtime/"
|
|
117270
116993
|
];
|
|
117271
|
-
|
|
116994
|
+
/** Build map from agent_node_id -> session_id from agents (supports both formats) */ function buildAgentIdToSessionMap(agents) {
|
|
116995
|
+
const map = new Map();
|
|
116996
|
+
if (!agents) return map;
|
|
116997
|
+
for (const a of agents){
|
|
116998
|
+
for (const entry of a.agent_node_ids ?? []){
|
|
116999
|
+
const nodeId = typeof entry === "string" ? entry : entry.agent_node_id;
|
|
117000
|
+
const sessionId = typeof entry === "string" ? undefined : entry.session_id;
|
|
117001
|
+
if (sessionId) map.set(nodeId, sessionId);
|
|
117002
|
+
}
|
|
117003
|
+
}
|
|
117004
|
+
return map;
|
|
117005
|
+
}
|
|
117006
|
+
function buildTreeFromProcessedData(latencyByTool, failureRateByTool, usageCountByTool, latencyResults, failureResults, agentIdToSessionId) {
|
|
117272
117007
|
const toolNamesFromAgg = Array.from(new Set([
|
|
117273
117008
|
...latencyByTool.keys(),
|
|
117274
117009
|
...failureRateByTool.keys(),
|
|
@@ -117331,6 +117066,7 @@ function buildTreeFromProcessedData(latencyByTool, failureRateByTool, usageCount
|
|
|
117331
117066
|
const cnt = uniqueLatencies.length;
|
|
117332
117067
|
let failed = 0;
|
|
117333
117068
|
const failList = failureByToolAgentIndex.get(`${toolName}|${aid}`) ?? [];
|
|
117069
|
+
const sessionId = agentIdToSessionId.get(aid);
|
|
117334
117070
|
const leaves = uniqueLatencies.map((l, idx)=>{
|
|
117335
117071
|
const failVal = failureByKey.get(l.key);
|
|
117336
117072
|
const failValByIndex = failList[idx];
|
|
@@ -117338,12 +117074,15 @@ function buildTreeFromProcessedData(latencyByTool, failureRateByTool, usageCount
|
|
|
117338
117074
|
const isFailed = resolvedFail !== undefined && resolvedFail >= 0.5;
|
|
117339
117075
|
if (isFailed) failed++;
|
|
117340
117076
|
const leafName = l.toolNodeId ?? `invocation-${idx + 1}`;
|
|
117077
|
+
const nodeId = l.toolNodeId ?? undefined;
|
|
117341
117078
|
return {
|
|
117342
117079
|
key: `${toolName}-${aid}-${idx}`,
|
|
117343
117080
|
name: leafName,
|
|
117344
117081
|
runtimeMs: Math.round(l.value * 1000),
|
|
117345
117082
|
failureRate: isFailed ? "Failed" : "Success",
|
|
117346
117083
|
level: 3,
|
|
117084
|
+
sessionId: sessionId ?? undefined,
|
|
117085
|
+
nodeId,
|
|
117347
117086
|
children: undefined
|
|
117348
117087
|
};
|
|
117349
117088
|
});
|
|
@@ -117355,6 +117094,8 @@ function buildTreeFromProcessedData(latencyByTool, failureRateByTool, usageCount
|
|
|
117355
117094
|
runtimeMs: Math.round(totalRuntimeMs),
|
|
117356
117095
|
failureRate: agentFailurePct,
|
|
117357
117096
|
level: 2,
|
|
117097
|
+
sessionId: sessionId ?? undefined,
|
|
117098
|
+
nodeId: aid,
|
|
117358
117099
|
children: leaves.length > 0 ? leaves : undefined
|
|
117359
117100
|
});
|
|
117360
117101
|
}
|
|
@@ -117399,12 +117140,13 @@ function buildTreeFromProcessedData(latencyByTool, failureRateByTool, usageCount
|
|
|
117399
117140
|
}
|
|
117400
117141
|
const latencyResults = toolResults.filter((r)=>LATENCY_RESULT_PREFIXES.some((prefix)=>r.result_name?.startsWith(prefix)));
|
|
117401
117142
|
const failureResults = toolResults.filter((r)=>r.result_name?.startsWith("FailureRate/"));
|
|
117402
|
-
|
|
117143
|
+
const agentIdToSessionId = buildAgentIdToSessionMap(agg.agents);
|
|
117144
|
+
return buildTreeFromProcessedData(latencyByTool, failureRateByTool, usageCountByTool, latencyResults, failureResults, agentIdToSessionId);
|
|
117403
117145
|
}
|
|
117404
117146
|
/**
|
|
117405
117147
|
* Builds a tree from raw ToolUseEvaluator results (legacy flat format).
|
|
117406
117148
|
* Structure: tool (level 1) → agent (level 2) → invocation (level 3).
|
|
117407
|
-
*/ function buildToolUseTreeFromRawResults(rawResults) {
|
|
117149
|
+
*/ function buildToolUseTreeFromRawResults(rawResults, agents) {
|
|
117408
117150
|
const toolResults = rawResults.filter((r)=>isToolResult(r));
|
|
117409
117151
|
const toolAggregates = rawResults.filter((r)=>isToolAggregate(r));
|
|
117410
117152
|
const latencyByTool = new Map();
|
|
@@ -117426,7 +117168,8 @@ function buildTreeFromProcessedData(latencyByTool, failureRateByTool, usageCount
|
|
|
117426
117168
|
}
|
|
117427
117169
|
const latencyResults = toolResults.filter((r)=>r.result_name.startsWith("Latency/") || r.result_name.startsWith("Runtime/"));
|
|
117428
117170
|
const failureResults = toolResults.filter((r)=>r.result_name.startsWith("FailureRate/"));
|
|
117429
|
-
|
|
117171
|
+
const agentIdToSessionId = buildAgentIdToSessionMap(agents);
|
|
117172
|
+
return buildTreeFromProcessedData(latencyByTool, failureRateByTool, usageCountByTool, latencyResults, failureResults, agentIdToSessionId);
|
|
117430
117173
|
}
|
|
117431
117174
|
|
|
117432
117175
|
function detectAggregateType(nodes) {
|
|
@@ -117493,7 +117236,7 @@ const DEFAULT_TITLES = {
|
|
|
117493
117236
|
LLMInference: "LLM Inference Evaluator - Aggregate View",
|
|
117494
117237
|
Judge: "Judge Evaluator - Aggregate View"
|
|
117495
117238
|
};
|
|
117496
|
-
const AggregateResultsTable = ({ rawResults = [], aggregateResults, agents, title, evaluatorName })=>{
|
|
117239
|
+
const AggregateResultsTable = ({ rawResults = [], aggregateResults, agents, title, evaluatorName, onAgentNodeClick })=>{
|
|
117497
117240
|
const { theme } = useTheme$1();
|
|
117498
117241
|
const [expandedRowKeys, setExpandedRowKeys] = React.useState([]);
|
|
117499
117242
|
const { aggregateType, dataSource, llmIsTree, llmExpandableKeys } = React.useMemo(()=>{
|
|
@@ -117502,7 +117245,10 @@ const AggregateResultsTable = ({ rawResults = [], aggregateResults, agents, titl
|
|
|
117502
117245
|
if (type === "ToolUse") {
|
|
117503
117246
|
return {
|
|
117504
117247
|
aggregateType: type,
|
|
117505
|
-
dataSource: buildToolUseTreeFromAggregate(
|
|
117248
|
+
dataSource: buildToolUseTreeFromAggregate({
|
|
117249
|
+
...aggregateResults,
|
|
117250
|
+
agents
|
|
117251
|
+
}),
|
|
117506
117252
|
llmIsTree: false,
|
|
117507
117253
|
llmExpandableKeys: []
|
|
117508
117254
|
};
|
|
@@ -117544,7 +117290,7 @@ const AggregateResultsTable = ({ rawResults = [], aggregateResults, agents, titl
|
|
|
117544
117290
|
if (toolResults.length > 0) {
|
|
117545
117291
|
return {
|
|
117546
117292
|
aggregateType: "ToolUse",
|
|
117547
|
-
dataSource: buildToolUseTreeFromRawResults(toolResults),
|
|
117293
|
+
dataSource: buildToolUseTreeFromRawResults(toolResults, agents),
|
|
117548
117294
|
llmIsTree: false,
|
|
117549
117295
|
llmExpandableKeys: []
|
|
117550
117296
|
};
|
|
@@ -117652,17 +117398,37 @@ const AggregateResultsTable = ({ rawResults = [], aggregateResults, agents, titl
|
|
|
117652
117398
|
}), "Name"),
|
|
117653
117399
|
dataIndex: "name",
|
|
117654
117400
|
key: "name",
|
|
117655
|
-
render: (name, row)
|
|
117401
|
+
render: (name, row)=>{
|
|
117402
|
+
const isClickable = row.level === 3 && row.agentNodeId && onAgentNodeClick;
|
|
117403
|
+
return /*#__PURE__*/ React.createElement("span", {
|
|
117656
117404
|
style: {
|
|
117657
117405
|
display: "inline-flex",
|
|
117658
117406
|
alignItems: "center",
|
|
117659
117407
|
gap: 8,
|
|
117660
117408
|
fontFamily: "monospace",
|
|
117661
|
-
fontSize: 13
|
|
117662
|
-
|
|
117409
|
+
fontSize: 13,
|
|
117410
|
+
...isClickable && {
|
|
117411
|
+
cursor: "pointer",
|
|
117412
|
+
color: theme.colors.primary
|
|
117413
|
+
}
|
|
117414
|
+
},
|
|
117415
|
+
onClick: isClickable ? (e)=>{
|
|
117416
|
+
e.stopPropagation();
|
|
117417
|
+
onAgentNodeClick(row.sessionId, row.agentNodeId);
|
|
117418
|
+
} : undefined,
|
|
117419
|
+
onKeyDown: isClickable ? (e)=>{
|
|
117420
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
117421
|
+
e.preventDefault();
|
|
117422
|
+
e.stopPropagation();
|
|
117423
|
+
onAgentNodeClick(row.sessionId, row.agentNodeId);
|
|
117424
|
+
}
|
|
117425
|
+
} : undefined,
|
|
117426
|
+
role: isClickable ? "button" : undefined,
|
|
117427
|
+
tabIndex: isClickable ? 0 : undefined
|
|
117663
117428
|
}, /*#__PURE__*/ React.createElement(LLMTagForLevel, {
|
|
117664
117429
|
level: row.level
|
|
117665
|
-
}), name)
|
|
117430
|
+
}), name);
|
|
117431
|
+
}
|
|
117666
117432
|
},
|
|
117667
117433
|
...METRIC_COLUMNS.map(({ key, title, Icon })=>({
|
|
117668
117434
|
title: /*#__PURE__*/ React.createElement("span", {
|
|
@@ -117705,7 +117471,7 @@ const AggregateResultsTable = ({ rawResults = [], aggregateResults, agents, titl
|
|
|
117705
117471
|
fontSize: 16,
|
|
117706
117472
|
fontWeight: 600
|
|
117707
117473
|
}
|
|
117708
|
-
}, resolvedTitle), /*#__PURE__*/ React.createElement(Tooltip, {
|
|
117474
|
+
}, resolvedTitle), /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
117709
117475
|
title: llmExpandableKeys.length === 0 ? "No expandable rows" : undefined
|
|
117710
117476
|
}, /*#__PURE__*/ React.createElement(Button$1, {
|
|
117711
117477
|
type: "text",
|
|
@@ -117992,17 +117758,37 @@ const AggregateResultsTable = ({ rawResults = [], aggregateResults, agents, titl
|
|
|
117992
117758
|
}), "Name"),
|
|
117993
117759
|
dataIndex: "name",
|
|
117994
117760
|
key: "name",
|
|
117995
|
-
render: (name, row)
|
|
117761
|
+
render: (name, row)=>{
|
|
117762
|
+
const isClickable = (row.level === 2 || row.level === 3) && row.nodeId && onAgentNodeClick;
|
|
117763
|
+
return /*#__PURE__*/ React.createElement("span", {
|
|
117996
117764
|
style: {
|
|
117997
117765
|
display: "inline-flex",
|
|
117998
117766
|
alignItems: "center",
|
|
117999
117767
|
gap: 8,
|
|
118000
117768
|
fontFamily: "monospace",
|
|
118001
|
-
fontSize: 13
|
|
118002
|
-
|
|
117769
|
+
fontSize: 13,
|
|
117770
|
+
...isClickable && {
|
|
117771
|
+
cursor: "pointer",
|
|
117772
|
+
color: theme.colors.primary
|
|
117773
|
+
}
|
|
117774
|
+
},
|
|
117775
|
+
onClick: isClickable ? (e)=>{
|
|
117776
|
+
e.stopPropagation();
|
|
117777
|
+
onAgentNodeClick(row.sessionId, row.nodeId);
|
|
117778
|
+
} : undefined,
|
|
117779
|
+
onKeyDown: isClickable ? (e)=>{
|
|
117780
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
117781
|
+
e.preventDefault();
|
|
117782
|
+
e.stopPropagation();
|
|
117783
|
+
onAgentNodeClick(row.sessionId, row.nodeId);
|
|
117784
|
+
}
|
|
117785
|
+
} : undefined,
|
|
117786
|
+
role: isClickable ? "button" : undefined,
|
|
117787
|
+
tabIndex: isClickable ? 0 : undefined
|
|
118003
117788
|
}, /*#__PURE__*/ React.createElement(TagForLevel, {
|
|
118004
117789
|
level: row.level
|
|
118005
|
-
}), name)
|
|
117790
|
+
}), name);
|
|
117791
|
+
}
|
|
118006
117792
|
},
|
|
118007
117793
|
{
|
|
118008
117794
|
title: /*#__PURE__*/ React.createElement("span", {
|
|
@@ -118115,7 +117901,7 @@ const AggregateResultsTable = ({ rawResults = [], aggregateResults, agents, titl
|
|
|
118115
117901
|
fontSize: 16,
|
|
118116
117902
|
fontWeight: 600
|
|
118117
117903
|
}
|
|
118118
|
-
}, resolvedTitle), /*#__PURE__*/ React.createElement(Tooltip, {
|
|
117904
|
+
}, resolvedTitle), /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
118119
117905
|
title: expandableKeys.length === 0 ? "No expandable rows" : undefined
|
|
118120
117906
|
}, /*#__PURE__*/ React.createElement(Button$1, {
|
|
118121
117907
|
type: "text",
|
|
@@ -118312,11 +118098,14 @@ function isCategoricalMetric(def) {
|
|
|
118312
118098
|
/** Derive agent display name from DTO. */ function deriveAgentName(evaluation) {
|
|
118313
118099
|
return evaluation.agents?.map((a)=>a.agent_name).join(", ") ?? "-";
|
|
118314
118100
|
}
|
|
118315
|
-
/** Derive runs count from DTO (agent_node_ids). */ function deriveRunsCount(evaluation) {
|
|
118316
|
-
return evaluation.agents?.
|
|
118101
|
+
/** Derive runs count from DTO (agent_node_ids). Supports both string[] and { session_id, agent_node_id }[]. */ function deriveRunsCount(evaluation) {
|
|
118102
|
+
return evaluation.agents?.reduce((sum, a)=>{
|
|
118103
|
+
const ids = a.agent_node_ids ?? [];
|
|
118104
|
+
return sum + ids.length;
|
|
118105
|
+
}, 0) ?? 0;
|
|
118317
118106
|
}
|
|
118318
118107
|
|
|
118319
|
-
const EvaluatorResult = ({ evaluation, evaluatorId, backHref })=>{
|
|
118108
|
+
const EvaluatorResult = ({ evaluation, evaluatorId, backHref, onAgentNodeClick })=>{
|
|
118320
118109
|
const { theme } = useTheme$1();
|
|
118321
118110
|
const labelColor = theme.colors.mutedForeground;
|
|
118322
118111
|
const derived = evaluation ? deriveEvaluatorResultData(evaluation, evaluatorId) : null;
|
|
@@ -118365,7 +118154,7 @@ const EvaluatorResult = ({ evaluation, evaluatorId, backHref })=>{
|
|
|
118365
118154
|
background: theme.colors.secondary,
|
|
118366
118155
|
border: `1px solid ${theme.colors.border}`
|
|
118367
118156
|
}
|
|
118368
|
-
}, /*#__PURE__*/ React.createElement(Row
|
|
118157
|
+
}, /*#__PURE__*/ React.createElement(Row, {
|
|
118369
118158
|
gutter: [
|
|
118370
118159
|
32,
|
|
118371
118160
|
16
|
|
@@ -118404,7 +118193,7 @@ const EvaluatorResult = ({ evaluation, evaluatorId, backHref })=>{
|
|
|
118404
118193
|
fontWeight: 600,
|
|
118405
118194
|
fontSize: 15
|
|
118406
118195
|
}
|
|
118407
|
-
}, completed_at ? /*#__PURE__*/ React.createElement(Tooltip, {
|
|
118196
|
+
}, completed_at ? /*#__PURE__*/ React.createElement(Tooltip$1, {
|
|
118408
118197
|
title: formatDateFriendly(completed_at)
|
|
118409
118198
|
}, /*#__PURE__*/ React.createElement("span", null, formatDateRelative(completed_at))) : "-")), /*#__PURE__*/ React.createElement(Col, {
|
|
118410
118199
|
xs: 24,
|
|
@@ -118458,7 +118247,8 @@ const EvaluatorResult = ({ evaluation, evaluatorId, backHref })=>{
|
|
|
118458
118247
|
rawResults: rawResults.filter((r)=>isToolResult(r) || isToolAggregate(r)),
|
|
118459
118248
|
aggregateResults: aggregateResults,
|
|
118460
118249
|
agents: evaluation.agents,
|
|
118461
|
-
evaluatorName: evaluatorName
|
|
118250
|
+
evaluatorName: evaluatorName,
|
|
118251
|
+
onAgentNodeClick: onAgentNodeClick
|
|
118462
118252
|
}))));
|
|
118463
118253
|
};
|
|
118464
118254
|
|
|
@@ -120485,12 +120275,14 @@ exports.createSafeTheme = createSafeTheme;
|
|
|
120485
120275
|
exports.darkTheme = darkTheme;
|
|
120486
120276
|
exports.defaultTheme = defaultTheme$1;
|
|
120487
120277
|
exports.detectContentType = detectContentType;
|
|
120278
|
+
exports.escapeDotPathSegment = escapeDotPathSegment;
|
|
120488
120279
|
exports.evaluationsHaveSameMetrics = evaluationsHaveSameMetrics;
|
|
120489
120280
|
exports.formatCurrency = formatCurrency;
|
|
120490
120281
|
exports.formatDateFriendly = formatDateFriendly;
|
|
120491
120282
|
exports.formatDateRelative = formatDateRelative;
|
|
120492
120283
|
exports.formatDateShort = formatDateShort;
|
|
120493
120284
|
exports.formatDuration = formatDuration;
|
|
120285
|
+
exports.formatJsonTreePrimitive = formatJsonTreePrimitive;
|
|
120494
120286
|
exports.formatLatency = formatLatency;
|
|
120495
120287
|
exports.formatMetricValue = formatMetricValue$1;
|
|
120496
120288
|
exports.formatNumberWithCommas = formatNumberWithCommas;
|
|
@@ -120502,6 +120294,7 @@ exports.getSafeThemeValue = getSafeThemeValue;
|
|
|
120502
120294
|
exports.getSpacing = getSpacing;
|
|
120503
120295
|
exports.getStatusColor = getStatusColor;
|
|
120504
120296
|
exports.isEvaluationDto = isEvaluationDto;
|
|
120297
|
+
exports.isPlainObject = isPlainObject;
|
|
120505
120298
|
exports.lightTheme = lightTheme;
|
|
120506
120299
|
exports.safeStyled = safeStyled;
|
|
120507
120300
|
exports.safeThemeColor = safeThemeColor;
|