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.
- package/README.md +211 -0
- package/dist/cli.js +76 -0
- package/dist/config.js +63 -0
- package/dist/core.js +2 -0
- package/dist/preview-editor/assets/apple-touch-icon-BQcES9QK.png +0 -0
- package/dist/preview-editor/assets/default-image-wzZYQ86K.png +0 -0
- package/dist/preview-editor/assets/favicon-16-Cg6Nrosk.png +0 -0
- package/dist/preview-editor/assets/favicon-32-B_1744sp.png +0 -0
- package/dist/preview-editor/assets/index-BYB0hngG.js +72 -0
- package/dist/preview-editor/assets/index-CpBZEQDy.css +1 -0
- package/dist/preview-editor/assets/site-icon-CFMif8z4.png +0 -0
- package/dist/preview-editor/assets/svg-symbols-B2exBrAr.svg +118 -0
- package/dist/preview-editor/index.html +17 -0
- package/dist/server-core/_vendor/finmall-env.mjs +96 -0
- package/dist/server-core/assetProxy.js +154 -0
- package/dist/server-core/bbox.js +153 -0
- package/dist/server-core/browser.js +108 -0
- package/dist/server-core/buildDataFromSchema.js +50 -0
- package/dist/server-core/cardFiles.js +188 -0
- package/dist/server-core/cardHistory.js +156 -0
- package/dist/server-core/cardImage.js +85 -0
- package/dist/server-core/cardImportMeta.js +139 -0
- package/dist/server-core/cardListCache.js +68 -0
- package/dist/server-core/cardOpenFolder.js +135 -0
- package/dist/server-core/cardSave.js +127 -0
- package/dist/server-core/cardSidecar.js +72 -0
- package/dist/server-core/cardSync.js +259 -0
- package/dist/server-core/cardValidate.js +134 -0
- package/dist/server-core/index.js +82 -0
- package/dist/server-core/logger.js +241 -0
- package/dist/server-core/nodeModels.js +52 -0
- package/dist/server-core/renderStatus.js +207 -0
- package/dist/server-core/screenshot.js +123 -0
- package/dist/server-core/sliceStatic.js +44 -0
- package/dist/standalone.js +447 -0
- package/dist/vendored/App.vue +2330 -0
- package/dist/vendored/api.js +142 -0
- package/dist/vendored/assets/apple-touch-icon.png +0 -0
- package/dist/vendored/assets/default-image.png +0 -0
- package/dist/vendored/assets/favicon-16.png +0 -0
- package/dist/vendored/assets/favicon-32.png +0 -0
- package/dist/vendored/assets/logo.png +0 -0
- package/dist/vendored/assets/site-icon.png +0 -0
- package/dist/vendored/assets/svg-symbols.svg +118 -0
- package/dist/vendored/assets/svgIcons/icons.svg +54 -0
- package/dist/vendored/assets/svgIcons/index.js +39 -0
- package/dist/vendored/components/AbsoluteLayout.vue +42 -0
- package/dist/vendored/components/AlertCardInstance.vue +58 -0
- package/dist/vendored/components/AlertCardLayer.vue +59 -0
- package/dist/vendored/components/ApiPayloadTree.vue +168 -0
- package/dist/vendored/components/AppToast.vue +37 -0
- package/dist/vendored/components/Button.vue +37 -0
- package/dist/vendored/components/Canvas.vue +65 -0
- package/dist/vendored/components/CardGallery.vue +243 -0
- package/dist/vendored/components/CardPreview.vue +72 -0
- package/dist/vendored/components/CardSelect.vue +200 -0
- package/dist/vendored/components/CheckGroup.vue +131 -0
- package/dist/vendored/components/Column.vue +25 -0
- package/dist/vendored/components/ComponentPalette.vue +294 -0
- package/dist/vendored/components/ConfirmDialog.vue +39 -0
- package/dist/vendored/components/CustomPlaceholder.vue +33 -0
- package/dist/vendored/components/DatePickerOverlay.vue +345 -0
- package/dist/vendored/components/DebugPanel.vue +806 -0
- package/dist/vendored/components/DeviceOverlay.vue +70 -0
- package/dist/vendored/components/Divider.vue +22 -0
- package/dist/vendored/components/Dropdown.vue +191 -0
- package/dist/vendored/components/EventEditor.vue +247 -0
- package/dist/vendored/components/GridLayout.vue +67 -0
- package/dist/vendored/components/HoverGuides.vue +122 -0
- package/dist/vendored/components/Icon.vue +34 -0
- package/dist/vendored/components/Image.vue +34 -0
- package/dist/vendored/components/Input.vue +90 -0
- package/dist/vendored/components/JsonTree.vue +516 -0
- package/dist/vendored/components/ListLayout.vue +68 -0
- package/dist/vendored/components/LogValue.vue +51 -0
- package/dist/vendored/components/Map.vue +110 -0
- package/dist/vendored/components/MultiColumn.vue +49 -0
- package/dist/vendored/components/MultiText.vue +58 -0
- package/dist/vendored/components/NodeInspector.vue +295 -0
- package/dist/vendored/components/PickerOverlay.vue +131 -0
- package/dist/vendored/components/ProgressSlider.vue +167 -0
- package/dist/vendored/components/PropControl.vue +241 -0
- package/dist/vendored/components/PropTree.vue +128 -0
- package/dist/vendored/components/RadioButton.vue +74 -0
- package/dist/vendored/components/RemotePreview.vue +171 -0
- package/dist/vendored/components/RenderTree.vue +437 -0
- package/dist/vendored/components/Root.vue +30 -0
- package/dist/vendored/components/Row.vue +25 -0
- package/dist/vendored/components/SelectionOverlay.vue +105 -0
- package/dist/vendored/components/StructureTree.vue +949 -0
- package/dist/vendored/components/SvgCode.vue +19 -0
- package/dist/vendored/components/SvgSymbols.vue +30 -0
- package/dist/vendored/components/Switch.vue +38 -0
- package/dist/vendored/components/Text.vue +32 -0
- package/dist/vendored/components/Video.vue +70 -0
- package/dist/vendored/components/ViewContainer.vue +52 -0
- package/dist/vendored/components/base.js +12 -0
- package/dist/vendored/components/icons.js +47 -0
- package/dist/vendored/components/index.js +58 -0
- package/dist/vendored/components/setters/SetBgPosition.vue +64 -0
- package/dist/vendored/components/setters/SetBgSize.vue +90 -0
- package/dist/vendored/components/setters/SetCode.vue +90 -0
- package/dist/vendored/components/setters/SetColor.vue +244 -0
- package/dist/vendored/components/setters/SetCustomSelect.vue +58 -0
- package/dist/vendored/components/setters/SetExpr.vue +107 -0
- package/dist/vendored/components/setters/SetGradient.vue +125 -0
- package/dist/vendored/components/setters/SetGrid9.vue +68 -0
- package/dist/vendored/components/setters/SetIconSelect.vue +67 -0
- package/dist/vendored/components/setters/SetIfForm.vue +61 -0
- package/dist/vendored/components/setters/SetImage.vue +43 -0
- package/dist/vendored/components/setters/SetList.vue +139 -0
- package/dist/vendored/components/setters/SetNumber.vue +118 -0
- package/dist/vendored/components/setters/SetNumberStyle.vue +113 -0
- package/dist/vendored/components/setters/SetPadding.vue +77 -0
- package/dist/vendored/components/setters/SetSegment.vue +160 -0
- package/dist/vendored/components/setters/SetSelect.vue +51 -0
- package/dist/vendored/components/setters/SetSwitch.vue +49 -0
- package/dist/vendored/components/setters/SetText.vue +52 -0
- package/dist/vendored/components/setters/props.js +23 -0
- package/dist/vendored/fidelity/baseline-messageOverview.json +87 -0
- package/dist/vendored/fidelity/calibration.json +29 -0
- package/dist/vendored/fidelity/fidelity-messageOverview-after.html +114 -0
- package/dist/vendored/fidelity/fidelity-messageOverview-after.json +272 -0
- package/dist/vendored/fidelity/fidelity-messageOverview.html +185 -0
- package/dist/vendored/fidelity/fidelity-messageOverview.json +336 -0
- package/dist/vendored/fidelity/fidelity-messageOverview_v2.html +262 -0
- package/dist/vendored/fidelity/fidelity-messageOverview_v2.json +502 -0
- package/dist/vendored/fidelity/fidelity-messageOverview_v3.html +201 -0
- package/dist/vendored/fidelity/fidelity-messageOverview_v3.json +417 -0
- package/dist/vendored/fidelity/fidelity-messageOverview_visual.html +125 -0
- package/dist/vendored/fidelity/fidelity-messageOverview_visual.json +338 -0
- package/dist/vendored/index.html +16 -0
- package/dist/vendored/main.js +36 -0
- package/dist/vendored/meta/action-meta.json +141 -0
- package/dist/vendored/meta/component-meta.json +2714 -0
- package/dist/vendored/meta/directive-meta.json +40 -0
- package/dist/vendored/meta/style-meta.json +1086 -0
- package/dist/vendored/runtime/StyleParser.js +179 -0
- package/dist/vendored/runtime/adapter.js +166 -0
- package/dist/vendored/runtime/alert-card.js +125 -0
- package/dist/vendored/runtime/app-toast.js +33 -0
- package/dist/vendored/runtime/assets.js +16 -0
- package/dist/vendored/runtime/canvas-context.js +141 -0
- package/dist/vendored/runtime/card-runtime.js +289 -0
- package/dist/vendored/runtime/clipboard-node.js +83 -0
- package/dist/vendored/runtime/clipboard.js +29 -0
- package/dist/vendored/runtime/evaluate.js +152 -0
- package/dist/vendored/runtime/event-model.js +300 -0
- package/dist/vendored/runtime/hoverGuide.js +31 -0
- package/dist/vendored/runtime/jsapi-mock.js +256 -0
- package/dist/vendored/runtime/node-model.js +217 -0
- package/dist/vendored/runtime/property.js +364 -0
- package/dist/vendored/runtime/selectionOverlay.js +53 -0
- package/dist/vendored/runtime/toPreview.js +648 -0
- package/dist/vendored/standalone-main.js +36 -0
- package/dist/vendored/standalone.html +12 -0
- package/dist/vendored/styles/app.css +2565 -0
- package/dist/vendored/styles/card-gallery.css +234 -0
- package/dist/vendored/styles/card-select.css +281 -0
- package/dist/vendored/styles/components.css +383 -0
- package/dist/vendored/styles/dropdown.css +337 -0
- package/dist/vendored/styles/json-tree.css +308 -0
- package/dist/vendored/styles/node-inspector.css +1003 -0
- package/dist/vendored/styles/setters.css +962 -0
- package/dist/vendored/styles/standalone.css +27 -0
- package/dist/vendored/styles/structure-tree.css +320 -0
- package/package.json +42 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
节点覆盖层(DevTools 风格):作为 .phone__screen(滚动容器)的直接子节点,绝对定位于
|
|
3
|
+
屏幕的 content 坐标系:这样它随卡片内容纵向滚动时自动贴合目标元素,无需手动跟随滚动。
|
|
4
|
+
|
|
5
|
+
位置/尺寸由 store.el 的 getBoundingClientRect() 相对屏幕计算而来,对任意元素类型
|
|
6
|
+
(canvas / input / button / div / span …)均生效。
|
|
7
|
+
|
|
8
|
+
本组件通过 props 复用:
|
|
9
|
+
- store:驱动覆盖层的响应式 store(默认选中态 store);
|
|
10
|
+
- boxClass:覆盖层样式 class(默认选中态 ce-sel-overlay)。
|
|
11
|
+
(hover 参考线为独立组件 HoverGuides.vue,不再复用本组件。)
|
|
12
|
+
-->
|
|
13
|
+
<template>
|
|
14
|
+
<div
|
|
15
|
+
v-show="store.visible"
|
|
16
|
+
:class="boxClass"
|
|
17
|
+
:style="boxStyle"
|
|
18
|
+
><svg width="100%" height="100%" style="display: block;" xmlns="http://www.w3.org/2000/svg"><rect id="controls_bounding_rect" x="0" y="0" width="100%" height="100%" fill="transparent" style="stroke: var(--accent);" stroke-width="1" stroke-dasharray="4"></rect></svg>
|
|
19
|
+
</div>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
import { selectionOverlay } from '@/runtime/selectionOverlay.js'
|
|
24
|
+
|
|
25
|
+
export default {
|
|
26
|
+
name: 'SelectionOverlay',
|
|
27
|
+
props: {
|
|
28
|
+
// 驱动覆盖层的响应式 store(默认选中态;hover 参考线复用本组件时传 hoverGuide)
|
|
29
|
+
store: { type: Object, default: () => selectionOverlay },
|
|
30
|
+
// 覆盖层样式 class(选中态 = ce-sel-overlay;hover 参考线 = ce-guide-overlay)
|
|
31
|
+
boxClass: { type: String, default: 'ce-sel-overlay' },
|
|
32
|
+
},
|
|
33
|
+
data() {
|
|
34
|
+
return {
|
|
35
|
+
boxStyle: { top: '0px', left: '0px', width: '0px', height: '0px' },
|
|
36
|
+
_ro: null,
|
|
37
|
+
_onScroll: null,
|
|
38
|
+
_onResize: null,
|
|
39
|
+
_raf: 0,
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
watch: {
|
|
43
|
+
// 目标元素变化或显隐变化:重新定位(并接管对该元素的尺寸监听)
|
|
44
|
+
'store.el'() {
|
|
45
|
+
this.bindTarget()
|
|
46
|
+
this.schedule()
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
mounted() {
|
|
50
|
+
this._onScroll = () => this.schedule()
|
|
51
|
+
this._onResize = () => this.schedule()
|
|
52
|
+
// 滚动(含嵌套滚动)与窗口缩放都可能改变元素视口位置,重算即可,
|
|
53
|
+
// 因坐标基于 content 且覆盖层随滚动容器移动,重算值本身稳定,开销很小。
|
|
54
|
+
document.addEventListener('scroll', this._onScroll, { passive: true, capture: true })
|
|
55
|
+
window.addEventListener('resize', this._onResize)
|
|
56
|
+
this.bindTarget()
|
|
57
|
+
this.schedule()
|
|
58
|
+
},
|
|
59
|
+
beforeUnmount() {
|
|
60
|
+
document.removeEventListener('scroll', this._onScroll, { capture: true })
|
|
61
|
+
window.removeEventListener('resize', this._onResize)
|
|
62
|
+
if (this._ro) { this._ro.disconnect(); this._ro = null }
|
|
63
|
+
if (this._raf) cancelAnimationFrame(this._raf)
|
|
64
|
+
},
|
|
65
|
+
methods: {
|
|
66
|
+
/** 把 ResizeObserver 绑定到当前目标元素,元素自身尺寸变化(编辑文本/改样式)时自动重算 */
|
|
67
|
+
bindTarget() {
|
|
68
|
+
if (this._ro) { this._ro.disconnect(); this._ro = null }
|
|
69
|
+
const el = this.store.el
|
|
70
|
+
if (!el || typeof ResizeObserver === 'undefined') return
|
|
71
|
+
this._ro = new ResizeObserver(() => this.schedule())
|
|
72
|
+
this._ro.observe(el)
|
|
73
|
+
},
|
|
74
|
+
/** rAF 批处理,避免一帧内多次重算 */
|
|
75
|
+
schedule() {
|
|
76
|
+
if (this._raf) return
|
|
77
|
+
this._raf = requestAnimationFrame(() => {
|
|
78
|
+
this._raf = 0
|
|
79
|
+
this.recompute()
|
|
80
|
+
})
|
|
81
|
+
},
|
|
82
|
+
recompute() {
|
|
83
|
+
const el = this.store.el
|
|
84
|
+
if (!el || !this.store.visible) return
|
|
85
|
+
const container = el.closest('.phone__screen')
|
|
86
|
+
// 目标元素已脱离文档(如切换卡片后旧的 RenderTree 被卸载):自动隐藏,避免残留
|
|
87
|
+
if (!container) {
|
|
88
|
+
this.store.visible = false
|
|
89
|
+
return
|
|
90
|
+
}
|
|
91
|
+
const cRect = container.getBoundingClientRect()
|
|
92
|
+
const eRect = el.getBoundingClientRect()
|
|
93
|
+
// content 坐标:减屏幕视口偏移 + 加屏幕滚动量(抵消滚动,使覆盖层粘在元素上)
|
|
94
|
+
const top = eRect.top - cRect.top + container.scrollTop
|
|
95
|
+
const left = eRect.left - cRect.left + container.scrollLeft
|
|
96
|
+
this.boxStyle = {
|
|
97
|
+
top: top + 'px',
|
|
98
|
+
left: left + 'px',
|
|
99
|
+
width: eRect.width + 'px',
|
|
100
|
+
height: eRect.height + 'px',
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
}
|
|
105
|
+
</script>
|