@wbc-ui/core2 1.0.0-r14 → 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 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
- ## Teasing Examples
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
- <div align="center">
275
-
276
- ```mermaid
277
- flowchart TD
278
- Data("Input<br>(JSON / Array / String)") --> WBC["&lt;WBC :item='data' /&gt;"]
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 `|` syntax** for inline styling: `"Hello|text-h4 primary--text|/docs|html"`
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&amp;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
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "package": "@wbc-ui/core2",
3
- "version": "1.0.0-r14",
3
+ "version": "1.0.0-r16",
4
4
  "tier": "free",
5
- "builtAt": "2026-05-31T21:22:11.724Z",
5
+ "builtAt": "2026-06-01T19:16:25.830Z",
6
6
  "commit": null,
7
7
  "node": "v24.15.0"
8
8
  }
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*(\[\[~?\{\s*comp:\s*['"]meta['"][\s\S]*?\}\]\])\s*-->/g,
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
- "f790a94c"
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);