@devslab/site-kit 0.11.1 → 0.12.2

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/dist/solid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"solid.js","names":["For","createUniqueId","sharedConfig","JSX","FAMILY_LOCALES","LocaleRegistry","SiteLocale","FLAG_VIEWBOX","flagCountryFor","flagBodiesNow","loadFlagBodies","FlagBodies","LocaleState","SiteMessages","LocaleMenuVariant","LocaleMenuProps","state","messages","variant","onLocaleChange","locale","href","registry","scopeFlagIds","body","uid","ids","matchAll","map","match","length","scoped","id","suffixed","replaceAll","registryOf","props","symbolId","country","spriteMarkup","countries","bodies","flag","RangeError","viewBox","join","FlagSprite","_el$","_$getNextElement","_tmpl$","_$effect","_$setProperty","_el$2","_$use","element","context","then","loaded","innerHTML","Flag","class","_el$3","_tmpl$2","_el$4","firstChild","_$setAttribute","_p$","_v$","_v$2","e","t","undefined","SelectLocaleMenu","_el$5","_tmpl$3","_el$6","_el$7","nextSibling","_el$8","_$insert","localeLabel","addEventListener","event","currentTarget","value","hrefForLocale","window","location","assign","_$createComponent","each","LOCALES","children","_el$9","_tmpl$4","nativeName","_v$3","code","_v$4","dir","_v$5","a","FlagLocaleMenu","details","HTMLDetailsElement","trigger","HTMLElement","Set","entry","current","find","close","open","onKeyDown","EventHandler","KeyboardEvent","key","preventDefault","focus","triggerLabel","name","_el$0","_tmpl$5","_el$1","_el$10","_el$11","_co$","_$getNextMarker","_el$12","_el$13","_co$2","_el$14","$$keydown","_ref$","_ref$2","_el$15","_tmpl$6","_el$16","_el$18","_el$19","_co$3","_el$17","$$click","_v$8","_v$9","_v$0","_v$1","_v$10","o","i","_$runHydrationEvents","_v$6","_v$7","LocaleMenu","_$delegateEvents","Button","Icon","IconButton","For","Show","createSignal","onMount","JSX","LocaleMenu","LocaleMenuProps","LocaleMenuVariant","FAMILY_LOCALES","LocaleRegistry","SiteLocale","LocaleState","SiteBrand","SiteLink","SiteMessages","ThemePreference","ThemeToggleProps","messages","value","defaultValue","onValueChange","theme","storageKey","ThemeToggle","props","order","internal","setInternal","resolved","setResolved","nextTheme","nextLabel","themeDark","themeLight","apply","matchMedia","matches","document","documentElement","dataset","themePreference","update","undefined","localStorage","setItem","stored","getItem","includes","_$createComponent","tone","aria-label","themeLabel","title","onClick","children","name","data-icon","size","SiteHeaderProps","brand","navigation","locale","Omit","onLocaleChange","localeVariant","localeRegistry","actions","Element","SiteHeader","menuOpen","setMenuOpen","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_el$6","_co$","_$getNextMarker","_el$7","_el$8","_co$2","_el$16","_el$17","_co$6","_el$9","_el$0","_el$1","_el$10","_el$11","_co$3","_el$12","_el$13","_co$4","_el$14","_el$15","_co$5","_$insert","skipToContent","logo","aria-expanded","open","_$memo","menuClose","each","item","_el$18","_tmpl$2","_el$19","label","_$effect","_p$","_v$5","href","_v$6","external","_v$7","e","_$setAttribute","t","a","_$mergeProps","state","variant","registry","_c$","_v$","_v$2","String","_v$3","navigationLabel","_v$4","o","FooterLocaleMenu","onSelect","details","HTMLDetailsElement","trigger","HTMLElement","current","LOCALES","find","entry","code","close","onKeyDown","EventHandler","KeyboardEvent","event","key","preventDefault","focus","_el$20","_tmpl$3","_el$21","_el$22","_el$23","_el$24","$$keydown","_ref$","_$use","_ref$2","nativeName","_el$25","_el$26","$$click","_v$10","hrefForLocale","_v$11","_v$12","_v$13","dir","_v$14","i","_$runHydrationEvents","_v$8","_v$9","_v$0","_v$1","SiteFooterProps","links","copyright","copyrightHref","onLocaleSelect","family","SiteFooter","_el$27","_tmpl$4","_el$28","_el$40","_el$41","_co$0","_el$29","_el$30","_el$32","_el$33","_co$7","_el$31","_el$34","_el$35","_co$8","_el$36","_el$38","_el$39","_co$9","_el$37","when","localeLabel","_tmpl$5","_el$43","_tmpl$6","_el$44","_el$45","fallback","_el$46","_tmpl$7","_el$47","_tmpl$8","_el$48","footerLabel","_$delegateEvents","Button","ButtonTone","JSX","SiteFooter","SiteHeader","SiteFooterProps","SiteHeaderProps","SiteMessages","MarketingShellProps","header","footer","messages","children","Element","mainWidth","MarketingShell","props","mainClass","_el$","_$getNextElement","_tmpl$","_el$3","firstChild","_el$4","_co$","_$getNextMarker","nextSibling","_el$2","_el$5","_el$6","_co$2","_$insert","_$createComponent","_$mergeProps","_$effect","_$className","LegalLayoutProps","title","updatedAt","LegalLayout","_el$7","_tmpl$2","_el$8","_el$9","_el$0","_el$11","_el$12","_co$3","_el$1","_el$10","_el$13","_el$14","_co$4","updatedLabel","_$setAttribute","StatusBannerProps","tone","action","label","onClick","StatusBanner","_el$15","_tmpl$3","_el$16","_el$17","_el$18","_co$5","_el$19","_el$20","_co$6","_c$","_$memo","_el$21","_tmpl$4","_c$2","_p$","_v$","_v$2","_v$3","e","t","a","undefined","NotFoundLayoutProps","homeHref","NotFoundLayout","_el$22","_tmpl$5","_el$23","_el$24","_el$26","_el$27","_co$7","_el$25","notFoundTitle","notFoundDescription","backHome","ErrorLayoutProps","onRetry","errorId","ErrorLayout","_el$28","_tmpl$6","_el$29","_el$30","_el$31","_el$32","_co$8","_el$33","_el$34","_co$9","_el$35","_el$36","_co$0","errorTitle","errorDescription","_c$3","_el$37","_tmpl$7","retry","Button","Field","createSignal","RequestAccessMessages","nameLabel","emailLabel","organizationLabel","useCaseLabel","submit","submitting","success","error","RequestAccessFormProps","messages","onSubmit","data","FormData","Promise","class","RequestAccessForm","props","state","setState","event","SubmitEvent","preventDefault","currentTarget","HTMLFormElement","_el$","_$getNextElement","_tmpl$","_el$3","firstChild","_el$4","_co$","_$getNextMarker","nextSibling","_el$5","_el$6","_co$2","_el$7","_el$8","_co$3","_el$9","_el$0","_co$4","_el$1","_el$10","_co$5","_el$2","addEventListener","_$insert","_$createComponent","label","required","children","control","_el$11","_tmpl$2","_$spread","_$mergeProps","_$runHydrationEvents","_el$12","_el$13","_el$14","_tmpl$3","type","loading","_$memo","_c$","_$effect","_$className","OssProductMarkProps","name","src","size","decorative","class","MARK_SIZE","sm","md","lg","const","OssProductMark","props","pixels","_el$","_$getNextElement","_tmpl$","_$effect","_p$","_v$","_v$2","_v$3","_v$4","undefined","_v$5","_v$6","e","_$className","t","_$setAttribute","a","o","i","n","For","Show","JSX","SectionBlockProps","id","labelledBy","tone","children","Element","SectionBlock","props","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_$insert","_$effect","_p$","_v$","_v$2","_v$3","e","_$setAttribute","t","a","undefined","SectionHeadProps","index","title","titleId","lede","SectionHead","_el$3","_tmpl$2","_el$4","_el$5","nextSibling","_el$6","_el$7","_co$","_$getNextMarker","_$createComponent","when","_el$8","_tmpl$3","HeroSplitProps","eyebrow","actions","aside","asideLabel","HeroSplit","_el$9","_tmpl$4","_el$0","_el$1","_el$13","_el$14","_co$2","_el$10","_el$11","_el$12","_el$15","_el$16","_tmpl$5","_v$4","_v$5","_v$6","_v$7","o","StepFlowStep","body","StepFlowProps","steps","ReadonlyArray","label","StepFlow","_el$17","_tmpl$6","each","step","_el$18","_tmpl$7","_el$19","_el$20","_el$21","FeatureRow","badge","FeatureRowsProps","rows","FeatureRows","_el$22","_tmpl$8","row","_el$23","_tmpl$9","_el$24","_el$25","_el$26","_el$27","_co$3","_el$28","_el$29","_tmpl$0","PricingNoteProps","action","PricingNote","_el$30","_tmpl$1","_el$31","_el$32"],"sources":["../src/core/locales.mjs","../src/core/flag-countries.mjs","../src/solid/flag-bodies.ts","../src/solid/locale-menu.tsx","../src/solid/chrome.tsx","../src/solid/layouts.tsx","../src/solid/request-access.tsx","../src/solid/oss-product-mark.tsx","../src/solid/sections.tsx"],"sourcesContent":["export const LOCALES = Object.freeze([\n { code: \"ko\", language: \"Korean\", nativeName: \"한국어\", dir: \"ltr\" },\n { code: \"en\", language: \"English\", nativeName: \"English\", dir: \"ltr\" },\n { code: \"ja\", language: \"Japanese\", nativeName: \"日本語\", dir: \"ltr\" },\n { code: \"zh-HK\", language: \"Chinese (Hong Kong)\", nativeName: \"繁體中文(香港)\", dir: \"ltr\" },\n { code: \"zh-TW\", language: \"Chinese (Taiwan)\", nativeName: \"繁體中文(台灣)\", dir: \"ltr\" },\n { code: \"hi\", language: \"Hindi\", nativeName: \"हिन्दी\", dir: \"ltr\" },\n { code: \"vi\", language: \"Vietnamese\", nativeName: \"Tiếng Việt\", dir: \"ltr\" },\n { code: \"id\", language: \"Indonesian\", nativeName: \"Bahasa Indonesia\", dir: \"ltr\" },\n { code: \"th\", language: \"Thai\", nativeName: \"ไทย\", dir: \"ltr\" },\n { code: \"pt-BR\", language: \"Portuguese (Brazil)\", nativeName: \"Português (Brasil)\", dir: \"ltr\" },\n { code: \"fr\", language: \"French\", nativeName: \"Français\", dir: \"ltr\" },\n { code: \"de\", language: \"German\", nativeName: \"Deutsch\", dir: \"ltr\" },\n { code: \"es\", language: \"Spanish\", nativeName: \"Español\", dir: \"ltr\" },\n { code: \"ar\", language: \"Arabic\", nativeName: \"العربية\", dir: \"rtl\" },\n]);\n\nconst FAMILY_ALIASES = Object.freeze([[\"zh\", \"zh-TW\"], [\"pt\", \"pt-BR\"]]);\n\n/**\n * The languages a site actually sells in.\n *\n * The list above is the family's — what devslab.kr markets in, and the\n * floor every product gets for free. It is not every product's list.\n * BookLinq sells to salons in India and its assistant already answers in\n * Tamil, Telugu, Bengali, Marathi, Gujarati and Kannada. Those are not\n * family languages and are not going to become family languages: putting\n * them in the list above would hand AskLinq and devslab.kr six entries\n * they have no copy for. But a BookLinq page that cannot render them is a\n * page that lies about what the product does.\n *\n * So the family owns the mechanism and the product names its own nouns. A\n * registry is the family list plus whatever a product adds, and every\n * locale-aware helper here can be bound to one. The bare exports at the\n * bottom are the family registry, so a consumer that never calls this\n * sees exactly what it saw before.\n *\n * An extra locale carries the same fields as a family one plus\n * `flagCountry`, naming a flag this package already vendors (`FLAG_COUNTRY`\n * lists them). Products do not ship SVG: flag data is licensed, generated\n * and security-scanned here, and seven Indian languages share one flag\n * anyway.\n *\n * @param {{ only?: ReadonlyArray<string>, extra?: ReadonlyArray<object>, aliases?: ReadonlyArray<[string, string]> }} [options]\n */\nexport function defineLocaleRegistry(options = {}) {\n const extra = options.extra ?? [];\n // `only` — the product sells in a subset of the family's languages. The\n // subset keeps the family's order (the picker order is a family decision)\n // and is applied before `extra`, so a product may still add its own.\n let family = LOCALES;\n if (options.only !== undefined) {\n if (options.only.length === 0) throw new RangeError(\"`only` needs at least one locale — a registry with none is a bug, not a choice\");\n const wanted = new Set(options.only);\n for (const code of wanted) {\n 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`);\n }\n family = Object.freeze(LOCALES.filter((locale) => wanted.has(locale.code)));\n }\n const seen = new Set(family.map(({ code }) => code));\n for (const locale of extra) {\n if (!locale?.code) throw new TypeError(\"every extra locale needs a code\");\n if (LOCALES.some((known) => known.code === locale.code)) {\n throw new RangeError(`${locale.code} is already a family locale — remove it from \\`extra\\``);\n }\n if (seen.has(locale.code)) {\n throw new RangeError(`${locale.code} appears twice in \\`extra\\``);\n }\n if (!locale.nativeName) throw new TypeError(`${locale.code} needs a nativeName — it is what the picker shows`);\n if (locale.dir !== \"ltr\" && locale.dir !== \"rtl\") throw new RangeError(`${locale.code} needs dir \"ltr\" or \"rtl\"`);\n seen.add(locale.code);\n }\n\n const locales = Object.freeze([...family, ...extra.map((locale) => Object.freeze({ ...locale }))]);\n const byLower = new Map(locales.map((locale) => [locale.code.toLowerCase(), locale]));\n const aliases = new Map([...FAMILY_ALIASES, ...(options.aliases ?? [])]);\n\n function canonicalLocale(candidate) {\n if (!candidate) return undefined;\n const exact = byLower.get(String(candidate).trim().toLowerCase());\n if (exact) return exact.code;\n const base = String(candidate).trim().toLowerCase().split(\"-\")[0];\n if (aliases.has(base)) { const target = aliases.get(base); return byLower.has(target.toLowerCase()) ? target : undefined; }\n return byLower.get(base)?.code;\n }\n\n function definitionFor(locale) {\n const canonical = canonicalLocale(locale);\n if (!canonical) throw new RangeError(`Unsupported locale: ${locale}`);\n return byLower.get(canonical.toLowerCase());\n }\n\n function localeAttributes(locale) {\n const definition = definitionFor(locale);\n // `dir` comes off the definition rather than a test for Arabic. The\n // old form read `canonical === \"ar\" ? \"rtl\" : \"ltr\"`, which was right\n // only while Arabic stayed the family's one RTL language — a product\n // adding Urdu or Hebrew would have had it rendered left-to-right with\n // every test still green.\n return { lang: definition.code, dir: definition.dir };\n }\n\n function resolveLocale({ pathname = \"/\", cookie = \"\", acceptLanguage = \"\", defaultLocale }) {\n const routeLocale = canonicalLocale(pathname.split(\"/\").filter(Boolean)[0]);\n if (routeLocale) return { locale: routeLocale, source: \"route\" };\n const storedLocale = canonicalLocale(cookieValue(cookie, \"locale\"));\n if (storedLocale) return { locale: storedLocale, source: \"cookie\" };\n const accepted = acceptedLocales(acceptLanguage, canonicalLocale)[0]?.locale;\n if (accepted) return { locale: accepted, source: \"accept-language\" };\n const fallback = canonicalLocale(defaultLocale);\n if (!fallback) throw new RangeError(`Unsupported default locale: ${defaultLocale}`);\n return { locale: fallback, source: \"default\" };\n }\n\n return Object.freeze({ LOCALES: locales, canonicalLocale, localeAttributes, resolveLocale, definitionFor });\n}\n\nfunction cookieValue(header, name) {\n for (const part of String(header ?? \"\").split(\";\")) {\n const separator = part.indexOf(\"=\");\n if (separator < 0) continue;\n if (part.slice(0, separator).trim() === name) {\n try { return decodeURIComponent(part.slice(separator + 1).trim()); }\n catch { return undefined; }\n }\n }\n return undefined;\n}\n\nfunction acceptedLocales(header, canonicalLocale) {\n return String(header ?? \"\").split(\",\").map((part, order) => {\n const [tag, ...parameters] = part.trim().split(\";\");\n const q = Number(parameters.find((parameter) => parameter.trim().startsWith(\"q=\"))?.split(\"=\")[1] ?? 1);\n return { locale: canonicalLocale(tag), q: Number.isFinite(q) ? q : 0, order };\n }).filter(({ locale, q }) => locale && q > 0).sort((a, b) => b.q - a.q || a.order - b.order);\n}\n\n/** The family registry — what every helper in this package uses by default. */\nexport const FAMILY_LOCALES = defineLocaleRegistry();\n\nexport const { canonicalLocale, localeAttributes, resolveLocale } = FAMILY_LOCALES;\n","/* Generated by scripts/build-flags.mjs — do not edit. Source: flags/*.svg (flag-icons, MIT). Copyright (c) 2013 Panayiotis Lipiridis */\nexport const FLAG_COUNTRY = Object.freeze({\n \"ko\": \"kr\",\n \"en\": \"us\",\n \"ja\": \"jp\",\n \"zh-HK\": \"hk\",\n \"zh-TW\": \"tw\",\n \"hi\": \"in\",\n \"vi\": \"vn\",\n \"id\": \"id\",\n \"th\": \"th\",\n \"pt-BR\": \"br\",\n \"fr\": \"fr\",\n \"de\": \"de\",\n \"es\": \"es\",\n \"ar\": \"sa\"\n});\n\n/** Every vendored flag is 4:3 on this box, so any <use> can point at any symbol. */\nexport const FLAG_VIEWBOX = \"0 0 640 480\";\n\nconst VENDORED = new Set(Object.values(FLAG_COUNTRY));\n\n/**\n * The country whose flag stands for a locale — a family locale through\n * FLAG_COUNTRY, a product's own through its registry's `flagCountry`.\n * Same lookup order and errors as `flagFor`, without loading a body.\n *\n * @param {string} locale\n * @param {{ LOCALES?: ReadonlyArray<{ code: string, flagCountry?: string }> }} [registry]\n * @returns {string}\n */\nexport function flagCountryFor(locale, registry) {\n const country = FLAG_COUNTRY[locale];\n if (country) return country;\n const extra = registry?.LOCALES?.find((definition) => definition.code === locale);\n if (extra?.flagCountry) {\n if (VENDORED.has(extra.flagCountry)) return extra.flagCountry;\n throw new RangeError(`No vendored flag for country: ${extra.flagCountry} (locale ${locale})`);\n }\n throw new RangeError(`No flag for locale: ${locale}`);\n}\n","/**\n * How the Solid menu reaches the flag artwork — browser build.\n *\n * The fourteen vendored SVGs are ~115 KB. A page rendered on the server\n * already carries them in its HTML, and hydration adopts that markup, so the\n * browser bundle must not import them statically: it used to, and every\n * product's main client chunk grew by the whole set just to render a header.\n *\n * `flagBodiesNow` answers synchronously only in the build that has the bodies\n * at hand (flag-bodies.server.ts, aliased in by vite.server.config.ts and\n * vitest.ssr.config.ts). Here it answers undefined, and `loadFlagBodies` is a\n * dynamic import Vite emits as its own chunk — fetched only when a flag menu\n * renders without server HTML.\n */\nimport type { LocaleFlag } from \"../core/flag-bodies.mjs\";\n\nexport type FlagBodies = Readonly<Record<string, LocaleFlag>>;\n\nexport const flagBodiesNow = (): FlagBodies | undefined => undefined;\n\nexport const loadFlagBodies = (): Promise<FlagBodies> =>\n import(\"../core/flag-bodies.mjs\").then((module) => module.FLAGS_BY_COUNTRY);\n","import { For, createUniqueId, sharedConfig, type JSX } from \"solid-js\";\n\nimport { FAMILY_LOCALES, type LocaleRegistry, type SiteLocale } from \"../core/locales.mjs\";\nimport { FLAG_VIEWBOX, flagCountryFor } from \"../core/flag-countries.mjs\";\nimport { flagBodiesNow, loadFlagBodies, type FlagBodies } from \"./flag-bodies\";\nimport type { LocaleState, SiteMessages } from \"./types\";\n\nexport type LocaleMenuVariant = \"select\" | \"flag\";\n\nexport interface LocaleMenuProps {\n state: LocaleState;\n messages: SiteMessages;\n variant?: LocaleMenuVariant;\n onLocaleChange?: (locale: SiteLocale, href: string) => void;\n /**\n * The languages to offer. Defaults to the family's fourteen; a product\n * that added its own passes the registry it built with\n * `defineLocaleRegistry`.\n */\n registry?: LocaleRegistry<string>;\n}\n\nfunction scopeFlagIds(body: string, uid: string): string {\n const ids = [...body.matchAll(/\\bid=\"([^\"]+)\"/g)].map((match) => match[1]!);\n if (ids.length === 0) return body;\n let scoped = body;\n for (const id of ids) {\n const suffixed = `${id}-${uid}`;\n scoped = scoped\n .replaceAll(`id=\"${id}\"`, `id=\"${suffixed}\"`)\n .replaceAll(`href=\"#${id}\"`, `href=\"#${suffixed}\"`)\n .replaceAll(`url(#${id})`, `url(#${suffixed})`);\n }\n return scoped;\n}\n\nconst registryOf = (props: LocaleMenuProps) => props.registry ?? (FAMILY_LOCALES as LocaleRegistry<string>);\n\nconst symbolId = (country: string, uid: string) => `site-flag-${country}-${uid}`;\n\nfunction spriteMarkup(countries: readonly string[], bodies: FlagBodies, uid: string): string {\n return countries.map((country) => {\n const flag = bodies[country];\n if (!flag) throw new RangeError(`No vendored flag for country: ${country}`);\n return `<symbol id=\"${symbolId(country, uid)}\" viewBox=\"${flag.viewBox}\">${scopeFlagIds(flag.body, uid)}</symbol>`;\n }).join(\"\");\n}\n\n/**\n * One copy of each flag the menu shows, as <symbol>s the flags <use>.\n *\n * The trigger and the current row used to inline the same body twice, and\n * the browser bundle carried every body so a client render could write\n * them. With a sprite, a locale change on the client only swaps an href,\n * so after hydration the browser never needs the artwork: the server build\n * writes it (flagBodiesNow), hydration adopts it untouched, and only a\n * render with no server HTML — a client-only app, a jsdom test — fetches\n * the bodies through loadFlagBodies, which the browser build emits as its\n * own chunk. Zero-sized rather than display:none so the referenced clip\n * paths and gradients still resolve.\n */\nfunction FlagSprite(props: { countries: readonly string[]; uid: string }) {\n const bodies = flagBodiesNow();\n if (bodies) {\n return <svg class=\"site-flag-sprite\" aria-hidden=\"true\" innerHTML={spriteMarkup(props.countries, bodies, props.uid)} />;\n }\n return (\n <svg\n class=\"site-flag-sprite\"\n aria-hidden=\"true\"\n ref={(element) => {\n if (sharedConfig.context) return; // hydrating: the server already drew the sprite\n void loadFlagBodies().then((loaded) => { element.innerHTML = spriteMarkup(props.countries, loaded, props.uid); });\n }}\n />\n );\n}\n\nfunction Flag(props: { locale: string; class?: string; registry: LocaleRegistry<string>; uid: string }) {\n const country = () => flagCountryFor(props.locale, props.registry);\n return (\n <svg class={props.class} viewBox={FLAG_VIEWBOX} aria-hidden=\"true\">\n <use href={`#${symbolId(country(), props.uid)}`} />\n </svg>\n );\n}\n\nfunction SelectLocaleMenu(props: LocaleMenuProps) {\n const registry = () => registryOf(props);\n return (\n <label>\n <span class=\"dds-sr-only\">{props.messages.localeLabel}</span>\n <span class=\"dds-select site-locale\">\n <select\n class=\"dds-select__input\"\n aria-label={props.messages.localeLabel}\n onChange={(event) => {\n const locale = event.currentTarget.value as SiteLocale;\n const href = props.state.hrefForLocale(locale);\n if (props.onLocaleChange) props.onLocaleChange(locale, href);\n else window.location.assign(href);\n }}\n >\n {/*\n `selected` on the option, not `value` on the select.\n <select> has no `value` content attribute — it exists only as a\n DOM property — so under SSR, where the markup is a string,\n `value={...}` serialised to an attribute the browser ignores and\n every visitor got option[0] as their \"current\" language\n regardless of the page they were reading. Touching the control\n then switched them to that first language. `selected` is a real\n content attribute and survives the trip through HTML.\n */}\n <For each={registry().LOCALES}>{(locale) => (\n <option value={locale.code} lang={locale.code} dir={locale.dir} selected={locale.code === props.state.locale}>\n {locale.nativeName}\n </option>\n )}</For>\n </select>\n </span>\n </label>\n );\n}\n\nfunction FlagLocaleMenu(props: LocaleMenuProps) {\n let details: HTMLDetailsElement | undefined;\n let trigger: HTMLElement | undefined;\n const uid = createUniqueId();\n const registry = () => registryOf(props);\n const countries = () => [...new Set(registry().LOCALES.map((entry) => flagCountryFor(entry.code, registry())))];\n const current = () => registry().LOCALES.find((entry) => entry.code === props.state.locale);\n const close = () => { if (details) details.open = false; };\n const onKeyDown: JSX.EventHandler<HTMLDetailsElement, KeyboardEvent> = (event) => {\n if (event.key !== \"Escape\" || !details?.open) return;\n event.preventDefault();\n close();\n trigger?.focus();\n };\n const triggerLabel = () => {\n const name = current()?.nativeName;\n return name ? `${props.messages.localeLabel}: ${name}` : props.messages.localeLabel;\n };\n return (\n <details ref={details} class=\"site-locale-flag\" onKeyDown={onKeyDown}>\n <summary ref={trigger} class=\"site-locale-flag__trigger\" aria-label={triggerLabel()} title={props.messages.localeLabel}>\n <FlagSprite countries={countries()} uid={uid} />\n <Flag locale={props.state.locale} class=\"site-locale-flag__svg\" registry={registry()} uid={uid} />\n </summary>\n <ul class=\"site-locale-flag__list\" role=\"list\">\n <For each={registry().LOCALES}>{(entry) => (\n <li>\n <a\n class=\"site-locale-flag__option\"\n href={props.state.hrefForLocale(entry.code as SiteLocale)}\n lang={entry.code}\n hreflang={entry.code}\n dir={entry.dir}\n aria-current={entry.code === props.state.locale ? \"true\" : undefined}\n onClick={(event) => {\n if (!props.onLocaleChange) return;\n event.preventDefault();\n close();\n props.onLocaleChange(entry.code as SiteLocale, props.state.hrefForLocale(entry.code as SiteLocale));\n }}\n >\n <Flag locale={entry.code} class=\"site-locale-flag__svg\" registry={registry()} uid={uid} />\n <span>{entry.nativeName}</span>\n </a>\n </li>\n )}</For>\n </ul>\n </details>\n );\n}\n\nexport function LocaleMenu(props: LocaleMenuProps) {\n return props.variant === \"flag\" ? <FlagLocaleMenu {...props} /> : <SelectLocaleMenu {...props} />;\n}\n","import { Button, Icon, IconButton } from \"@devslab/dds-solid\";\nimport { For, Show, createSignal, onMount, type JSX } from \"solid-js\";\n\nimport { LocaleMenu, type LocaleMenuProps, type LocaleMenuVariant } from \"./locale-menu\";\nimport { FAMILY_LOCALES, type LocaleRegistry, type SiteLocale } from \"../core/locales.mjs\";\nimport type { LocaleState, SiteBrand, SiteLink, SiteMessages, ThemePreference } from \"./types\";\n\nexport type { LocaleMenuProps };\n\nexport interface ThemeToggleProps {\n messages: SiteMessages;\n value?: ThemePreference;\n defaultValue?: ThemePreference;\n onValueChange?: (theme: ThemePreference) => void;\n storageKey?: string;\n}\n\nexport function ThemeToggle(props: ThemeToggleProps) {\n const order: ThemePreference[] = [\"system\", \"light\", \"dark\"];\n const [internal, setInternal] = createSignal<ThemePreference>(props.defaultValue ?? \"system\");\n const [resolved, setResolved] = createSignal<\"light\" | \"dark\">(\"light\");\n const value = () => props.value ?? internal();\n const nextTheme = () => resolved() === \"dark\" ? \"light\" : \"dark\";\n const nextLabel = () => nextTheme() === \"dark\" ? props.messages.themeDark : props.messages.themeLight;\n const apply = (theme: ThemePreference) => {\n const resolved = theme === \"system\"\n ? (matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\")\n : theme;\n setResolved(resolved);\n document.documentElement.dataset.theme = resolved;\n document.documentElement.dataset.themePreference = theme;\n };\n const update = (theme: ThemePreference) => {\n if (props.value === undefined) setInternal(theme);\n props.onValueChange?.(theme);\n apply(theme);\n localStorage.setItem(props.storageKey ?? \"site-theme\", theme);\n };\n onMount(() => {\n const stored = localStorage.getItem(props.storageKey ?? \"site-theme\") as ThemePreference | null;\n if (props.value === undefined && stored && order.includes(stored)) setInternal(stored);\n apply(props.value ?? stored ?? internal());\n });\n return (\n <IconButton\n class=\"site-theme-toggle\"\n tone=\"ghost\"\n aria-label={`${props.messages.themeLabel}: ${nextLabel()}`}\n title={`${props.messages.themeLabel}: ${nextLabel()}`}\n onClick={() => update(nextTheme())}\n >\n <Icon\n class=\"site-theme-toggle__icon\"\n name={nextTheme() === \"dark\" ? \"site-moon\" : \"site-sun\"}\n data-icon={nextTheme() === \"dark\" ? \"site-moon\" : \"site-sun\"}\n size={20}\n />\n </IconButton>\n );\n}\n\nexport interface SiteHeaderProps {\n brand: SiteBrand;\n navigation: SiteLink[];\n locale: LocaleState;\n messages: SiteMessages;\n theme?: Omit<ThemeToggleProps, \"messages\">;\n onLocaleChange?: LocaleMenuProps[\"onLocaleChange\"];\n localeVariant?: LocaleMenuVariant;\n /**\n * The languages the picker offers. Defaults to the family's fourteen;\n * pass the registry from `defineLocaleRegistry` if this product sells in\n * languages the family does not carry.\n */\n localeRegistry?: LocaleRegistry<string>;\n actions?: JSX.Element;\n}\n\nexport function SiteHeader(props: SiteHeaderProps) {\n const [menuOpen, setMenuOpen] = createSignal(false);\n return (\n <header class=\"site-header\">\n <a class=\"dds-sr-only\" href=\"#main-content\">{props.messages.skipToContent}</a>\n <div class=\"site-header__inner\">\n <a class=\"site-brand\" href={props.brand.href}>{props.brand.logo}{props.brand.name}</a>\n <Button class=\"site-menu-button\" tone=\"ghost\" aria-expanded={menuOpen()} aria-controls=\"site-navigation\" onClick={() => setMenuOpen((open) => !open)}>\n {menuOpen() ? props.messages.menuClose : props.messages.menuOpen}\n </Button>\n <nav id=\"site-navigation\" class=\"site-nav\" data-open={String(menuOpen())} aria-label={props.messages.navigationLabel}>\n <ul class=\"site-nav__list\"><For each={props.navigation}>{(item) => <li><a href={item.href} target={item.external ? \"_blank\" : undefined} rel={item.external ? \"noreferrer\" : undefined}>{item.label}</a></li>}</For></ul>\n </nav>\n <div class=\"site-header__controls\" data-open={String(menuOpen())}>\n <LocaleMenu\n state={props.locale}\n messages={props.messages}\n {...(props.localeVariant ? { variant: props.localeVariant } : {})}\n {...(props.localeRegistry ? { registry: props.localeRegistry } : {})}\n {...(props.onLocaleChange ? { onLocaleChange: props.onLocaleChange } : {})}\n />\n {props.theme && <ThemeToggle {...props.theme} messages={props.messages} />}\n {props.actions}\n </div>\n </div>\n </header>\n );\n}\n\n/**\n * The footer's language row, collapsed.\n *\n * It used to be every language laid out flat, which is a different length in\n * every product — ten for one, twenty for another — so the same footer carried\n * a different visual weight depending on how many languages the product sells\n * in. A `<details>` keeps all of them: the anchors are in the document whether\n * it is open or not, so a crawler still follows every locale, and it works with\n * no JavaScript. Same mechanism as the header's flag menu, including Escape\n * returning focus to the trigger.\n *\n * The trigger is the current language's own name rather than a translated word\n * for \"language\": it is the one label already meaningful to a reader who cannot\n * read the page, and it is what the flat row marked with `aria-current`.\n */\nfunction FooterLocaleMenu(props: {\n state: LocaleState;\n registry: LocaleRegistry<string>;\n label: string;\n /* Required key, optional value: the caller always passes it through, and\n `exactOptionalPropertyTypes` rejects an explicit undefined on an optional. */\n onSelect: ((locale: string) => void) | undefined;\n}) {\n let details: HTMLDetailsElement | undefined;\n let trigger: HTMLElement | undefined;\n const current = () => props.registry.LOCALES.find((entry) => entry.code === props.state.locale);\n const close = () => { if (details) details.open = false; };\n const onKeyDown: JSX.EventHandler<HTMLDetailsElement, KeyboardEvent> = (event) => {\n if (event.key !== \"Escape\" || !details?.open) return;\n event.preventDefault();\n close();\n trigger?.focus();\n };\n return (\n <nav class=\"site-footer__langs\" aria-label={props.label}>\n <details ref={details} class=\"site-footer__langs-menu\" onKeyDown={onKeyDown}>\n <summary ref={trigger} class=\"site-footer__langs-trigger\" aria-label={`${props.label}: ${current()?.nativeName ?? props.state.locale}`}>\n <span lang={current()?.code} dir={current()?.dir}>{current()?.nativeName ?? props.state.locale}</span>\n </summary>\n <ul class=\"site-footer__langs-list\" role=\"list\">\n <For each={props.registry.LOCALES}>{(entry) => (\n <li>\n <a\n href={props.state.hrefForLocale(entry.code as SiteLocale)}\n hreflang={entry.code}\n lang={entry.code}\n dir={entry.dir}\n aria-current={entry.code === props.state.locale ? \"page\" : undefined}\n onClick={() => props.onSelect?.(entry.code)}\n >{entry.nativeName}</a>\n </li>\n )}</For>\n </ul>\n </details>\n </nav>\n );\n}\n\nexport interface SiteFooterProps {\n brand: SiteBrand;\n links: SiteLink[];\n copyright: string;\n /** Wraps the copyright in a link — the family site, usually. */\n copyrightHref?: string;\n messages: SiteMessages;\n /**\n * The language row. Omit it and no row is rendered: a product whose header\n * already offers every language may not want a second copy of the list.\n */\n locale?: LocaleState;\n /** The languages the row lists. Defaults to the family's fourteen. */\n localeRegistry?: LocaleRegistry<string>;\n /**\n * Called with the code the reader picked, before the browser follows the\n * link — for a product that remembers the choice in a cookie.\n */\n onLocaleSelect?: (locale: string) => void;\n /** Links after the brand name, middot-separated: the family line, the operator. */\n family?: SiteLink[];\n}\n\n/**\n * The family footer: a language row, then the brand beside its family links,\n * then the page's links and the copyright.\n *\n * Every product wrote this by hand. VisionLinq, BookLinq and TraceLinq each\n * carried their own copy with a comment saying the kit's footer \"takes only a\n * flat link list; extending it is a dds release this page would then wait on\" —\n * three copies and three notes naming the same missing release. Their CSS had\n * already converged byte-for-byte. This is that release.\n *\n * Additive: a caller that passes only brand/links/copyright/messages gets the\n * same single row it got before, plus its brand mark if it set one.\n */\nexport function SiteFooter(props: SiteFooterProps) {\n const registry = () => props.localeRegistry ?? (FAMILY_LOCALES as LocaleRegistry<string>);\n return (\n <footer class=\"site-footer\" aria-label={props.messages.footerLabel}>\n <div class=\"site-footer__inner\">\n <Show when={props.locale}>{(locale) => (\n <FooterLocaleMenu\n state={locale()}\n registry={registry()}\n label={props.messages.localeLabel}\n onSelect={props.onLocaleSelect}\n />\n )}</Show>\n <div class=\"site-footer__row\">\n <p class=\"site-footer__brand\">\n {props.brand.logo}\n <strong>{props.brand.name}</strong>\n <For each={props.family ?? []}>{(item) => <>\n <span aria-hidden=\"true\">·</span>\n <a href={item.href}>{item.label}</a>\n </>}</For>\n </p>\n <ul class=\"site-footer__links\">\n <For each={props.links}>{(item) => <li><a href={item.href}>{item.label}</a></li>}</For>\n {/*\n A copyright like \"© 2026 DevsLab\" mixes neutral, digit and Latin\n runs, which the bidi algorithm reorders on an RTL page into\n \"DevsLab 2026 ©\". <bdi> isolates it so it reads as written in\n every direction.\n */}\n <li><Show when={props.copyrightHref} fallback={<bdi>{props.copyright}</bdi>}>\n {(href) => <a href={href()}><bdi>{props.copyright}</bdi></a>}\n </Show></li>\n </ul>\n </div>\n </div>\n </footer>\n );\n}\n","import { Button, type ButtonTone } from \"@devslab/dds-solid\";\nimport type { JSX } from \"solid-js\";\n\nimport { SiteFooter, SiteHeader, type SiteFooterProps, type SiteHeaderProps } from \"./chrome\";\nimport type { SiteMessages } from \"./types\";\n\nexport interface MarketingShellProps {\n header: SiteHeaderProps;\n footer: SiteFooterProps;\n messages: SiteMessages;\n children: JSX.Element;\n /** \"bleed\" removes the shell's max-width/inset from <main> — for pages composed from\n * full-bleed section primitives, each of which carries its own inner width. Default \"shell\". */\n mainWidth?: \"shell\" | \"bleed\";\n}\n\nexport function MarketingShell(props: MarketingShellProps) {\n const mainClass = () => (props.mainWidth === \"bleed\" ? \"site-main site-main--bleed\" : \"site-main\");\n return <div class=\"site-shell\"><SiteHeader {...props.header} /><main id=\"main-content\" class={mainClass()} tabIndex={-1}>{props.children}</main><SiteFooter {...props.footer} /></div>;\n}\n\nexport interface LegalLayoutProps {\n title: string;\n updatedAt: string;\n messages: SiteMessages;\n children: JSX.Element;\n}\n\nexport function LegalLayout(props: LegalLayoutProps) {\n return <article class=\"site-legal\"><header><h1>{props.title}</h1><p>{props.messages.updatedLabel}: <time datetime={props.updatedAt}>{props.updatedAt}</time></p></header>{props.children}</article>;\n}\n\nexport interface StatusBannerProps {\n tone: \"success\" | \"warning\" | \"danger\" | \"info\";\n title: string;\n children?: JSX.Element;\n action?: { label: string; onClick: () => void; tone?: ButtonTone };\n}\n\nexport function StatusBanner(props: StatusBannerProps) {\n return <section class={`site-status site-status--${props.tone}`} role={props.tone === \"danger\" ? \"alert\" : \"status\"} aria-live={props.tone === \"danger\" ? \"assertive\" : \"polite\"}>\n <strong>{props.title}</strong>{props.children && <div>{props.children}</div>}{props.action && <Button tone={props.action.tone ?? \"secondary\"} onClick={props.action.onClick}>{props.action.label}</Button>}\n </section>;\n}\n\nexport interface NotFoundLayoutProps { messages: SiteMessages; homeHref: string; children?: JSX.Element }\nexport function NotFoundLayout(props: NotFoundLayoutProps) {\n return <main class=\"site-main site-centered-layout\"><h1>{props.messages.notFoundTitle}</h1><p>{props.messages.notFoundDescription}</p>{props.children}<a class=\"dds-btn dds-btn--primary\" href={props.homeHref}>{props.messages.backHome}</a></main>;\n}\n\nexport interface ErrorLayoutProps { messages: SiteMessages; onRetry: () => void; errorId?: string; children?: JSX.Element }\nexport function ErrorLayout(props: ErrorLayoutProps) {\n return <main class=\"site-main site-centered-layout\"><h1>{props.messages.errorTitle}</h1><p>{props.messages.errorDescription}</p>{props.errorId && <code>{props.errorId}</code>}{props.children}<Button tone=\"primary\" onClick={props.onRetry}>{props.messages.retry}</Button></main>;\n}\n","import { Button, Field } from \"@devslab/dds-solid\";\nimport { createSignal } from \"solid-js\";\n\nexport interface RequestAccessMessages {\n nameLabel: string;\n emailLabel: string;\n organizationLabel: string;\n useCaseLabel: string;\n submit: string;\n submitting: string;\n success: string;\n error: string;\n}\n\nexport interface RequestAccessFormProps {\n messages: RequestAccessMessages;\n onSubmit: (data: FormData) => void | Promise<void>;\n class?: string;\n}\n\nexport function RequestAccessForm(props: RequestAccessFormProps) {\n const [state, setState] = createSignal<\"idle\" | \"submitting\" | \"success\" | \"error\">(\"idle\");\n const submit = async (event: SubmitEvent) => {\n event.preventDefault();\n if (state() === \"submitting\") return;\n setState(\"submitting\");\n try {\n await props.onSubmit(new FormData(event.currentTarget as HTMLFormElement));\n setState(\"success\");\n } catch {\n setState(\"error\");\n }\n };\n return (\n <form class={`site-request-form${props.class ? ` ${props.class}` : \"\"}`} onSubmit={submit}>\n <Field label={props.messages.nameLabel} required>{(control) => <input {...control} class=\"dds-input\" name=\"name\" autocomplete=\"name\" required />}</Field>\n <Field label={props.messages.emailLabel} required>{(control) => <input {...control} class=\"dds-input\" type=\"email\" name=\"email\" autocomplete=\"email\" required />}</Field>\n <Field label={props.messages.organizationLabel}>{(control) => <input {...control} class=\"dds-input\" name=\"organization\" autocomplete=\"organization\" />}</Field>\n <Field label={props.messages.useCaseLabel}>{(control) => <textarea {...control} class=\"dds-textarea\" name=\"useCase\" rows=\"5\" />}</Field>\n <Button type=\"submit\" loading={state() === \"submitting\"}>{state() === \"submitting\" ? props.messages.submitting : props.messages.submit}</Button>\n <div aria-live=\"polite\" aria-atomic=\"true\">{state() === \"success\" ? props.messages.success : state() === \"error\" ? props.messages.error : \"\"}</div>\n </form>\n );\n}\n","export interface OssProductMarkProps {\n name: string;\n src: string;\n size?: \"sm\" | \"md\" | \"lg\";\n decorative?: boolean;\n class?: string;\n}\n\nconst MARK_SIZE = { sm: 24, md: 32, lg: 48 } as const;\n\nexport function OssProductMark(props: OssProductMarkProps) {\n const size = () => props.size ?? \"md\";\n const pixels = () => MARK_SIZE[size()];\n\n return (\n <img\n class={`oss-product-mark oss-product-mark--${size()}${props.class ? ` ${props.class}` : \"\"}`}\n src={props.src}\n alt={props.decorative ? \"\" : props.name}\n aria-hidden={props.decorative ? \"true\" : undefined}\n width={pixels()}\n height={pixels()}\n decoding=\"async\"\n />\n );\n}\n","import { For, Show, type JSX } from \"solid-js\";\n\n/**\n * Section primitives — the rhythm of a family landing page.\n *\n * Extracted from VisionLinq's landing (apps/web/src/components/landing/\n * sections.tsx + styles/landing.css) so AskLinq's web-next can compose the\n * same page shape. Stateless; every class lives in site-sections.css;\n * colour comes from --dds-* tokens, so light/dark needs no rule here.\n *\n * Two glyph systems, deliberately different (owner, 2026-09-05):\n * - SectionHead.index — the SECTION's number: mono, zero-padded \"01\".\n * - StepFlow markers — a SEQUENCE inside a section: ring numerals \"1\".\n * A step never renders \"01\"; that would put two levels in one voice.\n */\n\nexport interface SectionBlockProps {\n id: string;\n labelledBy: string;\n /** `band` steps the background down one token (bg-subtle) — a decision, not a tint. */\n tone?: \"default\" | \"band\";\n children: JSX.Element;\n}\n\nexport function SectionBlock(props: SectionBlockProps) {\n return (\n <section class=\"site-section\" id={props.id} data-tone={props.tone ?? \"default\"} aria-labelledby={props.labelledBy}>\n <div class=\"site-section__shell\">{props.children}</div>\n </section>\n );\n}\n\nexport interface SectionHeadProps {\n /** Mono, zero-padded index (\"01\"). Decorative — hidden from assistive tech. */\n index: string;\n title: string;\n titleId: string;\n lede?: string;\n}\n\nexport function SectionHead(props: SectionHeadProps) {\n return (\n <header class=\"site-section__head\">\n <p class=\"site-section__index\" aria-hidden=\"true\">{props.index}</p>\n <h2 id={props.titleId}>{props.title}</h2>\n <Show when={props.lede}>{(lede) => <p class=\"site-section__lede\">{lede()}</p>}</Show>\n </header>\n );\n}\n\nexport interface HeroSplitProps {\n id?: string;\n eyebrow?: string;\n title: string;\n titleId: string;\n lede: string;\n actions: JSX.Element;\n /** The product's own scene. Its height is the consumer's decision — fix it there if the scene swaps panels. */\n aside: JSX.Element;\n asideLabel: string;\n}\n\nexport function HeroSplit(props: HeroSplitProps) {\n return (\n <section id={props.id} class=\"site-hero\" aria-labelledby={props.titleId}>\n <div class=\"site-hero__shell\">\n <div class=\"site-hero__copy\">\n <Show when={props.eyebrow}>{(eyebrow) => <p class=\"site-hero__eyebrow\">{eyebrow()}</p>}</Show>\n <h1 id={props.titleId}>{props.title}</h1>\n <p class=\"site-hero__lede\">{props.lede}</p>\n <div class=\"site-hero__actions\">{props.actions}</div>\n </div>\n <figure class=\"site-hero__aside\" aria-label={props.asideLabel}>{props.aside}</figure>\n </div>\n </section>\n );\n}\n\nexport interface StepFlowStep { title: string; body: string }\n\nexport interface StepFlowProps {\n steps: ReadonlyArray<StepFlowStep>;\n /** Accessible name for the list — pass the section title's words, localized. */\n label?: string;\n}\n\nexport function StepFlow(props: StepFlowProps) {\n return (\n <ol class=\"site-steps\" aria-label={props.label}>\n <For each={props.steps}>{(step, index) => (\n <li class=\"site-steps__step\">\n <span class=\"site-steps__marker\" aria-hidden=\"true\">{index() + 1}</span>\n <h3>{step.title}</h3>\n <p>{step.body}</p>\n </li>\n )}</For>\n </ol>\n );\n}\n\nexport interface FeatureRow { title: string; body: string; badge?: string }\n\nexport interface FeatureRowsProps {\n rows: ReadonlyArray<FeatureRow>;\n label?: string;\n}\n\n/** Hairline rows — a card grid is the thing this primitive exists to replace. */\nexport function FeatureRows(props: FeatureRowsProps) {\n return (\n <ul class=\"site-rows\" aria-label={props.label}>\n <For each={props.rows}>{(row) => (\n <li class=\"site-rows__row\">\n <div class=\"site-rows__title\">\n <h3>{row.title}</h3>\n <Show when={row.badge}>{(badge) => <span class=\"dds-badge dds-badge--brand\">{badge()}</span>}</Show>\n </div>\n <p class=\"site-rows__body\">{row.body}</p>\n </li>\n )}</For>\n </ul>\n );\n}\n\nexport interface PricingNoteProps {\n children: JSX.Element;\n action: JSX.Element;\n}\n\n/** One paragraph block, one action. No table, no tiers — a note, not a pricing page. */\nexport function PricingNote(props: PricingNoteProps) {\n return (\n <div class=\"site-pricing\">\n <div class=\"site-pricing__note\">{props.children}</div>\n <div class=\"site-pricing__action\">{props.action}</div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"solid.js","names":["For","createUniqueId","JSX","FAMILY_LOCALES","LocaleRegistry","SiteLocale","FLAG_VIEWBOX","flagCountryFor","flagBodiesNow","loadFlagBodies","FlagBodies","LocaleState","SiteMessages","LocaleMenuVariant","LocaleMenuProps","state","messages","variant","onLocaleChange","locale","href","registry","scopeFlagIds","body","uid","ids","matchAll","map","match","length","scoped","id","suffixed","replaceAll","registryOf","props","symbolId","country","spriteMarkup","countries","bodies","flag","RangeError","viewBox","join","FlagSprite","_el$","_$getNextElement","_tmpl$","_$effect","_$setProperty","_el$2","_$use","element","childElementCount","then","loaded","innerHTML","Flag","class","_el$3","_tmpl$2","_el$4","firstChild","_$setAttribute","_p$","_v$","_v$2","e","t","undefined","SelectLocaleMenu","_el$5","_tmpl$3","_el$6","_el$7","nextSibling","_el$8","_$insert","localeLabel","addEventListener","event","currentTarget","value","hrefForLocale","window","location","assign","_$createComponent","each","LOCALES","children","_el$9","_tmpl$4","nativeName","_v$3","code","_v$4","dir","_v$5","a","FlagLocaleMenu","details","HTMLDetailsElement","trigger","HTMLElement","Set","entry","current","find","close","open","onKeyDown","EventHandler","KeyboardEvent","key","preventDefault","focus","triggerLabel","name","_el$0","_tmpl$5","_el$1","_el$10","_el$11","_co$","_$getNextMarker","_el$12","_el$13","_co$2","_el$14","$$keydown","_ref$","_ref$2","_el$15","_tmpl$6","_el$16","_el$18","_el$19","_co$3","_el$17","$$click","_v$8","_v$9","_v$0","_v$1","_v$10","o","i","_$runHydrationEvents","_v$6","_v$7","LocaleMenu","_$delegateEvents","Button","Icon","IconButton","For","Show","createSignal","onMount","JSX","LocaleMenu","LocaleMenuProps","LocaleMenuVariant","FAMILY_LOCALES","LocaleRegistry","SiteLocale","LocaleState","SiteBrand","SiteLink","SiteMessages","ThemePreference","ThemeToggleProps","messages","value","defaultValue","onValueChange","theme","storageKey","ThemeToggle","props","order","internal","setInternal","resolved","setResolved","nextTheme","nextLabel","themeDark","themeLight","apply","matchMedia","matches","document","documentElement","dataset","themePreference","update","undefined","localStorage","setItem","stored","getItem","includes","_$createComponent","tone","aria-label","themeLabel","title","onClick","children","name","data-icon","size","SiteHeaderProps","brand","navigation","locale","Omit","onLocaleChange","localeVariant","localeRegistry","actions","Element","SiteHeader","menuOpen","setMenuOpen","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_el$6","_co$","_$getNextMarker","_el$7","_el$8","_co$2","_el$16","_el$17","_co$6","_el$9","_el$0","_el$1","_el$10","_el$11","_co$3","_el$12","_el$13","_co$4","_el$14","_el$15","_co$5","_$insert","skipToContent","logo","aria-expanded","open","_$memo","menuClose","each","item","_el$18","_tmpl$2","_el$19","label","_$effect","_p$","_v$5","href","_v$6","external","_v$7","e","_$setAttribute","t","a","_$mergeProps","state","variant","registry","_c$","_v$","_v$2","String","_v$3","navigationLabel","_v$4","o","FooterLocaleMenu","onSelect","details","HTMLDetailsElement","trigger","HTMLElement","current","LOCALES","find","entry","code","close","onKeyDown","EventHandler","KeyboardEvent","event","key","preventDefault","focus","_el$20","_tmpl$3","_el$21","_el$22","_el$23","_el$24","$$keydown","_ref$","_$use","_ref$2","nativeName","_el$25","_el$26","$$click","_v$10","hrefForLocale","_v$11","_v$12","_v$13","dir","_v$14","i","_$runHydrationEvents","_v$8","_v$9","_v$0","_v$1","SiteFooterProps","links","copyright","copyrightHref","onLocaleSelect","family","SiteFooter","_el$27","_tmpl$4","_el$28","_el$40","_el$41","_co$0","_el$29","_el$30","_el$32","_el$33","_co$7","_el$31","_el$34","_el$35","_co$8","_el$36","_el$38","_el$39","_co$9","_el$37","when","localeLabel","_tmpl$5","_el$43","_tmpl$6","_el$44","_el$45","fallback","_el$46","_tmpl$7","_el$47","_tmpl$8","_el$48","footerLabel","_$delegateEvents","Button","ButtonTone","createMemo","JSX","SiteFooter","SiteHeader","SiteFooterProps","SiteHeaderProps","SiteMessages","MarketingShellProps","header","footer","messages","children","Element","mainWidth","MarketingShell","props","mainClass","_el$","_$getNextElement","_tmpl$","_el$3","firstChild","_el$4","_co$","_$getNextMarker","nextSibling","_el$2","_el$5","_el$6","_co$2","_$insert","_$createComponent","_$mergeProps","_$effect","_$className","LegalLayoutProps","title","updatedAt","LegalLayout","_el$7","_tmpl$2","_el$8","_el$9","_el$0","_el$11","_el$12","_co$3","_el$1","_el$10","_el$13","_el$14","_co$4","updatedLabel","_$setAttribute","StatusBannerProps","tone","action","label","onClick","StatusBanner","_el$15","_tmpl$3","_el$16","_el$17","_el$18","_co$5","_el$19","_el$20","_co$6","_c$","_$memo","_el$21","_tmpl$4","_c$2","_p$","_v$","_v$2","_v$3","e","t","a","undefined","NotFoundLayoutProps","homeHref","NotFoundLayout","_el$22","_tmpl$5","_el$23","_el$24","_el$26","_el$27","_co$7","_el$25","notFoundTitle","notFoundDescription","backHome","ErrorLayoutProps","onRetry","errorId","ErrorLayout","_el$28","_tmpl$6","_el$29","_el$30","_el$31","_el$32","_co$8","_el$33","_el$34","_co$9","_el$35","_el$36","_co$0","errorTitle","errorDescription","_c$3","_el$37","_tmpl$7","retry","Button","Field","createSignal","RequestAccessMessages","nameLabel","emailLabel","organizationLabel","useCaseLabel","submit","submitting","success","error","RequestAccessFormProps","messages","onSubmit","data","FormData","Promise","class","RequestAccessForm","props","state","setState","event","SubmitEvent","preventDefault","currentTarget","HTMLFormElement","_el$","_$getNextElement","_tmpl$","_el$3","firstChild","_el$4","_co$","_$getNextMarker","nextSibling","_el$5","_el$6","_co$2","_el$7","_el$8","_co$3","_el$9","_el$0","_co$4","_el$1","_el$10","_co$5","_el$2","addEventListener","_$insert","_$createComponent","label","required","children","control","_el$11","_tmpl$2","_$spread","_$mergeProps","_$runHydrationEvents","_el$12","_el$13","_el$14","_tmpl$3","type","loading","_$memo","_c$","_$effect","_$className","OssProductMarkProps","name","src","size","decorative","class","MARK_SIZE","sm","md","lg","const","OssProductMark","props","pixels","_el$","_$getNextElement","_tmpl$","_$effect","_p$","_v$","_v$2","_v$3","_v$4","undefined","_v$5","_v$6","e","_$className","t","_$setAttribute","a","o","i","n","For","Show","JSX","SectionBlockProps","id","labelledBy","tone","children","Element","SectionBlock","props","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_$insert","_$effect","_p$","_v$","_v$2","_v$3","e","_$setAttribute","t","a","undefined","SectionHeadProps","index","title","titleId","lede","SectionHead","_el$3","_tmpl$2","_el$4","_el$5","nextSibling","_el$6","_el$7","_co$","_$getNextMarker","_$createComponent","when","_el$8","_tmpl$3","HeroSplitProps","eyebrow","actions","aside","asideLabel","HeroSplit","_el$9","_tmpl$4","_el$0","_el$1","_el$13","_el$14","_co$2","_el$10","_el$11","_el$12","_el$15","_el$16","_tmpl$5","_v$4","_v$5","_v$6","_v$7","o","StepFlowStep","body","StepFlowProps","steps","ReadonlyArray","label","StepFlow","_el$17","_tmpl$6","each","step","_el$18","_tmpl$7","_el$19","_el$20","_el$21","FeatureRow","badge","FeatureRowsProps","rows","FeatureRows","_el$22","_tmpl$8","row","_el$23","_tmpl$9","_el$24","_el$25","_el$26","_el$27","_co$3","_el$28","_el$29","_tmpl$0","PricingNoteProps","action","PricingNote","_el$30","_tmpl$1","_el$31","_el$32"],"sources":["../src/core/locales.mjs","../src/core/flag-countries.mjs","../src/solid/flag-bodies.ts","../src/solid/locale-menu.tsx","../src/solid/chrome.tsx","../src/solid/layouts.tsx","../src/solid/request-access.tsx","../src/solid/oss-product-mark.tsx","../src/solid/sections.tsx"],"sourcesContent":["export const LOCALES = Object.freeze([\n { code: \"ko\", language: \"Korean\", nativeName: \"한국어\", dir: \"ltr\" },\n { code: \"en\", language: \"English\", nativeName: \"English\", dir: \"ltr\" },\n { code: \"ja\", language: \"Japanese\", nativeName: \"日本語\", dir: \"ltr\" },\n { code: \"zh-HK\", language: \"Chinese (Hong Kong)\", nativeName: \"繁體中文(香港)\", dir: \"ltr\" },\n { code: \"zh-TW\", language: \"Chinese (Taiwan)\", nativeName: \"繁體中文(台灣)\", dir: \"ltr\" },\n { code: \"hi\", language: \"Hindi\", nativeName: \"हिन्दी\", dir: \"ltr\" },\n { code: \"vi\", language: \"Vietnamese\", nativeName: \"Tiếng Việt\", dir: \"ltr\" },\n { code: \"id\", language: \"Indonesian\", nativeName: \"Bahasa Indonesia\", dir: \"ltr\" },\n { code: \"th\", language: \"Thai\", nativeName: \"ไทย\", dir: \"ltr\" },\n { code: \"pt-BR\", language: \"Portuguese (Brazil)\", nativeName: \"Português (Brasil)\", dir: \"ltr\" },\n { code: \"fr\", language: \"French\", nativeName: \"Français\", dir: \"ltr\" },\n { code: \"de\", language: \"German\", nativeName: \"Deutsch\", dir: \"ltr\" },\n { code: \"es\", language: \"Spanish\", nativeName: \"Español\", dir: \"ltr\" },\n { code: \"ar\", language: \"Arabic\", nativeName: \"العربية\", dir: \"rtl\" },\n]);\n\nconst FAMILY_ALIASES = Object.freeze([[\"zh\", \"zh-TW\"], [\"pt\", \"pt-BR\"]]);\n\n/**\n * The languages a site actually sells in.\n *\n * The list above is the family's — what devslab.kr markets in, and the\n * floor every product gets for free. It is not every product's list.\n * BookLinq sells to salons in India and its assistant already answers in\n * Tamil, Telugu, Bengali, Marathi, Gujarati and Kannada. Those are not\n * family languages and are not going to become family languages: putting\n * them in the list above would hand AskLinq and devslab.kr six entries\n * they have no copy for. But a BookLinq page that cannot render them is a\n * page that lies about what the product does.\n *\n * So the family owns the mechanism and the product names its own nouns. A\n * registry is the family list plus whatever a product adds, and every\n * locale-aware helper here can be bound to one. The bare exports at the\n * bottom are the family registry, so a consumer that never calls this\n * sees exactly what it saw before.\n *\n * An extra locale carries the same fields as a family one plus\n * `flagCountry`, naming a flag this package already vendors (`FLAG_COUNTRY`\n * lists them). Products do not ship SVG: flag data is licensed, generated\n * and security-scanned here, and seven Indian languages share one flag\n * anyway.\n *\n * @param {{ only?: ReadonlyArray<string>, extra?: ReadonlyArray<object>, aliases?: ReadonlyArray<[string, string]> }} [options]\n */\nexport function defineLocaleRegistry(options = {}) {\n const extra = options.extra ?? [];\n // `only` — the product sells in a subset of the family's languages. The\n // subset keeps the family's order (the picker order is a family decision)\n // and is applied before `extra`, so a product may still add its own.\n let family = LOCALES;\n if (options.only !== undefined) {\n if (options.only.length === 0) throw new RangeError(\"`only` needs at least one locale — a registry with none is a bug, not a choice\");\n const wanted = new Set(options.only);\n for (const code of wanted) {\n 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`);\n }\n family = Object.freeze(LOCALES.filter((locale) => wanted.has(locale.code)));\n }\n const seen = new Set(family.map(({ code }) => code));\n for (const locale of extra) {\n if (!locale?.code) throw new TypeError(\"every extra locale needs a code\");\n if (LOCALES.some((known) => known.code === locale.code)) {\n throw new RangeError(`${locale.code} is already a family locale — remove it from \\`extra\\``);\n }\n if (seen.has(locale.code)) {\n throw new RangeError(`${locale.code} appears twice in \\`extra\\``);\n }\n if (!locale.nativeName) throw new TypeError(`${locale.code} needs a nativeName — it is what the picker shows`);\n if (locale.dir !== \"ltr\" && locale.dir !== \"rtl\") throw new RangeError(`${locale.code} needs dir \"ltr\" or \"rtl\"`);\n seen.add(locale.code);\n }\n\n const locales = Object.freeze([...family, ...extra.map((locale) => Object.freeze({ ...locale }))]);\n const byLower = new Map(locales.map((locale) => [locale.code.toLowerCase(), locale]));\n const aliases = new Map([...FAMILY_ALIASES, ...(options.aliases ?? [])]);\n\n function canonicalLocale(candidate) {\n if (!candidate) return undefined;\n const exact = byLower.get(String(candidate).trim().toLowerCase());\n if (exact) return exact.code;\n const base = String(candidate).trim().toLowerCase().split(\"-\")[0];\n if (aliases.has(base)) { const target = aliases.get(base); return byLower.has(target.toLowerCase()) ? target : undefined; }\n return byLower.get(base)?.code;\n }\n\n function definitionFor(locale) {\n const canonical = canonicalLocale(locale);\n if (!canonical) throw new RangeError(`Unsupported locale: ${locale}`);\n return byLower.get(canonical.toLowerCase());\n }\n\n function localeAttributes(locale) {\n const definition = definitionFor(locale);\n // `dir` comes off the definition rather than a test for Arabic. The\n // old form read `canonical === \"ar\" ? \"rtl\" : \"ltr\"`, which was right\n // only while Arabic stayed the family's one RTL language — a product\n // adding Urdu or Hebrew would have had it rendered left-to-right with\n // every test still green.\n return { lang: definition.code, dir: definition.dir };\n }\n\n function resolveLocale({ pathname = \"/\", cookie = \"\", acceptLanguage = \"\", defaultLocale }) {\n const routeLocale = canonicalLocale(pathname.split(\"/\").filter(Boolean)[0]);\n if (routeLocale) return { locale: routeLocale, source: \"route\" };\n const storedLocale = canonicalLocale(cookieValue(cookie, \"locale\"));\n if (storedLocale) return { locale: storedLocale, source: \"cookie\" };\n const accepted = acceptedLocales(acceptLanguage, canonicalLocale)[0]?.locale;\n if (accepted) return { locale: accepted, source: \"accept-language\" };\n const fallback = canonicalLocale(defaultLocale);\n if (!fallback) throw new RangeError(`Unsupported default locale: ${defaultLocale}`);\n return { locale: fallback, source: \"default\" };\n }\n\n return Object.freeze({ LOCALES: locales, canonicalLocale, localeAttributes, resolveLocale, definitionFor });\n}\n\nfunction cookieValue(header, name) {\n for (const part of String(header ?? \"\").split(\";\")) {\n const separator = part.indexOf(\"=\");\n if (separator < 0) continue;\n if (part.slice(0, separator).trim() === name) {\n try { return decodeURIComponent(part.slice(separator + 1).trim()); }\n catch { return undefined; }\n }\n }\n return undefined;\n}\n\nfunction acceptedLocales(header, canonicalLocale) {\n return String(header ?? \"\").split(\",\").map((part, order) => {\n const [tag, ...parameters] = part.trim().split(\";\");\n const q = Number(parameters.find((parameter) => parameter.trim().startsWith(\"q=\"))?.split(\"=\")[1] ?? 1);\n return { locale: canonicalLocale(tag), q: Number.isFinite(q) ? q : 0, order };\n }).filter(({ locale, q }) => locale && q > 0).sort((a, b) => b.q - a.q || a.order - b.order);\n}\n\n/** The family registry — what every helper in this package uses by default. */\nexport const FAMILY_LOCALES = defineLocaleRegistry();\n\nexport const { canonicalLocale, localeAttributes, resolveLocale } = FAMILY_LOCALES;\n","/* Generated by scripts/build-flags.mjs — do not edit. Source: flags/*.svg (flag-icons, MIT). Copyright (c) 2013 Panayiotis Lipiridis */\nexport const FLAG_COUNTRY = Object.freeze({\n \"ko\": \"kr\",\n \"en\": \"us\",\n \"ja\": \"jp\",\n \"zh-HK\": \"hk\",\n \"zh-TW\": \"tw\",\n \"hi\": \"in\",\n \"vi\": \"vn\",\n \"id\": \"id\",\n \"th\": \"th\",\n \"pt-BR\": \"br\",\n \"fr\": \"fr\",\n \"de\": \"de\",\n \"es\": \"es\",\n \"ar\": \"sa\"\n});\n\n/** Every vendored flag is 4:3 on this box, so any <use> can point at any symbol. */\nexport const FLAG_VIEWBOX = \"0 0 640 480\";\n\nconst VENDORED = new Set(Object.values(FLAG_COUNTRY));\n\n/**\n * The country whose flag stands for a locale — a family locale through\n * FLAG_COUNTRY, a product's own through its registry's `flagCountry`.\n * Same lookup order and errors as `flagFor`, without loading a body.\n *\n * @param {string} locale\n * @param {{ LOCALES?: ReadonlyArray<{ code: string, flagCountry?: string }> }} [registry]\n * @returns {string}\n */\nexport function flagCountryFor(locale, registry) {\n const country = FLAG_COUNTRY[locale];\n if (country) return country;\n const extra = registry?.LOCALES?.find((definition) => definition.code === locale);\n if (extra?.flagCountry) {\n if (VENDORED.has(extra.flagCountry)) return extra.flagCountry;\n throw new RangeError(`No vendored flag for country: ${extra.flagCountry} (locale ${locale})`);\n }\n throw new RangeError(`No flag for locale: ${locale}`);\n}\n","/**\n * How the Solid menu reaches the flag artwork — browser build.\n *\n * The fourteen vendored SVGs are ~115 KB. A page rendered on the server\n * already carries them in its HTML, and hydration adopts that markup, so the\n * browser bundle must not import them statically: it used to, and every\n * product's main client chunk grew by the whole set just to render a header.\n *\n * `flagBodiesNow` answers synchronously only in the build that has the bodies\n * at hand (flag-bodies.server.ts, aliased in by vite.server.config.ts and\n * vitest.ssr.config.ts). Here it answers undefined, and `loadFlagBodies` is a\n * dynamic import Vite emits as its own chunk — fetched only when a flag menu\n * renders without server HTML.\n */\nimport type { LocaleFlag } from \"../core/flag-bodies.mjs\";\n\nexport type FlagBodies = Readonly<Record<string, LocaleFlag>>;\n\nexport const flagBodiesNow = (): FlagBodies | undefined => undefined;\n\nexport const loadFlagBodies = (): Promise<FlagBodies> =>\n import(\"../core/flag-bodies.mjs\").then((module) => module.FLAGS_BY_COUNTRY);\n","import { For, createUniqueId, type JSX } from \"solid-js\";\n\nimport { FAMILY_LOCALES, type LocaleRegistry, type SiteLocale } from \"../core/locales.mjs\";\nimport { FLAG_VIEWBOX, flagCountryFor } from \"../core/flag-countries.mjs\";\nimport { flagBodiesNow, loadFlagBodies, type FlagBodies } from \"./flag-bodies\";\nimport type { LocaleState, SiteMessages } from \"./types\";\n\nexport type LocaleMenuVariant = \"select\" | \"flag\";\n\nexport interface LocaleMenuProps {\n state: LocaleState;\n messages: SiteMessages;\n variant?: LocaleMenuVariant;\n onLocaleChange?: (locale: SiteLocale, href: string) => void;\n /**\n * The languages to offer. Defaults to the family's fourteen; a product\n * that added its own passes the registry it built with\n * `defineLocaleRegistry`.\n */\n registry?: LocaleRegistry<string>;\n}\n\nfunction scopeFlagIds(body: string, uid: string): string {\n const ids = [...body.matchAll(/\\bid=\"([^\"]+)\"/g)].map((match) => match[1]!);\n if (ids.length === 0) return body;\n let scoped = body;\n for (const id of ids) {\n const suffixed = `${id}-${uid}`;\n scoped = scoped\n .replaceAll(`id=\"${id}\"`, `id=\"${suffixed}\"`)\n .replaceAll(`href=\"#${id}\"`, `href=\"#${suffixed}\"`)\n .replaceAll(`url(#${id})`, `url(#${suffixed})`);\n }\n return scoped;\n}\n\nconst registryOf = (props: LocaleMenuProps) => props.registry ?? (FAMILY_LOCALES as LocaleRegistry<string>);\n\nconst symbolId = (country: string, uid: string) => `site-flag-${country}-${uid}`;\n\nfunction spriteMarkup(countries: readonly string[], bodies: FlagBodies, uid: string): string {\n return countries.map((country) => {\n const flag = bodies[country];\n if (!flag) throw new RangeError(`No vendored flag for country: ${country}`);\n return `<symbol id=\"${symbolId(country, uid)}\" viewBox=\"${flag.viewBox}\">${scopeFlagIds(flag.body, uid)}</symbol>`;\n }).join(\"\");\n}\n\n/**\n * One copy of each flag the menu shows, as <symbol>s the flags <use>.\n *\n * The trigger and the current row used to inline the same body twice, and\n * the browser bundle carried every body so a client render could write\n * them. With a sprite, a locale change on the client only swaps an href,\n * so after hydration the browser never needs the artwork: the server build\n * writes it (flagBodiesNow), hydration adopts it untouched, and only a\n * render with no server HTML — a client-only app, a jsdom test — fetches\n * the bodies through loadFlagBodies, which the browser build emits as its\n * own chunk. Zero-sized rather than display:none so the referenced clip\n * paths and gradients still resolve.\n *\n * \"No server HTML\" is decided by looking at the element, not at whether\n * hydration is running: a hydration that drifted upstream recreates this\n * element from the template, empty, while the hydration context is still\n * set. Trusting the context left the first consumer with a blank flag\n * box; an empty sprite loads its bodies whatever the reason it is empty.\n */\nfunction FlagSprite(props: { countries: readonly string[]; uid: string }) {\n const bodies = flagBodiesNow();\n if (bodies) {\n return <svg class=\"site-flag-sprite\" aria-hidden=\"true\" innerHTML={spriteMarkup(props.countries, bodies, props.uid)} />;\n }\n return (\n <svg\n class=\"site-flag-sprite\"\n aria-hidden=\"true\"\n ref={(element) => {\n if (element.childElementCount > 0) return; // adopted from server HTML: the sprite is already drawn\n void loadFlagBodies().then((loaded) => { element.innerHTML = spriteMarkup(props.countries, loaded, props.uid); });\n }}\n />\n );\n}\n\nfunction Flag(props: { locale: string; class?: string; registry: LocaleRegistry<string>; uid: string }) {\n const country = () => flagCountryFor(props.locale, props.registry);\n return (\n <svg class={props.class} viewBox={FLAG_VIEWBOX} aria-hidden=\"true\">\n <use href={`#${symbolId(country(), props.uid)}`} />\n </svg>\n );\n}\n\nfunction SelectLocaleMenu(props: LocaleMenuProps) {\n const registry = () => registryOf(props);\n return (\n <label>\n <span class=\"dds-sr-only\">{props.messages.localeLabel}</span>\n <span class=\"dds-select site-locale\">\n <select\n class=\"dds-select__input\"\n aria-label={props.messages.localeLabel}\n onChange={(event) => {\n const locale = event.currentTarget.value as SiteLocale;\n const href = props.state.hrefForLocale(locale);\n if (props.onLocaleChange) props.onLocaleChange(locale, href);\n else window.location.assign(href);\n }}\n >\n {/*\n `selected` on the option, not `value` on the select.\n <select> has no `value` content attribute — it exists only as a\n DOM property — so under SSR, where the markup is a string,\n `value={...}` serialised to an attribute the browser ignores and\n every visitor got option[0] as their \"current\" language\n regardless of the page they were reading. Touching the control\n then switched them to that first language. `selected` is a real\n content attribute and survives the trip through HTML.\n */}\n <For each={registry().LOCALES}>{(locale) => (\n <option value={locale.code} lang={locale.code} dir={locale.dir} selected={locale.code === props.state.locale}>\n {locale.nativeName}\n </option>\n )}</For>\n </select>\n </span>\n </label>\n );\n}\n\nfunction FlagLocaleMenu(props: LocaleMenuProps) {\n let details: HTMLDetailsElement | undefined;\n let trigger: HTMLElement | undefined;\n const uid = createUniqueId();\n const registry = () => registryOf(props);\n const countries = () => [...new Set(registry().LOCALES.map((entry) => flagCountryFor(entry.code, registry())))];\n const current = () => registry().LOCALES.find((entry) => entry.code === props.state.locale);\n const close = () => { if (details) details.open = false; };\n const onKeyDown: JSX.EventHandler<HTMLDetailsElement, KeyboardEvent> = (event) => {\n if (event.key !== \"Escape\" || !details?.open) return;\n event.preventDefault();\n close();\n trigger?.focus();\n };\n const triggerLabel = () => {\n const name = current()?.nativeName;\n return name ? `${props.messages.localeLabel}: ${name}` : props.messages.localeLabel;\n };\n return (\n <details ref={details} class=\"site-locale-flag\" onKeyDown={onKeyDown}>\n <summary ref={trigger} class=\"site-locale-flag__trigger\" aria-label={triggerLabel()} title={props.messages.localeLabel}>\n <FlagSprite countries={countries()} uid={uid} />\n <Flag locale={props.state.locale} class=\"site-locale-flag__svg\" registry={registry()} uid={uid} />\n </summary>\n <ul class=\"site-locale-flag__list\" role=\"list\">\n <For each={registry().LOCALES}>{(entry) => (\n <li>\n <a\n class=\"site-locale-flag__option\"\n href={props.state.hrefForLocale(entry.code as SiteLocale)}\n lang={entry.code}\n hreflang={entry.code}\n dir={entry.dir}\n aria-current={entry.code === props.state.locale ? \"true\" : undefined}\n onClick={(event) => {\n if (!props.onLocaleChange) return;\n event.preventDefault();\n close();\n props.onLocaleChange(entry.code as SiteLocale, props.state.hrefForLocale(entry.code as SiteLocale));\n }}\n >\n <Flag locale={entry.code} class=\"site-locale-flag__svg\" registry={registry()} uid={uid} />\n <span>{entry.nativeName}</span>\n </a>\n </li>\n )}</For>\n </ul>\n </details>\n );\n}\n\nexport function LocaleMenu(props: LocaleMenuProps) {\n return props.variant === \"flag\" ? <FlagLocaleMenu {...props} /> : <SelectLocaleMenu {...props} />;\n}\n","import { Button, Icon, IconButton } from \"@devslab/dds-solid\";\nimport { For, Show, createSignal, onMount, type JSX } from \"solid-js\";\n\nimport { LocaleMenu, type LocaleMenuProps, type LocaleMenuVariant } from \"./locale-menu\";\nimport { FAMILY_LOCALES, type LocaleRegistry, type SiteLocale } from \"../core/locales.mjs\";\nimport type { LocaleState, SiteBrand, SiteLink, SiteMessages, ThemePreference } from \"./types\";\n\nexport type { LocaleMenuProps };\n\nexport interface ThemeToggleProps {\n messages: SiteMessages;\n value?: ThemePreference;\n defaultValue?: ThemePreference;\n onValueChange?: (theme: ThemePreference) => void;\n storageKey?: string;\n}\n\nexport function ThemeToggle(props: ThemeToggleProps) {\n const order: ThemePreference[] = [\"system\", \"light\", \"dark\"];\n const [internal, setInternal] = createSignal<ThemePreference>(props.defaultValue ?? \"system\");\n const [resolved, setResolved] = createSignal<\"light\" | \"dark\">(\"light\");\n const value = () => props.value ?? internal();\n const nextTheme = () => resolved() === \"dark\" ? \"light\" : \"dark\";\n const nextLabel = () => nextTheme() === \"dark\" ? props.messages.themeDark : props.messages.themeLight;\n const apply = (theme: ThemePreference) => {\n const resolved = theme === \"system\"\n ? (matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\")\n : theme;\n setResolved(resolved);\n document.documentElement.dataset.theme = resolved;\n document.documentElement.dataset.themePreference = theme;\n };\n const update = (theme: ThemePreference) => {\n if (props.value === undefined) setInternal(theme);\n props.onValueChange?.(theme);\n apply(theme);\n localStorage.setItem(props.storageKey ?? \"site-theme\", theme);\n };\n onMount(() => {\n const stored = localStorage.getItem(props.storageKey ?? \"site-theme\") as ThemePreference | null;\n if (props.value === undefined && stored && order.includes(stored)) setInternal(stored);\n apply(props.value ?? stored ?? internal());\n });\n return (\n <IconButton\n class=\"site-theme-toggle\"\n tone=\"ghost\"\n aria-label={`${props.messages.themeLabel}: ${nextLabel()}`}\n title={`${props.messages.themeLabel}: ${nextLabel()}`}\n onClick={() => update(nextTheme())}\n >\n <Icon\n class=\"site-theme-toggle__icon\"\n name={nextTheme() === \"dark\" ? \"site-moon\" : \"site-sun\"}\n data-icon={nextTheme() === \"dark\" ? \"site-moon\" : \"site-sun\"}\n size={20}\n />\n </IconButton>\n );\n}\n\nexport interface SiteHeaderProps {\n brand: SiteBrand;\n navigation: SiteLink[];\n locale: LocaleState;\n messages: SiteMessages;\n theme?: Omit<ThemeToggleProps, \"messages\">;\n onLocaleChange?: LocaleMenuProps[\"onLocaleChange\"];\n localeVariant?: LocaleMenuVariant;\n /**\n * The languages the picker offers. Defaults to the family's fourteen;\n * pass the registry from `defineLocaleRegistry` if this product sells in\n * languages the family does not carry.\n */\n localeRegistry?: LocaleRegistry<string>;\n actions?: JSX.Element;\n}\n\nexport function SiteHeader(props: SiteHeaderProps) {\n const [menuOpen, setMenuOpen] = createSignal(false);\n return (\n <header class=\"site-header\">\n <a class=\"dds-sr-only\" href=\"#main-content\">{props.messages.skipToContent}</a>\n <div class=\"site-header__inner\">\n <a class=\"site-brand\" href={props.brand.href}>{props.brand.logo}{props.brand.name}</a>\n <Button class=\"site-menu-button\" tone=\"ghost\" aria-expanded={menuOpen()} aria-controls=\"site-navigation\" onClick={() => setMenuOpen((open) => !open)}>\n {menuOpen() ? props.messages.menuClose : props.messages.menuOpen}\n </Button>\n <nav id=\"site-navigation\" class=\"site-nav\" data-open={String(menuOpen())} aria-label={props.messages.navigationLabel}>\n <ul class=\"site-nav__list\"><For each={props.navigation}>{(item) => <li><a href={item.href} target={item.external ? \"_blank\" : undefined} rel={item.external ? \"noreferrer\" : undefined}>{item.label}</a></li>}</For></ul>\n </nav>\n <div class=\"site-header__controls\" data-open={String(menuOpen())}>\n <LocaleMenu\n state={props.locale}\n messages={props.messages}\n {...(props.localeVariant ? { variant: props.localeVariant } : {})}\n {...(props.localeRegistry ? { registry: props.localeRegistry } : {})}\n {...(props.onLocaleChange ? { onLocaleChange: props.onLocaleChange } : {})}\n />\n {props.theme && <ThemeToggle {...props.theme} messages={props.messages} />}\n {props.actions}\n </div>\n </div>\n </header>\n );\n}\n\n/**\n * The footer's language row, collapsed.\n *\n * It used to be every language laid out flat, which is a different length in\n * every product — ten for one, twenty for another — so the same footer carried\n * a different visual weight depending on how many languages the product sells\n * in. A `<details>` keeps all of them: the anchors are in the document whether\n * it is open or not, so a crawler still follows every locale, and it works with\n * no JavaScript. Same mechanism as the header's flag menu, including Escape\n * returning focus to the trigger.\n *\n * The trigger is the current language's own name rather than a translated word\n * for \"language\": it is the one label already meaningful to a reader who cannot\n * read the page, and it is what the flat row marked with `aria-current`.\n */\nfunction FooterLocaleMenu(props: {\n state: LocaleState;\n registry: LocaleRegistry<string>;\n label: string;\n /* Required key, optional value: the caller always passes it through, and\n `exactOptionalPropertyTypes` rejects an explicit undefined on an optional. */\n onSelect: ((locale: string) => void) | undefined;\n}) {\n let details: HTMLDetailsElement | undefined;\n let trigger: HTMLElement | undefined;\n const current = () => props.registry.LOCALES.find((entry) => entry.code === props.state.locale);\n const close = () => { if (details) details.open = false; };\n const onKeyDown: JSX.EventHandler<HTMLDetailsElement, KeyboardEvent> = (event) => {\n if (event.key !== \"Escape\" || !details?.open) return;\n event.preventDefault();\n close();\n trigger?.focus();\n };\n return (\n <nav class=\"site-footer__langs\" aria-label={props.label}>\n <details ref={details} class=\"site-footer__langs-menu\" onKeyDown={onKeyDown}>\n <summary ref={trigger} class=\"site-footer__langs-trigger\" aria-label={`${props.label}: ${current()?.nativeName ?? props.state.locale}`}>\n <span lang={current()?.code} dir={current()?.dir}>{current()?.nativeName ?? props.state.locale}</span>\n </summary>\n <ul class=\"site-footer__langs-list\" role=\"list\">\n <For each={props.registry.LOCALES}>{(entry) => (\n <li>\n <a\n href={props.state.hrefForLocale(entry.code as SiteLocale)}\n hreflang={entry.code}\n lang={entry.code}\n dir={entry.dir}\n aria-current={entry.code === props.state.locale ? \"page\" : undefined}\n onClick={() => props.onSelect?.(entry.code)}\n >{entry.nativeName}</a>\n </li>\n )}</For>\n </ul>\n </details>\n </nav>\n );\n}\n\nexport interface SiteFooterProps {\n brand: SiteBrand;\n links: SiteLink[];\n copyright: string;\n /** Wraps the copyright in a link — the family site, usually. */\n copyrightHref?: string;\n messages: SiteMessages;\n /**\n * The language row. Omit it and no row is rendered: a product whose header\n * already offers every language may not want a second copy of the list.\n */\n locale?: LocaleState;\n /** The languages the row lists. Defaults to the family's fourteen. */\n localeRegistry?: LocaleRegistry<string>;\n /**\n * Called with the code the reader picked, before the browser follows the\n * link — for a product that remembers the choice in a cookie.\n */\n onLocaleSelect?: (locale: string) => void;\n /** Links after the brand name, middot-separated: the family line, the operator. */\n family?: SiteLink[];\n}\n\n/**\n * The family footer: a language row, then the brand beside its family links,\n * then the page's links and the copyright.\n *\n * Every product wrote this by hand. VisionLinq, BookLinq and TraceLinq each\n * carried their own copy with a comment saying the kit's footer \"takes only a\n * flat link list; extending it is a dds release this page would then wait on\" —\n * three copies and three notes naming the same missing release. Their CSS had\n * already converged byte-for-byte. This is that release.\n *\n * Additive: a caller that passes only brand/links/copyright/messages gets the\n * same single row it got before, plus its brand mark if it set one.\n */\nexport function SiteFooter(props: SiteFooterProps) {\n const registry = () => props.localeRegistry ?? (FAMILY_LOCALES as LocaleRegistry<string>);\n return (\n <footer class=\"site-footer\" aria-label={props.messages.footerLabel}>\n <div class=\"site-footer__inner\">\n <Show when={props.locale}>{(locale) => (\n <FooterLocaleMenu\n state={locale()}\n registry={registry()}\n label={props.messages.localeLabel}\n onSelect={props.onLocaleSelect}\n />\n )}</Show>\n <div class=\"site-footer__row\">\n <p class=\"site-footer__brand\">\n {props.brand.logo}\n <strong>{props.brand.name}</strong>\n <For each={props.family ?? []}>{(item) => <>\n <span aria-hidden=\"true\">·</span>\n <a href={item.href}>{item.label}</a>\n </>}</For>\n </p>\n <ul class=\"site-footer__links\">\n <For each={props.links}>{(item) => <li><a href={item.href}>{item.label}</a></li>}</For>\n {/*\n A copyright like \"© 2026 DevsLab\" mixes neutral, digit and Latin\n runs, which the bidi algorithm reorders on an RTL page into\n \"DevsLab 2026 ©\". <bdi> isolates it so it reads as written in\n every direction.\n */}\n <li><Show when={props.copyrightHref} fallback={<bdi>{props.copyright}</bdi>}>\n {(href) => <a href={href()}><bdi>{props.copyright}</bdi></a>}\n </Show></li>\n </ul>\n </div>\n </div>\n </footer>\n );\n}\n","import { Button, type ButtonTone } from \"@devslab/dds-solid\";\nimport { createMemo, type JSX } from \"solid-js\";\n\nimport { SiteFooter, SiteHeader, type SiteFooterProps, type SiteHeaderProps } from \"./chrome\";\nimport type { SiteMessages } from \"./types\";\n\nexport interface MarketingShellProps {\n header: SiteHeaderProps;\n footer: SiteFooterProps;\n messages: SiteMessages;\n children: JSX.Element;\n /** \"bleed\" removes the shell's max-width/inset from <main> — for pages composed from\n * full-bleed section primitives, each of which carries its own inner width. Default \"shell\". */\n mainWidth?: \"shell\" | \"bleed\";\n}\n\nexport function MarketingShell(props: MarketingShellProps) {\n const mainClass = () => (props.mainWidth === \"bleed\" ? \"site-main site-main--bleed\" : \"site-main\");\n // Read header and footer once, here, before any element of the shell exists.\n // `header={{ … }}` compiles to a getter, so spreading `props.header` straight\n // into SiteHeader re-evaluated the literal on every prop read — and any JSX\n // built eagerly inside it (an `actions` anchor, a logo) was built again each\n // time, consuming hydration keys. The server and the client read a different\n // number of times, so from the first extra read every key after it was off,\n // and the client rebuilt the whole header from templates: the flag sprite\n // came back empty (AskLinq, site-kit 0.12.0). A memo evaluates the literal\n // exactly once per side, at the same point in the tree.\n const header = createMemo(() => props.header);\n const footer = createMemo(() => props.footer);\n return <div class=\"site-shell\"><SiteHeader {...header()} /><main id=\"main-content\" class={mainClass()} tabIndex={-1}>{props.children}</main><SiteFooter {...footer()} /></div>;\n}\n\nexport interface LegalLayoutProps {\n title: string;\n updatedAt: string;\n messages: SiteMessages;\n children: JSX.Element;\n}\n\nexport function LegalLayout(props: LegalLayoutProps) {\n return <article class=\"site-legal\"><header><h1>{props.title}</h1><p>{props.messages.updatedLabel}: <time datetime={props.updatedAt}>{props.updatedAt}</time></p></header>{props.children}</article>;\n}\n\nexport interface StatusBannerProps {\n tone: \"success\" | \"warning\" | \"danger\" | \"info\";\n title: string;\n children?: JSX.Element;\n action?: { label: string; onClick: () => void; tone?: ButtonTone };\n}\n\nexport function StatusBanner(props: StatusBannerProps) {\n // Read children once. `<StatusBanner><ul>…</ul></StatusBanner>` compiles to a\n // getter, and checking it for truthiness then inserting it read it twice:\n // the first read built a list (and every <li> under it) that was thrown\n // away, each with a hydration key the server never wrote. Solid's dev build\n // throws `Hydration Mismatch` for those keys, so a consumer's status page\n // fell to its error boundary in `vite dev` (BookLinq, site-kit 0.12.1). One\n // memo, evaluated at the same point in the tree on both sides, is the\n // check and the insert (D-027, D-028).\n const children = createMemo(() => props.children);\n return <section class={`site-status site-status--${props.tone}`} role={props.tone === \"danger\" ? \"alert\" : \"status\"} aria-live={props.tone === \"danger\" ? \"assertive\" : \"polite\"}>\n <strong>{props.title}</strong>{children() && <div>{children()}</div>}{props.action && <Button tone={props.action.tone ?? \"secondary\"} onClick={props.action.onClick}>{props.action.label}</Button>}\n </section>;\n}\n\nexport interface NotFoundLayoutProps { messages: SiteMessages; homeHref: string; children?: JSX.Element }\nexport function NotFoundLayout(props: NotFoundLayoutProps) {\n return <main class=\"site-main site-centered-layout\"><h1>{props.messages.notFoundTitle}</h1><p>{props.messages.notFoundDescription}</p>{props.children}<a class=\"dds-btn dds-btn--primary\" href={props.homeHref}>{props.messages.backHome}</a></main>;\n}\n\nexport interface ErrorLayoutProps { messages: SiteMessages; onRetry: () => void; errorId?: string; children?: JSX.Element }\nexport function ErrorLayout(props: ErrorLayoutProps) {\n return <main class=\"site-main site-centered-layout\"><h1>{props.messages.errorTitle}</h1><p>{props.messages.errorDescription}</p>{props.errorId && <code>{props.errorId}</code>}{props.children}<Button tone=\"primary\" onClick={props.onRetry}>{props.messages.retry}</Button></main>;\n}\n","import { Button, Field } from \"@devslab/dds-solid\";\nimport { createSignal } from \"solid-js\";\n\nexport interface RequestAccessMessages {\n nameLabel: string;\n emailLabel: string;\n organizationLabel: string;\n useCaseLabel: string;\n submit: string;\n submitting: string;\n success: string;\n error: string;\n}\n\nexport interface RequestAccessFormProps {\n messages: RequestAccessMessages;\n onSubmit: (data: FormData) => void | Promise<void>;\n class?: string;\n}\n\nexport function RequestAccessForm(props: RequestAccessFormProps) {\n const [state, setState] = createSignal<\"idle\" | \"submitting\" | \"success\" | \"error\">(\"idle\");\n const submit = async (event: SubmitEvent) => {\n event.preventDefault();\n if (state() === \"submitting\") return;\n setState(\"submitting\");\n try {\n await props.onSubmit(new FormData(event.currentTarget as HTMLFormElement));\n setState(\"success\");\n } catch {\n setState(\"error\");\n }\n };\n return (\n <form class={`site-request-form${props.class ? ` ${props.class}` : \"\"}`} onSubmit={submit}>\n <Field label={props.messages.nameLabel} required>{(control) => <input {...control} class=\"dds-input\" name=\"name\" autocomplete=\"name\" required />}</Field>\n <Field label={props.messages.emailLabel} required>{(control) => <input {...control} class=\"dds-input\" type=\"email\" name=\"email\" autocomplete=\"email\" required />}</Field>\n <Field label={props.messages.organizationLabel}>{(control) => <input {...control} class=\"dds-input\" name=\"organization\" autocomplete=\"organization\" />}</Field>\n <Field label={props.messages.useCaseLabel}>{(control) => <textarea {...control} class=\"dds-textarea\" name=\"useCase\" rows=\"5\" />}</Field>\n <Button type=\"submit\" loading={state() === \"submitting\"}>{state() === \"submitting\" ? props.messages.submitting : props.messages.submit}</Button>\n <div aria-live=\"polite\" aria-atomic=\"true\">{state() === \"success\" ? props.messages.success : state() === \"error\" ? props.messages.error : \"\"}</div>\n </form>\n );\n}\n","export interface OssProductMarkProps {\n name: string;\n src: string;\n size?: \"sm\" | \"md\" | \"lg\";\n decorative?: boolean;\n class?: string;\n}\n\nconst MARK_SIZE = { sm: 24, md: 32, lg: 48 } as const;\n\nexport function OssProductMark(props: OssProductMarkProps) {\n const size = () => props.size ?? \"md\";\n const pixels = () => MARK_SIZE[size()];\n\n return (\n <img\n class={`oss-product-mark oss-product-mark--${size()}${props.class ? ` ${props.class}` : \"\"}`}\n src={props.src}\n alt={props.decorative ? \"\" : props.name}\n aria-hidden={props.decorative ? \"true\" : undefined}\n width={pixels()}\n height={pixels()}\n decoding=\"async\"\n />\n );\n}\n","import { For, Show, type JSX } from \"solid-js\";\n\n/**\n * Section primitives — the rhythm of a family landing page.\n *\n * Extracted from VisionLinq's landing (apps/web/src/components/landing/\n * sections.tsx + styles/landing.css) so AskLinq's web-next can compose the\n * same page shape. Stateless; every class lives in site-sections.css;\n * colour comes from --dds-* tokens, so light/dark needs no rule here.\n *\n * Two glyph systems, deliberately different (owner, 2026-09-05):\n * - SectionHead.index — the SECTION's number: mono, zero-padded \"01\".\n * - StepFlow markers — a SEQUENCE inside a section: ring numerals \"1\".\n * A step never renders \"01\"; that would put two levels in one voice.\n */\n\nexport interface SectionBlockProps {\n id: string;\n labelledBy: string;\n /** `band` steps the background down one token (bg-subtle) — a decision, not a tint. */\n tone?: \"default\" | \"band\";\n children: JSX.Element;\n}\n\nexport function SectionBlock(props: SectionBlockProps) {\n return (\n <section class=\"site-section\" id={props.id} data-tone={props.tone ?? \"default\"} aria-labelledby={props.labelledBy}>\n <div class=\"site-section__shell\">{props.children}</div>\n </section>\n );\n}\n\nexport interface SectionHeadProps {\n /** Mono, zero-padded index (\"01\"). Decorative — hidden from assistive tech. */\n index: string;\n title: string;\n titleId: string;\n lede?: string;\n}\n\nexport function SectionHead(props: SectionHeadProps) {\n return (\n <header class=\"site-section__head\">\n <p class=\"site-section__index\" aria-hidden=\"true\">{props.index}</p>\n <h2 id={props.titleId}>{props.title}</h2>\n <Show when={props.lede}>{(lede) => <p class=\"site-section__lede\">{lede()}</p>}</Show>\n </header>\n );\n}\n\nexport interface HeroSplitProps {\n id?: string;\n eyebrow?: string;\n title: string;\n titleId: string;\n lede: string;\n actions: JSX.Element;\n /** The product's own scene. Its height is the consumer's decision — fix it there if the scene swaps panels. */\n aside: JSX.Element;\n asideLabel: string;\n}\n\nexport function HeroSplit(props: HeroSplitProps) {\n return (\n <section id={props.id} class=\"site-hero\" aria-labelledby={props.titleId}>\n <div class=\"site-hero__shell\">\n <div class=\"site-hero__copy\">\n <Show when={props.eyebrow}>{(eyebrow) => <p class=\"site-hero__eyebrow\">{eyebrow()}</p>}</Show>\n <h1 id={props.titleId}>{props.title}</h1>\n <p class=\"site-hero__lede\">{props.lede}</p>\n <div class=\"site-hero__actions\">{props.actions}</div>\n </div>\n <figure class=\"site-hero__aside\" aria-label={props.asideLabel}>{props.aside}</figure>\n </div>\n </section>\n );\n}\n\nexport interface StepFlowStep { title: string; body: string }\n\nexport interface StepFlowProps {\n steps: ReadonlyArray<StepFlowStep>;\n /** Accessible name for the list — pass the section title's words, localized. */\n label?: string;\n}\n\nexport function StepFlow(props: StepFlowProps) {\n return (\n <ol class=\"site-steps\" aria-label={props.label}>\n <For each={props.steps}>{(step, index) => (\n <li class=\"site-steps__step\">\n <span class=\"site-steps__marker\" aria-hidden=\"true\">{index() + 1}</span>\n <h3>{step.title}</h3>\n <p>{step.body}</p>\n </li>\n )}</For>\n </ol>\n );\n}\n\nexport interface FeatureRow { title: string; body: string; badge?: string }\n\nexport interface FeatureRowsProps {\n rows: ReadonlyArray<FeatureRow>;\n label?: string;\n}\n\n/** Hairline rows — a card grid is the thing this primitive exists to replace. */\nexport function FeatureRows(props: FeatureRowsProps) {\n return (\n <ul class=\"site-rows\" aria-label={props.label}>\n <For each={props.rows}>{(row) => (\n <li class=\"site-rows__row\">\n <div class=\"site-rows__title\">\n <h3>{row.title}</h3>\n <Show when={row.badge}>{(badge) => <span class=\"dds-badge dds-badge--brand\">{badge()}</span>}</Show>\n </div>\n <p class=\"site-rows__body\">{row.body}</p>\n </li>\n )}</For>\n </ul>\n );\n}\n\nexport interface PricingNoteProps {\n children: JSX.Element;\n action: JSX.Element;\n}\n\n/** One paragraph block, one action. No table, no tiers — a note, not a pricing page. */\nexport function PricingNote(props: PricingNoteProps) {\n return (\n <div class=\"site-pricing\">\n <div class=\"site-pricing__note\">{props.children}</div>\n <div class=\"site-pricing__action\">{props.action}</div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { createComponent, escape, mergeProps, ssr, ssrAttribute, ssrElement, ssrHydrationKey } from "solid-js/web";
2
- import { For, Show, createSignal, createUniqueId, onMount } from "solid-js";
2
+ import { For, Show, createMemo, 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([
@@ -420,6 +420,12 @@ function spriteMarkup(countries, bodies, uid) {
420
420
  * the bodies through loadFlagBodies, which the browser build emits as its
421
421
  * own chunk. Zero-sized rather than display:none so the referenced clip
422
422
  * paths and gradients still resolve.
423
+ *
424
+ * "No server HTML" is decided by looking at the element, not at whether
425
+ * hydration is running: a hydration that drifted upstream recreates this
426
+ * element from the template, empty, while the hydration context is still
427
+ * set. Trusting the context left the first consumer with a blank flag
428
+ * box; an empty sprite loads its bodies whatever the reason it is empty.
423
429
  */
424
430
  function FlagSprite(props) {
425
431
  const bodies = flagBodiesNow();
@@ -755,13 +761,16 @@ var _tmpl$7$1 = [
755
761
  ];
756
762
  function MarketingShell(props) {
757
763
  const mainClass = () => props.mainWidth === "bleed" ? "site-main site-main--bleed" : "site-main";
758
- 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))));
764
+ const header = createMemo(() => props.header);
765
+ const footer = createMemo(() => props.footer);
766
+ return ssr(_tmpl$$3, ssrHydrationKey(), escape(createComponent(SiteHeader, mergeProps(header))), ssrAttribute("class", escape(mainClass(), true), false), escape(props.children), escape(createComponent(SiteFooter, mergeProps(footer))));
759
767
  }
760
768
  function LegalLayout(props) {
761
769
  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));
762
770
  }
763
771
  function StatusBanner(props) {
764
- 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, {
772
+ const children = createMemo(() => props.children);
773
+ 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), children() && ssr(_tmpl$4$1, ssrHydrationKey(), escape(children())), props.action && escape(createComponent(Button, {
765
774
  get tone() {
766
775
  return props.action.tone ?? "secondary";
767
776
  },