cardbuddy 0.6.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.
Files changed (167) hide show
  1. package/README.md +211 -0
  2. package/dist/cli.js +76 -0
  3. package/dist/config.js +63 -0
  4. package/dist/core.js +2 -0
  5. package/dist/preview-editor/assets/apple-touch-icon-BQcES9QK.png +0 -0
  6. package/dist/preview-editor/assets/default-image-wzZYQ86K.png +0 -0
  7. package/dist/preview-editor/assets/favicon-16-Cg6Nrosk.png +0 -0
  8. package/dist/preview-editor/assets/favicon-32-B_1744sp.png +0 -0
  9. package/dist/preview-editor/assets/index-BYB0hngG.js +72 -0
  10. package/dist/preview-editor/assets/index-CpBZEQDy.css +1 -0
  11. package/dist/preview-editor/assets/site-icon-CFMif8z4.png +0 -0
  12. package/dist/preview-editor/assets/svg-symbols-B2exBrAr.svg +118 -0
  13. package/dist/preview-editor/index.html +17 -0
  14. package/dist/server-core/_vendor/finmall-env.mjs +96 -0
  15. package/dist/server-core/assetProxy.js +154 -0
  16. package/dist/server-core/bbox.js +153 -0
  17. package/dist/server-core/browser.js +108 -0
  18. package/dist/server-core/buildDataFromSchema.js +50 -0
  19. package/dist/server-core/cardFiles.js +188 -0
  20. package/dist/server-core/cardHistory.js +156 -0
  21. package/dist/server-core/cardImage.js +85 -0
  22. package/dist/server-core/cardImportMeta.js +139 -0
  23. package/dist/server-core/cardListCache.js +68 -0
  24. package/dist/server-core/cardOpenFolder.js +135 -0
  25. package/dist/server-core/cardSave.js +127 -0
  26. package/dist/server-core/cardSidecar.js +72 -0
  27. package/dist/server-core/cardSync.js +259 -0
  28. package/dist/server-core/cardValidate.js +134 -0
  29. package/dist/server-core/index.js +82 -0
  30. package/dist/server-core/logger.js +241 -0
  31. package/dist/server-core/nodeModels.js +52 -0
  32. package/dist/server-core/renderStatus.js +207 -0
  33. package/dist/server-core/screenshot.js +123 -0
  34. package/dist/server-core/sliceStatic.js +44 -0
  35. package/dist/standalone.js +447 -0
  36. package/dist/vendored/App.vue +2330 -0
  37. package/dist/vendored/api.js +142 -0
  38. package/dist/vendored/assets/apple-touch-icon.png +0 -0
  39. package/dist/vendored/assets/default-image.png +0 -0
  40. package/dist/vendored/assets/favicon-16.png +0 -0
  41. package/dist/vendored/assets/favicon-32.png +0 -0
  42. package/dist/vendored/assets/logo.png +0 -0
  43. package/dist/vendored/assets/site-icon.png +0 -0
  44. package/dist/vendored/assets/svg-symbols.svg +118 -0
  45. package/dist/vendored/assets/svgIcons/icons.svg +54 -0
  46. package/dist/vendored/assets/svgIcons/index.js +39 -0
  47. package/dist/vendored/components/AbsoluteLayout.vue +42 -0
  48. package/dist/vendored/components/AlertCardInstance.vue +58 -0
  49. package/dist/vendored/components/AlertCardLayer.vue +59 -0
  50. package/dist/vendored/components/ApiPayloadTree.vue +168 -0
  51. package/dist/vendored/components/AppToast.vue +37 -0
  52. package/dist/vendored/components/Button.vue +37 -0
  53. package/dist/vendored/components/Canvas.vue +65 -0
  54. package/dist/vendored/components/CardGallery.vue +243 -0
  55. package/dist/vendored/components/CardPreview.vue +72 -0
  56. package/dist/vendored/components/CardSelect.vue +200 -0
  57. package/dist/vendored/components/CheckGroup.vue +131 -0
  58. package/dist/vendored/components/Column.vue +25 -0
  59. package/dist/vendored/components/ComponentPalette.vue +294 -0
  60. package/dist/vendored/components/ConfirmDialog.vue +39 -0
  61. package/dist/vendored/components/CustomPlaceholder.vue +33 -0
  62. package/dist/vendored/components/DatePickerOverlay.vue +345 -0
  63. package/dist/vendored/components/DebugPanel.vue +806 -0
  64. package/dist/vendored/components/DeviceOverlay.vue +70 -0
  65. package/dist/vendored/components/Divider.vue +22 -0
  66. package/dist/vendored/components/Dropdown.vue +191 -0
  67. package/dist/vendored/components/EventEditor.vue +247 -0
  68. package/dist/vendored/components/GridLayout.vue +67 -0
  69. package/dist/vendored/components/HoverGuides.vue +122 -0
  70. package/dist/vendored/components/Icon.vue +34 -0
  71. package/dist/vendored/components/Image.vue +34 -0
  72. package/dist/vendored/components/Input.vue +90 -0
  73. package/dist/vendored/components/JsonTree.vue +516 -0
  74. package/dist/vendored/components/ListLayout.vue +68 -0
  75. package/dist/vendored/components/LogValue.vue +51 -0
  76. package/dist/vendored/components/Map.vue +110 -0
  77. package/dist/vendored/components/MultiColumn.vue +49 -0
  78. package/dist/vendored/components/MultiText.vue +58 -0
  79. package/dist/vendored/components/NodeInspector.vue +295 -0
  80. package/dist/vendored/components/PickerOverlay.vue +131 -0
  81. package/dist/vendored/components/ProgressSlider.vue +167 -0
  82. package/dist/vendored/components/PropControl.vue +241 -0
  83. package/dist/vendored/components/PropTree.vue +128 -0
  84. package/dist/vendored/components/RadioButton.vue +74 -0
  85. package/dist/vendored/components/RemotePreview.vue +171 -0
  86. package/dist/vendored/components/RenderTree.vue +437 -0
  87. package/dist/vendored/components/Root.vue +30 -0
  88. package/dist/vendored/components/Row.vue +25 -0
  89. package/dist/vendored/components/SelectionOverlay.vue +105 -0
  90. package/dist/vendored/components/StructureTree.vue +949 -0
  91. package/dist/vendored/components/SvgCode.vue +19 -0
  92. package/dist/vendored/components/SvgSymbols.vue +30 -0
  93. package/dist/vendored/components/Switch.vue +38 -0
  94. package/dist/vendored/components/Text.vue +32 -0
  95. package/dist/vendored/components/Video.vue +70 -0
  96. package/dist/vendored/components/ViewContainer.vue +52 -0
  97. package/dist/vendored/components/base.js +12 -0
  98. package/dist/vendored/components/icons.js +47 -0
  99. package/dist/vendored/components/index.js +58 -0
  100. package/dist/vendored/components/setters/SetBgPosition.vue +64 -0
  101. package/dist/vendored/components/setters/SetBgSize.vue +90 -0
  102. package/dist/vendored/components/setters/SetCode.vue +90 -0
  103. package/dist/vendored/components/setters/SetColor.vue +244 -0
  104. package/dist/vendored/components/setters/SetCustomSelect.vue +58 -0
  105. package/dist/vendored/components/setters/SetExpr.vue +107 -0
  106. package/dist/vendored/components/setters/SetGradient.vue +125 -0
  107. package/dist/vendored/components/setters/SetGrid9.vue +68 -0
  108. package/dist/vendored/components/setters/SetIconSelect.vue +67 -0
  109. package/dist/vendored/components/setters/SetIfForm.vue +61 -0
  110. package/dist/vendored/components/setters/SetImage.vue +43 -0
  111. package/dist/vendored/components/setters/SetList.vue +139 -0
  112. package/dist/vendored/components/setters/SetNumber.vue +118 -0
  113. package/dist/vendored/components/setters/SetNumberStyle.vue +113 -0
  114. package/dist/vendored/components/setters/SetPadding.vue +77 -0
  115. package/dist/vendored/components/setters/SetSegment.vue +160 -0
  116. package/dist/vendored/components/setters/SetSelect.vue +51 -0
  117. package/dist/vendored/components/setters/SetSwitch.vue +49 -0
  118. package/dist/vendored/components/setters/SetText.vue +52 -0
  119. package/dist/vendored/components/setters/props.js +23 -0
  120. package/dist/vendored/fidelity/baseline-messageOverview.json +87 -0
  121. package/dist/vendored/fidelity/calibration.json +29 -0
  122. package/dist/vendored/fidelity/fidelity-messageOverview-after.html +114 -0
  123. package/dist/vendored/fidelity/fidelity-messageOverview-after.json +272 -0
  124. package/dist/vendored/fidelity/fidelity-messageOverview.html +185 -0
  125. package/dist/vendored/fidelity/fidelity-messageOverview.json +336 -0
  126. package/dist/vendored/fidelity/fidelity-messageOverview_v2.html +262 -0
  127. package/dist/vendored/fidelity/fidelity-messageOverview_v2.json +502 -0
  128. package/dist/vendored/fidelity/fidelity-messageOverview_v3.html +201 -0
  129. package/dist/vendored/fidelity/fidelity-messageOverview_v3.json +417 -0
  130. package/dist/vendored/fidelity/fidelity-messageOverview_visual.html +125 -0
  131. package/dist/vendored/fidelity/fidelity-messageOverview_visual.json +338 -0
  132. package/dist/vendored/index.html +16 -0
  133. package/dist/vendored/main.js +36 -0
  134. package/dist/vendored/meta/action-meta.json +141 -0
  135. package/dist/vendored/meta/component-meta.json +2714 -0
  136. package/dist/vendored/meta/directive-meta.json +40 -0
  137. package/dist/vendored/meta/style-meta.json +1086 -0
  138. package/dist/vendored/runtime/StyleParser.js +179 -0
  139. package/dist/vendored/runtime/adapter.js +166 -0
  140. package/dist/vendored/runtime/alert-card.js +125 -0
  141. package/dist/vendored/runtime/app-toast.js +33 -0
  142. package/dist/vendored/runtime/assets.js +16 -0
  143. package/dist/vendored/runtime/canvas-context.js +141 -0
  144. package/dist/vendored/runtime/card-runtime.js +289 -0
  145. package/dist/vendored/runtime/clipboard-node.js +83 -0
  146. package/dist/vendored/runtime/clipboard.js +29 -0
  147. package/dist/vendored/runtime/evaluate.js +152 -0
  148. package/dist/vendored/runtime/event-model.js +300 -0
  149. package/dist/vendored/runtime/hoverGuide.js +31 -0
  150. package/dist/vendored/runtime/jsapi-mock.js +256 -0
  151. package/dist/vendored/runtime/node-model.js +217 -0
  152. package/dist/vendored/runtime/property.js +364 -0
  153. package/dist/vendored/runtime/selectionOverlay.js +53 -0
  154. package/dist/vendored/runtime/toPreview.js +648 -0
  155. package/dist/vendored/standalone-main.js +36 -0
  156. package/dist/vendored/standalone.html +12 -0
  157. package/dist/vendored/styles/app.css +2565 -0
  158. package/dist/vendored/styles/card-gallery.css +234 -0
  159. package/dist/vendored/styles/card-select.css +281 -0
  160. package/dist/vendored/styles/components.css +383 -0
  161. package/dist/vendored/styles/dropdown.css +337 -0
  162. package/dist/vendored/styles/json-tree.css +308 -0
  163. package/dist/vendored/styles/node-inspector.css +1003 -0
  164. package/dist/vendored/styles/setters.css +962 -0
  165. package/dist/vendored/styles/standalone.css +27 -0
  166. package/dist/vendored/styles/structure-tree.css +320 -0
  167. package/package.json +42 -0
@@ -0,0 +1,308 @@
1
+ /* 可折叠 JSON 查看器 —— 对齐深色 IDE 主题 */
2
+ .jt {
3
+ font-family: 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace;
4
+ font-size: 12px;
5
+ line-height: 1.6;
6
+ color: var(--text-dim);
7
+ }
8
+ .jt__toolbar {
9
+ display: flex;
10
+ justify-content: flex-start;
11
+ gap: 12px;
12
+ padding: 4px 12px 8px;
13
+ position: sticky;
14
+ top: 0;
15
+ z-index: var(--z-sticky);
16
+ }
17
+ .jt__tool {
18
+ height: var(--ctrl-sm);
19
+ padding: 0 10px;
20
+ background: var(--bg-input);
21
+ border: 1px solid var(--border);
22
+ border-radius: 6px;
23
+ color: var(--text-dim);
24
+ font-size: 12px;
25
+ cursor: pointer;
26
+ transition: background 0.15s, border-color 0.15s, color 0.15s;
27
+ }
28
+ .jt__tool:hover {
29
+ background: var(--bg-hover);
30
+ border-color: var(--accent-border);
31
+ color: var(--text);
32
+ }
33
+
34
+ .jt__list {
35
+ list-style: none;
36
+ margin: 0;
37
+ padding: 0;
38
+ }
39
+ .jt__list--root {
40
+ padding-left: 2px;
41
+ padding-bottom: 44px;
42
+ }
43
+ .jt__child {
44
+ padding-left: 16px;
45
+ border-left: 1px solid var(--border);
46
+ margin-left: 4px;
47
+ }
48
+
49
+ .jt__node {
50
+ position: relative;
51
+ }
52
+ .jt__row {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: 4px;
56
+ padding: 1px 4px;
57
+ border-radius: 4px;
58
+ cursor: pointer;
59
+ }
60
+ .jt__row--branch {
61
+ cursor: pointer;
62
+ }
63
+ .jt__row--branch:hover {
64
+ background: var(--bg-hover);
65
+ }
66
+ .jt__row--leaf:hover {
67
+ background: var(--bg-hover);
68
+ }
69
+ .jt__row--selected,
70
+ .jt__row--selected:hover {
71
+ background: var(--accent-soft);
72
+ }
73
+
74
+ .jt__caret {
75
+ flex: 0 0 auto;
76
+ width: 12px;
77
+ text-align: center;
78
+ color: var(--text-faint);
79
+ font-size: 9px;
80
+ transition: transform 0.15s ease;
81
+ transform: rotate(0deg);
82
+ user-select: none;
83
+ }
84
+ .jt__caret--open {
85
+ transform: rotate(90deg);
86
+ color: var(--accent);
87
+ }
88
+ .jt__caret--leaf {
89
+ visibility: hidden;
90
+ }
91
+
92
+ .jt__key {
93
+ color: var(--jt-key);
94
+ font-weight: 500;
95
+ }
96
+ .jt__colon {
97
+ color: var(--jt-faint);
98
+ }
99
+ .jt__bracket {
100
+ color: var(--jt-faint);
101
+ }
102
+ .jt__preview {
103
+ color: var(--jt-faint);
104
+ font-style: italic;
105
+ overflow: hidden;
106
+ text-overflow: ellipsis;
107
+ white-space: nowrap;
108
+ max-width: 60%;
109
+ }
110
+ .jt__count {
111
+ color: var(--jt-faint);
112
+ font-size: 11px;
113
+ margin-left: 4px;
114
+ }
115
+
116
+ .jt__val--string {
117
+ color: var(--jt-string);
118
+ }
119
+ .jt__val--number {
120
+ color: var(--jt-number);
121
+ }
122
+ .jt__val--boolean {
123
+ color: var(--jt-boolean);
124
+ }
125
+ .jt__val--null {
126
+ color: var(--jt-null);
127
+ font-style: italic;
128
+ }
129
+ .jt__val--array {
130
+ color: var(--accent);
131
+ }
132
+ .jt__val--object {
133
+ color: var(--accent);
134
+ }
135
+
136
+ /* 可编辑节点 */
137
+ .jt__editable {
138
+ cursor: text;
139
+ border-radius: 2px;
140
+ transition: background 0.12s;
141
+ }
142
+ .jt__editable:hover {
143
+ background: var(--bg-hover);
144
+ }
145
+ .jt__edit {
146
+ background: var(--bg-input);
147
+ border: 1px solid var(--accent);
148
+ border-radius: 3px;
149
+ color: var(--text);
150
+ font: inherit;
151
+ font-size: 12px;
152
+ padding: 0 4px;
153
+ outline: none;
154
+ min-width: 40px;
155
+ max-width: 200px;
156
+ line-height: 1.5;
157
+ }
158
+ .jt__edit:focus {
159
+ box-shadow: 0 0 0 2px var(--jt-ring);
160
+ }
161
+
162
+ /* 删除按钮 */
163
+ .jt__del {
164
+ flex: 0 0 auto;
165
+ width: 16px;
166
+ height: 16px;
167
+ display: inline-flex;
168
+ align-items: center;
169
+ justify-content: center;
170
+ margin-left: auto;
171
+ padding: 0;
172
+ background: transparent;
173
+ border: none;
174
+ border-radius: 3px;
175
+ color: var(--text-faint);
176
+ font-size: 14px;
177
+ line-height: 1;
178
+ cursor: pointer;
179
+ opacity: 0;
180
+ transition: opacity 0.12s, background 0.12s, color 0.12s;
181
+ }
182
+ .jt__node:hover > .jt__row--leaf .jt__del {
183
+ opacity: 1;
184
+ }
185
+ .jt__del:hover {
186
+ background: var(--jt-del-bg);
187
+ color: var(--jt-del-fg);
188
+ }
189
+
190
+ /* 添加按钮 */
191
+ .jt__tool--add {
192
+ margin-left: auto;
193
+ color: var(--accent);
194
+ border-color: var(--accent-border);
195
+ }
196
+ .jt__tool--add:hover {
197
+ background: var(--jt-add-bg);
198
+ backdrop-filter: blur(10px);
199
+ }
200
+
201
+ /* 复合类型整体编辑弹层 */
202
+ .jt__json-edit {
203
+ position: relative;
204
+ margin: 4px 0 4px 16px;
205
+ padding: 8px;
206
+ background: var(--bg-input);
207
+ border: 1px solid var(--accent);
208
+ border-radius: 6px;
209
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
210
+ }
211
+ .jt__json-textarea {
212
+ display: block;
213
+ width: 100%;
214
+ min-height: 120px;
215
+ max-height: 400px;
216
+ padding: 8px;
217
+ background: var(--bg-input);
218
+ border: 1px solid var(--border);
219
+ border-radius: 4px;
220
+ color: var(--text);
221
+ font-family: 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace;
222
+ font-size: 12px;
223
+ line-height: 1.5;
224
+ resize: vertical;
225
+ outline: none;
226
+ tab-size: 2;
227
+ }
228
+ .jt__json-textarea:focus {
229
+ border-color: var(--accent);
230
+ box-shadow: 0 0 0 2px var(--jt-ring);
231
+ }
232
+ .jt__json-actions {
233
+ display: flex;
234
+ align-items: center;
235
+ gap: 8px;
236
+ margin-top: 8px;
237
+ }
238
+ .jt__json-btn {
239
+ padding: 4px 12px;
240
+ background: var(--accent);
241
+ border: none;
242
+ border-radius: 4px;
243
+ color: var(--on-accent);
244
+ font-size: 12px;
245
+ cursor: pointer;
246
+ transition: opacity 0.15s;
247
+ }
248
+ .jt__json-btn:hover {
249
+ opacity: 0.85;
250
+ }
251
+ .jt__json-btn--cancel {
252
+ background: var(--bg-hover);
253
+ color: var(--text-dim);
254
+ }
255
+ .jt__json-btn--cancel:hover {
256
+ background: var(--border);
257
+ }
258
+ .jt__json-hint {
259
+ margin-left: auto;
260
+ color: var(--text-faint);
261
+ font-size: 11px;
262
+ }
263
+
264
+ /* 右键菜单 */
265
+ .jt__ctxmenu {
266
+ position: fixed;
267
+ /* 必须高于同级的 .jt__ctxmenu-mask(点空白关闭的全屏遮罩):两者原本同为
268
+ var(--z-toast-app) 且 mask 在 DOM 中排在 menu 之后,导致 mask 盖住菜单、
269
+ 拦截菜单项点击,使「复制路径 / 删除节点」全部点不动。这里 +1 让菜单恒在上层。 */
270
+ z-index: calc(var(--z-toast-app) + 1);
271
+ min-width: 120px;
272
+ background: var(--bg-pop);
273
+ border: 1px solid var(--border-strong);
274
+ border-radius: 8px;
275
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
276
+ padding: 4px;
277
+ color: var(--text);
278
+ }
279
+ .jt__ctxmenu-item {
280
+ display: block;
281
+ width: 100%;
282
+ padding: 6px 12px;
283
+ font-size: 12px;
284
+ text-align: left;
285
+ color: var(--text);
286
+ border: none;
287
+ background: transparent;
288
+ border-radius: 4px;
289
+ cursor: pointer;
290
+ transition: background 0.12s, color 0.12s;
291
+ }
292
+ .jt__ctxmenu-item:hover {
293
+ background: var(--accent-soft);
294
+ color: var(--accent);
295
+ }
296
+ .jt__ctxmenu-item--del {
297
+ color: var(--danger);
298
+ }
299
+ .jt__ctxmenu-item--del:hover {
300
+ background: var(--danger-soft);
301
+ color: var(--danger);
302
+ }
303
+ .jt__ctxmenu-mask {
304
+ position: fixed;
305
+ inset: 0;
306
+ z-index: var(--z-toast-app);
307
+ background: transparent;
308
+ }