@devslab/site-kit 0.5.1 → 0.6.0
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.ko.md +24 -0
- package/README.md +24 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/layouts.d.ts +3 -0
- package/dist/layouts.d.ts.map +1 -1
- package/dist/sections.d.ts +70 -0
- package/dist/sections.d.ts.map +1 -0
- package/dist/solid.js +227 -120
- package/dist/solid.js.map +1 -1
- package/dist/solid.server.js +174 -41
- package/dist/solid.server.js.map +1 -1
- package/package.json +7 -4
- package/site-sections.css +65 -0
- package/src/core/locales.d.mts +2 -0
- package/src/core/locales.mjs +20 -5
- package/styles.css +2 -0
package/dist/solid.server.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createComponent, escape, mergeProps, ssr, ssrAttribute, ssrElement, ssrHydrationKey } from "solid-js/web";
|
|
2
|
-
import { For, createSignal, createUniqueId, onMount } from "solid-js";
|
|
2
|
+
import { For, Show, createSignal, createUniqueId, onMount } from "solid-js";
|
|
3
3
|
import { Button, Field, Icon, IconButton } from "@devslab/dds-solid";
|
|
4
4
|
//#region src/core/locales.mjs
|
|
5
5
|
var LOCALES = Object.freeze([
|
|
@@ -113,19 +113,27 @@ var FAMILY_ALIASES = Object.freeze([["zh", "zh-TW"], ["pt", "pt-BR"]]);
|
|
|
113
113
|
* and security-scanned here, and seven Indian languages share one flag
|
|
114
114
|
* anyway.
|
|
115
115
|
*
|
|
116
|
-
* @param {{ extra?: ReadonlyArray<object>, aliases?: ReadonlyArray<[string, string]> }} [options]
|
|
116
|
+
* @param {{ only?: ReadonlyArray<string>, extra?: ReadonlyArray<object>, aliases?: ReadonlyArray<[string, string]> }} [options]
|
|
117
117
|
*/
|
|
118
118
|
function defineLocaleRegistry(options = {}) {
|
|
119
119
|
const extra = options.extra ?? [];
|
|
120
|
-
|
|
120
|
+
let family = LOCALES;
|
|
121
|
+
if (options.only !== void 0) {
|
|
122
|
+
if (options.only.length === 0) throw new RangeError("`only` needs at least one locale — a registry with none is a bug, not a choice");
|
|
123
|
+
const wanted = new Set(options.only);
|
|
124
|
+
for (const code of wanted) if (!LOCALES.some((locale) => locale.code === code)) throw new RangeError(`${code} is not a family locale — \`only\` selects from the family list; use \`extra\` for a product's own`);
|
|
125
|
+
family = Object.freeze(LOCALES.filter((locale) => wanted.has(locale.code)));
|
|
126
|
+
}
|
|
127
|
+
const seen = new Set(family.map(({ code }) => code));
|
|
121
128
|
for (const locale of extra) {
|
|
122
129
|
if (!locale?.code) throw new TypeError("every extra locale needs a code");
|
|
123
|
-
if (
|
|
130
|
+
if (LOCALES.some((known) => known.code === locale.code)) throw new RangeError(`${locale.code} is already a family locale — remove it from \`extra\``);
|
|
131
|
+
if (seen.has(locale.code)) throw new RangeError(`${locale.code} appears twice in \`extra\``);
|
|
124
132
|
if (!locale.nativeName) throw new TypeError(`${locale.code} needs a nativeName — it is what the picker shows`);
|
|
125
133
|
if (locale.dir !== "ltr" && locale.dir !== "rtl") throw new RangeError(`${locale.code} needs dir "ltr" or "rtl"`);
|
|
126
134
|
seen.add(locale.code);
|
|
127
135
|
}
|
|
128
|
-
const locales = Object.freeze([...
|
|
136
|
+
const locales = Object.freeze([...family, ...extra.map((locale) => Object.freeze({ ...locale }))]);
|
|
129
137
|
const byLower = new Map(locales.map((locale) => [locale.code.toLowerCase(), locale]));
|
|
130
138
|
const aliases = new Map([...FAMILY_ALIASES, ...options.aliases ?? []]);
|
|
131
139
|
function canonicalLocale(candidate) {
|
|
@@ -133,7 +141,10 @@ function defineLocaleRegistry(options = {}) {
|
|
|
133
141
|
const exact = byLower.get(String(candidate).trim().toLowerCase());
|
|
134
142
|
if (exact) return exact.code;
|
|
135
143
|
const base = String(candidate).trim().toLowerCase().split("-")[0];
|
|
136
|
-
if (aliases.has(base))
|
|
144
|
+
if (aliases.has(base)) {
|
|
145
|
+
const target = aliases.get(base);
|
|
146
|
+
return byLower.has(target.toLowerCase()) ? target : void 0;
|
|
147
|
+
}
|
|
137
148
|
return byLower.get(base)?.code;
|
|
138
149
|
}
|
|
139
150
|
function definitionFor(locale) {
|
|
@@ -335,32 +346,32 @@ function flagFor(locale, registry) {
|
|
|
335
346
|
}
|
|
336
347
|
//#endregion
|
|
337
348
|
//#region src/solid/locale-menu.tsx
|
|
338
|
-
var _tmpl$$
|
|
349
|
+
var _tmpl$$5 = [
|
|
339
350
|
"<svg",
|
|
340
351
|
" aria-hidden=\"true\">",
|
|
341
352
|
"</svg>"
|
|
342
353
|
];
|
|
343
|
-
var _tmpl$2$
|
|
354
|
+
var _tmpl$2$3 = [
|
|
344
355
|
"<label",
|
|
345
356
|
"><span class=\"dds-sr-only\">",
|
|
346
357
|
"</span><span class=\"dds-select site-locale\"><select class=\"dds-select__input\"",
|
|
347
358
|
">",
|
|
348
359
|
"</select></span></label>"
|
|
349
360
|
];
|
|
350
|
-
var _tmpl$3$
|
|
361
|
+
var _tmpl$3$3 = [
|
|
351
362
|
"<option",
|
|
352
363
|
"",
|
|
353
364
|
">",
|
|
354
365
|
"</option>"
|
|
355
366
|
];
|
|
356
|
-
var _tmpl$4$
|
|
367
|
+
var _tmpl$4$2 = [
|
|
357
368
|
"<details",
|
|
358
369
|
" class=\"site-locale-flag\"><summary class=\"site-locale-flag__trigger\"",
|
|
359
370
|
">",
|
|
360
371
|
"</summary><ul class=\"site-locale-flag__list\" role=\"list\">",
|
|
361
372
|
"</ul></details>"
|
|
362
373
|
];
|
|
363
|
-
var _tmpl$5$
|
|
374
|
+
var _tmpl$5$2 = [
|
|
364
375
|
"<li",
|
|
365
376
|
"><a class=\"site-locale-flag__option\"",
|
|
366
377
|
"><!--$-->",
|
|
@@ -381,15 +392,15 @@ var registryOf = (props) => props.registry ?? FAMILY_LOCALES;
|
|
|
381
392
|
function Flag(props) {
|
|
382
393
|
const uid = createUniqueId();
|
|
383
394
|
const flag = () => flagFor(props.locale, props.registry);
|
|
384
|
-
return ssr(_tmpl$$
|
|
395
|
+
return ssr(_tmpl$$5, ssrHydrationKey() + ssrAttribute("class", escape(props.class, true), false) + ssrAttribute("viewBox", escape(flag().viewBox, true), false), scopeFlagIds(flag().body, uid));
|
|
385
396
|
}
|
|
386
397
|
function SelectLocaleMenu(props) {
|
|
387
398
|
const registry = () => registryOf(props);
|
|
388
|
-
return ssr(_tmpl$2$
|
|
399
|
+
return ssr(_tmpl$2$3, ssrHydrationKey(), escape(props.messages.localeLabel), ssrAttribute("aria-label", escape(props.messages.localeLabel, true), false), escape(createComponent(For, {
|
|
389
400
|
get each() {
|
|
390
401
|
return registry().LOCALES;
|
|
391
402
|
},
|
|
392
|
-
children: (locale) => ssr(_tmpl$3$
|
|
403
|
+
children: (locale) => ssr(_tmpl$3$3, ssrHydrationKey() + ssrAttribute("value", escape(locale.code, true), false) + ssrAttribute("lang", escape(locale.code, true), false) + ssrAttribute("dir", escape(locale.dir, true), false), ssrAttribute("selected", locale.code === props.state.locale, true), escape(locale.nativeName))
|
|
393
404
|
})));
|
|
394
405
|
}
|
|
395
406
|
function FlagLocaleMenu(props) {
|
|
@@ -399,7 +410,7 @@ function FlagLocaleMenu(props) {
|
|
|
399
410
|
const name = current()?.nativeName;
|
|
400
411
|
return name ? `${props.messages.localeLabel}: ${name}` : props.messages.localeLabel;
|
|
401
412
|
};
|
|
402
|
-
return ssr(_tmpl$4$
|
|
413
|
+
return ssr(_tmpl$4$2, ssrHydrationKey(), ssrAttribute("aria-label", escape(triggerLabel(), true), false) + ssrAttribute("title", escape(props.messages.localeLabel, true), false), escape(createComponent(Flag, {
|
|
403
414
|
get locale() {
|
|
404
415
|
return props.state.locale;
|
|
405
416
|
},
|
|
@@ -411,7 +422,7 @@ function FlagLocaleMenu(props) {
|
|
|
411
422
|
get each() {
|
|
412
423
|
return registry().LOCALES;
|
|
413
424
|
},
|
|
414
|
-
children: (entry) => ssr(_tmpl$5$
|
|
425
|
+
children: (entry) => ssr(_tmpl$5$2, ssrHydrationKey(), ssrAttribute("href", escape(props.state.hrefForLocale(entry.code), true), false) + ssrAttribute("lang", escape(entry.code, true), false) + ssrAttribute("hreflang", escape(entry.code, true), false) + ssrAttribute("dir", escape(entry.dir, true), false) + ssrAttribute("aria-current", entry.code === props.state.locale ? "true" : escape(void 0, true), false), escape(createComponent(Flag, {
|
|
415
426
|
get locale() {
|
|
416
427
|
return entry.code;
|
|
417
428
|
},
|
|
@@ -427,7 +438,7 @@ function LocaleMenu(props) {
|
|
|
427
438
|
}
|
|
428
439
|
//#endregion
|
|
429
440
|
//#region src/solid/chrome.tsx
|
|
430
|
-
var _tmpl$$
|
|
441
|
+
var _tmpl$$4 = [
|
|
431
442
|
"<header",
|
|
432
443
|
" class=\"site-header\"><a class=\"dds-sr-only\" href=\"#main-content\">",
|
|
433
444
|
"</a><div class=\"site-header__inner\"><a class=\"site-brand\"",
|
|
@@ -442,13 +453,13 @@ var _tmpl$$3 = [
|
|
|
442
453
|
"<!--/--><!--$-->",
|
|
443
454
|
"<!--/--></div></div></header>"
|
|
444
455
|
];
|
|
445
|
-
var _tmpl$2$
|
|
456
|
+
var _tmpl$2$2 = [
|
|
446
457
|
"<li",
|
|
447
458
|
"><a",
|
|
448
459
|
">",
|
|
449
460
|
"</a></li>"
|
|
450
461
|
];
|
|
451
|
-
var _tmpl$3$
|
|
462
|
+
var _tmpl$3$2 = [
|
|
452
463
|
"<footer",
|
|
453
464
|
" class=\"site-footer\"",
|
|
454
465
|
"><div class=\"site-footer__inner\"><strong>",
|
|
@@ -509,7 +520,7 @@ function ThemeToggle(props) {
|
|
|
509
520
|
}
|
|
510
521
|
function SiteHeader(props) {
|
|
511
522
|
const [menuOpen, setMenuOpen] = createSignal(false);
|
|
512
|
-
return ssr(_tmpl$$
|
|
523
|
+
return ssr(_tmpl$$4, ssrHydrationKey(), escape(props.messages.skipToContent), ssrAttribute("href", escape(props.brand.href, true), false), escape(props.brand.logo), escape(props.brand.name), escape(createComponent(Button, {
|
|
513
524
|
"class": "site-menu-button",
|
|
514
525
|
tone: "ghost",
|
|
515
526
|
get ["aria-expanded"]() {
|
|
@@ -524,7 +535,7 @@ function SiteHeader(props) {
|
|
|
524
535
|
get each() {
|
|
525
536
|
return props.navigation;
|
|
526
537
|
},
|
|
527
|
-
children: (item) => ssr(_tmpl$2$
|
|
538
|
+
children: (item) => ssr(_tmpl$2$2, ssrHydrationKey(), ssrAttribute("href", escape(item.href, true), false) + ssrAttribute("target", item.external ? "_blank" : escape(void 0, true), false) + ssrAttribute("rel", item.external ? "noreferrer" : escape(void 0, true), false), escape(item.label))
|
|
528
539
|
})), ssrAttribute("data-open", escape(String(menuOpen()), true), false), escape(createComponent(LocaleMenu, mergeProps({
|
|
529
540
|
get state() {
|
|
530
541
|
return props.locale;
|
|
@@ -537,23 +548,24 @@ function SiteHeader(props) {
|
|
|
537
548
|
} }))), escape(props.actions));
|
|
538
549
|
}
|
|
539
550
|
function SiteFooter(props) {
|
|
540
|
-
return ssr(_tmpl$3$
|
|
551
|
+
return ssr(_tmpl$3$2, ssrHydrationKey(), ssrAttribute("aria-label", escape(props.messages.footerLabel, true), false), escape(props.brand.name), escape(createComponent(For, {
|
|
541
552
|
get each() {
|
|
542
553
|
return props.links;
|
|
543
554
|
},
|
|
544
|
-
children: (item) => ssr(_tmpl$2$
|
|
555
|
+
children: (item) => ssr(_tmpl$2$2, ssrHydrationKey(), ssrAttribute("href", escape(item.href, true), false), escape(item.label))
|
|
545
556
|
})), escape(props.copyright));
|
|
546
557
|
}
|
|
547
558
|
//#endregion
|
|
548
559
|
//#region src/solid/layouts.tsx
|
|
549
|
-
var _tmpl$$
|
|
560
|
+
var _tmpl$$3 = [
|
|
550
561
|
"<div",
|
|
551
562
|
" class=\"site-shell\"><!--$-->",
|
|
552
|
-
"<!--/--><main id=\"main-content\"
|
|
563
|
+
"<!--/--><main id=\"main-content\"",
|
|
564
|
+
" tabindex=\"-1\">",
|
|
553
565
|
"</main><!--$-->",
|
|
554
566
|
"<!--/--></div>"
|
|
555
567
|
];
|
|
556
|
-
var _tmpl$2 = [
|
|
568
|
+
var _tmpl$2$1 = [
|
|
557
569
|
"<article",
|
|
558
570
|
" class=\"site-legal\"><header><h1>",
|
|
559
571
|
"</h1><p><!--$-->",
|
|
@@ -562,7 +574,7 @@ var _tmpl$2 = [
|
|
|
562
574
|
"</time></p></header><!--$-->",
|
|
563
575
|
"<!--/--></article>"
|
|
564
576
|
];
|
|
565
|
-
var _tmpl$3 = [
|
|
577
|
+
var _tmpl$3$1 = [
|
|
566
578
|
"<section",
|
|
567
579
|
" class=\"",
|
|
568
580
|
"\"",
|
|
@@ -571,12 +583,12 @@ var _tmpl$3 = [
|
|
|
571
583
|
"<!--/--><!--$-->",
|
|
572
584
|
"<!--/--></section>"
|
|
573
585
|
];
|
|
574
|
-
var _tmpl$4 = [
|
|
586
|
+
var _tmpl$4$1 = [
|
|
575
587
|
"<div",
|
|
576
588
|
">",
|
|
577
589
|
"</div>"
|
|
578
590
|
];
|
|
579
|
-
var _tmpl$5 = [
|
|
591
|
+
var _tmpl$5$1 = [
|
|
580
592
|
"<main",
|
|
581
593
|
" class=\"site-main site-centered-layout\"><h1>",
|
|
582
594
|
"</h1><p>",
|
|
@@ -585,7 +597,7 @@ var _tmpl$5 = [
|
|
|
585
597
|
">",
|
|
586
598
|
"</a></main>"
|
|
587
599
|
];
|
|
588
|
-
var _tmpl$6 = [
|
|
600
|
+
var _tmpl$6$1 = [
|
|
589
601
|
"<main",
|
|
590
602
|
" class=\"site-main site-centered-layout\"><h1>",
|
|
591
603
|
"</h1><p>",
|
|
@@ -594,19 +606,20 @@ var _tmpl$6 = [
|
|
|
594
606
|
"<!--/--><!--$-->",
|
|
595
607
|
"<!--/--></main>"
|
|
596
608
|
];
|
|
597
|
-
var _tmpl$7 = [
|
|
609
|
+
var _tmpl$7$1 = [
|
|
598
610
|
"<code",
|
|
599
611
|
">",
|
|
600
612
|
"</code>"
|
|
601
613
|
];
|
|
602
614
|
function MarketingShell(props) {
|
|
603
|
-
|
|
615
|
+
const mainClass = () => props.mainWidth === "bleed" ? "site-main site-main--bleed" : "site-main";
|
|
616
|
+
return ssr(_tmpl$$3, ssrHydrationKey(), escape(createComponent(SiteHeader, mergeProps(() => props.header))), ssrAttribute("class", escape(mainClass(), true), false), escape(props.children), escape(createComponent(SiteFooter, mergeProps(() => props.footer))));
|
|
604
617
|
}
|
|
605
618
|
function LegalLayout(props) {
|
|
606
|
-
return ssr(_tmpl$2, ssrHydrationKey(), escape(props.title), escape(props.messages.updatedLabel), ssrAttribute("datetime", escape(props.updatedAt, true), false), escape(props.updatedAt), escape(props.children));
|
|
619
|
+
return ssr(_tmpl$2$1, ssrHydrationKey(), escape(props.title), escape(props.messages.updatedLabel), ssrAttribute("datetime", escape(props.updatedAt, true), false), escape(props.updatedAt), escape(props.children));
|
|
607
620
|
}
|
|
608
621
|
function StatusBanner(props) {
|
|
609
|
-
return ssr(_tmpl$3, ssrHydrationKey(), `site-status site-status--${escape(props.tone, true)}`, ssrAttribute("role", props.tone === "danger" ? "alert" : "status", false) + ssrAttribute("aria-live", props.tone === "danger" ? "assertive" : "polite", false), escape(props.title), props.children && ssr(_tmpl$4, ssrHydrationKey(), escape(props.children)), props.action && escape(createComponent(Button, {
|
|
622
|
+
return ssr(_tmpl$3$1, ssrHydrationKey(), `site-status site-status--${escape(props.tone, true)}`, ssrAttribute("role", props.tone === "danger" ? "alert" : "status", false) + ssrAttribute("aria-live", props.tone === "danger" ? "assertive" : "polite", false), escape(props.title), props.children && ssr(_tmpl$4$1, ssrHydrationKey(), escape(props.children)), props.action && escape(createComponent(Button, {
|
|
610
623
|
get tone() {
|
|
611
624
|
return props.action.tone ?? "secondary";
|
|
612
625
|
},
|
|
@@ -619,10 +632,10 @@ function StatusBanner(props) {
|
|
|
619
632
|
})));
|
|
620
633
|
}
|
|
621
634
|
function NotFoundLayout(props) {
|
|
622
|
-
return ssr(_tmpl$5, ssrHydrationKey(), escape(props.messages.notFoundTitle), escape(props.messages.notFoundDescription), escape(props.children), ssrAttribute("href", escape(props.homeHref, true), false), escape(props.messages.backHome));
|
|
635
|
+
return ssr(_tmpl$5$1, ssrHydrationKey(), escape(props.messages.notFoundTitle), escape(props.messages.notFoundDescription), escape(props.children), ssrAttribute("href", escape(props.homeHref, true), false), escape(props.messages.backHome));
|
|
623
636
|
}
|
|
624
637
|
function ErrorLayout(props) {
|
|
625
|
-
return ssr(_tmpl$6, ssrHydrationKey(), escape(props.messages.errorTitle), escape(props.messages.errorDescription), props.errorId && ssr(_tmpl$7, ssrHydrationKey(), escape(props.errorId)), escape(props.children), escape(createComponent(Button, {
|
|
638
|
+
return ssr(_tmpl$6$1, ssrHydrationKey(), escape(props.messages.errorTitle), escape(props.messages.errorDescription), props.errorId && ssr(_tmpl$7$1, ssrHydrationKey(), escape(props.errorId)), escape(props.children), escape(createComponent(Button, {
|
|
626
639
|
tone: "primary",
|
|
627
640
|
get onClick() {
|
|
628
641
|
return props.onRetry;
|
|
@@ -634,7 +647,7 @@ function ErrorLayout(props) {
|
|
|
634
647
|
}
|
|
635
648
|
//#endregion
|
|
636
649
|
//#region src/solid/request-access.tsx
|
|
637
|
-
var _tmpl$$
|
|
650
|
+
var _tmpl$$2 = [
|
|
638
651
|
"<form",
|
|
639
652
|
" class=\"",
|
|
640
653
|
"\"><!--$-->",
|
|
@@ -647,7 +660,7 @@ var _tmpl$$1 = [
|
|
|
647
660
|
];
|
|
648
661
|
function RequestAccessForm(props) {
|
|
649
662
|
const [state, setState] = createSignal("idle");
|
|
650
|
-
return ssr(_tmpl$$
|
|
663
|
+
return ssr(_tmpl$$2, ssrHydrationKey(), `site-request-form${props.class ? ` ${escape(props.class, true)}` : ""}`, escape(createComponent(Field, {
|
|
651
664
|
get label() {
|
|
652
665
|
return props.messages.nameLabel;
|
|
653
666
|
},
|
|
@@ -700,7 +713,7 @@ function RequestAccessForm(props) {
|
|
|
700
713
|
}
|
|
701
714
|
//#endregion
|
|
702
715
|
//#region src/solid/oss-product-mark.tsx
|
|
703
|
-
var _tmpl
|
|
716
|
+
var _tmpl$$1 = [
|
|
704
717
|
"<img",
|
|
705
718
|
" class=\"",
|
|
706
719
|
"\"",
|
|
@@ -714,9 +727,129 @@ var MARK_SIZE = {
|
|
|
714
727
|
function OssProductMark(props) {
|
|
715
728
|
const size = () => props.size ?? "md";
|
|
716
729
|
const pixels = () => MARK_SIZE[size()];
|
|
717
|
-
return ssr(_tmpl
|
|
730
|
+
return ssr(_tmpl$$1, ssrHydrationKey(), `oss-product-mark oss-product-mark--${escape(size(), true)}${props.class ? ` ${escape(props.class, true)}` : ""}`, ssrAttribute("src", escape(props.src, true), false) + ssrAttribute("alt", props.decorative ? "" : escape(props.name, true), false) + ssrAttribute("aria-hidden", props.decorative ? "true" : escape(void 0, true), false) + ssrAttribute("width", escape(pixels(), true), false) + ssrAttribute("height", escape(pixels(), true), false));
|
|
731
|
+
}
|
|
732
|
+
//#endregion
|
|
733
|
+
//#region src/solid/sections.tsx
|
|
734
|
+
var _tmpl$ = [
|
|
735
|
+
"<section",
|
|
736
|
+
" class=\"site-section\"",
|
|
737
|
+
"><div class=\"site-section__shell\">",
|
|
738
|
+
"</div></section>"
|
|
739
|
+
];
|
|
740
|
+
var _tmpl$2 = [
|
|
741
|
+
"<header",
|
|
742
|
+
" class=\"site-section__head\"><p class=\"site-section__index\" aria-hidden=\"true\">",
|
|
743
|
+
"</p><h2",
|
|
744
|
+
">",
|
|
745
|
+
"</h2><!--$-->",
|
|
746
|
+
"<!--/--></header>"
|
|
747
|
+
];
|
|
748
|
+
var _tmpl$3 = [
|
|
749
|
+
"<p",
|
|
750
|
+
" class=\"site-section__lede\">",
|
|
751
|
+
"</p>"
|
|
752
|
+
];
|
|
753
|
+
var _tmpl$4 = [
|
|
754
|
+
"<section",
|
|
755
|
+
" class=\"site-hero\"",
|
|
756
|
+
"><div class=\"site-hero__shell\"><div class=\"site-hero__copy\"><!--$-->",
|
|
757
|
+
"<!--/--><h1",
|
|
758
|
+
">",
|
|
759
|
+
"</h1><p class=\"site-hero__lede\">",
|
|
760
|
+
"</p><div class=\"site-hero__actions\">",
|
|
761
|
+
"</div></div><figure class=\"site-hero__aside\"",
|
|
762
|
+
">",
|
|
763
|
+
"</figure></div></section>"
|
|
764
|
+
];
|
|
765
|
+
var _tmpl$5 = [
|
|
766
|
+
"<p",
|
|
767
|
+
" class=\"site-hero__eyebrow\">",
|
|
768
|
+
"</p>"
|
|
769
|
+
];
|
|
770
|
+
var _tmpl$6 = [
|
|
771
|
+
"<ol",
|
|
772
|
+
" class=\"site-steps\"",
|
|
773
|
+
">",
|
|
774
|
+
"</ol>"
|
|
775
|
+
];
|
|
776
|
+
var _tmpl$7 = [
|
|
777
|
+
"<li",
|
|
778
|
+
" class=\"site-steps__step\"><span class=\"site-steps__marker\" aria-hidden=\"true\">",
|
|
779
|
+
"</span><h3>",
|
|
780
|
+
"</h3><p>",
|
|
781
|
+
"</p></li>"
|
|
782
|
+
];
|
|
783
|
+
var _tmpl$8 = [
|
|
784
|
+
"<ul",
|
|
785
|
+
" class=\"site-rows\"",
|
|
786
|
+
">",
|
|
787
|
+
"</ul>"
|
|
788
|
+
];
|
|
789
|
+
var _tmpl$9 = [
|
|
790
|
+
"<li",
|
|
791
|
+
" class=\"site-rows__row\"><div class=\"site-rows__title\"><h3>",
|
|
792
|
+
"</h3><!--$-->",
|
|
793
|
+
"<!--/--></div><p class=\"site-rows__body\">",
|
|
794
|
+
"</p></li>"
|
|
795
|
+
];
|
|
796
|
+
var _tmpl$0 = [
|
|
797
|
+
"<span",
|
|
798
|
+
" class=\"dds-badge dds-badge--brand\">",
|
|
799
|
+
"</span>"
|
|
800
|
+
];
|
|
801
|
+
var _tmpl$1 = [
|
|
802
|
+
"<div",
|
|
803
|
+
" class=\"site-pricing\"><div class=\"site-pricing__note\">",
|
|
804
|
+
"</div><div class=\"site-pricing__action\">",
|
|
805
|
+
"</div></div>"
|
|
806
|
+
];
|
|
807
|
+
function SectionBlock(props) {
|
|
808
|
+
return ssr(_tmpl$, ssrHydrationKey(), ssrAttribute("id", escape(props.id, true), false) + ssrAttribute("data-tone", escape(props.tone ?? "default", true), false) + ssrAttribute("aria-labelledby", escape(props.labelledBy, true), false), escape(props.children));
|
|
809
|
+
}
|
|
810
|
+
function SectionHead(props) {
|
|
811
|
+
return ssr(_tmpl$2, ssrHydrationKey(), escape(props.index), ssrAttribute("id", escape(props.titleId, true), false), escape(props.title), escape(createComponent(Show, {
|
|
812
|
+
get when() {
|
|
813
|
+
return props.lede;
|
|
814
|
+
},
|
|
815
|
+
children: (lede) => ssr(_tmpl$3, ssrHydrationKey(), escape(lede()))
|
|
816
|
+
})));
|
|
817
|
+
}
|
|
818
|
+
function HeroSplit(props) {
|
|
819
|
+
return ssr(_tmpl$4, ssrHydrationKey() + ssrAttribute("id", escape(props.id, true), false), ssrAttribute("aria-labelledby", escape(props.titleId, true), false), escape(createComponent(Show, {
|
|
820
|
+
get when() {
|
|
821
|
+
return props.eyebrow;
|
|
822
|
+
},
|
|
823
|
+
children: (eyebrow) => ssr(_tmpl$5, ssrHydrationKey(), escape(eyebrow()))
|
|
824
|
+
})), ssrAttribute("id", escape(props.titleId, true), false), escape(props.title), escape(props.lede), escape(props.actions), ssrAttribute("aria-label", escape(props.asideLabel, true), false), escape(props.aside));
|
|
825
|
+
}
|
|
826
|
+
function StepFlow(props) {
|
|
827
|
+
return ssr(_tmpl$6, ssrHydrationKey(), ssrAttribute("aria-label", escape(props.label, true), false), escape(createComponent(For, {
|
|
828
|
+
get each() {
|
|
829
|
+
return props.steps;
|
|
830
|
+
},
|
|
831
|
+
children: (step, index) => ssr(_tmpl$7, ssrHydrationKey(), escape(index()) + 1, escape(step.title), escape(step.body))
|
|
832
|
+
})));
|
|
833
|
+
}
|
|
834
|
+
/** Hairline rows — a card grid is the thing this primitive exists to replace. */
|
|
835
|
+
function FeatureRows(props) {
|
|
836
|
+
return ssr(_tmpl$8, ssrHydrationKey(), ssrAttribute("aria-label", escape(props.label, true), false), escape(createComponent(For, {
|
|
837
|
+
get each() {
|
|
838
|
+
return props.rows;
|
|
839
|
+
},
|
|
840
|
+
children: (row) => ssr(_tmpl$9, ssrHydrationKey(), escape(row.title), escape(createComponent(Show, {
|
|
841
|
+
get when() {
|
|
842
|
+
return row.badge;
|
|
843
|
+
},
|
|
844
|
+
children: (badge) => ssr(_tmpl$0, ssrHydrationKey(), escape(badge()))
|
|
845
|
+
})), escape(row.body))
|
|
846
|
+
})));
|
|
847
|
+
}
|
|
848
|
+
/** One paragraph block, one action. No table, no tiers — a note, not a pricing page. */
|
|
849
|
+
function PricingNote(props) {
|
|
850
|
+
return ssr(_tmpl$1, ssrHydrationKey(), escape(props.children), escape(props.action));
|
|
718
851
|
}
|
|
719
852
|
//#endregion
|
|
720
|
-
export { ErrorLayout, LegalLayout, LocaleMenu, MarketingShell, NotFoundLayout, OssProductMark, RequestAccessForm, SiteFooter, SiteHeader, StatusBanner, ThemeToggle };
|
|
853
|
+
export { ErrorLayout, FeatureRows, HeroSplit, LegalLayout, LocaleMenu, MarketingShell, NotFoundLayout, OssProductMark, PricingNote, RequestAccessForm, SectionBlock, SectionHead, SiteFooter, SiteHeader, StatusBanner, StepFlow, ThemeToggle };
|
|
721
854
|
|
|
722
855
|
//# sourceMappingURL=solid.server.js.map
|