langchain_agentx_stream_ui 0.1.0 → 0.1.2

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/default.css CHANGED
@@ -292,6 +292,7 @@
292
292
  font-size: 0.875rem;
293
293
  line-height: var(--lax-density-line-height, 1.35);
294
294
  margin: var(--lax-density-block-margin-y, 0.125rem) 0;
295
+ white-space: nowrap;
295
296
  }
296
297
 
297
298
  .lax-thought-summary__text {
@@ -717,6 +718,16 @@
717
718
  color: var(--lax-foreground);
718
719
  }
719
720
 
721
+ .lax-markdown--rich {
722
+ font-size: 0.9375rem;
723
+ line-height: 1.55;
724
+ }
725
+
726
+ .lax-text-bubble__content--markdown.lax-markdown--rich,
727
+ .lax-text-bubble__content .lax-markdown--rich {
728
+ font-size: 0.9375rem;
729
+ }
730
+
720
731
  /* P2:块顶不留白(首子元素 / 首标题) */
721
732
  .lax-markdown > :first-child {
722
733
  margin-top: 0;
@@ -948,6 +959,396 @@
948
959
  width: 100%;
949
960
  }
950
961
 
962
+ /* Rich Markdown — Mermaid */
963
+ .lax-mermaid {
964
+ margin: 0.75rem 0;
965
+ border: 1px solid var(--lax-border, rgba(0, 0, 0, 0.1));
966
+ border-radius: 6px;
967
+ overflow: hidden;
968
+ background: var(--lax-background, #fff);
969
+ }
970
+
971
+ .lax-mermaid--loading {
972
+ display: flex;
973
+ align-items: center;
974
+ gap: 0.5rem;
975
+ padding: 0.75rem 1rem;
976
+ font-size: 0.8125rem;
977
+ color: var(--lax-muted, #666);
978
+ }
979
+
980
+ .lax-mermaid__loading-dots {
981
+ display: inline-flex;
982
+ gap: 0.2rem;
983
+ }
984
+
985
+ .lax-mermaid__loading-dots span {
986
+ width: 0.35rem;
987
+ height: 0.35rem;
988
+ border-radius: 50%;
989
+ background: var(--lax-accent-primary, #6366f1);
990
+ opacity: 0.7;
991
+ animation: lax-mermaid-pulse 1.2s ease-in-out infinite;
992
+ }
993
+
994
+ .lax-mermaid__loading-dots span:nth-child(2) {
995
+ animation-delay: 0.15s;
996
+ }
997
+
998
+ .lax-mermaid__loading-dots span:nth-child(3) {
999
+ animation-delay: 0.3s;
1000
+ }
1001
+
1002
+ @keyframes lax-mermaid-pulse {
1003
+ 0%, 80%, 100% { opacity: 0.35; transform: scale(0.9); }
1004
+ 40% { opacity: 1; transform: scale(1); }
1005
+ }
1006
+
1007
+ .lax-mermaid__loading-text {
1008
+ font-style: italic;
1009
+ }
1010
+
1011
+ .lax-mermaid__toolbar {
1012
+ display: flex;
1013
+ align-items: center;
1014
+ justify-content: space-between;
1015
+ gap: 0.5rem;
1016
+ padding: 0.25rem 0.5rem;
1017
+ border-bottom: 1px solid var(--lax-border-color, rgba(0, 0, 0, 0.1));
1018
+ background: rgba(0, 0, 0, 0.02);
1019
+ }
1020
+
1021
+ .lax-mermaid__actions {
1022
+ display: flex;
1023
+ align-items: center;
1024
+ gap: 0.35rem;
1025
+ }
1026
+
1027
+ .lax-mermaid__label {
1028
+ font-size: 0.75rem;
1029
+ font-weight: 600;
1030
+ color: var(--lax-muted, #666);
1031
+ text-transform: uppercase;
1032
+ letter-spacing: 0.03em;
1033
+ }
1034
+
1035
+ .lax-mermaid__expand,
1036
+ .lax-mermaid__copy {
1037
+ font-size: 0.75rem;
1038
+ padding: 0.15rem 0.4rem;
1039
+ border: 1px solid var(--lax-border-color, rgba(0, 0, 0, 0.15));
1040
+ border-radius: 4px;
1041
+ background: var(--lax-card-bg, #fff);
1042
+ color: var(--lax-foreground);
1043
+ cursor: pointer;
1044
+ }
1045
+
1046
+ .lax-mermaid__expand:hover,
1047
+ .lax-mermaid__copy:hover {
1048
+ background: rgba(0, 0, 0, 0.04);
1049
+ }
1050
+
1051
+ .lax-mermaid__canvas {
1052
+ overflow: auto;
1053
+ max-height: 480px;
1054
+ padding: 0.5rem;
1055
+ }
1056
+
1057
+ .lax-mermaid__canvas--zoom {
1058
+ min-height: 320px;
1059
+ }
1060
+
1061
+ .lax-mermaid__canvas--clickable {
1062
+ cursor: zoom-in;
1063
+ }
1064
+
1065
+ .lax-mermaid__canvas--clickable:focus-visible {
1066
+ outline: 2px solid var(--lax-accent-primary, #6366f1);
1067
+ outline-offset: 2px;
1068
+ }
1069
+
1070
+ .lax-mermaid__canvas svg {
1071
+ display: block;
1072
+ margin: 0 auto;
1073
+ min-width: min-content;
1074
+ }
1075
+
1076
+ .lax-mermaid__fallback {
1077
+ padding: 0.75rem;
1078
+ margin: 0;
1079
+ font-size: 0.8125rem;
1080
+ color: var(--lax-muted, #666);
1081
+ white-space: pre-wrap;
1082
+ font-family: var(--lax-font-mono, monospace);
1083
+ background: rgba(0, 0, 0, 0.02);
1084
+ }
1085
+
1086
+ .lax-mermaid__error-text {
1087
+ padding: 0.5rem 0.75rem;
1088
+ margin: 0;
1089
+ font-size: 0.8125rem;
1090
+ color: var(--lax-color-error, #c00);
1091
+ }
1092
+
1093
+ /* Mermaid 全屏预览 */
1094
+ .lax-mermaid-modal {
1095
+ position: fixed;
1096
+ inset: 0;
1097
+ z-index: 10000;
1098
+ display: flex;
1099
+ align-items: center;
1100
+ justify-content: center;
1101
+ padding: 1rem;
1102
+ background: rgba(0, 0, 0, 0.65);
1103
+ }
1104
+
1105
+ .lax-mermaid-modal__panel {
1106
+ display: flex;
1107
+ flex-direction: column;
1108
+ width: min(64rem, 100%);
1109
+ max-height: 90vh;
1110
+ border-radius: 8px;
1111
+ overflow: hidden;
1112
+ background: var(--lax-card-bg, #fff);
1113
+ border: 1px solid var(--lax-border-color, rgba(0, 0, 0, 0.12));
1114
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
1115
+ }
1116
+
1117
+ .lax-mermaid-modal__header {
1118
+ display: flex;
1119
+ align-items: center;
1120
+ justify-content: space-between;
1121
+ gap: 0.75rem;
1122
+ padding: 0.5rem 0.75rem;
1123
+ border-bottom: 1px solid var(--lax-border-color, rgba(0, 0, 0, 0.1));
1124
+ }
1125
+
1126
+ .lax-mermaid-modal__title {
1127
+ font-size: 0.875rem;
1128
+ font-weight: 600;
1129
+ color: var(--lax-foreground);
1130
+ }
1131
+
1132
+ .lax-mermaid-modal__controls {
1133
+ display: flex;
1134
+ align-items: center;
1135
+ gap: 0.35rem;
1136
+ }
1137
+
1138
+ .lax-mermaid-modal__zoom {
1139
+ min-width: 3rem;
1140
+ text-align: center;
1141
+ font-size: 0.75rem;
1142
+ color: var(--lax-muted, #666);
1143
+ }
1144
+
1145
+ .lax-mermaid-modal__btn {
1146
+ font-size: 0.8125rem;
1147
+ min-width: 1.75rem;
1148
+ padding: 0.2rem 0.45rem;
1149
+ border: 1px solid var(--lax-border-color, rgba(0, 0, 0, 0.15));
1150
+ border-radius: 4px;
1151
+ background: var(--lax-card-bg, #fff);
1152
+ color: var(--lax-foreground);
1153
+ cursor: pointer;
1154
+ }
1155
+
1156
+ .lax-mermaid-modal__btn:hover {
1157
+ background: rgba(0, 0, 0, 0.04);
1158
+ }
1159
+
1160
+ .lax-mermaid-modal__body {
1161
+ flex: 1;
1162
+ overflow: auto;
1163
+ padding: 1rem;
1164
+ background: rgba(0, 0, 0, 0.02);
1165
+ display: flex;
1166
+ align-items: center;
1167
+ justify-content: center;
1168
+ }
1169
+
1170
+ .lax-mermaid-modal__canvas {
1171
+ transition: transform 0.2s ease-out;
1172
+ }
1173
+
1174
+ /* Rich Markdown — PlantUML */
1175
+ .lax-plantuml {
1176
+ margin: 0.75rem 0;
1177
+ border: 1px solid var(--lax-border-color, rgba(0, 0, 0, 0.1));
1178
+ border-radius: 6px;
1179
+ overflow: hidden;
1180
+ background: var(--lax-card-bg, #fff);
1181
+ }
1182
+
1183
+ .lax-plantuml--loading {
1184
+ display: flex;
1185
+ align-items: center;
1186
+ gap: 0.5rem;
1187
+ padding: 0.75rem 1rem;
1188
+ font-size: 0.8125rem;
1189
+ color: var(--lax-muted, #666);
1190
+ }
1191
+
1192
+ .lax-plantuml__loading-dots {
1193
+ display: inline-flex;
1194
+ gap: 0.2rem;
1195
+ }
1196
+
1197
+ .lax-plantuml__loading-dots span {
1198
+ width: 0.35rem;
1199
+ height: 0.35rem;
1200
+ border-radius: 50%;
1201
+ background: var(--lax-accent-primary, #6366f1);
1202
+ opacity: 0.7;
1203
+ animation: lax-mermaid-pulse 1.2s ease-in-out infinite;
1204
+ }
1205
+
1206
+ .lax-plantuml__loading-dots span:nth-child(2) {
1207
+ animation-delay: 0.15s;
1208
+ }
1209
+
1210
+ .lax-plantuml__loading-dots span:nth-child(3) {
1211
+ animation-delay: 0.3s;
1212
+ }
1213
+
1214
+ .lax-plantuml__loading-text {
1215
+ font-style: italic;
1216
+ }
1217
+
1218
+ .lax-plantuml__toolbar {
1219
+ display: flex;
1220
+ align-items: center;
1221
+ justify-content: space-between;
1222
+ gap: 0.5rem;
1223
+ padding: 0.25rem 0.5rem;
1224
+ border-bottom: 1px solid var(--lax-border-color, rgba(0, 0, 0, 0.1));
1225
+ background: rgba(0, 0, 0, 0.02);
1226
+ }
1227
+
1228
+ .lax-plantuml__actions {
1229
+ display: flex;
1230
+ align-items: center;
1231
+ gap: 0.35rem;
1232
+ }
1233
+
1234
+ .lax-plantuml__label {
1235
+ font-size: 0.75rem;
1236
+ font-weight: 600;
1237
+ color: var(--lax-muted, #666);
1238
+ text-transform: uppercase;
1239
+ letter-spacing: 0.03em;
1240
+ }
1241
+
1242
+ .lax-plantuml__expand,
1243
+ .lax-plantuml__copy {
1244
+ font-size: 0.75rem;
1245
+ padding: 0.15rem 0.4rem;
1246
+ border: 1px solid var(--lax-border-color, rgba(0, 0, 0, 0.15));
1247
+ border-radius: 4px;
1248
+ background: var(--lax-card-bg, #fff);
1249
+ color: var(--lax-foreground);
1250
+ cursor: pointer;
1251
+ }
1252
+
1253
+ .lax-plantuml__expand:hover,
1254
+ .lax-plantuml__copy:hover {
1255
+ background: rgba(0, 0, 0, 0.04);
1256
+ }
1257
+
1258
+ .lax-plantuml__canvas {
1259
+ overflow: auto;
1260
+ max-height: 480px;
1261
+ padding: 0.5rem;
1262
+ }
1263
+
1264
+ .lax-plantuml__canvas--clickable {
1265
+ cursor: zoom-in;
1266
+ }
1267
+
1268
+ .lax-plantuml__canvas svg {
1269
+ display: block;
1270
+ margin: 0 auto;
1271
+ min-width: min-content;
1272
+ }
1273
+
1274
+ .lax-plantuml__fallback {
1275
+ padding: 0.75rem;
1276
+ margin: 0;
1277
+ font-size: 0.8125rem;
1278
+ color: var(--lax-muted, #666);
1279
+ white-space: pre-wrap;
1280
+ font-family: var(--lax-font-mono, monospace);
1281
+ background: rgba(0, 0, 0, 0.02);
1282
+ }
1283
+
1284
+ .lax-plantuml__error-text {
1285
+ padding: 0.5rem 0.75rem;
1286
+ margin: 0;
1287
+ font-size: 0.8125rem;
1288
+ color: var(--lax-color-error, #c00);
1289
+ }
1290
+
1291
+ /* Rich Markdown — code highlight */
1292
+ .lax-markdown--rich pre {
1293
+ overflow-x: auto;
1294
+ padding: 0.75rem 1rem;
1295
+ border-radius: 6px;
1296
+ background: rgba(0, 0, 0, 0.04);
1297
+ font-size: 0.8125rem;
1298
+ line-height: 1.45;
1299
+ }
1300
+
1301
+ .lax-markdown--rich code {
1302
+ font-family: var(--lax-font-mono, ui-monospace, monospace);
1303
+ font-size: 0.875em;
1304
+ }
1305
+
1306
+ .lax-markdown--rich :not(pre) > code {
1307
+ padding: 0.1em 0.35em;
1308
+ border-radius: 4px;
1309
+ background: rgba(0, 0, 0, 0.06);
1310
+ }
1311
+
1312
+ .lax-markdown--rich h1,
1313
+ .lax-markdown--rich h2,
1314
+ .lax-markdown--rich h3,
1315
+ .lax-markdown--rich h4 {
1316
+ margin-top: 1.25em;
1317
+ margin-bottom: 0.5em;
1318
+ font-weight: 600;
1319
+ line-height: 1.3;
1320
+ }
1321
+
1322
+ .lax-markdown--rich h1 { font-size: 1.5em; }
1323
+ .lax-markdown--rich h2 { font-size: 1.25em; }
1324
+ .lax-markdown--rich h3 { font-size: 1.1em; }
1325
+
1326
+ .lax-markdown--rich blockquote {
1327
+ margin: 0.75em 0;
1328
+ padding-left: 1em;
1329
+ border-left: 3px solid var(--lax-border, rgba(0, 0, 0, 0.15));
1330
+ color: var(--lax-muted-foreground, #555);
1331
+ }
1332
+
1333
+ .lax-markdown--rich table {
1334
+ border-collapse: collapse;
1335
+ width: 100%;
1336
+ margin: 0.75em 0;
1337
+ font-size: 0.875em;
1338
+ }
1339
+
1340
+ .lax-markdown--rich th,
1341
+ .lax-markdown--rich td {
1342
+ border: 1px solid var(--lax-border, rgba(0, 0, 0, 0.12));
1343
+ padding: 0.4rem 0.6rem;
1344
+ text-align: left;
1345
+ }
1346
+
1347
+ .lax-markdown--rich th {
1348
+ background: rgba(0, 0, 0, 0.03);
1349
+ font-weight: 600;
1350
+ }
1351
+
951
1352
  /* ============================================================================
952
1353
  子 Agent 块
953
1354
  ============================================================================ */
@@ -1362,3 +1763,424 @@
1362
1763
  color: var(--lax-muted);
1363
1764
  font-size: 0.875rem;
1364
1765
  }
1766
+
1767
+ /* Model API retry(对齐 CC SystemAPIErrorMessage / ⎿ 折叠块) */
1768
+ .lax-model-retry {
1769
+ margin-bottom: var(--lax-density-block-margin-y, 0.125rem);
1770
+ }
1771
+
1772
+ .lax-model-retry__toggle {
1773
+ width: 100%;
1774
+ text-align: left;
1775
+ }
1776
+
1777
+ .lax-model-retry__summary {
1778
+ color: var(--lax-muted);
1779
+ font-family: var(--lax-font-mono);
1780
+ }
1781
+
1782
+ .lax-model-retry__inline-countdown {
1783
+ color: var(--lax-muted);
1784
+ opacity: 0.85;
1785
+ }
1786
+
1787
+ .lax-model-retry__body {
1788
+ padding-left: 1.1rem;
1789
+ margin-top: 0.125rem;
1790
+ }
1791
+
1792
+ .lax-model-retry__error-text {
1793
+ margin: 0.25rem 0 0;
1794
+ white-space: pre-wrap;
1795
+ word-break: break-word;
1796
+ font-family: var(--lax-font-mono);
1797
+ font-size: 0.82rem;
1798
+ color: var(--lax-color-error, #c0392b);
1799
+ }
1800
+
1801
+ .lax-model-retry__category,
1802
+ .lax-model-retry__category-only {
1803
+ color: var(--lax-muted);
1804
+ font-size: 0.875rem;
1805
+ }
1806
+
1807
+ .lax-model-retry__countdown {
1808
+ color: var(--lax-muted);
1809
+ font-size: 0.875rem;
1810
+ margin-top: 0.25rem;
1811
+ }
1812
+
1813
+ .lax-model-retry__hint {
1814
+ color: var(--lax-muted);
1815
+ font-size: 0.82rem;
1816
+ margin-left: 0.35rem;
1817
+ }
1818
+
1819
+ /* ============================================================================
1820
+ Workflow 容器树(D23 P2)
1821
+ ============================================================================ */
1822
+
1823
+ .lax-workflow-session.lax-agent-session {
1824
+ --lax-workflow-indent-unit: 1rem;
1825
+ --lax-workflow-indent: calc(var(--lax-workflow-depth, 0) * var(--lax-workflow-indent-unit, 1rem));
1826
+ }
1827
+
1828
+ .lax-workflow-chrome {
1829
+ display: flex;
1830
+ flex-direction: column;
1831
+ gap: 0.5rem;
1832
+ margin-bottom: 0.5rem;
1833
+ }
1834
+
1835
+ .lax-workflow-container-line {
1836
+ display: flex;
1837
+ flex-wrap: wrap;
1838
+ align-items: baseline;
1839
+ gap: 0.25rem 0.35rem;
1840
+ width: 100%;
1841
+ font-size: 0.9375rem;
1842
+ }
1843
+
1844
+ .lax-workflow-container-line--interactive {
1845
+ padding: 0.125rem 0;
1846
+ border: none;
1847
+ background: transparent;
1848
+ color: inherit;
1849
+ font: inherit;
1850
+ text-align: left;
1851
+ cursor: pointer;
1852
+ }
1853
+
1854
+ .lax-workflow-container-line--root .lax-workflow-container-line__title {
1855
+ font-weight: 600;
1856
+ }
1857
+
1858
+ .lax-workflow-container-line__desc {
1859
+ color: var(--lax-muted);
1860
+ font-weight: 400;
1861
+ font-size: 0.875rem;
1862
+ }
1863
+
1864
+ .lax-workflow-container-line__meta,
1865
+ .lax-workflow-container-line__debug {
1866
+ color: var(--lax-muted);
1867
+ font-size: 0.8125rem;
1868
+ }
1869
+
1870
+ .lax-workflow-container-line__status {
1871
+ margin-left: auto;
1872
+ font-size: 0.8125rem;
1873
+ text-transform: lowercase;
1874
+ color: var(--lax-muted);
1875
+ }
1876
+
1877
+ .lax-workflow-container-line--static-toggle {
1878
+ cursor: pointer;
1879
+ }
1880
+
1881
+ .lax-workflow-expand-trigger {
1882
+ display: block;
1883
+ width: 100%;
1884
+ border: none;
1885
+ background: transparent;
1886
+ color: inherit;
1887
+ font: inherit;
1888
+ text-align: left;
1889
+ cursor: pointer;
1890
+ padding: 0.125rem 0;
1891
+ padding-left: 1.1rem;
1892
+ margin-top: 0.125rem;
1893
+ }
1894
+
1895
+ .lax-workflow-expand-trigger:hover .lax-workflow-expand-trigger__summary,
1896
+ .lax-workflow-expand-trigger:hover .lax-workflow-expand-trigger__hint {
1897
+ text-decoration: underline;
1898
+ text-decoration-color: var(--lax-muted);
1899
+ }
1900
+
1901
+ .lax-workflow-expand-trigger:focus-visible {
1902
+ outline: 2px solid var(--lax-highlight);
1903
+ outline-offset: 2px;
1904
+ border-radius: 2px;
1905
+ }
1906
+
1907
+ .lax-workflow-expand-trigger__summary {
1908
+ display: block;
1909
+ color: var(--lax-muted);
1910
+ font-size: 0.8125rem;
1911
+ }
1912
+
1913
+ .lax-workflow-expand-trigger__teaser {
1914
+ display: block;
1915
+ padding-left: 0.5rem;
1916
+ margin-top: 0.125rem;
1917
+ font-size: 0.875rem;
1918
+ color: var(--lax-foreground);
1919
+ }
1920
+
1921
+ .lax-workflow-expand-trigger__hint {
1922
+ display: block;
1923
+ padding-left: 0.5rem;
1924
+ margin-top: 0.125rem;
1925
+ color: var(--lax-muted);
1926
+ font-size: 0.75rem;
1927
+ }
1928
+
1929
+ .lax-workflow-stage-container__done-teaser {
1930
+ padding-left: 1.1rem;
1931
+ margin-top: 0.125rem;
1932
+ }
1933
+
1934
+ .lax-workflow-stage-container__done-teaser-line {
1935
+ display: block;
1936
+ font-size: 0.875rem;
1937
+ color: var(--lax-foreground);
1938
+ }
1939
+
1940
+ .lax-workflow-stage-container__empty-hint {
1941
+ padding-left: 1.1rem;
1942
+ }
1943
+
1944
+ .lax-workflow-stage-container__empty-hint-text {
1945
+ color: var(--lax-muted);
1946
+ font-size: 0.8125rem;
1947
+ font-style: italic;
1948
+ }
1949
+
1950
+ .lax-workflow-stage-list {
1951
+ list-style: none;
1952
+ margin: 0.35rem 0 0;
1953
+ padding: 0;
1954
+ display: flex;
1955
+ flex-direction: column;
1956
+ gap: 0.35rem;
1957
+ }
1958
+
1959
+ .lax-workflow-stage-list__item {
1960
+ margin: 0;
1961
+ padding: 0;
1962
+ }
1963
+
1964
+ /*
1965
+ * D25 Phase 1:.lax-workflow-virtual-list 及其变体不再被 workflow 主链路引用。
1966
+ * 保留样式定义以兼容仍可能引用 WorkflowVirtualRowList 的回滚路径(风险 R1)。
1967
+ */
1968
+ .lax-workflow-virtual-list {
1969
+ position: relative;
1970
+ overflow: auto;
1971
+ max-height: min(70vh, 720px);
1972
+ }
1973
+
1974
+ .lax-workflow-stage-list--virtual,
1975
+ .lax-workflow-parallel-list--virtual {
1976
+ list-style: none;
1977
+ margin: 0.35rem 0 0;
1978
+ padding: 0;
1979
+ }
1980
+
1981
+ .lax-workflow-stage-list__show-all {
1982
+ display: block;
1983
+ margin: 0.5rem 0 0;
1984
+ padding: 0.35rem 0.5rem;
1985
+ border: 1px dashed var(--lax-border, rgba(128, 128, 128, 0.35));
1986
+ border-radius: 0.25rem;
1987
+ background: transparent;
1988
+ color: var(--lax-muted);
1989
+ font: inherit;
1990
+ font-size: 0.8125rem;
1991
+ cursor: pointer;
1992
+ text-align: left;
1993
+ width: 100%;
1994
+ }
1995
+
1996
+ .lax-workflow-stage-list__show-all:hover {
1997
+ color: var(--lax-fg, inherit);
1998
+ border-color: var(--lax-accent-primary, currentColor);
1999
+ }
2000
+
2001
+ .lax-workflow-stage-list__hidden-hint {
2002
+ margin: 0.35rem 0 0;
2003
+ font-size: 0.75rem;
2004
+ color: var(--lax-muted);
2005
+ font-style: italic;
2006
+ }
2007
+
2008
+ .lax-workflow-loop-replay-pending__hint {
2009
+ color: var(--lax-muted);
2010
+ font-size: 0.8125rem;
2011
+ font-style: italic;
2012
+ margin: 0.25rem 0 0;
2013
+ }
2014
+
2015
+ .lax-workflow-stage-container {
2016
+ padding-left: var(--lax-workflow-indent, 0);
2017
+ }
2018
+
2019
+ .lax-workflow-stage-container__header,
2020
+ .lax-workflow-parallel-item__header {
2021
+ display: flex;
2022
+ flex-wrap: wrap;
2023
+ align-items: baseline;
2024
+ gap: 0.25rem 0.5rem;
2025
+ width: 100%;
2026
+ padding: 0.125rem 0;
2027
+ border: none;
2028
+ background: transparent;
2029
+ color: inherit;
2030
+ font: inherit;
2031
+ text-align: left;
2032
+ cursor: pointer;
2033
+ }
2034
+
2035
+ .lax-workflow-stage-container__status-dot[data-status='running'],
2036
+ .lax-workflow-container-line__status-dot[data-status='running'] {
2037
+ color: var(--lax-color-success, #2d7d46);
2038
+ animation: lax-pulse 1s ease-in-out infinite;
2039
+ }
2040
+
2041
+ .lax-workflow-stage-container__status-dot[data-status='done'] {
2042
+ color: var(--lax-color-done, var(--lax-accent-primary));
2043
+ }
2044
+
2045
+ .lax-workflow-stage-container__status-dot[data-status='pending'] {
2046
+ color: var(--lax-muted);
2047
+ opacity: 0.5;
2048
+ }
2049
+
2050
+ .lax-workflow-stage-container__status-dot[data-status='failed'] {
2051
+ color: var(--lax-color-error, var(--lax-highlight));
2052
+ }
2053
+
2054
+ .lax-workflow-stage-container__status-dot::before {
2055
+ content: '●';
2056
+ }
2057
+
2058
+ .lax-workflow-stage-container__status-dot[data-status='pending']::before {
2059
+ content: '◻';
2060
+ }
2061
+
2062
+ .lax-workflow-stage-container__status-dot[data-status='skipped'] {
2063
+ color: var(--lax-muted);
2064
+ opacity: 0.35;
2065
+ }
2066
+
2067
+ .lax-workflow-stage-container__status-dot[data-status='skipped']::before {
2068
+ content: '◌';
2069
+ }
2070
+
2071
+ .lax-workflow-stage-container__title {
2072
+ font-weight: 500;
2073
+ }
2074
+
2075
+ .lax-workflow-stage-container__progress,
2076
+ .lax-workflow-stage-container__run-status {
2077
+ color: var(--lax-muted);
2078
+ font-size: 0.8125rem;
2079
+ }
2080
+
2081
+ .lax-workflow-stage-container__subtitle {
2082
+ color: var(--lax-muted);
2083
+ font-size: 0.8125rem;
2084
+ padding-left: 1.1rem;
2085
+ margin-top: 0.125rem;
2086
+ }
2087
+
2088
+ .lax-workflow-stage-container__body,
2089
+ .lax-workflow-parallel-item__body {
2090
+ padding-left: 1.1rem;
2091
+ margin-top: 0.25rem;
2092
+ }
2093
+
2094
+ .lax-workflow-stage-container__done-block {
2095
+ padding-left: 1.1rem;
2096
+ margin-top: 0.125rem;
2097
+ }
2098
+
2099
+ .lax-workflow-stage-container__done-label {
2100
+ color: var(--lax-muted);
2101
+ font-size: 0.8125rem;
2102
+ }
2103
+
2104
+ .lax-workflow-stage-container__teaser {
2105
+ padding-left: 0.5rem;
2106
+ margin-top: 0.125rem;
2107
+ font-size: 0.875rem;
2108
+ }
2109
+
2110
+ .lax-workflow-stage-container__expand-hint {
2111
+ color: var(--lax-muted);
2112
+ font-size: 0.75rem;
2113
+ padding-left: 0.5rem;
2114
+ }
2115
+
2116
+ .lax-workflow-parallel-list {
2117
+ display: flex;
2118
+ flex-direction: column;
2119
+ gap: 0.35rem;
2120
+ margin-top: 0.35rem;
2121
+ }
2122
+
2123
+ .lax-workflow-parallel-item {
2124
+ border-left: 2px solid var(--lax-border-color);
2125
+ padding-left: 0.5rem;
2126
+ }
2127
+
2128
+ .lax-workflow-parallel-group {
2129
+ margin-top: 0.35rem;
2130
+ padding-left: 1.1rem;
2131
+ }
2132
+
2133
+ .lax-workflow-parallel-group__summary {
2134
+ display: block;
2135
+ width: 100%;
2136
+ padding: 0.125rem 0;
2137
+ border: none;
2138
+ background: transparent;
2139
+ color: var(--lax-muted);
2140
+ font: inherit;
2141
+ font-size: 0.8125rem;
2142
+ text-align: left;
2143
+ cursor: pointer;
2144
+ }
2145
+
2146
+ .lax-workflow-parallel-group__hint {
2147
+ opacity: 0.85;
2148
+ }
2149
+
2150
+ .lax-workflow-container-children {
2151
+ padding-left: var(--lax-workflow-indent-unit, 1rem);
2152
+ margin-top: 0.25rem;
2153
+ }
2154
+
2155
+ .lax-workflow-subworkflow {
2156
+ padding-left: var(--lax-workflow-indent, 0);
2157
+ }
2158
+
2159
+ .lax-workflow-subworkflow-boundary {
2160
+ border-left: 2px solid var(--lax-border-color);
2161
+ margin-left: 0.35rem;
2162
+ padding-left: calc(var(--lax-workflow-indent-unit, 1rem) - 0.35rem);
2163
+ margin-top: 0.25rem;
2164
+ }
2165
+
2166
+ .lax-workflow-nested-block {
2167
+ display: flex;
2168
+ flex-direction: column;
2169
+ gap: 0.25rem;
2170
+ }
2171
+
2172
+ .lax-workflow-aggregate__waiting-teaser {
2173
+ color: var(--lax-muted);
2174
+ font-size: 0.8125rem;
2175
+ padding-left: 1.1rem;
2176
+ margin-top: 0.125rem;
2177
+ }
2178
+
2179
+ .lax-workflow-route-branch--skipped,
2180
+ .lax-workflow-stage-container--skipped {
2181
+ opacity: 0.55;
2182
+ }
2183
+
2184
+ .lax-workflow-route-branch--skipped .lax-workflow-container-line {
2185
+ cursor: default;
2186
+ }