@wbc-ui/core2 1.0.0-r15 → 1.0.0-r16
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 +11 -27
- package/assets/ecosystem-map.png +0 -0
- package/assets/ecosystem-map.svg +155 -0
- package/assets/ecosystem-map.webp +0 -0
- package/assets/mermaid-architecture.png +0 -0
- package/assets/wbc-core-architecture.png +0 -0
- package/assets/wbc-core-architecture.webp +0 -0
- package/dist/build-info.json +2 -2
- package/dist/core2.es.js +4 -25
- package/dist/core2.es.js.map +1 -1
- package/dist/core2.umd.js +2 -2
- package/dist/core2.umd.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -104,7 +104,7 @@ A **Vue 2.7+ plugin** that implements the **"UI as Data"** paradigm. You feed it
|
|
|
104
104
|
|
|
105
105
|
---
|
|
106
106
|
|
|
107
|
-
##
|
|
107
|
+
## Usage Examples
|
|
108
108
|
|
|
109
109
|
### Level 1 — Hello World
|
|
110
110
|
```html
|
|
@@ -271,35 +271,15 @@ For a longer walkthrough with worked examples, see the documentation hub at [wbc
|
|
|
271
271
|
|
|
272
272
|
<details>
|
|
273
273
|
<summary>Mermaid diagram (interactive fallback)</summary>
|
|
274
|
-
<
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
WBC --> Detect{"Detect Type"}
|
|
280
|
-
|
|
281
|
-
Detect -- "Str" --> RS[renderString]
|
|
282
|
-
Detect -- "Obj" --> RO[renderObject]
|
|
283
|
-
Detect -- "Arr" --> RA[renderArray]
|
|
284
|
-
Detect -- "File" --> RF[renderFile]
|
|
285
|
-
Detect -- "Fn" --> RFn[renderFunction]
|
|
286
|
-
|
|
287
|
-
RS & RO & RA & RF & RFn --> Chain
|
|
288
|
-
|
|
289
|
-
subgraph Chain["Decorator Chain"]
|
|
290
|
-
direction LR
|
|
291
|
-
A[Focus] --> B[RTL] --> C[Select] --> D[wbCode] --> E[Flattener]
|
|
292
|
-
end
|
|
293
|
-
|
|
294
|
-
Chain --> VNodes["Reactive VNodes"]
|
|
295
|
-
VNodes --> DOM(("DOM"))
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
</div>
|
|
274
|
+
<p align="center">
|
|
275
|
+
<img src="./assets/mermaid-architecture.png"
|
|
276
|
+
alt="Architecture diagram"
|
|
277
|
+
width="680"/>
|
|
278
|
+
</p>
|
|
299
279
|
</details>
|
|
300
280
|
|
|
301
281
|
- **6 renderers** dispatch based on JavaScript type
|
|
302
|
-
- **Pipe
|
|
282
|
+
- **Pipe syntax** for inline styling: `Hello text-h4 primary--text /docs html`
|
|
303
283
|
- **`dive: true`** activates reactive mode — every property becomes a function of `(ctx)` state
|
|
304
284
|
- **Post-processing decorators** apply focus mode, RTL, selection overlays, and code rendering
|
|
305
285
|
|
|
@@ -380,6 +360,10 @@ flowchart TD
|
|
|
380
360
|
|
|
381
361
|
## 🌐 Ecosystem
|
|
382
362
|
|
|
363
|
+
<p align="center">
|
|
364
|
+
<img src="./assets/ecosystem-map.svg" alt="@wbc-ui ecosystem map — core2 at center with 8 satellite packages" width="780"/>
|
|
365
|
+
</p>
|
|
366
|
+
|
|
383
367
|
`@wbc-ui/core2` is the foundation of the **@wbc-ui** monorepo. Every package below is published to npm and depends on `core2`:
|
|
384
368
|
|
|
385
369
|
| Package | What it adds | Status |
|
|
Binary file
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 780 480" width="780" height="480">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bgEco" x1="0" y1="0" x2="0" y2="1">
|
|
4
|
+
<stop offset="0%" stop-color="#0d0d14"/>
|
|
5
|
+
<stop offset="100%" stop-color="#1a1a2e"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="coreGrad" x1="0" y1="0" x2="1" y2="1">
|
|
8
|
+
<stop offset="0%" stop-color="#1976D2"/>
|
|
9
|
+
<stop offset="100%" stop-color="#0D47A1"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<linearGradient id="codeGrad" x1="0" y1="0" x2="1" y2="1">
|
|
12
|
+
<stop offset="0%" stop-color="#43A047"/>
|
|
13
|
+
<stop offset="100%" stop-color="#2E7D32"/>
|
|
14
|
+
</linearGradient>
|
|
15
|
+
<linearGradient id="chartGrad" x1="0" y1="0" x2="1" y2="1">
|
|
16
|
+
<stop offset="0%" stop-color="#E53935"/>
|
|
17
|
+
<stop offset="100%" stop-color="#C62828"/>
|
|
18
|
+
</linearGradient>
|
|
19
|
+
<linearGradient id="dvGrad" x1="0" y1="0" x2="1" y2="1">
|
|
20
|
+
<stop offset="0%" stop-color="#FB8C00"/>
|
|
21
|
+
<stop offset="100%" stop-color="#E65100"/>
|
|
22
|
+
</linearGradient>
|
|
23
|
+
<linearGradient id="latexGrad" x1="0" y1="0" x2="1" y2="1">
|
|
24
|
+
<stop offset="0%" stop-color="#8E24AA"/>
|
|
25
|
+
<stop offset="100%" stop-color="#6A1B9A"/>
|
|
26
|
+
</linearGradient>
|
|
27
|
+
<linearGradient id="mermaidGrad" x1="0" y1="0" x2="1" y2="1">
|
|
28
|
+
<stop offset="0%" stop-color="#00ACC1"/>
|
|
29
|
+
<stop offset="100%" stop-color="#00838F"/>
|
|
30
|
+
</linearGradient>
|
|
31
|
+
<linearGradient id="alertGrad" x1="0" y1="0" x2="1" y2="1">
|
|
32
|
+
<stop offset="0%" stop-color="#FDD835"/>
|
|
33
|
+
<stop offset="100%" stop-color="#F9A825"/>
|
|
34
|
+
</linearGradient>
|
|
35
|
+
<linearGradient id="pressGrad" x1="0" y1="0" x2="1" y2="1">
|
|
36
|
+
<stop offset="0%" stop-color="#5E35B1"/>
|
|
37
|
+
<stop offset="100%" stop-color="#4527A0"/>
|
|
38
|
+
</linearGradient>
|
|
39
|
+
<linearGradient id="payGrad" x1="0" y1="0" x2="1" y2="1">
|
|
40
|
+
<stop offset="0%" stop-color="#00897B"/>
|
|
41
|
+
<stop offset="100%" stop-color="#00695C"/>
|
|
42
|
+
</linearGradient>
|
|
43
|
+
<filter id="glow">
|
|
44
|
+
<feGaussianBlur stdDeviation="8" result="blur"/>
|
|
45
|
+
<feMerge>
|
|
46
|
+
<feMergeNode in="blur"/>
|
|
47
|
+
<feMergeNode in="SourceGraphic"/>
|
|
48
|
+
</feMerge>
|
|
49
|
+
</filter>
|
|
50
|
+
<filter id="shadowEco">
|
|
51
|
+
<feDropShadow dx="0" dy="2" stdDeviation="3" flood-opacity="0.3"/>
|
|
52
|
+
</filter>
|
|
53
|
+
<style>
|
|
54
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;900&display=swap');
|
|
55
|
+
.sans { font-family: 'Inter', 'Segoe UI', system-ui, sans-serif; }
|
|
56
|
+
</style>
|
|
57
|
+
</defs>
|
|
58
|
+
|
|
59
|
+
<!-- Background -->
|
|
60
|
+
<rect width="780" height="480" rx="10" fill="url(#bgEco)"/>
|
|
61
|
+
|
|
62
|
+
<!-- Subtle radial grid circles -->
|
|
63
|
+
<circle cx="390" cy="250" r="80" fill="none" stroke="#1e1e3a" stroke-width="0.5"/>
|
|
64
|
+
<circle cx="390" cy="250" r="155" fill="none" stroke="#1e1e3a" stroke-width="0.5" stroke-dasharray="4,4"/>
|
|
65
|
+
|
|
66
|
+
<!-- Title -->
|
|
67
|
+
<text x="390" y="30" text-anchor="middle" class="sans" font-weight="900" font-size="15" fill="#cdd6f4" letter-spacing="1.5">@wbc-ui ECOSYSTEM</text>
|
|
68
|
+
<text x="390" y="50" text-anchor="middle" class="sans" font-size="11" fill="#585870">Every package depends on core2 · Published to npm · MIT Licensed</text>
|
|
69
|
+
|
|
70
|
+
<!-- Connector lines from center to each satellite (drawn BEHIND nodes) -->
|
|
71
|
+
<!-- code2: top-left -->
|
|
72
|
+
<line x1="390" y1="250" x2="220" y2="130" stroke="#43A047" stroke-width="1.5" opacity="0.35"/>
|
|
73
|
+
<!-- chart2: top -->
|
|
74
|
+
<line x1="390" y1="250" x2="390" y2="100" stroke="#E53935" stroke-width="1.5" opacity="0.35"/>
|
|
75
|
+
<!-- dataviewer2: top-right -->
|
|
76
|
+
<line x1="390" y1="250" x2="560" y2="130" stroke="#FB8C00" stroke-width="1.5" opacity="0.35"/>
|
|
77
|
+
<!-- latex2: right -->
|
|
78
|
+
<line x1="390" y1="250" x2="610" y2="250" stroke="#8E24AA" stroke-width="1.5" opacity="0.35"/>
|
|
79
|
+
<!-- mermaid2: bottom-right -->
|
|
80
|
+
<line x1="390" y1="250" x2="560" y2="370" stroke="#00ACC1" stroke-width="1.5" opacity="0.35"/>
|
|
81
|
+
<!-- alert2: bottom -->
|
|
82
|
+
<line x1="390" y1="250" x2="390" y2="400" stroke="#FDD835" stroke-width="1.5" opacity="0.35"/>
|
|
83
|
+
<!-- press2: bottom-left -->
|
|
84
|
+
<line x1="390" y1="250" x2="220" y2="370" stroke="#5E35B1" stroke-width="1.5" opacity="0.35"/>
|
|
85
|
+
<!-- pay2: left -->
|
|
86
|
+
<line x1="390" y1="250" x2="170" y2="250" stroke="#00897B" stroke-width="1.5" opacity="0.35"/>
|
|
87
|
+
|
|
88
|
+
<!-- ═══════════════════ CENTER NODE — core2 ═══════════════════ -->
|
|
89
|
+
<circle cx="390" cy="250" r="52" fill="url(#coreGrad)" filter="url(#glow)"/>
|
|
90
|
+
<text x="390" y="243" text-anchor="middle" class="sans" font-weight="900" font-size="14" fill="#ffffff">core2</text>
|
|
91
|
+
<text x="390" y="260" text-anchor="middle" class="sans" font-size="9" fill="#BBDEFB">UI as Data engine</text>
|
|
92
|
+
<text x="390" y="273" text-anchor="middle" class="sans" font-size="8" fill="#90CAF9">6 renderers · pipe |</text>
|
|
93
|
+
|
|
94
|
+
<!-- ═══════ SATELLITE: code2 (top-left) ═══════ -->
|
|
95
|
+
<g filter="url(#shadowEco)">
|
|
96
|
+
<circle cx="220" cy="130" r="38" fill="url(#codeGrad)"/>
|
|
97
|
+
<text x="220" y="125" text-anchor="middle" class="sans" font-weight="700" font-size="12" fill="#fff">code2</text>
|
|
98
|
+
<text x="220" y="140" text-anchor="middle" class="sans" font-size="8" fill="#C8E6C9">Monaco Editor</text>
|
|
99
|
+
</g>
|
|
100
|
+
|
|
101
|
+
<!-- ═══════ SATELLITE: chart2 (top) ═══════ -->
|
|
102
|
+
<g filter="url(#shadowEco)">
|
|
103
|
+
<circle cx="390" cy="100" r="38" fill="url(#chartGrad)"/>
|
|
104
|
+
<text x="390" y="95" text-anchor="middle" class="sans" font-weight="700" font-size="12" fill="#fff">chart2</text>
|
|
105
|
+
<text x="390" y="110" text-anchor="middle" class="sans" font-size="8" fill="#FFCDD2">ECharts</text>
|
|
106
|
+
</g>
|
|
107
|
+
|
|
108
|
+
<!-- ═══════ SATELLITE: dataviewer2 (top-right) ═══════ -->
|
|
109
|
+
<g filter="url(#shadowEco)">
|
|
110
|
+
<circle cx="560" cy="130" r="38" fill="url(#dvGrad)"/>
|
|
111
|
+
<text x="560" y="122" text-anchor="middle" class="sans" font-weight="700" font-size="11" fill="#fff">dataviewer2</text>
|
|
112
|
+
<text x="560" y="138" text-anchor="middle" class="sans" font-size="8" fill="#FFE0B2">JSON explorer</text>
|
|
113
|
+
</g>
|
|
114
|
+
|
|
115
|
+
<!-- ═══════ SATELLITE: latex2 (right) ═══════ -->
|
|
116
|
+
<g filter="url(#shadowEco)">
|
|
117
|
+
<circle cx="610" cy="250" r="38" fill="url(#latexGrad)"/>
|
|
118
|
+
<text x="610" y="245" text-anchor="middle" class="sans" font-weight="700" font-size="12" fill="#fff">latex2</text>
|
|
119
|
+
<text x="610" y="260" text-anchor="middle" class="sans" font-size="8" fill="#E1BEE7">Math render</text>
|
|
120
|
+
</g>
|
|
121
|
+
|
|
122
|
+
<!-- ═══════ SATELLITE: mermaid2 (bottom-right) ═══════ -->
|
|
123
|
+
<g filter="url(#shadowEco)">
|
|
124
|
+
<circle cx="560" cy="370" r="38" fill="url(#mermaidGrad)"/>
|
|
125
|
+
<text x="560" y="365" text-anchor="middle" class="sans" font-weight="700" font-size="11" fill="#fff">mermaid2</text>
|
|
126
|
+
<text x="560" y="380" text-anchor="middle" class="sans" font-size="8" fill="#B2EBF2">Diagrams</text>
|
|
127
|
+
</g>
|
|
128
|
+
|
|
129
|
+
<!-- ═══════ SATELLITE: alert2 (bottom) ═══════ -->
|
|
130
|
+
<g filter="url(#shadowEco)">
|
|
131
|
+
<circle cx="390" cy="400" r="38" fill="url(#alertGrad)"/>
|
|
132
|
+
<text x="390" y="395" text-anchor="middle" class="sans" font-weight="700" font-size="12" fill="#4E342E">alert2</text>
|
|
133
|
+
<text x="390" y="410" text-anchor="middle" class="sans" font-size="8" fill="#795548">Toasts / Notifs</text>
|
|
134
|
+
</g>
|
|
135
|
+
|
|
136
|
+
<!-- ═══════ SATELLITE: press2 (bottom-left) ═══════ -->
|
|
137
|
+
<g filter="url(#shadowEco)">
|
|
138
|
+
<circle cx="220" cy="370" r="38" fill="url(#pressGrad)"/>
|
|
139
|
+
<text x="220" y="365" text-anchor="middle" class="sans" font-weight="700" font-size="12" fill="#fff">press2</text>
|
|
140
|
+
<text x="220" y="380" text-anchor="middle" class="sans" font-size="8" fill="#D1C4E9">Docs engine</text>
|
|
141
|
+
</g>
|
|
142
|
+
|
|
143
|
+
<!-- ═══════ SATELLITE: pay2 (left) ═══════ -->
|
|
144
|
+
<g filter="url(#shadowEco)">
|
|
145
|
+
<circle cx="170" cy="250" r="38" fill="url(#payGrad)"/>
|
|
146
|
+
<text x="170" y="245" text-anchor="middle" class="sans" font-weight="700" font-size="12" fill="#fff">pay2</text>
|
|
147
|
+
<text x="170" y="260" text-anchor="middle" class="sans" font-size="8" fill="#B2DFDB">Fiat + Crypto</text>
|
|
148
|
+
</g>
|
|
149
|
+
|
|
150
|
+
<!-- Bottom legend strip -->
|
|
151
|
+
<rect x="0" y="455" width="780" height="25" fill="#0a0a12"/>
|
|
152
|
+
<text x="390" y="471" text-anchor="middle" class="sans" font-size="10" fill="#585870">
|
|
153
|
+
npm install @wbc-ui/core2 · Vue.use(wbcCore) · Extensions auto-register into the engine
|
|
154
|
+
</text>
|
|
155
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/build-info.json
CHANGED
package/dist/core2.es.js
CHANGED
|
@@ -532,13 +532,6 @@ function Hc(e, t, r, n, i, { insideHeadersVN: u, insideFootersVN: a, extChildren
|
|
|
532
532
|
{
|
|
533
533
|
ref: "rawHtml",
|
|
534
534
|
class: "markdown-body " + (n == null ? void 0 : n.class) || "",
|
|
535
|
-
directives: [
|
|
536
|
-
{
|
|
537
|
-
name: "highlight",
|
|
538
|
-
value: void 0,
|
|
539
|
-
modifiers: {}
|
|
540
|
-
}
|
|
541
|
-
],
|
|
542
535
|
...n,
|
|
543
536
|
on: e.itemListeners,
|
|
544
537
|
key: `main-key-${e.computedKey}`
|
|
@@ -11964,14 +11957,7 @@ const Qd = {
|
|
|
11964
11957
|
if (typeof H == "string" && (H != null && H.startsWith("./")) ? z = "WBC" : z == "MD" && typeof H == "string" && (H = this.MarkdownIt.render(H)), this.isNonEmpty(Q) ? ie = t("WBLink", {
|
|
11965
11958
|
...z == "MD" ? {
|
|
11966
11959
|
...F,
|
|
11967
|
-
class: "markdown-body " + ((F == null ? void 0 : F.class) || "")
|
|
11968
|
-
directives: [
|
|
11969
|
-
{
|
|
11970
|
-
name: "highlight",
|
|
11971
|
-
value: void 0,
|
|
11972
|
-
modifiers: {}
|
|
11973
|
-
}
|
|
11974
|
-
]
|
|
11960
|
+
class: "markdown-body " + ((F == null ? void 0 : F.class) || "")
|
|
11975
11961
|
} : F,
|
|
11976
11962
|
props: {
|
|
11977
11963
|
to: this.strToObj(y[2]),
|
|
@@ -12074,14 +12060,7 @@ const Qd = {
|
|
|
12074
12060
|
{
|
|
12075
12061
|
...z == "MD" ? {
|
|
12076
12062
|
...F,
|
|
12077
|
-
class: "markdown-body " + ((F == null ? void 0 : F.class) || "")
|
|
12078
|
-
directives: [
|
|
12079
|
-
{
|
|
12080
|
-
name: "highlight",
|
|
12081
|
-
value: void 0,
|
|
12082
|
-
modifiers: {}
|
|
12083
|
-
}
|
|
12084
|
-
]
|
|
12063
|
+
class: "markdown-body " + ((F == null ? void 0 : F.class) || "")
|
|
12085
12064
|
} : {},
|
|
12086
12065
|
...B
|
|
12087
12066
|
},
|
|
@@ -12151,7 +12130,7 @@ const Qd = {
|
|
|
12151
12130
|
},
|
|
12152
12131
|
created() {
|
|
12153
12132
|
typeof this.html_ == "string" && (this.html_ = this.html_.replace(
|
|
12154
|
-
/<!--\s*(\[\[
|
|
12133
|
+
/<!--\s*(\[\[[\s\S]*?\]\])\s*-->/g,
|
|
12155
12134
|
"$1"
|
|
12156
12135
|
)), this.html_ = this.protectCodeRegions(this.html_), this.html_ = this.charCoding(this.html_, [
|
|
12157
12136
|
["<p>", "<p>[["],
|
|
@@ -12180,7 +12159,7 @@ var r1 = /* @__PURE__ */ ao(
|
|
|
12180
12159
|
t1,
|
|
12181
12160
|
!1,
|
|
12182
12161
|
null,
|
|
12183
|
-
"
|
|
12162
|
+
"15a0d0d3"
|
|
12184
12163
|
);
|
|
12185
12164
|
const ju = r1.exports, qr = In.default || In, Bo = Xi.default || Xi;
|
|
12186
12165
|
qr.prototype.hasOwnProperty("$store") || qr.use(Bo);
|