lightview 2.0.7 → 2.0.9

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 (140) hide show
  1. package/README.md +47 -1283
  2. package/components/actions/button.js +5 -5
  3. package/components/actions/dropdown.js +6 -6
  4. package/components/actions/modal.js +9 -9
  5. package/components/actions/swap.js +5 -5
  6. package/components/data-display/accordion.js +6 -6
  7. package/components/data-display/alert.js +6 -6
  8. package/components/data-display/avatar.js +7 -7
  9. package/components/data-display/badge.js +5 -5
  10. package/components/data-display/card.js +7 -7
  11. package/components/data-display/carousel.js +4 -4
  12. package/components/data-display/chart.js +8 -8
  13. package/components/data-display/chat.js +7 -7
  14. package/components/data-display/collapse.js +5 -5
  15. package/components/data-display/countdown.js +3 -3
  16. package/components/data-display/diff.js +6 -6
  17. package/components/data-display/kbd.js +5 -5
  18. package/components/data-display/loading.js +5 -5
  19. package/components/data-display/progress.js +5 -5
  20. package/components/data-display/radial-progress.js +5 -5
  21. package/components/data-display/skeleton.js +3 -3
  22. package/components/data-display/stats.js +9 -9
  23. package/components/data-display/table.js +9 -9
  24. package/components/data-display/timeline.js +8 -8
  25. package/components/data-display/toast.js +3 -3
  26. package/components/data-display/tooltip.js +3 -3
  27. package/components/data-input/checkbox.js +5 -5
  28. package/components/data-input/file-input.js +3 -3
  29. package/components/data-input/input.js +5 -5
  30. package/components/data-input/radio.js +9 -9
  31. package/components/data-input/range.js +3 -3
  32. package/components/data-input/rating.js +3 -3
  33. package/components/data-input/select.js +5 -5
  34. package/components/data-input/textarea.js +3 -3
  35. package/components/data-input/toggle.js +5 -5
  36. package/components/layout/divider.js +3 -3
  37. package/components/layout/drawer.js +7 -7
  38. package/components/layout/footer.js +5 -5
  39. package/components/layout/hero.js +5 -5
  40. package/components/layout/indicator.js +4 -4
  41. package/components/layout/join.js +4 -4
  42. package/components/layout/navbar.js +6 -6
  43. package/components/navigation/breadcrumbs.js +4 -4
  44. package/components/navigation/dock.js +5 -5
  45. package/components/navigation/menu.js +6 -6
  46. package/components/navigation/pagination.js +3 -3
  47. package/components/navigation/steps.js +4 -4
  48. package/components/navigation/tabs.js +5 -5
  49. package/components/theme/theme-switch.js +30 -30
  50. package/docs/about.html +142 -14
  51. package/docs/api/computed.html +1 -6
  52. package/docs/api/effects.html +1 -7
  53. package/docs/api/elements.html +6 -10
  54. package/docs/api/enhance.html +1 -6
  55. package/docs/api/hypermedia.html +154 -22
  56. package/docs/api/index.html +7 -12
  57. package/docs/api/nav.html +18 -1
  58. package/docs/api/signals.html +1 -6
  59. package/docs/api/state.html +1 -6
  60. package/docs/assets/js/examplify-sandbox.html +2 -2
  61. package/docs/assets/js/examplify.js +15 -15
  62. package/docs/components/accordion.html +4 -4
  63. package/docs/components/alert.html +4 -4
  64. package/docs/components/avatar.html +4 -4
  65. package/docs/components/badge.html +4 -4
  66. package/docs/components/breadcrumbs.html +3 -3
  67. package/docs/components/button.html +5 -5
  68. package/docs/components/card.html +4 -4
  69. package/docs/components/carousel.html +3 -3
  70. package/docs/components/chart-area.html +6 -6
  71. package/docs/components/chart-bar.html +6 -6
  72. package/docs/components/chart-column.html +6 -6
  73. package/docs/components/chart-line.html +6 -6
  74. package/docs/components/chart-pie.html +6 -6
  75. package/docs/components/chart.html +2 -2
  76. package/docs/components/chat.html +4 -4
  77. package/docs/components/checkbox.html +4 -4
  78. package/docs/components/collapse.html +4 -4
  79. package/docs/components/countdown.html +4 -4
  80. package/docs/components/diff.html +3 -3
  81. package/docs/components/divider.html +3 -3
  82. package/docs/components/dock.html +3 -3
  83. package/docs/components/drawer.html +4 -4
  84. package/docs/components/dropdown.html +4 -4
  85. package/docs/components/file-input.html +4 -4
  86. package/docs/components/footer.html +3 -3
  87. package/docs/components/gallery.html +2 -2
  88. package/docs/components/hero.html +3 -3
  89. package/docs/components/index.css +5 -3
  90. package/docs/components/index.html +4 -4
  91. package/docs/components/indicator.html +3 -3
  92. package/docs/components/input.html +4 -4
  93. package/docs/components/join.html +3 -3
  94. package/docs/components/kbd.html +3 -3
  95. package/docs/components/loading.html +4 -4
  96. package/docs/components/menu.html +4 -4
  97. package/docs/components/modal.html +4 -4
  98. package/docs/components/navbar.html +3 -3
  99. package/docs/components/pagination.html +3 -3
  100. package/docs/components/progress.html +4 -4
  101. package/docs/components/radial-progress.html +3 -3
  102. package/docs/components/radio.html +4 -4
  103. package/docs/components/range.html +4 -4
  104. package/docs/components/rating.html +4 -4
  105. package/docs/components/select.html +4 -4
  106. package/docs/components/sidebar-setup.js +1 -1
  107. package/docs/components/skeleton.html +4 -4
  108. package/docs/components/spinner.html +4 -4
  109. package/docs/components/stats.html +4 -4
  110. package/docs/components/steps.html +3 -3
  111. package/docs/components/swap.html +4 -4
  112. package/docs/components/switch.html +4 -4
  113. package/docs/components/table.html +4 -4
  114. package/docs/components/tabs.html +4 -4
  115. package/docs/components/text-input.html +4 -4
  116. package/docs/components/textarea.html +4 -4
  117. package/docs/components/timeline.html +4 -4
  118. package/docs/components/toast.html +4 -4
  119. package/docs/components/toggle.html +4 -4
  120. package/docs/components/tooltip.html +4 -4
  121. package/docs/examples/getting-started-example.html +1 -1
  122. package/docs/examples/index.html +1 -2
  123. package/docs/getting-started/index.html +105 -14
  124. package/docs/index.html +2 -11
  125. package/docs/router-nav.html +13 -0
  126. package/docs/router.html +60 -17
  127. package/docs/styles/index.html +2 -7
  128. package/docs/syntax.html +144 -0
  129. package/functions/_middleware.js +17 -10
  130. package/functions/processServerScripts.js +127 -0
  131. package/index.html +8 -8
  132. package/lightview-router.js +141 -297
  133. package/lightview-x.js +604 -573
  134. package/lightview.js +179 -157
  135. package/package.json +33 -26
  136. package/scripts/analysis/README.md +2 -0
  137. package/scripts/analysis/analyze.js +266 -0
  138. package/scripts/analysis/latest_metrics.md +185 -0
  139. package/wrangler.toml +6 -0
  140. package/docs/playground.html +0 -416
@@ -1,6 +1,6 @@
1
1
  // Unique ID counter for iframe identification
2
- var examplifyIdCounter = window.examplifyIdCounter || 0;
3
- window.examplifyIdCounter = examplifyIdCounter;
2
+ var examplifyIdCounter = globalThis.examplifyIdCounter || 0;
3
+ globalThis.examplifyIdCounter = examplifyIdCounter;
4
4
 
5
5
  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;
@@ -49,7 +49,7 @@ function examplify(target, options = {}) {
49
49
  iframe.style.background = '#f9fafb'; // Light gray placeholder
50
50
  iframe.style.border = '1px solid #e5e7eb';
51
51
  iframe.style.transition = 'opacity 0.2s ease-in, height 0.2s ease-out';
52
- const sandboxFlags = ['allow-scripts'];
52
+ const sandboxFlags = ['allow-scripts', 'allow-modals', 'allow-forms', 'allow-popups'];
53
53
  if (allowSameOrigin) sandboxFlags.push('allow-same-origin');
54
54
  iframe.sandbox = sandboxFlags.join(' ');
55
55
 
@@ -160,7 +160,7 @@ function examplify(target, options = {}) {
160
160
  const currentTheme = document.documentElement.getAttribute('data-theme');
161
161
  const themeAttr = currentTheme ? ` data-theme="${currentTheme}"` : '';
162
162
 
163
- const path = window.location.pathname;
163
+ const path = globalThis.location.pathname;
164
164
  const baseDir = path.substring(0, path.lastIndexOf('/') + 1);
165
165
  const baseTag = useOrigin ? `<base href="${useOrigin}${baseDir}">` : '';
166
166
 
@@ -177,7 +177,7 @@ function examplify(target, options = {}) {
177
177
  parent.postMessage({ type: 'examplify-resize', id: frameId, height: height }, '*');
178
178
  }
179
179
 
180
- window.addEventListener('load', () => {
180
+ globalThis.addEventListener('load', () => {
181
181
  sendHeight();
182
182
  setTimeout(sendHeight, 300);
183
183
  setTimeout(sendHeight, 1000);
@@ -213,7 +213,7 @@ function examplify(target, options = {}) {
213
213
  ${styles ? styles.map(href => `<link rel="stylesheet" href="${href}">`).join('\n') : ''}
214
214
  <script>
215
215
  // Synchronously create the stylesheet-ready promise before any modules execute
216
- window.__stylesheetsReady = (function() {
216
+ globalThis.__stylesheetsReady = (function() {
217
217
  return new Promise(resolve => {
218
218
  // Use requestAnimationFrame to ensure DOM is ready for querying
219
219
  requestAnimationFrame(() => {
@@ -248,9 +248,9 @@ function examplify(target, options = {}) {
248
248
  ${scripts ? scripts.map(src => `<script src="${src}"></script>`).join('\n') : ''}
249
249
  <script type="module">
250
250
  // Wait for stylesheets before initializing Lightview components
251
- await window.__stylesheetsReady;
252
- if (window.LightviewX) {
253
- await window.LightviewX.initComponents({ shadowDefault: true });
251
+ await globalThis.__stylesheetsReady;
252
+ if (globalThis.LightviewX) {
253
+ await globalThis.LightviewX.initComponents({ shadowDefault: true });
254
254
  }
255
255
  </script>
256
256
  </head>
@@ -270,7 +270,7 @@ function examplify(target, options = {}) {
270
270
  };
271
271
  ${type === 'module' ? codeContent : `
272
272
  // Wait for stylesheets before running example code
273
- window.__stylesheetsReady.then(async () => {
273
+ globalThis.__stylesheetsReady.then(async () => {
274
274
  ${codeContent}
275
275
  });
276
276
  `}
@@ -278,7 +278,7 @@ function examplify(target, options = {}) {
278
278
  ${autoResizeScript}
279
279
  <script>
280
280
  // Reveal body and signal ready only after stylesheets are loaded
281
- window.__stylesheetsReady.then(() => {
281
+ globalThis.__stylesheetsReady.then(() => {
282
282
  document.body.classList.add('styles-ready');
283
283
  setTimeout(() => {
284
284
  parent.postMessage({ type: 'examplify-ready', id: '${iframeId}' }, '*');
@@ -286,11 +286,11 @@ function examplify(target, options = {}) {
286
286
  });
287
287
 
288
288
  // Listen for theme changes from parent
289
- window.addEventListener('message', (event) => {
289
+ globalThis.addEventListener('message', (event) => {
290
290
  if (event.data && event.data.type === 'theme-change' && event.data.theme) {
291
291
  document.documentElement.setAttribute('data-theme', event.data.theme);
292
- if (window.LightviewX && typeof window.LightviewX.setTheme === 'function') {
293
- window.LightviewX.setTheme(event.data.theme);
292
+ if (globalThis.LightviewX && typeof globalThis.LightviewX.setTheme === 'function') {
293
+ globalThis.LightviewX.setTheme(event.data.theme);
294
294
  }
295
295
  }
296
296
  });
@@ -375,7 +375,7 @@ function examplify(target, options = {}) {
375
375
  }
376
376
 
377
377
  // Global Message Listener (for resizing and run click)
378
- window.addEventListener('message', (event) => {
378
+ globalThis.addEventListener('message', (event) => {
379
379
  if (!event.data || event.data.id !== iframeId) return;
380
380
 
381
381
  if (event.data.type === 'examplify-resize' && autoResize) {
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -69,7 +69,7 @@
69
69
 
70
70
  <!-- Tabs -->
71
71
  <script>
72
- window.switchSyntaxTab = (tabId) => {
72
+ globalThis.switchSyntaxTab = (tabId) => {
73
73
  const tabs = ['tagged', 'vdom', 'object'];
74
74
  tabs.forEach(t => {
75
75
  const tabEl = document.getElementById(`tab-btn-${t}`);
@@ -210,7 +210,7 @@ $('#example').content(accordion);</code></pre>
210
210
 
211
211
  <!-- Tabs -->
212
212
  <script>
213
- window.switchReactiveSyntaxTab = (tabId) => {
213
+ globalThis.switchReactiveSyntaxTab = (tabId) => {
214
214
  const tabs = ['tagged', 'vdom', 'object'];
215
215
  tabs.forEach(t => {
216
216
  const tabEl = document.getElementById(`reactive-tab-btn-${t}`);
@@ -436,4 +436,4 @@ $('#example').content(accordion);</code></pre>
436
436
  </div>
437
437
  </div>
438
438
  </div>
439
- </div>
439
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -71,7 +71,7 @@
71
71
 
72
72
  <!-- Tabs -->
73
73
  <script>
74
- window.switchSyntaxTab = (tabId) => {
74
+ globalThis.switchSyntaxTab = (tabId) => {
75
75
  const tabs = ['tagged', 'vdom', 'object', 'html'];
76
76
  tabs.forEach(t => {
77
77
  const tabEl = document.getElementById(`tab-btn-${t}`);
@@ -236,7 +236,7 @@ $('#example').content(alerts);</code></pre>
236
236
 
237
237
  <!-- Tabs -->
238
238
  <script>
239
- window.switchReactiveSyntaxTab = (tabId) => {
239
+ globalThis.switchReactiveSyntaxTab = (tabId) => {
240
240
  const tabs = ['tagged', 'vdom', 'object'];
241
241
  tabs.forEach(t => {
242
242
  const tabEl = document.getElementById(`reactive-tab-btn-${t}`);
@@ -525,4 +525,4 @@ $('#example').content(demo);</code></pre>
525
525
  </div>
526
526
  </div>
527
527
  </div>
528
- </div>
528
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -74,7 +74,7 @@
74
74
 
75
75
  <!-- Tabs -->
76
76
  <script>
77
- window.switchSyntaxTab = (tabId) => {
77
+ globalThis.switchSyntaxTab = (tabId) => {
78
78
  const tabs = ['tagged', 'vdom', 'object', 'html'];
79
79
  tabs.forEach(t => {
80
80
  const tabEl = document.getElementById(`tab-btn-${t}`);
@@ -255,7 +255,7 @@ $('#example').content(avatars);</code></pre>
255
255
 
256
256
  <!-- Tabs -->
257
257
  <script>
258
- window.switchReactiveSyntaxTab = (tabId) => {
258
+ globalThis.switchReactiveSyntaxTab = (tabId) => {
259
259
  const tabs = ['tagged', 'vdom', 'object'];
260
260
  tabs.forEach(t => {
261
261
  const tabEl = document.getElementById(`reactive-tab-btn-${t}`);
@@ -583,4 +583,4 @@ Avatar.Group({},
583
583
  </div>
584
584
  </div>
585
585
  </div>
586
- </div>
586
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -71,7 +71,7 @@
71
71
 
72
72
  <!-- Tabs -->
73
73
  <script>
74
- window.switchSyntaxTab = (tabId) => {
74
+ globalThis.switchSyntaxTab = (tabId) => {
75
75
  const tabs = ['tagged', 'vdom', 'object', 'html'];
76
76
  tabs.forEach(t => {
77
77
  const tabEl = document.getElementById(`tab-btn-${t}`);
@@ -272,7 +272,7 @@ $('#example').content(badges);</code></pre>
272
272
 
273
273
  <!-- Tabs -->
274
274
  <script>
275
- window.switchReactiveSyntaxTab = (tabId) => {
275
+ globalThis.switchReactiveSyntaxTab = (tabId) => {
276
276
  const tabs = ['tagged', 'vdom', 'object'];
277
277
  tabs.forEach(t => {
278
278
  const tabEl = document.getElementById(`reactive-tab-btn-${t}`);
@@ -528,4 +528,4 @@ $('#example').content(demo);</code></pre>
528
528
  </div>
529
529
  </div>
530
530
  </div>
531
- </div>
531
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -71,7 +71,7 @@
71
71
 
72
72
  <!-- Tabs -->
73
73
  <script>
74
- window.switchSyntaxTab = (tabId) => {
74
+ globalThis.switchSyntaxTab = (tabId) => {
75
75
  const tabs = ['tagged', 'vdom', 'object'];
76
76
  tabs.forEach(t => {
77
77
  const tabEl = document.getElementById(`tab-btn-${t}`);
@@ -275,4 +275,4 @@ $('#example').content(breadcrumbs);</code></pre>
275
275
  </div>
276
276
  </div>
277
277
  </div>
278
- </div>
278
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -73,7 +73,7 @@
73
73
 
74
74
  <!-- Tabs -->
75
75
  <script>
76
- window.switchSyntaxTab = (tabId) => {
76
+ globalThis.switchSyntaxTab = (tabId) => {
77
77
  const tabs = ['tagged', 'vdom', 'object', 'html'];
78
78
  tabs.forEach(t => {
79
79
  const tabEl = document.getElementById(`tab-btn-${t}`);
@@ -212,7 +212,7 @@ $('#example').content(buttons);</code></pre>
212
212
 
213
213
  <!-- Tabs -->
214
214
  <script>
215
- window.switchReactiveSyntaxTab = (tabId) => {
215
+ globalThis.switchReactiveSyntaxTab = (tabId) => {
216
216
  const tabs = ['tagged', 'vdom', 'object', 'html'];
217
217
  tabs.forEach(t => {
218
218
  const tabEl = document.getElementById(`reactive-tab-btn-${t}`);
@@ -374,7 +374,7 @@ $('#example').content(button);</code></pre>
374
374
  });
375
375
  </script><code contenteditable="true" class="language-html">&lt;!-- Define a named signal globally --&gt;
376
376
  &lt;script&gt;
377
- window.signal = Lightview.signal;
377
+ globalThis.signal = Lightview.signal;
378
378
  signal(false, 'btnLoading');
379
379
  &lt;/script&gt;
380
380
 
@@ -576,4 +576,4 @@ signal(false, 'btnLoading');
576
576
  </div>
577
577
  </div>
578
578
  </div>
579
- </div>
579
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -71,7 +71,7 @@
71
71
 
72
72
  <!-- Tabs -->
73
73
  <script>
74
- window.switchSyntaxTab = (tabId) => {
74
+ globalThis.switchSyntaxTab = (tabId) => {
75
75
  const tabs = ['tagged', 'vdom', 'object'];
76
76
  tabs.forEach(t => {
77
77
  const tabEl = document.getElementById(`tab-btn-${t}`);
@@ -234,7 +234,7 @@ $('#example').content(card);</code></pre>
234
234
 
235
235
  <!-- Tabs -->
236
236
  <script>
237
- window.switchReactiveSyntaxTab = (tabId) => {
237
+ globalThis.switchReactiveSyntaxTab = (tabId) => {
238
238
  const tabs = ['tagged', 'vdom', 'object'];
239
239
  tabs.forEach(t => {
240
240
  const tabEl = document.getElementById(`reactive-tab-btn-${t}`);
@@ -558,4 +558,4 @@ $('#example').content(card);</code></pre>
558
558
  </div>
559
559
  </div>
560
560
  </div>
561
- </div>
561
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -72,7 +72,7 @@
72
72
 
73
73
  <!-- Tabs -->
74
74
  <script>
75
- window.switchReactiveSyntaxTab = (tabId) => {
75
+ globalThis.switchReactiveSyntaxTab = (tabId) => {
76
76
  const tabs = ['tagged', 'vdom', 'object'];
77
77
  tabs.forEach(t => {
78
78
  const tabEl = document.getElementById(`reactive-tab-btn-${t}`);
@@ -283,4 +283,4 @@ $('#example').content(demo);</code></pre>
283
283
  </div>
284
284
  </div>
285
285
  </div>
286
- </div>
286
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -73,7 +73,7 @@
73
73
 
74
74
  <!-- Tabs -->
75
75
  <script>
76
- window.switchBasicAreaTab = (tabId) => {
76
+ globalThis.switchBasicAreaTab = (tabId) => {
77
77
  const tabs = ['tagged', 'vdom', 'object'];
78
78
  tabs.forEach(t => {
79
79
  const tabEl = document.getElementById(`basic-area-tab-btn-${t}`);
@@ -227,7 +227,7 @@ $('#example').content(chart);</code></pre>
227
227
 
228
228
  <!-- Tabs -->
229
229
  <script>
230
- window.switchMultipleAreaTab = (tabId) => {
230
+ globalThis.switchMultipleAreaTab = (tabId) => {
231
231
  const tabs = ['tagged', 'vdom', 'object'];
232
232
  tabs.forEach(t => {
233
233
  const tabEl = document.getElementById(`multiple-area-tab-btn-${t}`);
@@ -405,7 +405,7 @@ $('#example').content(chart);</code></pre>
405
405
 
406
406
  <!-- Tabs -->
407
407
  <script>
408
- window.switchAxesAreaTab = (tabId) => {
408
+ globalThis.switchAxesAreaTab = (tabId) => {
409
409
  const tabs = ['tagged', 'vdom', 'object'];
410
410
  tabs.forEach(t => {
411
411
  const tabEl = document.getElementById(`axes-area-tab-btn-${t}`);
@@ -559,7 +559,7 @@ $('#example').content(chart);</code></pre>
559
559
 
560
560
  <!-- Tabs -->
561
561
  <script>
562
- window.switchStyledAreaTab = (tabId) => {
562
+ globalThis.switchStyledAreaTab = (tabId) => {
563
563
  const tabs = ['tagged', 'vdom', 'object'];
564
564
  tabs.forEach(t => {
565
565
  const tabEl = document.getElementById(`styled-area-tab-btn-${t}`);
@@ -699,4 +699,4 @@ $('#example').content(chart);</code></pre>
699
699
  </div>
700
700
  </div>
701
701
  </div>
702
- </div>
702
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -71,7 +71,7 @@
71
71
 
72
72
  <!-- Tabs -->
73
73
  <script>
74
- window.switchBasicBarTab = (tabId) => {
74
+ globalThis.switchBasicBarTab = (tabId) => {
75
75
  const tabs = ['tagged', 'vdom', 'object'];
76
76
  tabs.forEach(t => {
77
77
  const tabEl = document.getElementById(`basic-bar-tab-btn-${t}`);
@@ -247,7 +247,7 @@ $('#example').content(chart);</code></pre>
247
247
 
248
248
  <!-- Tabs -->
249
249
  <script>
250
- window.switchMultipleBarTab = (tabId) => {
250
+ globalThis.switchMultipleBarTab = (tabId) => {
251
251
  const tabs = ['tagged', 'vdom', 'object'];
252
252
  tabs.forEach(t => {
253
253
  const tabEl = document.getElementById(`multiple-bar-tab-btn-${t}`);
@@ -449,7 +449,7 @@ $('#example').content(chart);</code></pre>
449
449
 
450
450
  <!-- Tabs -->
451
451
  <script>
452
- window.switchAxesBarTab = (tabId) => {
452
+ globalThis.switchAxesBarTab = (tabId) => {
453
453
  const tabs = ['tagged', 'vdom', 'object'];
454
454
  tabs.forEach(t => {
455
455
  const tabEl = document.getElementById(`axes-bar-tab-btn-${t}`);
@@ -607,7 +607,7 @@ $('#example').content(chart);</code></pre>
607
607
 
608
608
  <!-- Tabs -->
609
609
  <script>
610
- window.switchSpacingBarTab = (tabId) => {
610
+ globalThis.switchSpacingBarTab = (tabId) => {
611
611
  const tabs = ['tagged', 'vdom', 'object'];
612
612
  tabs.forEach(t => {
613
613
  const tabEl = document.getElementById(`spacing-bar-tab-btn-${t}`);
@@ -779,4 +779,4 @@ $('#example').content(charts);</code></pre>
779
779
  </div>
780
780
  </div>
781
781
  </div>
782
- </div>
782
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -71,7 +71,7 @@
71
71
 
72
72
  <!-- Tabs -->
73
73
  <script>
74
- window.switchBasicColumnTab = (tabId) => {
74
+ globalThis.switchBasicColumnTab = (tabId) => {
75
75
  const tabs = ['tagged', 'vdom', 'object'];
76
76
  tabs.forEach(t => {
77
77
  const tabEl = document.getElementById(`basic-column-tab-btn-${t}`);
@@ -216,7 +216,7 @@ $('#example').content(chart);</code></pre>
216
216
 
217
217
  <!-- Tabs -->
218
218
  <script>
219
- window.switchMultipleColumnTab = (tabId) => {
219
+ globalThis.switchMultipleColumnTab = (tabId) => {
220
220
  const tabs = ['tagged', 'vdom', 'object'];
221
221
  tabs.forEach(t => {
222
222
  const tabEl = document.getElementById(`multiple-column-tab-btn-${t}`);
@@ -398,7 +398,7 @@ $('#example').content(chart);</code></pre>
398
398
 
399
399
  <!-- Tabs -->
400
400
  <script>
401
- window.switchAxesColumnTab = (tabId) => {
401
+ globalThis.switchAxesColumnTab = (tabId) => {
402
402
  const tabs = ['tagged', 'vdom', 'object'];
403
403
  tabs.forEach(t => {
404
404
  const tabEl = document.getElementById(`axes-column-tab-btn-${t}`);
@@ -555,7 +555,7 @@ $('#example').content(chart);</code></pre>
555
555
 
556
556
  <!-- Tabs -->
557
557
  <script>
558
- window.switchSpacingColumnTab = (tabId) => {
558
+ globalThis.switchSpacingColumnTab = (tabId) => {
559
559
  const tabs = ['tagged', 'vdom', 'object'];
560
560
  tabs.forEach(t => {
561
561
  const tabEl = document.getElementById(`spacing-column-tab-btn-${t}`);
@@ -732,4 +732,4 @@ $('#example').content(charts);</code></pre>
732
732
  </div>
733
733
  </div>
734
734
  </div>
735
- </div>
735
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -72,7 +72,7 @@
72
72
 
73
73
  <!-- Tabs -->
74
74
  <script>
75
- window.switchBasicLineTab = (tabId) => {
75
+ globalThis.switchBasicLineTab = (tabId) => {
76
76
  const tabs = ['tagged', 'vdom', 'object'];
77
77
  tabs.forEach(t => {
78
78
  const tabEl = document.getElementById(`basic-line-tab-btn-${t}`);
@@ -281,7 +281,7 @@ $('#example').content(chart);</code></pre>
281
281
 
282
282
  <!-- Tabs -->
283
283
  <script>
284
- window.switchMultipleLineTab = (tabId) => {
284
+ globalThis.switchMultipleLineTab = (tabId) => {
285
285
  const tabs = ['tagged', 'vdom', 'object'];
286
286
  tabs.forEach(t => {
287
287
  const tabEl = document.getElementById(`multiple-line-tab-btn-${t}`);
@@ -495,7 +495,7 @@ $('#example').content(chart);</code></pre>
495
495
 
496
496
  <!-- Tabs -->
497
497
  <script>
498
- window.switchAxesLineTab = (tabId) => {
498
+ globalThis.switchAxesLineTab = (tabId) => {
499
499
  const tabs = ['tagged', 'vdom', 'object'];
500
500
  tabs.forEach(t => {
501
501
  const tabEl = document.getElementById(`axes-line-tab-btn-${t}`);
@@ -651,7 +651,7 @@ $('#example').content(chart);</code></pre>
651
651
 
652
652
  <!-- Tabs -->
653
653
  <script>
654
- window.switchStyledLineTab = (tabId) => {
654
+ globalThis.switchStyledLineTab = (tabId) => {
655
655
  const tabs = ['tagged', 'vdom', 'object'];
656
656
  tabs.forEach(t => {
657
657
  const tabEl = document.getElementById(`styled-line-tab-btn-${t}`);
@@ -791,4 +791,4 @@ $('#example').content(chart);</code></pre>
791
791
  </div>
792
792
  </div>
793
793
  </div>
794
- </div>
794
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -74,7 +74,7 @@
74
74
 
75
75
  <!-- Tabs -->
76
76
  <script>
77
- window.switchBasicPieTab = (tabId) => {
77
+ globalThis.switchBasicPieTab = (tabId) => {
78
78
  const tabs = ['tagged', 'vdom', 'object'];
79
79
  tabs.forEach(t => {
80
80
  const tabEl = document.getElementById(`basic-pie-tab-btn-${t}`);
@@ -222,7 +222,7 @@ $('#example').content(chart);</code></pre>
222
222
 
223
223
  <!-- Tabs -->
224
224
  <script>
225
- window.switchLabelsPieTab = (tabId) => {
225
+ globalThis.switchLabelsPieTab = (tabId) => {
226
226
  const tabs = ['tagged', 'vdom', 'object'];
227
227
  tabs.forEach(t => {
228
228
  const tabEl = document.getElementById(`labels-pie-tab-btn-${t}`);
@@ -404,7 +404,7 @@ $('#example').content(chart);</code></pre>
404
404
 
405
405
  <!-- Tabs -->
406
406
  <script>
407
- window.switchSpacingPieTab = (tabId) => {
407
+ globalThis.switchSpacingPieTab = (tabId) => {
408
408
  const tabs = ['tagged', 'vdom', 'object'];
409
409
  tabs.forEach(t => {
410
410
  const tabEl = document.getElementById(`spacing-pie-tab-btn-${t}`);
@@ -593,7 +593,7 @@ $('#example').content(charts);</code></pre>
593
593
 
594
594
  <!-- Tabs -->
595
595
  <script>
596
- window.switchColorPieTab = (tabId) => {
596
+ globalThis.switchColorPieTab = (tabId) => {
597
597
  const tabs = ['tagged', 'vdom', 'object'];
598
598
  tabs.forEach(t => {
599
599
  const tabEl = document.getElementById(`color-pie-tab-btn-${t}`);
@@ -820,4 +820,4 @@ const slices = percentagesToPie([50, 30, 20]);
820
820
  </div>
821
821
  </div>
822
822
  </div>
823
- </div>
823
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -609,4 +609,4 @@
609
609
  </div>
610
610
  </div>
611
611
  </div>
612
- </div>
612
+ </div>
@@ -1,7 +1,7 @@
1
1
  <!-- SEO-friendly SPA Shim -->
2
2
  <script src="/lightview-router.js"></script>
3
3
  <script>
4
- if (window.LightviewRouter) {
4
+ if (globalThis.LightviewRouter) {
5
5
  LightviewRouter.base('/index.html');
6
6
  }
7
7
  </script>
@@ -69,7 +69,7 @@
69
69
 
70
70
  <!-- Tabs -->
71
71
  <script>
72
- window.switchSyntaxTab = (tabId) => {
72
+ globalThis.switchSyntaxTab = (tabId) => {
73
73
  const tabs = ['tagged', 'vdom', 'object'];
74
74
  tabs.forEach(t => {
75
75
  const tabEl = document.getElementById(`tab-btn-${t}`);
@@ -226,7 +226,7 @@ $('#example').content(conversation);</code></pre>
226
226
 
227
227
  <!-- Tabs -->
228
228
  <script>
229
- window.switchReactiveSyntaxTab = (tabId) => {
229
+ globalThis.switchReactiveSyntaxTab = (tabId) => {
230
230
  const tabs = ['tagged', 'vdom', 'object'];
231
231
  tabs.forEach(t => {
232
232
  const tabEl = document.getElementById(`reactive-tab-btn-${t}`);
@@ -544,4 +544,4 @@ $('#example').content(demo);</code></pre>
544
544
  </div>
545
545
  </div>
546
546
  </div>
547
- </div>
547
+ </div>