@rimelight/ui 0.0.34 → 0.0.36

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 (185) hide show
  1. package/README.md +1 -0
  2. package/package.json +19 -24
  3. package/src/components/astro/RLAAccordion.astro +94 -18
  4. package/src/components/astro/RLAAvatar.astro +135 -68
  5. package/src/components/astro/RLABadge.astro +4 -2
  6. package/src/components/astro/RLABanner.astro +138 -23
  7. package/src/components/astro/RLABreadcrumb.astro +13 -0
  8. package/src/components/astro/RLAButton.astro +8 -4
  9. package/src/components/astro/RLACallout.astro +112 -0
  10. package/src/components/astro/RLACard.astro +6 -5
  11. package/src/components/astro/RLACarousel.astro +104 -75
  12. package/src/components/astro/RLAChart.astro +4 -1
  13. package/src/components/astro/RLAChip.astro +11 -5
  14. package/src/components/astro/RLACollapsible.astro +4 -1
  15. package/src/components/astro/RLAColorArea.astro +432 -0
  16. package/src/components/astro/RLAColorField.astro +300 -0
  17. package/src/components/astro/RLAColorSlider.astro +413 -0
  18. package/src/components/astro/RLAConfirm.astro +13 -11
  19. package/src/components/astro/RLACopyMarkdown.astro +78 -0
  20. package/src/components/astro/RLADate.astro +30 -0
  21. package/src/components/astro/RLADrawer.astro +50 -3
  22. package/src/components/astro/RLADropdownMenu.astro +78 -51
  23. package/src/components/astro/RLAFieldGroup.astro +4 -1
  24. package/src/components/astro/RLAFileUpload.astro +114 -100
  25. package/src/components/astro/RLAFooter.astro +2 -1
  26. package/src/components/astro/RLAFormField.astro +10 -6
  27. package/src/components/astro/RLAGrid.astro +31 -39
  28. package/src/components/astro/RLAHead.astro +139 -39
  29. package/src/components/astro/RLAHeader.astro +2 -1
  30. package/src/components/astro/RLAImage.astro +274 -251
  31. package/src/components/astro/RLAInput.astro +14 -9
  32. package/src/components/astro/RLAInputMenu.astro +119 -83
  33. package/src/components/astro/RLAKbd.astro +5 -5
  34. package/src/components/astro/RLALayoutGrid.astro +395 -0
  35. package/src/components/astro/RLALink.astro +23 -1
  36. package/src/components/astro/RLALinkGroup.astro +99 -99
  37. package/src/components/astro/RLALocaleSelector.astro +34 -41
  38. package/src/components/astro/RLALogo.astro +117 -90
  39. package/src/components/astro/RLAModal.astro +48 -18
  40. package/src/components/astro/RLANavigationMenu.astro +381 -326
  41. package/src/components/astro/{RLADocsPackageManagers.astro → RLAPackageManagers.astro} +81 -87
  42. package/src/components/astro/RLAPageSection.astro +4 -2
  43. package/src/components/astro/RLAPopover.astro +4 -3
  44. package/src/components/astro/RLAPost.astro +11 -2
  45. package/src/components/astro/RLAScrollArea.astro +4 -1
  46. package/src/components/astro/RLAScrollToTop.astro +200 -172
  47. package/src/components/astro/RLASearch.astro +282 -0
  48. package/src/components/astro/RLASelect.astro +78 -55
  49. package/src/components/astro/RLASeparator.astro +11 -6
  50. package/src/components/astro/RLAShare.astro +60 -0
  51. package/src/components/astro/RLAShortcuts.astro +429 -0
  52. package/src/components/astro/RLASidebar.astro +158 -212
  53. package/src/components/astro/RLASlideover.astro +47 -17
  54. package/src/components/astro/RLASplitter.astro +194 -141
  55. package/src/components/astro/RLASteps.astro +118 -71
  56. package/src/components/astro/RLASurround.astro +39 -0
  57. package/src/components/astro/RLATable.astro +4 -1
  58. package/src/components/astro/RLATableOfContents.astro +109 -23
  59. package/src/components/astro/RLATabs.astro +147 -133
  60. package/src/components/astro/RLATextarea.astro +4 -1
  61. package/src/components/astro/RLAThemeSelector.astro +105 -76
  62. package/src/components/astro/RLAToast.astro +35 -21
  63. package/src/components/vue/RLVBanner.vue +230 -0
  64. package/src/components/vue/RLVButton.vue +3 -2
  65. package/src/components/vue/RLVCheckbox.vue +4 -2
  66. package/src/components/vue/RLVFooter.vue +3 -2
  67. package/src/components/vue/RLVHeader.vue +3 -2
  68. package/src/components/vue/RLVIcon.vue +4 -2
  69. package/src/components/vue/RLVInput.vue +5 -4
  70. package/src/components/vue/RLVLogo.vue +25 -3
  71. package/src/components/vue/RLVPlaceholder.vue +3 -2
  72. package/src/components/vue/RLVPost.vue +8 -2
  73. package/src/components/vue/RLVProgress.vue +60 -0
  74. package/src/components/vue/RLVScrollToTop.vue +65 -52
  75. package/src/components/vue/RLVSection.vue +14 -13
  76. package/src/components/vue/RLVToast.vue +17 -4
  77. package/src/composables/index.ts +1 -0
  78. package/src/composables/useHeaderStore.ts +1 -0
  79. package/src/composables/useShortcuts.ts +11 -0
  80. package/src/config/security.ts +43 -36
  81. package/src/config/site.config.ts +1 -0
  82. package/src/docs/components/ApiChangelog.astro +147 -0
  83. package/src/{plugins/starlightDocsApi → docs}/components/ApiEmits.astro +4 -4
  84. package/src/{plugins/starlightDocsApi → docs}/components/ApiProps.astro +4 -4
  85. package/src/{plugins/starlightDocsApi → docs}/components/ApiSlots.astro +4 -4
  86. package/src/docs/components/ApiTheme.astro +100 -0
  87. package/src/docs/extractAll.ts +94 -0
  88. package/src/docs/extractors/extractAstro.ts +69 -0
  89. package/src/docs/extractors/extractTheme.ts +56 -0
  90. package/src/{plugins/starlightDocsApi/extract-vue.ts → docs/extractors/extractVue.ts} +164 -15
  91. package/src/{plugins/starlightDocsApi → docs}/utils.ts +1 -2
  92. package/src/env.d.ts +0 -12
  93. package/src/integrations/ui.ts +35 -19
  94. package/src/middleware/security.ts +75 -19
  95. package/src/presets/index.ts +118 -293
  96. package/src/styles/index.css +0 -2
  97. package/src/themes/accordion.theme.ts +29 -3
  98. package/src/themes/aspect-ratio.theme.ts +1 -1
  99. package/src/themes/avatar-group.theme.ts +1 -1
  100. package/src/themes/avatar.theme.ts +2 -2
  101. package/src/themes/badge.theme.ts +2 -3
  102. package/src/themes/banner.theme.ts +40 -4
  103. package/src/themes/breadcrumb.theme.ts +1 -1
  104. package/src/themes/button.theme.ts +21 -22
  105. package/src/themes/{alert.theme.ts → callout.theme.ts} +12 -39
  106. package/src/themes/card.theme.ts +17 -9
  107. package/src/themes/carousel.theme.ts +1 -1
  108. package/src/themes/checkbox.theme.ts +1 -2
  109. package/src/themes/chip.theme.ts +2 -3
  110. package/src/themes/color-area.theme.ts +33 -0
  111. package/src/themes/color-field.theme.ts +32 -0
  112. package/src/themes/color-slider.theme.ts +34 -0
  113. package/src/themes/confirm.theme.ts +1 -1
  114. package/src/themes/container.theme.ts +1 -1
  115. package/src/themes/drawer.theme.ts +1 -1
  116. package/src/themes/footer.theme.ts +2 -2
  117. package/src/themes/grid.theme.ts +38 -0
  118. package/src/themes/header.theme.ts +4 -3
  119. package/src/themes/hover-card.theme.ts +1 -1
  120. package/src/themes/image.theme.ts +11 -1
  121. package/src/themes/input.theme.ts +7 -1
  122. package/src/themes/kbd.theme.ts +2 -3
  123. package/src/themes/label.theme.ts +1 -1
  124. package/src/themes/layout-grid.theme.ts +16 -0
  125. package/src/themes/link-group.theme.ts +0 -4
  126. package/src/themes/marquee.theme.ts +1 -1
  127. package/src/themes/modal.theme.ts +1 -1
  128. package/src/themes/navigation-menu.theme.ts +2 -2
  129. package/src/themes/page-section.theme.ts +4 -2
  130. package/src/themes/pagination.theme.ts +1 -1
  131. package/src/themes/pin-input.theme.ts +1 -1
  132. package/src/themes/popover.theme.ts +1 -1
  133. package/src/themes/post.theme.ts +23 -3
  134. package/src/themes/progress.theme.ts +1 -2
  135. package/src/themes/scroll-to-top.theme.ts +2 -3
  136. package/src/themes/search.theme.ts +64 -0
  137. package/src/themes/separator.theme.ts +1 -1
  138. package/src/themes/slideover.theme.ts +1 -1
  139. package/src/themes/slider.theme.ts +1 -2
  140. package/src/themes/spinner.theme.ts +1 -2
  141. package/src/themes/{megamenu.theme.ts → steps.theme.ts} +3 -3
  142. package/src/themes/sticky-surface.theme.ts +1 -1
  143. package/src/themes/switch.theme.ts +1 -2
  144. package/src/themes/table-of-contents.theme.ts +21 -2
  145. package/src/themes/timeline.theme.ts +7 -2
  146. package/src/themes/toast.theme.ts +1 -1
  147. package/src/types/components/accordion.ts +35 -2
  148. package/src/types/components/avatar.ts +16 -0
  149. package/src/types/components/banner.ts +42 -0
  150. package/src/types/components/button.ts +3 -4
  151. package/src/types/components/{alert.ts → callout.ts} +6 -6
  152. package/src/types/components/color-area.ts +19 -0
  153. package/src/types/components/color-field.ts +21 -0
  154. package/src/types/components/color-slider.ts +20 -0
  155. package/src/types/components/grid.ts +23 -0
  156. package/src/types/components/input.ts +4 -0
  157. package/src/types/components/layout-grid.ts +145 -0
  158. package/src/types/components/link-group.ts +4 -2
  159. package/src/types/components/link.ts +15 -0
  160. package/src/types/components/logo.ts +3 -3
  161. package/src/types/components/post.ts +12 -0
  162. package/src/types/components/search.ts +29 -0
  163. package/src/types/components/sidebar.ts +2 -6
  164. package/src/types/components/{megamenu.ts → steps.ts} +7 -1
  165. package/src/types/components/table-of-contents.ts +22 -0
  166. package/src/types/components/toast.ts +4 -0
  167. package/src/types/docs.ts +40 -0
  168. package/src/types/index.ts +151 -1
  169. package/src/types/theme.ts +6 -6
  170. package/src/utils/color.ts +165 -0
  171. package/src/utils/docs.ts +260 -110
  172. package/src/utils/headerStack.ts +24 -4
  173. package/src/utils/index.ts +2 -0
  174. package/src/utils/shortcuts.ts +322 -0
  175. package/src/components/TableOfContents.astro +0 -107
  176. package/src/components/astro/RLAAlert.astro +0 -93
  177. package/src/components/astro/RLAChangelog.astro +0 -23
  178. package/src/components/astro/RLAMegamenu.astro +0 -23
  179. package/src/plugins/index.ts +0 -2
  180. package/src/plugins/starlightDocsApi/components/ApiTheme.astro +0 -27
  181. package/src/plugins/starlightDocsApi/index.ts +0 -272
  182. package/src/styles/prism.css +0 -42
  183. package/src/themes/changelog.theme.ts +0 -13
  184. package/src/types/components/index.ts +0 -134
  185. /package/src/{plugins/starlightDocsApi → docs}/types.ts +0 -0
@@ -63,7 +63,7 @@ const {
63
63
  config,
64
64
  transitions = true,
65
65
  charset = 'utf-8',
66
- viewport = 'width=device-width,initial-scale=1',
66
+ viewport = 'width=device-width, initial-scale=1',
67
67
  rssFeed,
68
68
  } = Astro.props as HeadProps;
69
69
 
@@ -155,12 +155,28 @@ const defaultRobots = isIndexable ? 'index, follow, max-image-preview:large' : '
155
155
  {twitterHandle && <meta property="twitter:site" content={twitterHandle} />}
156
156
  {twitterHandle && <meta property="twitter:creator" content={twitterHandle} />}
157
157
 
158
- <!-- Icons -->
158
+ <!-- Icons & Manifest -->
159
159
  <link rel="icon" type="image/svg+xml" href={favicon} />
160
+ <link rel="icon" href="/favicon.ico" sizes="32x32" />
161
+ <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
162
+ <link rel="manifest" href="/site.webmanifest" />
160
163
 
161
164
  <!-- Theme -->
162
- {themeColor && <meta name="theme-color" content={themeColor} />}
165
+ <meta name="color-scheme" content="light dark" />
166
+ <meta name="theme-color" media="(prefers-color-scheme: light)" content={themeColor || "#ffffff"} />
167
+ <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#0a0a0a" />
163
168
 
169
+ <script is:inline>
170
+ (function() {
171
+ if (window.trustedTypes && trustedTypes.createPolicy) {
172
+ trustedTypes.createPolicy('default', {
173
+ createHTML: function(input) { return input; },
174
+ createScript: function(input) { return input; },
175
+ createScriptURL: function(input) { return input; }
176
+ });
177
+ }
178
+ })();
179
+ </script>
164
180
  <script is:inline>
165
181
  (function() {
166
182
  if (!window.initialCspNonce) {
@@ -243,20 +259,16 @@ const defaultRobots = isIndexable ? 'index, follow, max-image-preview:large' : '
243
259
  };
244
260
  }
245
261
 
246
- function getThemeClass() {
262
+ function getThemePreference() {
247
263
  var stored = localStorage.getItem('theme');
248
- if (stored === 'dark') return 'dark';
249
- if (stored === 'light') return '';
250
- return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : '';
264
+ if (stored === 'dark' || stored === 'light') return stored;
265
+ return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
251
266
  }
252
267
 
253
268
  function applyTheme(doc) {
254
- var cls = getThemeClass();
255
- if (cls) {
256
- doc.documentElement.classList.add('dark');
257
- } else {
258
- doc.documentElement.classList.remove('dark');
259
- }
269
+ var pref = getThemePreference();
270
+ doc.documentElement.classList.toggle('dark', pref === 'dark');
271
+ doc.documentElement.classList.toggle('light', pref === 'light');
260
272
  }
261
273
 
262
274
  // Apply immediately on initial load
@@ -291,23 +303,45 @@ const defaultRobots = isIndexable ? 'index, follow, max-image-preview:large' : '
291
303
  if (!window.RLHeaderStack) {
292
304
  window.RLHeaderStack = {
293
305
  layers: [],
294
- register: function(id, order, naturalHeight, isVisible, el) {
306
+ register: function(id, order, naturalHeight, isVisible, el, type) {
307
+ if (el && !el.isConnected) return;
308
+ if (type === undefined) type = el && el.getAttribute ? (el.getAttribute('data-layer-type') || 'header') : 'header';
295
309
  let layer = this.layers.find(function(l) { return l.id === id; });
296
310
  if (!layer) {
297
- layer = { id: id, order: order, naturalHeight: naturalHeight, isVisible: isVisible, el: el };
311
+ layer = { id: id, type: type, order: order, naturalHeight: naturalHeight, isVisible: isVisible, el: el };
298
312
  this.layers.push(layer);
299
- this.layers.sort(function(a, b) { return a.order - b.order; });
313
+ this.sortLayers();
300
314
  } else {
301
315
  layer.naturalHeight = naturalHeight;
302
316
  layer.isVisible = isVisible;
303
317
  layer.el = el;
304
318
  }
319
+ if (el) {
320
+ el.rlNaturalHeight = naturalHeight;
321
+ el.rlIsVisible = isVisible;
322
+ }
305
323
  this.update();
306
324
  },
307
325
  unregister: function(id) {
326
+ const layer = this.layers.find(function(l) { return l.id === id; });
327
+ if (layer && layer.el) {
328
+ const el = layer.el;
329
+ if (el.rlScrollListener) {
330
+ window.removeEventListener('scroll', el.rlScrollListener);
331
+ }
332
+ if (el.rlResizeObserver) {
333
+ el.rlResizeObserver.disconnect();
334
+ }
335
+ }
308
336
  this.layers = this.layers.filter(function(l) { return l.id !== id; });
309
337
  this.update();
310
338
  },
339
+ sortLayers: function() {
340
+ this.layers.sort(function(a, b) {
341
+ if (a.type !== b.type) return a.type === 'banner' ? -1 : 1;
342
+ return a.order - b.order;
343
+ });
344
+ },
311
345
  update: function() {
312
346
  let currentTop = 0;
313
347
  for (let i = 0; i < this.layers.length; i++) {
@@ -336,60 +370,116 @@ const defaultRobots = isIndexable ? 'index, follow, max-image-preview:large' : '
336
370
  return h > 0 ? h : 64;
337
371
  }
338
372
 
339
- function initHeader(header) {
340
- if (header.rlManaged) return;
341
- header.rlManaged = true;
373
+ function initLayer(el) {
374
+ const id = el.id;
375
+ const type = el.getAttribute('data-layer-type') || 'header';
376
+ const stackIndex = parseInt(el.getAttribute('data-stack-index') || '0', 10);
377
+ const hideOnScroll = el.getAttribute('data-hide-on-scroll') === 'true';
378
+ const contentEl = el.querySelector('[data-header-content]');
379
+
380
+ if (el.rlManaged) {
381
+ const naturalHeight = el.rlNaturalHeight || getHeight(contentEl);
382
+ const isVisible = el.rlIsVisible !== false;
383
+ RL.register(id, stackIndex, naturalHeight, isVisible, el, type);
384
+ return;
385
+ }
386
+ el.rlManaged = true;
342
387
 
343
- const id = header.id;
344
- const stackIndex = parseInt(header.getAttribute('data-stack-index') || '0', 10);
345
- const hideOnScroll = header.getAttribute('data-hide-on-scroll') === 'true';
346
- const contentEl = header.querySelector('[data-header-content]');
347
388
  let naturalHeight = getHeight(contentEl);
348
389
  let isVisible = true;
349
390
 
350
- RL.register(id, stackIndex, naturalHeight, isVisible, header);
391
+ RL.register(id, stackIndex, naturalHeight, isVisible, el, type);
351
392
 
352
393
  if (typeof ResizeObserver !== 'undefined' && contentEl) {
353
- new ResizeObserver(function(entries) {
394
+ const ro = new ResizeObserver(function(entries) {
395
+ if (!el.isConnected) {
396
+ ro.disconnect();
397
+ return;
398
+ }
354
399
  const h = entries[0] && entries[0].contentRect.height;
355
400
  if (h && h > 0) {
356
401
  naturalHeight = h;
357
- RL.update();
402
+ RL.register(id, stackIndex, naturalHeight, isVisible, el, type);
358
403
  }
359
- }).observe(contentEl);
404
+ });
405
+ ro.observe(contentEl);
406
+ el.rlResizeObserver = ro;
360
407
  }
361
408
 
362
409
  if (hideOnScroll) {
363
410
  let lastScrollY = window.scrollY;
364
- window.addEventListener('scroll', function() {
411
+ const scrollListener = function() {
412
+ if (!el.isConnected) {
413
+ window.removeEventListener('scroll', scrollListener);
414
+ return;
415
+ }
365
416
  const current = window.scrollY;
366
417
  const diff = current - lastScrollY;
367
418
  if (Math.abs(diff) >= 10) {
368
419
  const newVisible = current <= 50 ? true : diff <= 0;
369
420
  if (newVisible !== isVisible) {
370
421
  isVisible = newVisible;
371
- RL.register(id, stackIndex, naturalHeight, isVisible, header);
422
+ RL.register(id, stackIndex, naturalHeight, isVisible, el, type);
372
423
  }
373
424
  lastScrollY = current;
374
425
  }
375
- }, { passive: true });
426
+ };
427
+ el.rlScrollListener = scrollListener;
428
+ window.addEventListener('scroll', scrollListener, { passive: true });
376
429
  }
377
430
 
378
431
  (function retry() {
432
+ if (!el.isConnected) return;
379
433
  const h = getHeight(contentEl);
380
434
  if (h !== naturalHeight) {
381
435
  naturalHeight = h;
382
- RL.update();
436
+ RL.register(id, stackIndex, naturalHeight, isVisible, el, type);
383
437
  }
384
438
  if (h > 0 && h !== 64 && contentEl && contentEl.offsetHeight > 0) return;
385
439
  requestAnimationFrame(retry);
386
440
  })();
387
441
  }
388
442
 
443
+ function dismissBanner(banner) {
444
+ var key = banner.getAttribute('data-dismiss-key');
445
+ if (key) localStorage.setItem(key, 'true');
446
+ banner.style.display = 'none';
447
+ banner.setAttribute('data-rla-banner', 'false');
448
+ if (window.RLHeaderStack) RL.unregister(banner.id);
449
+ }
450
+
451
+ function checkDismissed() {
452
+ var banners = document.querySelectorAll("[data-rla-banner='true']");
453
+ for (var i = 0; i < banners.length; i++) {
454
+ var b = banners[i];
455
+ var key = b.getAttribute('data-dismiss-key');
456
+ if (key && localStorage.getItem(key) === 'true') {
457
+ b.style.display = 'none';
458
+ b.setAttribute('data-rla-banner', 'false');
459
+ }
460
+ }
461
+ }
462
+
463
+ if (!window.rlBannerInit) {
464
+ window.rlBannerInit = true;
465
+ document.addEventListener('click', function(e) {
466
+ var btn = e.target.closest('[data-banner-close]');
467
+ if (!btn) return;
468
+ var banner = btn.closest('[data-rla-banner]');
469
+ if (!banner) return;
470
+ dismissBanner(banner);
471
+ });
472
+ }
473
+
474
+ function selector() {
475
+ return "[data-rla-header='true'],[data-rla-banner='true']";
476
+ }
477
+
389
478
  function startObserver() {
390
479
  if (document.body) {
391
- const headers = document.querySelectorAll("[data-rla-header='true']");
392
- for (let i = 0; i < headers.length; i++) initHeader(headers[i]);
480
+ checkDismissed();
481
+ const layers = document.querySelectorAll(selector());
482
+ for (let i = 0; i < layers.length; i++) initLayer(layers[i]);
393
483
 
394
484
  window.rlHeaderObserver = new MutationObserver(function(mutations) {
395
485
  for (let i = 0; i < mutations.length; i++) {
@@ -397,19 +487,19 @@ const defaultRobots = isIndexable ? 'index, follow, max-image-preview:large' : '
397
487
  for (let j = 0; j < added.length; j++) {
398
488
  const node = added[j];
399
489
  if (node.nodeType !== 1) continue;
400
- if (node.matches && node.matches("[data-rla-header='true']")) initHeader(node);
490
+ if (node.matches && node.matches(selector())) initLayer(node);
401
491
  if (node.querySelectorAll) {
402
- const nested = node.querySelectorAll("[data-rla-header='true']");
403
- for (let k = 0; k < nested.length; k++) initHeader(nested[k]);
492
+ const nested = node.querySelectorAll(selector());
493
+ for (let k = 0; k < nested.length; k++) initLayer(nested[k]);
404
494
  }
405
495
  }
406
496
  const removed = mutations[i].removedNodes;
407
497
  for (let j = 0; j < removed.length; j++) {
408
498
  const node = removed[j];
409
499
  if (node.nodeType !== 1) continue;
410
- if (node.matches && node.matches("[data-rla-header='true']")) RL.unregister(node.id);
500
+ if (node.matches && node.matches(selector())) RL.unregister(node.id);
411
501
  if (node.querySelectorAll) {
412
- const nested = node.querySelectorAll("[data-rla-header='true']");
502
+ const nested = node.querySelectorAll(selector());
413
503
  for (let k = 0; k < nested.length; k++) RL.unregister(nested[k].id);
414
504
  }
415
505
  }
@@ -425,4 +515,14 @@ const defaultRobots = isIndexable ? 'index, follow, max-image-preview:large' : '
425
515
  })();
426
516
  </script>
427
517
 
428
- {transitions && <ClientRouter />}
518
+ {transitions && <ClientRouter />}
519
+
520
+ {config && (
521
+ <script type="application/ld+json" is:inline set:html={JSON.stringify({
522
+ "@context": "https://schema.org",
523
+ "@type": "WebSite",
524
+ "name": config.name,
525
+ "url": Astro.site ? Astro.site.toString() : config.url,
526
+ "description": config.description
527
+ })} />
528
+ )}
@@ -35,6 +35,7 @@ const zIndex = 100 - stackIndex;
35
35
  id={headerId}
36
36
  data-slot="root"
37
37
  class:list={[classes.root]}
38
+ data-contain={contain ? "true" : "false"}
38
39
  data-rla-header={fixed ? "true" : undefined}
39
40
  data-stack-index={stackIndex}
40
41
  data-hide-on-scroll={String(hideOnScroll)}
@@ -42,7 +43,7 @@ const zIndex = 100 - stackIndex;
42
43
  {...rest}
43
44
  >
44
45
  <div class:list={[classes.content]} data-header-content>
45
- <div class:list={[classes.container]}>
46
+ <div class:list={[classes.container]} data-slot="container">
46
47
  <div class:list={[classes.left]} data-slot="left">
47
48
  <slot name="left" />
48
49
  </div>