lightview 2.0.9 → 2.2.1
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/build-bundles.mjs +105 -0
- package/build.js +236 -46
- package/components/actions/button.js +16 -3
- package/components/actions/swap.js +26 -3
- package/components/daisyui.js +1 -1
- package/components/data-display/alert.js +13 -3
- package/components/data-display/avatar.js +25 -1
- package/components/data-display/badge.js +11 -3
- package/components/data-display/chart.js +22 -5
- package/components/data-display/countdown.js +3 -2
- package/components/data-display/kbd.js +9 -3
- package/components/data-display/loading.js +11 -3
- package/components/data-display/progress.js +11 -3
- package/components/data-display/radial-progress.js +12 -3
- package/components/data-display/tooltip.js +17 -0
- package/components/data-input/checkbox.js +23 -1
- package/components/data-input/input.js +24 -1
- package/components/data-input/radio.js +37 -2
- package/components/data-input/select.js +24 -1
- package/components/data-input/toggle.js +21 -1
- package/components/layout/divider.js +21 -1
- package/components/layout/indicator.js +14 -0
- package/components/navigation/breadcrumbs.js +42 -2
- package/components/navigation/tabs.js +291 -16
- package/docs/api/elements.html +125 -49
- package/docs/api/hypermedia.html +29 -2
- package/docs/api/index.html +6 -2
- package/docs/api/nav.html +18 -4
- package/docs/assets/js/examplify.js +1 -1
- package/docs/cdom-nav.html +55 -0
- package/docs/cdom.html +792 -0
- package/docs/components/alert.html +8 -8
- package/docs/components/avatar.html +24 -54
- package/docs/components/badge.html +69 -14
- package/docs/components/breadcrumbs.html +95 -29
- package/docs/components/button.html +78 -92
- package/docs/components/chart-area.html +3 -3
- package/docs/components/chart-bar.html +4 -181
- package/docs/components/chart-column.html +4 -189
- package/docs/components/chart-line.html +3 -3
- package/docs/components/chart-pie.html +112 -166
- package/docs/components/chart.html +11 -13
- package/docs/components/checkbox.html +48 -28
- package/docs/components/collapse.html +6 -6
- package/docs/components/component-nav.html +1 -1
- package/docs/components/countdown.html +12 -12
- package/docs/components/divider.html +65 -21
- package/docs/components/dropdown.html +1 -1
- package/docs/components/file-input.html +4 -4
- package/docs/components/footer.html +11 -11
- package/docs/components/indicator.html +85 -31
- package/docs/components/input.html +45 -29
- package/docs/components/join.html +4 -4
- package/docs/components/kbd.html +67 -28
- package/docs/components/loading.html +96 -92
- package/docs/components/pagination.html +4 -4
- package/docs/components/progress.html +50 -7
- package/docs/components/radial-progress.html +32 -12
- package/docs/components/radio.html +42 -31
- package/docs/components/select.html +48 -59
- package/docs/components/swap.html +183 -100
- package/docs/components/tabs.html +146 -278
- package/docs/components/toggle.html +44 -25
- package/docs/components/tooltip.html +71 -31
- package/docs/getting-started/index.html +8 -6
- package/docs/index.html +1 -1
- package/docs/syntax-nav.html +10 -0
- package/docs/syntax.html +8 -6
- package/index.html +2 -2
- package/jprx/LICENSE +21 -0
- package/jprx/README.md +130 -0
- package/jprx/helpers/array.js +75 -0
- package/jprx/helpers/compare.js +26 -0
- package/jprx/helpers/conditional.js +34 -0
- package/jprx/helpers/datetime.js +54 -0
- package/jprx/helpers/format.js +20 -0
- package/jprx/helpers/logic.js +24 -0
- package/jprx/helpers/lookup.js +25 -0
- package/jprx/helpers/math.js +34 -0
- package/jprx/helpers/network.js +41 -0
- package/jprx/helpers/state.js +80 -0
- package/jprx/helpers/stats.js +39 -0
- package/jprx/helpers/string.js +49 -0
- package/jprx/index.js +69 -0
- package/jprx/package.json +24 -0
- package/jprx/parser.js +1517 -0
- package/lightview-all.js +3785 -0
- package/lightview-cdom.js +2128 -0
- package/lightview-router.js +179 -208
- package/lightview-x.js +1435 -1608
- package/lightview.js +613 -766
- package/lightview.js.bak +1 -0
- package/package.json +10 -3
- package/src/lightview-all.js +10 -0
- package/src/lightview-cdom.js +457 -0
- package/src/lightview-router.js +210 -0
- package/src/lightview-x.js +1630 -0
- package/src/lightview.js +705 -0
- package/src/reactivity/signal.js +133 -0
- package/src/reactivity/state.js +217 -0
- package/{watch.js → start-dev.js} +2 -1
- package/tests/cdom/fixtures/helpers.cdomc +62 -0
- package/tests/cdom/fixtures/user.cdom +14 -0
- package/tests/cdom/fixtures/user.cdomc +12 -0
- package/tests/cdom/fixtures/user.odom +18 -0
- package/tests/cdom/fixtures/user.vdom +11 -0
- package/tests/cdom/helpers.test.js +121 -0
- package/tests/cdom/loader.test.js +125 -0
- package/tests/cdom/parser.test.js +179 -0
- package/tests/cdom/reactivity.test.js +186 -0
- package/tests/text-tag.test.js +77 -0
- package/vite.config.mjs +52 -0
- package/wrangler.toml +0 -3
- package/components/data-display/skeleton.js +0 -66
- package/docs/components/skeleton.html +0 -447
package/docs/api/hypermedia.html
CHANGED
|
@@ -217,7 +217,8 @@ button({ href: '/api/items.html#details', target: '#content' }, 'View Details')<
|
|
|
217
217
|
|
|
218
218
|
<h2 id="template-literals">Template Literals</h2>
|
|
219
219
|
<p>
|
|
220
|
-
External HTML,
|
|
220
|
+
External HTML, <code>.vdom</code> and <code>.odom</code> files, can reference named signals or state with
|
|
221
|
+
template syntax:
|
|
221
222
|
</p>
|
|
222
223
|
<pre><code>// main.js - Register named signals and state
|
|
223
224
|
const count = signal(0, 'count');
|
|
@@ -225,7 +226,10 @@ const userName = signal('Guest', 'userName');
|
|
|
225
226
|
const userPrefs = state({ theme: 'dark', lang: 'en' }, 'userPrefs');
|
|
226
227
|
|
|
227
228
|
// Load template that uses them
|
|
228
|
-
div({ src: '/partials/dashboard.html' })
|
|
229
|
+
div({ src: '/partials/dashboard.html' })
|
|
230
|
+
div({ src: '/partials/dashboard.vdom' })
|
|
231
|
+
div({ src: '/partials/dashboard.odom' })</code></pre>
|
|
232
|
+
|
|
229
233
|
<pre><code><!-- /partials/dashboard.html -->
|
|
230
234
|
<div class="dashboard">
|
|
231
235
|
<h1>Welcome, ${signal.get('userName').value}!</h1>
|
|
@@ -233,6 +237,29 @@ div({ src: '/partials/dashboard.html' })</code></pre>
|
|
|
233
237
|
<p>Theme: ${state.get('userPrefs').theme}</p>
|
|
234
238
|
</div></code></pre>
|
|
235
239
|
|
|
240
|
+
<pre><code>// /partials/dashboard.vdom (JSON Array)
|
|
241
|
+
[
|
|
242
|
+
{
|
|
243
|
+
"tag": "div",
|
|
244
|
+
"attributes": { "class": "dashboard" },
|
|
245
|
+
"children": [
|
|
246
|
+
{ "tag": "h1", "children": ["Welcome, ${signal.get('userName').value}!"] },
|
|
247
|
+
{ "tag": "p", "children": ["Theme: ${state.get('userPrefs').theme}"] }
|
|
248
|
+
]
|
|
249
|
+
}
|
|
250
|
+
]</code></pre>
|
|
251
|
+
|
|
252
|
+
<pre><code>// /partials/dashboard.odom (Object DOM)
|
|
253
|
+
{
|
|
254
|
+
"div": {
|
|
255
|
+
"class": "dashboard",
|
|
256
|
+
"children": [
|
|
257
|
+
{ "h1": { "children": ["Welcome, ${signal.get('userName').value}!"] } },
|
|
258
|
+
{ "p": { "children": ["Theme: ${state.get('userPrefs').theme}"] } }
|
|
259
|
+
]
|
|
260
|
+
}
|
|
261
|
+
}</code></pre>
|
|
262
|
+
|
|
236
263
|
<h2 id="shadow-dom">Shadow DOM</h2>
|
|
237
264
|
<p>
|
|
238
265
|
Load content into shadow DOM for style isolation using <code>location="shadow"</code> or the
|
package/docs/api/index.html
CHANGED
|
@@ -149,10 +149,14 @@ const { state } = LightviewX; // Deep state (lightview-x)</code></pre>
|
|
|
149
149
|
Side effects. Do things when state changes.
|
|
150
150
|
</p>
|
|
151
151
|
</a>
|
|
152
|
-
<a href="
|
|
152
|
+
<a href="./elements.html" class="feature-card" style="text-decoration: none; color: inherit;">
|
|
153
153
|
<h3 class="feature-title">Syntax Styles</h3>
|
|
154
154
|
<p class="feature-description">
|
|
155
|
-
|
|
155
|
+
Five ways to build UI: tag functions, vDOM, Object DOM, Custom Elements, and the experimental cDOM.
|
|
156
|
+
</p>
|
|
157
|
+
<p style="margin-top: 1rem; font-style: italic;">
|
|
158
|
+
An exciting 5th option is coming: the <strong>Computational DOM</strong>, a.k.a. <strong><a
|
|
159
|
+
href="/docs/cdom.html">cDOM</a></strong>.
|
|
156
160
|
</p>
|
|
157
161
|
</a>
|
|
158
162
|
<a href="./enhance" class="feature-card" style="text-decoration: none; color: inherit;">
|
package/docs/api/nav.html
CHANGED
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
<nav class="docs-nav">
|
|
2
|
+
<div class="docs-nav-section">
|
|
3
|
+
<div class="docs-nav-title">Elements</div>
|
|
4
|
+
<a href="./elements.html" class="docs-nav-link">Comparison</a>
|
|
5
|
+
<a href="./elements.html#tagged-api" class="docs-nav-link">Tagged API</a>
|
|
6
|
+
<a href="./elements.html#vdom" class="docs-nav-link">vDOM</a>
|
|
7
|
+
<a href="./elements.html#object-dom" class="docs-nav-link">Object DOM (oDOM)</a>
|
|
8
|
+
<a href="./elements.html#custom-elements" class="docs-nav-link">Custom Elements</a>
|
|
9
|
+
<div class="docs-nav-item">
|
|
10
|
+
<a href="./elements.html#pseudo-elements" class="docs-nav-link">Pseudo-elements</a>
|
|
11
|
+
<div class="docs-nav-subsection" style="margin-left: 1rem; border-left: 1px solid var(--site-border);">
|
|
12
|
+
<a href="./elements.html#shadowdom" class="docs-nav-link" style="font-size: 0.85em;">shadowDOM</a>
|
|
13
|
+
<a href="./elements.html#text" class="docs-nav-link" style="font-size: 0.85em;">text</a>
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
<a href="./elements.html#attributes-events" class="docs-nav-link">Attributes & Events</a>
|
|
17
|
+
<a href="./elements.html#children" class="docs-nav-link">Children</a>
|
|
18
|
+
<a href="./elements.html#dom-el" class="docs-nav-link">The domEl Property</a>
|
|
19
|
+
</div>
|
|
2
20
|
<div class="docs-nav-section">
|
|
3
21
|
<div class="docs-nav-title">Reactivity</div>
|
|
4
22
|
|
|
@@ -27,9 +45,5 @@
|
|
|
27
45
|
Apps</a>
|
|
28
46
|
</div>
|
|
29
47
|
</div>
|
|
30
|
-
<div class="docs-nav-section">
|
|
31
|
-
<div class="docs-nav-title">Elements</div>
|
|
32
|
-
<a href="./elements.html" class="docs-nav-link">Creating Elements</a>
|
|
33
|
-
</div>
|
|
34
48
|
</div>
|
|
35
49
|
</nav>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
var examplifyIdCounter = globalThis.examplifyIdCounter || 0;
|
|
3
3
|
globalThis.examplifyIdCounter = examplifyIdCounter;
|
|
4
4
|
|
|
5
|
-
function examplify(target, options = {}) {
|
|
5
|
+
globalThis.examplify = function examplify(target, options = {}) {
|
|
6
6
|
const { scripts, styles, modules, html, at, location = 'beforeBegin', type, height, minHeight = 100, maxHeight = Infinity, allowSameOrigin = false, useOrigin = null, language = 'js', autoRun = false } = options;
|
|
7
7
|
const originalContent = target.textContent;
|
|
8
8
|
const autoResize = !height; // Auto-resize if no explicit height is provided
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<nav class="docs-nav">
|
|
2
|
+
<div class="docs-nav-section">
|
|
3
|
+
<div class="docs-nav-title">cDOM</div>
|
|
4
|
+
<a href="#overview" class="docs-nav-link">Overview</a>
|
|
5
|
+
<a href="#simple-example" class="docs-nav-link">Simple Example</a>
|
|
6
|
+
<a href="#advantages" class="docs-nav-link">Advantages</a>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="docs-nav-section">
|
|
9
|
+
<div class="docs-nav-title">JPRX</div>
|
|
10
|
+
<a href="#JPRX" class="docs-nav-link">Introduction</a>
|
|
11
|
+
<a href="#JPRX-delimiters" class="docs-nav-link">Delimiters</a>
|
|
12
|
+
<a href="#JPRX-anatomy" class="docs-nav-link">Anatomy of a Path</a>
|
|
13
|
+
<a href="#JPRX-placeholders" class="docs-nav-link">Placeholders</a>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="docs-nav-section">
|
|
16
|
+
<div class="docs-nav-title">Concepts</div>
|
|
17
|
+
<a href="#comparison" class="docs-nav-link">Comparison to Excel</a>
|
|
18
|
+
<a href="#integration" class="docs-nav-link">Lightview Integration</a>
|
|
19
|
+
<a href="#directives" class="docs-nav-link">Directives</a>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="docs-nav-section">
|
|
22
|
+
<div class="docs-nav-title">Examples</div>
|
|
23
|
+
<a href="#shopping-cart" class="docs-nav-link">Shopping Cart</a>
|
|
24
|
+
<a href="#interactive-example" class="docs-nav-link">Interactive Counter</a>
|
|
25
|
+
<a href="#operator-syntax" class="docs-nav-link">Operator Syntax</a>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="docs-nav-section">
|
|
28
|
+
<div class="docs-nav-title">Events</div>
|
|
29
|
+
<a href="#events" class="docs-nav-link">Events & Interaction</a>
|
|
30
|
+
<a href="#events-manual" class="docs-nav-link">Manual Implementation</a>
|
|
31
|
+
<a href="#events-llm" class="docs-nav-link">LLM-Generated</a>
|
|
32
|
+
<a href="#events-lifecycle" class="docs-nav-link">Interaction Lifecycle</a>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="docs-nav-section">
|
|
35
|
+
<div class="docs-nav-title">API</div>
|
|
36
|
+
<a href="#js-api" class="docs-nav-link">JavaScript API</a>
|
|
37
|
+
<div class="docs-nav-item">
|
|
38
|
+
<a href="#helpers" class="docs-nav-link">JPRX Helpers</a>
|
|
39
|
+
<div class="docs-nav-subsection" style="margin-left: 1rem; border-left: 1px solid var(--site-border);">
|
|
40
|
+
<a href="#helpers-math" class="docs-nav-link" style="font-size: 0.85em;">Math</a>
|
|
41
|
+
<a href="#helpers-stats" class="docs-nav-link" style="font-size: 0.85em;">Stats</a>
|
|
42
|
+
<a href="#helpers-string" class="docs-nav-link" style="font-size: 0.85em;">String</a>
|
|
43
|
+
<a href="#helpers-array" class="docs-nav-link" style="font-size: 0.85em;">Array</a>
|
|
44
|
+
<a href="#helpers-logic" class="docs-nav-link" style="font-size: 0.85em;">Logic & Comparison</a>
|
|
45
|
+
<a href="#helpers-conditional" class="docs-nav-link" style="font-size: 0.85em;">Conditional
|
|
46
|
+
Aggregates</a>
|
|
47
|
+
<a href="#helpers-formatting" class="docs-nav-link" style="font-size: 0.85em;">Formatting</a>
|
|
48
|
+
<a href="#helpers-datetime" class="docs-nav-link" style="font-size: 0.85em;">DateTime</a>
|
|
49
|
+
<a href="#helpers-lookup" class="docs-nav-link" style="font-size: 0.85em;">Lookup</a>
|
|
50
|
+
<a href="#helpers-mutation" class="docs-nav-link" style="font-size: 0.85em;">State Mutation</a>
|
|
51
|
+
<a href="#helpers-network" class="docs-nav-link" style="font-size: 0.85em;">Network</a>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</nav>
|