cardbuddy 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/preview-editor/assets/index-BQKzMPBq.js +79 -0
- package/dist/preview-editor/assets/index-D3zp47Dg.css +1 -0
- package/dist/preview-editor/index.html +2 -2
- package/dist/server-core/cardFiles.js +9 -4
- package/dist/server-core/codeBridge.js +359 -0
- package/dist/server-core/index.js +14 -2
- package/dist/server-core/sliceUpload.js +97 -0
- package/dist/standalone.js +18 -3
- package/dist/vendored/App.vue +268 -45
- package/dist/vendored/api.js +102 -32
- package/dist/vendored/assets/svgIcons/icons.svg +5 -0
- package/dist/vendored/components/ApiCallPanel.vue +127 -0
- package/dist/vendored/components/ApiPayloadTree.vue +34 -1
- package/dist/vendored/components/CardGallery.vue +2 -0
- package/dist/vendored/components/CardSelect.vue +6 -0
- package/dist/vendored/components/ComponentPalette.vue +45 -38
- package/dist/vendored/components/ConfirmDialog.vue +20 -5
- package/dist/vendored/components/DebugPanel.vue +168 -127
- package/dist/vendored/components/EventEditor.vue +27 -3
- package/dist/vendored/components/JsonTree.vue +35 -4
- package/dist/vendored/components/LogValue.vue +2 -1
- package/dist/vendored/components/PropControl.vue +6 -2
- package/dist/vendored/components/StructureTree.vue +53 -2
- package/dist/vendored/components/setters/SetCode.vue +111 -3
- package/dist/vendored/styles/app.css +507 -132
- package/dist/vendored/styles/card-gallery.css +23 -2
- package/dist/vendored/styles/card-select.css +15 -0
- package/dist/vendored/styles/dropdown.css +3 -0
- package/dist/vendored/styles/json-tree.css +1 -1
- package/dist/vendored/styles/node-inspector.css +176 -119
- package/dist/vendored/styles/setters.css +91 -2
- package/dist/vendored/styles/structure-tree.css +158 -15
- package/package.json +1 -1
- package/dist/preview-editor/assets/index-BYB0hngG.js +0 -72
- package/dist/preview-editor/assets/index-CpBZEQDy.css +0 -1
|
@@ -11,8 +11,9 @@
|
|
|
11
11
|
align-items: center;
|
|
12
12
|
justify-content: center;
|
|
13
13
|
padding: 24px;
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
/* 与确认框 .confirm-mask 同款模糊遮罩:暗色半透明 + 2px 背景模糊,不随主题翻转 */
|
|
15
|
+
background: var(--scrim-modal);
|
|
16
|
+
backdrop-filter: blur(var(--scrim-modal-blur));
|
|
16
17
|
}
|
|
17
18
|
.cg-modal {
|
|
18
19
|
display: flex;
|
|
@@ -170,6 +171,26 @@
|
|
|
170
171
|
background: #fff;
|
|
171
172
|
border-bottom: 1px solid var(--border);
|
|
172
173
|
}
|
|
174
|
+
/* 导入角标:悬浮在缩略图右上角,仅「有 .import-meta.json 侧车」的导入卡显示。
|
|
175
|
+
配色用成功态「实心」token(--ok-solid 底 + --on-ok 白字 + --ok-solid 同色描边):
|
|
176
|
+
缩略图恒为白底,半透明的 --ok-soft 压上去会被吃成 ~2:1,实心深绿才达 WCAG AA,
|
|
177
|
+
且与顶栏 .app__badge--ok 同属 success 语义、不引入新色相。圆角取 --radius-xs(方形小标),无阴影。 */
|
|
178
|
+
.cg-tile__tag {
|
|
179
|
+
position: absolute;
|
|
180
|
+
top: 6px;
|
|
181
|
+
right: 6px;
|
|
182
|
+
z-index: 1;
|
|
183
|
+
padding: 2px 8px;
|
|
184
|
+
border-radius: var(--radius-xs);
|
|
185
|
+
background: var(--ok-strong);
|
|
186
|
+
color: var(--on-ok);
|
|
187
|
+
font-size: var(--fs-xs);
|
|
188
|
+
font-weight: 600;
|
|
189
|
+
line-height: 1.5;
|
|
190
|
+
white-space: nowrap;
|
|
191
|
+
user-select: none;
|
|
192
|
+
pointer-events: none;
|
|
193
|
+
}
|
|
173
194
|
.cg-tile__img {
|
|
174
195
|
width: 100%;
|
|
175
196
|
height: 100%;
|
|
@@ -121,6 +121,21 @@
|
|
|
121
121
|
.csel__item--selected .csel__item-id {
|
|
122
122
|
color: var(--accent);
|
|
123
123
|
}
|
|
124
|
+
/* 卡片来源圆点(6x6):绿色 = 导入卡(有 .import-meta.json),灰色 = 本地卡(无来源信息)。
|
|
125
|
+
align-self:center + 固定行高保证与右侧 id/name 文本视觉居中对齐(不受行高影响)。 */
|
|
126
|
+
.csel__dot {
|
|
127
|
+
flex: 0 0 auto;
|
|
128
|
+
align-self: center;
|
|
129
|
+
width: 6px;
|
|
130
|
+
height: 6px;
|
|
131
|
+
border-radius: 50%;
|
|
132
|
+
background: var(--text-faint);
|
|
133
|
+
opacity: 0.75;
|
|
134
|
+
}
|
|
135
|
+
.csel__dot--imported {
|
|
136
|
+
background: var(--ok);
|
|
137
|
+
opacity: 1;
|
|
138
|
+
}
|
|
124
139
|
.csel__item-id {
|
|
125
140
|
font-weight: 600;
|
|
126
141
|
color: var(--text);
|
|
@@ -38,6 +38,9 @@
|
|
|
38
38
|
font-size: 12px;
|
|
39
39
|
font-family: inherit;
|
|
40
40
|
line-height: 1;
|
|
41
|
+
/* button 的 UA 默认 text-align:center 会被 .dd__label 继承,短文案(如「0px」)
|
|
42
|
+
会在触发器里居中;表单下拉统一左对齐 */
|
|
43
|
+
text-align: left;
|
|
41
44
|
cursor: pointer;
|
|
42
45
|
transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
|
|
43
46
|
appearance: none;
|
|
@@ -33,28 +33,28 @@
|
|
|
33
33
|
display: flex;
|
|
34
34
|
align-items: center;
|
|
35
35
|
justify-content: space-between;
|
|
36
|
-
padding:
|
|
36
|
+
padding: 10px 16px;
|
|
37
37
|
border-bottom: 1px solid var(--border);
|
|
38
38
|
flex-shrink: 0;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.ni-title {
|
|
42
|
-
font-size:
|
|
42
|
+
font-size: 13px;
|
|
43
43
|
font-weight: 600;
|
|
44
44
|
color: var(--text);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
.ni-close {
|
|
48
|
-
width:
|
|
49
|
-
height:
|
|
48
|
+
width: 22px;
|
|
49
|
+
height: 22px;
|
|
50
50
|
display: inline-flex;
|
|
51
51
|
align-items: center;
|
|
52
52
|
justify-content: center;
|
|
53
|
-
background:
|
|
54
|
-
border:
|
|
53
|
+
background: none;
|
|
54
|
+
border: none;
|
|
55
55
|
border-radius: 6px;
|
|
56
|
-
color: var(--text-
|
|
57
|
-
font-size:
|
|
56
|
+
color: var(--text-faint);
|
|
57
|
+
font-size: 15px;
|
|
58
58
|
cursor: pointer;
|
|
59
59
|
line-height: 1;
|
|
60
60
|
transition: background 0.15s, color 0.15s;
|
|
@@ -87,8 +87,8 @@
|
|
|
87
87
|
min-height: 0;
|
|
88
88
|
overflow-y: auto;
|
|
89
89
|
/* 仅给内容留 16px 横向间距,滚动条(右侧)紧贴面板边缘;
|
|
90
|
-
|
|
91
|
-
padding: 0 16px
|
|
90
|
+
底栏已改普通贴底 flex 行(不再悬浮),留 12px 收尾呼吸即可 */
|
|
91
|
+
padding: 0 16px 12px;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
.ni-body > .ni-sec {
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
display: flex;
|
|
104
104
|
align-items: center;
|
|
105
105
|
gap: 8px;
|
|
106
|
-
font-size:
|
|
106
|
+
font-size: 13px;
|
|
107
107
|
font-weight: 600;
|
|
108
108
|
color: var(--text);
|
|
109
109
|
margin-bottom: 12px;
|
|
@@ -199,7 +199,7 @@ select.ni-input {
|
|
|
199
199
|
border: 1px solid var(--border);
|
|
200
200
|
border-radius: 8px;
|
|
201
201
|
margin-bottom: 8px;
|
|
202
|
-
background:
|
|
202
|
+
background: transparent;
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
.ni-prop-label {
|
|
@@ -291,7 +291,8 @@ select.ni-input {
|
|
|
291
291
|
font-size: 12px;
|
|
292
292
|
padding: 6px 10px;
|
|
293
293
|
border-radius: 6px;
|
|
294
|
-
background:
|
|
294
|
+
background: transparent;
|
|
295
|
+
border: 1px solid var(--border);
|
|
295
296
|
}
|
|
296
297
|
|
|
297
298
|
.ni-key {
|
|
@@ -314,7 +315,7 @@ select.ni-input {
|
|
|
314
315
|
margin-left: auto;
|
|
315
316
|
font-size: 12px;
|
|
316
317
|
padding: 2px 8px;
|
|
317
|
-
background: var(--
|
|
318
|
+
background: var(--accent-soft);
|
|
318
319
|
border-radius: 4px;
|
|
319
320
|
color: var(--accent);
|
|
320
321
|
}
|
|
@@ -325,7 +326,7 @@ select.ni-input {
|
|
|
325
326
|
padding: 0 10px;
|
|
326
327
|
font-size: 12px;
|
|
327
328
|
border: 1px solid var(--border-strong);
|
|
328
|
-
background:
|
|
329
|
+
background: transparent;
|
|
329
330
|
color: var(--text-dim);
|
|
330
331
|
border-radius: 6px;
|
|
331
332
|
cursor: pointer;
|
|
@@ -362,8 +363,9 @@ select.ni-input {
|
|
|
362
363
|
align-items: center;
|
|
363
364
|
gap: 8px;
|
|
364
365
|
padding: 7px 10px;
|
|
365
|
-
background:
|
|
366
|
-
border
|
|
366
|
+
background: transparent;
|
|
367
|
+
border: 1px solid var(--border);
|
|
368
|
+
border-radius: 6px;
|
|
367
369
|
}
|
|
368
370
|
|
|
369
371
|
.ni-event-name {
|
|
@@ -388,9 +390,9 @@ select.ni-input {
|
|
|
388
390
|
display: flex;
|
|
389
391
|
align-items: center;
|
|
390
392
|
gap: 8px;
|
|
391
|
-
padding: 8px
|
|
393
|
+
padding: 6px 8px;
|
|
392
394
|
border-radius: 6px;
|
|
393
|
-
background:
|
|
395
|
+
background: transparent;
|
|
394
396
|
cursor: pointer;
|
|
395
397
|
user-select: none;
|
|
396
398
|
transition: background 0.15s;
|
|
@@ -403,7 +405,7 @@ select.ni-input {
|
|
|
403
405
|
.ptree__group-name {
|
|
404
406
|
flex: 1 1 auto;
|
|
405
407
|
min-width: 0;
|
|
406
|
-
font-size:
|
|
408
|
+
font-size: 12px;
|
|
407
409
|
font-weight: 600;
|
|
408
410
|
color: var(--text);
|
|
409
411
|
white-space: nowrap;
|
|
@@ -452,9 +454,10 @@ select.ni-input {
|
|
|
452
454
|
}
|
|
453
455
|
|
|
454
456
|
.ptree__label {
|
|
455
|
-
flex: 0 0
|
|
457
|
+
flex: 0 0 88px;
|
|
456
458
|
font-size: 12px;
|
|
457
459
|
color: var(--text-dim);
|
|
460
|
+
text-align: right;
|
|
458
461
|
white-space: nowrap;
|
|
459
462
|
overflow: hidden;
|
|
460
463
|
text-overflow: ellipsis;
|
|
@@ -465,21 +468,16 @@ select.ni-input {
|
|
|
465
468
|
min-width: 0;
|
|
466
469
|
}
|
|
467
470
|
|
|
468
|
-
/*
|
|
471
|
+
/* 底栏:普通 flex 行贴底,发丝线分隔,不叠悬浮阴影(与事件抽屉 .ee-foot 统一) */
|
|
469
472
|
.ni-foot {
|
|
470
|
-
|
|
471
|
-
left: 0;
|
|
472
|
-
right: 0;
|
|
473
|
-
bottom: 0;
|
|
474
|
-
z-index: 1;
|
|
473
|
+
flex: 0 0 auto;
|
|
475
474
|
display: flex;
|
|
476
475
|
align-items: center;
|
|
477
476
|
justify-content: space-between;
|
|
478
477
|
gap: 10px;
|
|
479
|
-
padding:
|
|
480
|
-
background: var(--bg-
|
|
478
|
+
padding: 10px 16px;
|
|
479
|
+
background: var(--bg-bar);
|
|
481
480
|
border-top: 1px solid var(--border);
|
|
482
|
-
box-shadow: 0 -8px 24px var(--shadow-card);
|
|
483
481
|
}
|
|
484
482
|
|
|
485
483
|
.ni-tip {
|
|
@@ -497,30 +495,29 @@ select.ni-input {
|
|
|
497
495
|
.ni-btn {
|
|
498
496
|
white-space: nowrap;
|
|
499
497
|
height: var(--ctrl-sm);
|
|
500
|
-
padding: 0
|
|
501
|
-
font-size:
|
|
498
|
+
padding: 0 14px;
|
|
499
|
+
font-size: 12px;
|
|
502
500
|
border-radius: 6px;
|
|
503
|
-
border: 1px solid var(--accent);
|
|
504
|
-
background:
|
|
505
|
-
color: var(--
|
|
501
|
+
border: 1px solid var(--accent-border);
|
|
502
|
+
background: transparent;
|
|
503
|
+
color: var(--accent);
|
|
506
504
|
cursor: pointer;
|
|
507
|
-
transition:
|
|
505
|
+
transition: background 0.15s, color 0.15s;
|
|
508
506
|
}
|
|
509
507
|
|
|
510
508
|
.ni-btn:hover {
|
|
511
|
-
|
|
509
|
+
background: var(--accent-soft);
|
|
512
510
|
}
|
|
513
511
|
|
|
514
512
|
.ni-btn--ghost {
|
|
515
513
|
background: transparent;
|
|
516
|
-
color: var(--text);
|
|
514
|
+
color: var(--text-dim);
|
|
517
515
|
border-color: var(--border-strong);
|
|
518
516
|
}
|
|
519
517
|
|
|
520
518
|
.ni-btn--ghost:hover {
|
|
521
|
-
|
|
522
|
-
color: var(--
|
|
523
|
-
opacity: 1;
|
|
519
|
+
background: var(--bg-hover);
|
|
520
|
+
color: var(--text);
|
|
524
521
|
}
|
|
525
522
|
|
|
526
523
|
/* ===================== 事件页签(开关式:事件列表 + 开关 + 动作参数) ===================== */
|
|
@@ -535,19 +532,19 @@ select.ni-input {
|
|
|
535
532
|
border: 1px solid var(--border);
|
|
536
533
|
border-radius: 8px;
|
|
537
534
|
overflow: hidden;
|
|
538
|
-
background:
|
|
535
|
+
background: transparent;
|
|
539
536
|
}
|
|
540
537
|
|
|
541
538
|
.ni-evt-head {
|
|
542
539
|
display: flex;
|
|
543
540
|
align-items: center;
|
|
544
541
|
gap: 10px;
|
|
545
|
-
padding: 12px
|
|
542
|
+
padding: 8px 12px;
|
|
546
543
|
}
|
|
547
544
|
|
|
548
545
|
.ni-evt-name {
|
|
549
546
|
flex: 0 0 auto;
|
|
550
|
-
font-size:
|
|
547
|
+
font-size: 12px;
|
|
551
548
|
font-weight: 500;
|
|
552
549
|
color: var(--text);
|
|
553
550
|
white-space: nowrap;
|
|
@@ -563,39 +560,41 @@ select.ni-input {
|
|
|
563
560
|
text-overflow: ellipsis;
|
|
564
561
|
}
|
|
565
562
|
|
|
566
|
-
/*
|
|
563
|
+
/* 开关:与 setter 家族 .st-switch 同语言(发丝线轨道 + soft 开启态),不用实心 accent 填充 */
|
|
567
564
|
.ni-switch {
|
|
568
565
|
flex: 0 0 auto;
|
|
569
566
|
position: relative;
|
|
570
|
-
width:
|
|
571
|
-
height:
|
|
567
|
+
width: 34px;
|
|
568
|
+
height: 18px;
|
|
572
569
|
padding: 0;
|
|
573
570
|
margin: 0;
|
|
574
|
-
border:
|
|
575
|
-
border-radius:
|
|
576
|
-
background: var(--
|
|
571
|
+
border: 1px solid var(--border-strong);
|
|
572
|
+
border-radius: 999px;
|
|
573
|
+
background: var(--bg-hover);
|
|
577
574
|
cursor: pointer;
|
|
578
|
-
transition: background 0.
|
|
575
|
+
transition: background 0.16s, border-color 0.16s;
|
|
579
576
|
flex-shrink: 0;
|
|
580
577
|
}
|
|
581
578
|
|
|
582
579
|
.ni-switch.is-on {
|
|
583
|
-
background: var(--accent);
|
|
580
|
+
background: var(--accent-soft);
|
|
581
|
+
border-color: var(--accent-border);
|
|
584
582
|
}
|
|
585
583
|
|
|
586
584
|
.ni-switch__dot {
|
|
587
585
|
position: absolute;
|
|
588
|
-
top:
|
|
589
|
-
left:
|
|
590
|
-
width:
|
|
591
|
-
height:
|
|
586
|
+
top: 1px;
|
|
587
|
+
left: 1px;
|
|
588
|
+
width: 14px;
|
|
589
|
+
height: 14px;
|
|
592
590
|
border-radius: 50%;
|
|
593
|
-
background: var(--
|
|
594
|
-
transition: transform 0.
|
|
591
|
+
background: var(--text-dim);
|
|
592
|
+
transition: transform 0.16s, background 0.16s;
|
|
595
593
|
}
|
|
596
594
|
|
|
597
595
|
.ni-switch.is-on .ni-switch__dot {
|
|
598
596
|
transform: translateX(16px);
|
|
597
|
+
background: var(--accent);
|
|
599
598
|
}
|
|
600
599
|
|
|
601
600
|
.ni-evt-body {
|
|
@@ -643,8 +642,9 @@ select.ni-input {
|
|
|
643
642
|
}
|
|
644
643
|
|
|
645
644
|
/* ===================== 事件编辑抽屉(EventEditor.vue,右侧滑出) ===================== */
|
|
646
|
-
/* 100vh × calc(100vw - 预览面板宽度)
|
|
647
|
-
|
|
645
|
+
/* 100vh × calc(100vw - 预览面板宽度);上下排布:顶部事件 chip 行 + 动作/脚本编辑区;
|
|
646
|
+
抽屉主体不产生滚动条,脚本编辑区填满剩余高度。轻 chrome:事件列表为顶部可换行
|
|
647
|
+
内联事件项行(不单独占列),底栏发丝线不叠阴影;仅抽屉最外层保留投影区分层级。 */
|
|
648
648
|
|
|
649
649
|
.ee-overlay {
|
|
650
650
|
position: fixed;
|
|
@@ -690,13 +690,13 @@ select.ni-input {
|
|
|
690
690
|
display: flex;
|
|
691
691
|
align-items: center;
|
|
692
692
|
justify-content: space-between;
|
|
693
|
-
padding:
|
|
693
|
+
padding: 10px 16px;
|
|
694
694
|
border-bottom: 1px solid var(--border);
|
|
695
695
|
flex-shrink: 0;
|
|
696
696
|
}
|
|
697
697
|
|
|
698
698
|
.ee-title {
|
|
699
|
-
font-size:
|
|
699
|
+
font-size: 13px;
|
|
700
700
|
font-weight: 600;
|
|
701
701
|
color: var(--text);
|
|
702
702
|
}
|
|
@@ -714,11 +714,11 @@ select.ni-input {
|
|
|
714
714
|
display: inline-flex;
|
|
715
715
|
align-items: center;
|
|
716
716
|
justify-content: center;
|
|
717
|
-
background:
|
|
718
|
-
border:
|
|
717
|
+
background: none;
|
|
718
|
+
border: none;
|
|
719
719
|
border-radius: 6px;
|
|
720
|
-
color: var(--text-
|
|
721
|
-
font-size:
|
|
720
|
+
color: var(--text-faint);
|
|
721
|
+
font-size: 15px;
|
|
722
722
|
cursor: pointer;
|
|
723
723
|
line-height: 1;
|
|
724
724
|
transition: background 0.15s, color 0.15s;
|
|
@@ -727,7 +727,7 @@ select.ni-input {
|
|
|
727
727
|
.ee-close::before { content: '✕'; }
|
|
728
728
|
.ee-close:hover { background: var(--bg-hover); color: var(--text); }
|
|
729
729
|
|
|
730
|
-
/*
|
|
730
|
+
/* 主体:上事件 chip 行 + 下动作/脚本编辑区,纵向排布 */
|
|
731
731
|
.ee-body {
|
|
732
732
|
flex: 1 1 auto;
|
|
733
733
|
min-height: 0;
|
|
@@ -736,61 +736,80 @@ select.ni-input {
|
|
|
736
736
|
overflow: hidden;
|
|
737
737
|
}
|
|
738
738
|
|
|
739
|
-
/*
|
|
739
|
+
/* 顶部事件条:左事件项、右帮助图标,两端对齐 + 垂直居中;
|
|
740
|
+
事件过多的滚动交给 .ee-evt-list 自身,side 不滚动(避免裁切帮助弹层) */
|
|
740
741
|
.ee-side {
|
|
742
|
+
position: relative;
|
|
741
743
|
flex: 0 0 auto;
|
|
742
|
-
max-height: 40%;
|
|
743
744
|
min-width: 0;
|
|
744
745
|
display: flex;
|
|
745
|
-
|
|
746
|
+
align-items: center;
|
|
747
|
+
justify-content: space-between;
|
|
748
|
+
gap: 10px;
|
|
746
749
|
border-bottom: 1px solid var(--border);
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
+
padding: 8px 16px;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
.ee-side > .ee-empty {
|
|
754
|
+
flex: 1 1 auto;
|
|
750
755
|
}
|
|
751
756
|
|
|
752
757
|
.ee-evt-list {
|
|
758
|
+
flex: 1 1 auto;
|
|
759
|
+
min-width: 0;
|
|
753
760
|
display: flex;
|
|
754
|
-
flex-
|
|
755
|
-
gap:
|
|
761
|
+
flex-wrap: wrap;
|
|
762
|
+
gap: 2px 8px;
|
|
763
|
+
/* 约三行高度封顶,超出内部滚动 */
|
|
764
|
+
max-height: 108px;
|
|
765
|
+
overflow-y: auto;
|
|
756
766
|
}
|
|
757
767
|
|
|
768
|
+
/* 事件项:内联字段组(名称 + 开关),不是按钮——无描边无胶囊,仅靠文字色与浅底表达状态:
|
|
769
|
+
关闭 = 弱色名称;开启 = 常色名称;正在编辑 = 浅底 + accent 名称 */
|
|
758
770
|
.ee-evt {
|
|
759
771
|
display: flex;
|
|
760
772
|
align-items: center;
|
|
761
|
-
gap:
|
|
762
|
-
height:
|
|
763
|
-
padding: 0
|
|
764
|
-
border:
|
|
765
|
-
border-radius:
|
|
766
|
-
background:
|
|
773
|
+
gap: 6px;
|
|
774
|
+
height: 24px;
|
|
775
|
+
padding: 0 8px 0 6px;
|
|
776
|
+
border: none;
|
|
777
|
+
border-radius: 6px;
|
|
778
|
+
background: transparent;
|
|
767
779
|
cursor: pointer;
|
|
768
|
-
transition: background 0.15s
|
|
780
|
+
transition: background 0.15s;
|
|
769
781
|
}
|
|
770
782
|
|
|
771
783
|
.ee-evt:hover {
|
|
772
784
|
background: var(--bg-hover);
|
|
773
785
|
}
|
|
774
|
-
|
|
786
|
+
.ee-evt.is-on .ee-evt-name {
|
|
787
|
+
color: var(--text);
|
|
788
|
+
}
|
|
789
|
+
.ee-evt.is-sel {
|
|
790
|
+
background: var(--bg-input);
|
|
791
|
+
}
|
|
792
|
+
.ee-evt.is-sel .ee-evt-name {
|
|
793
|
+
color: var(--accent);
|
|
794
|
+
}
|
|
775
795
|
.ee-evt-name {
|
|
776
796
|
flex: 1 1 auto;
|
|
777
797
|
min-width: 0;
|
|
778
|
-
font-size:
|
|
798
|
+
font-size: 12px;
|
|
779
799
|
font-weight: 500;
|
|
780
|
-
color: var(--text);
|
|
800
|
+
color: var(--text-faint);
|
|
781
801
|
white-space: nowrap;
|
|
782
802
|
overflow: hidden;
|
|
783
803
|
text-overflow: ellipsis;
|
|
784
804
|
}
|
|
785
805
|
|
|
786
|
-
/*
|
|
806
|
+
/* 右侧详情区:填满剩余高度;底栏为普通 flex 行,无需预留悬浮高度 */
|
|
787
807
|
.ee-detail {
|
|
788
808
|
flex: 1 1 auto;
|
|
789
809
|
min-width: 0;
|
|
790
810
|
display: flex;
|
|
791
811
|
flex-direction: column;
|
|
792
|
-
|
|
793
|
-
padding: 16px 24px 76px;
|
|
812
|
+
padding: 12px 16px;
|
|
794
813
|
overflow: hidden;
|
|
795
814
|
}
|
|
796
815
|
|
|
@@ -803,7 +822,7 @@ select.ni-input {
|
|
|
803
822
|
min-height: 0;
|
|
804
823
|
display: flex;
|
|
805
824
|
flex-direction: column;
|
|
806
|
-
margin-top:
|
|
825
|
+
margin-top: 8px;
|
|
807
826
|
overflow: hidden;
|
|
808
827
|
}
|
|
809
828
|
|
|
@@ -820,6 +839,11 @@ select.ni-input {
|
|
|
820
839
|
flex: 1 1 auto;
|
|
821
840
|
min-height: 0;
|
|
822
841
|
}
|
|
842
|
+
/* 代码行语义已由上文(动作类型 / 描述)说明,去掉独占的 label 列把整宽还给编辑器;
|
|
843
|
+
语言改由编辑器右上角 JS 标签标示 */
|
|
844
|
+
.ee-detail-body .ptree__row--block .ptree__label {
|
|
845
|
+
display: none;
|
|
846
|
+
}
|
|
823
847
|
.ee-detail-body .st-code {
|
|
824
848
|
flex: 1 1 auto;
|
|
825
849
|
min-height: 0;
|
|
@@ -875,7 +899,7 @@ select.ni-input {
|
|
|
875
899
|
}
|
|
876
900
|
|
|
877
901
|
.ee-field-label {
|
|
878
|
-
flex: 0 0
|
|
902
|
+
flex: 0 0 64px;
|
|
879
903
|
font-size: 12px;
|
|
880
904
|
color: var(--text-dim);
|
|
881
905
|
text-align: right;
|
|
@@ -902,23 +926,63 @@ select.ni-input {
|
|
|
902
926
|
|
|
903
927
|
select.ee-input { height: 32px; }
|
|
904
928
|
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
929
|
+
/* 帮助图标按钮:与事件项同排的纯图标弱按钮 */
|
|
930
|
+
.ee-help {
|
|
931
|
+
flex: 0 0 auto;
|
|
932
|
+
display: inline-flex;
|
|
933
|
+
align-items: center;
|
|
934
|
+
justify-content: center;
|
|
935
|
+
width: 22px;
|
|
936
|
+
height: 22px;
|
|
937
|
+
padding: 0;
|
|
938
|
+
background: none;
|
|
939
|
+
border: none;
|
|
940
|
+
border-radius: 6px;
|
|
908
941
|
color: var(--text-faint);
|
|
909
|
-
|
|
942
|
+
cursor: pointer;
|
|
943
|
+
transition: color 0.15s, background 0.15s;
|
|
944
|
+
}
|
|
945
|
+
.ee-help:hover {
|
|
946
|
+
color: var(--text);
|
|
947
|
+
background: var(--bg-hover);
|
|
948
|
+
}
|
|
949
|
+
/* 弹层外点击关闭:透明遮罩铺满视口 */
|
|
950
|
+
.ee-help__mask {
|
|
951
|
+
position: fixed;
|
|
952
|
+
inset: 0;
|
|
953
|
+
z-index: 6;
|
|
954
|
+
}
|
|
955
|
+
/* 使用说明弹层:锚定事件条右下角,浮于详情区之上 */
|
|
956
|
+
.ee-help__pop {
|
|
957
|
+
position: absolute;
|
|
958
|
+
top: calc(100% + 4px);
|
|
959
|
+
right: 12px;
|
|
960
|
+
z-index: 7;
|
|
961
|
+
width: min(340px, 78%);
|
|
962
|
+
padding: 8px 10px;
|
|
963
|
+
border: 1px solid var(--border-strong);
|
|
964
|
+
border-radius: 8px;
|
|
965
|
+
background: var(--bg-panel);
|
|
966
|
+
box-shadow: var(--shadow-3);
|
|
967
|
+
}
|
|
968
|
+
.ee-help__text {
|
|
969
|
+
margin: 0;
|
|
970
|
+
font-size: 11px;
|
|
971
|
+
line-height: 1.6;
|
|
972
|
+
color: var(--text-dim);
|
|
973
|
+
white-space: pre-wrap;
|
|
910
974
|
}
|
|
911
975
|
|
|
912
976
|
/* 开关 */
|
|
913
977
|
.ee-switch {
|
|
914
978
|
flex: 0 0 auto;
|
|
915
979
|
position: relative;
|
|
916
|
-
width:
|
|
917
|
-
height:
|
|
980
|
+
width: 30px;
|
|
981
|
+
height: 16px;
|
|
918
982
|
padding: 0;
|
|
919
983
|
margin: 0;
|
|
920
984
|
border: none;
|
|
921
|
-
border-radius:
|
|
985
|
+
border-radius: 8px;
|
|
922
986
|
background: var(--border-strong);
|
|
923
987
|
cursor: pointer;
|
|
924
988
|
transition: background 0.18s;
|
|
@@ -930,14 +994,14 @@ select.ee-input { height: 32px; }
|
|
|
930
994
|
position: absolute;
|
|
931
995
|
top: 2px;
|
|
932
996
|
left: 2px;
|
|
933
|
-
width:
|
|
934
|
-
height:
|
|
997
|
+
width: 12px;
|
|
998
|
+
height: 12px;
|
|
935
999
|
border-radius: 50%;
|
|
936
1000
|
background: var(--on-accent);
|
|
937
1001
|
transition: transform 0.18s;
|
|
938
1002
|
}
|
|
939
1003
|
|
|
940
|
-
.ee-switch.is-on .ee-switch__dot { transform: translateX(
|
|
1004
|
+
.ee-switch.is-on .ee-switch__dot { transform: translateX(14px); }
|
|
941
1005
|
|
|
942
1006
|
.ee-evt-orphan {
|
|
943
1007
|
flex: 0 0 auto;
|
|
@@ -946,22 +1010,16 @@ select.ee-input { height: 32px; }
|
|
|
946
1010
|
color: var(--warn);
|
|
947
1011
|
}
|
|
948
1012
|
|
|
949
|
-
/*
|
|
950
|
-
/* 底部:悬浮操作条,不占布局高度(内容可滚到其下方) */
|
|
1013
|
+
/* 底栏:普通 flex 行贴底,发丝线分隔,不用悬浮阴影 */
|
|
951
1014
|
.ee-foot {
|
|
952
|
-
|
|
953
|
-
left: 0;
|
|
954
|
-
right: 0;
|
|
955
|
-
bottom: 0;
|
|
956
|
-
z-index: 1;
|
|
1015
|
+
flex: 0 0 auto;
|
|
957
1016
|
display: flex;
|
|
958
1017
|
align-items: center;
|
|
959
1018
|
justify-content: space-between;
|
|
960
1019
|
gap: 10px;
|
|
961
|
-
padding:
|
|
962
|
-
background: var(--bg-
|
|
1020
|
+
padding: 10px 16px;
|
|
1021
|
+
background: var(--bg-bar);
|
|
963
1022
|
border-top: 1px solid var(--border);
|
|
964
|
-
box-shadow: 0 -8px 24px var(--shadow-card);
|
|
965
1023
|
}
|
|
966
1024
|
|
|
967
1025
|
.ee-tip {
|
|
@@ -979,25 +1037,24 @@ select.ee-input { height: 32px; }
|
|
|
979
1037
|
.ee-btn {
|
|
980
1038
|
white-space: nowrap;
|
|
981
1039
|
height: var(--ctrl-sm);
|
|
982
|
-
padding: 0
|
|
983
|
-
font-size:
|
|
1040
|
+
padding: 0 14px;
|
|
1041
|
+
font-size: 12px;
|
|
984
1042
|
border-radius: 6px;
|
|
985
|
-
border: 1px solid var(--accent);
|
|
986
|
-
background:
|
|
987
|
-
color: var(--
|
|
1043
|
+
border: 1px solid var(--accent-border);
|
|
1044
|
+
background: transparent;
|
|
1045
|
+
color: var(--accent);
|
|
988
1046
|
cursor: pointer;
|
|
989
|
-
transition:
|
|
1047
|
+
transition: background 0.15s, color 0.15s;
|
|
990
1048
|
}
|
|
991
1049
|
|
|
992
|
-
.ee-btn:hover {
|
|
1050
|
+
.ee-btn:hover { background: var(--accent-soft); }
|
|
993
1051
|
|
|
994
1052
|
.ee-btn--ghost {
|
|
995
1053
|
background: transparent;
|
|
996
|
-
color: var(--text);
|
|
1054
|
+
color: var(--text-dim);
|
|
997
1055
|
border-color: var(--border-strong);
|
|
998
1056
|
}
|
|
999
1057
|
|
|
1000
1058
|
.ee-btn--ghost:hover {
|
|
1001
1059
|
background: var(--bg-hover);
|
|
1002
|
-
opacity: 1;
|
|
1003
1060
|
}
|