@riverbankcms/sdk 0.4.3 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -0
- package/dist/cli/index.js +3463 -120
- package/dist/cli/index.js.map +1 -1
- package/dist/client/analytics.js +1 -1
- package/dist/client/analytics.js.map +1 -1
- package/dist/client/analytics.mjs +1 -1
- package/dist/client/analytics.mjs.map +1 -1
- package/dist/client/bookings.js +6 -6
- package/dist/client/bookings.js.map +1 -1
- package/dist/client/bookings.mjs +6 -6
- package/dist/client/bookings.mjs.map +1 -1
- package/dist/client/client.d.mts +2 -2
- package/dist/client/client.d.ts +2 -2
- package/dist/client/client.js +1379 -519
- package/dist/client/client.js.map +1 -1
- package/dist/client/client.mjs +1379 -519
- package/dist/client/client.mjs.map +1 -1
- package/dist/client/hooks.d.mts +2 -2
- package/dist/client/hooks.d.ts +2 -2
- package/dist/client/hooks.js +26 -11
- package/dist/client/hooks.js.map +1 -1
- package/dist/client/hooks.mjs +26 -11
- package/dist/client/hooks.mjs.map +1 -1
- package/dist/client/rendering/client.js +20 -14
- package/dist/client/rendering/client.js.map +1 -1
- package/dist/client/rendering/client.mjs +20 -14
- package/dist/client/rendering/client.mjs.map +1 -1
- package/dist/client/usePage-BTPnCuWC.d.mts +6511 -0
- package/dist/client/usePage-BXjk8BhD.d.mts +6704 -0
- package/dist/client/usePage-BafOS9UT.d.mts +6512 -0
- package/dist/client/usePage-BiOReg0_.d.ts +6704 -0
- package/dist/client/usePage-Bnx-kA6x.d.mts +6670 -0
- package/dist/client/usePage-DoPI6b8V.d.ts +6511 -0
- package/dist/client/usePage-QNWArrVO.d.ts +6670 -0
- package/dist/client/usePage-fBgPB6Oq.d.ts +6512 -0
- package/dist/server/{Layout-CXI_VkhN.d.ts → Layout-BClXUTsd.d.mts} +4 -4
- package/dist/server/{Layout-p6f3TLw9.d.mts → Layout-UXGjXv8M.d.ts} +4 -4
- package/dist/server/{chunk-6JBKKV3G.js → chunk-2KCF2DNK.js} +30 -10
- package/dist/server/chunk-2KCF2DNK.js.map +1 -0
- package/dist/server/chunk-5STV4MWD.js +189 -0
- package/dist/server/chunk-5STV4MWD.js.map +1 -0
- package/dist/server/{chunk-VHDDXCK6.js → chunk-7UPVCT3K.js} +1206 -496
- package/dist/server/chunk-7UPVCT3K.js.map +1 -0
- package/dist/server/{chunk-7DS4Q3GA.mjs → chunk-AEFWG657.mjs} +3 -3
- package/dist/server/chunk-AEFWG657.mjs.map +1 -0
- package/dist/server/{chunk-USQF2XTU.mjs → chunk-BYBJA6SP.mjs} +26 -11
- package/dist/server/chunk-BYBJA6SP.mjs.map +1 -0
- package/dist/server/{chunk-ES6QDZUX.mjs → chunk-C6FIJC7T.mjs} +2 -2
- package/dist/server/{chunk-N3PX76AP.mjs → chunk-CMABGYGI.mjs} +269 -135
- package/dist/server/chunk-CMABGYGI.mjs.map +1 -0
- package/dist/server/{chunk-TO7FD6TQ.js → chunk-I2D7KOEA.js} +4 -4
- package/dist/server/{chunk-TO7FD6TQ.js.map → chunk-I2D7KOEA.js.map} +1 -1
- package/dist/server/{chunk-R5B6IOFQ.js → chunk-KA74YRK6.js} +269 -135
- package/dist/server/chunk-KA74YRK6.js.map +1 -0
- package/dist/server/chunk-KFLZGNPO.mjs +189 -0
- package/dist/server/chunk-KFLZGNPO.mjs.map +1 -0
- package/dist/server/chunk-L5EA4FXU.mjs +134 -0
- package/dist/server/chunk-L5EA4FXU.mjs.map +1 -0
- package/dist/server/{chunk-U2NI3TS3.mjs → chunk-LNOUXALA.mjs} +1135 -425
- package/dist/server/chunk-LNOUXALA.mjs.map +1 -0
- package/dist/server/{chunk-24F6FTCI.mjs → chunk-OSF34JTQ.mjs} +4 -4
- package/dist/server/{chunk-G35R7N7B.js → chunk-P3NNN73G.js} +3 -3
- package/dist/server/{chunk-G35R7N7B.js.map → chunk-P3NNN73G.js.map} +1 -1
- package/dist/server/{chunk-I6K5REFT.mjs → chunk-P4K63SBZ.mjs} +24 -4
- package/dist/server/chunk-P4K63SBZ.mjs.map +1 -0
- package/dist/server/{chunk-HOY77YBF.js → chunk-RVDS7VSP.js} +5 -5
- package/dist/server/chunk-RVDS7VSP.js.map +1 -0
- package/dist/server/{chunk-2SSEBAHC.js → chunk-TT5JWA4X.js} +9 -9
- package/dist/server/{chunk-2SSEBAHC.js.map → chunk-TT5JWA4X.js.map} +1 -1
- package/dist/server/chunk-VSFQRHYZ.js +134 -0
- package/dist/server/chunk-VSFQRHYZ.js.map +1 -0
- package/dist/server/{chunk-EGTDJ4PL.js → chunk-YYO3RIFO.js} +26 -11
- package/dist/server/chunk-YYO3RIFO.js.map +1 -0
- package/dist/server/{chunk-OP2GHK27.mjs → chunk-Z5ZA6Q4D.mjs} +2 -2
- package/dist/server/{components-Dhiemsjd.d.ts → components-BmaJxgCV.d.mts} +20 -75
- package/dist/server/{components-C75e4poV.d.mts → components-DppHY5oD.d.ts} +20 -75
- package/dist/server/components.d.mts +11 -8
- package/dist/server/components.d.ts +11 -8
- package/dist/server/components.js +5 -4
- package/dist/server/components.js.map +1 -1
- package/dist/server/components.mjs +4 -3
- package/dist/server/config-validation.d.mts +3 -3
- package/dist/server/config-validation.d.ts +3 -3
- package/dist/server/config-validation.js +9 -5
- package/dist/server/config-validation.js.map +1 -1
- package/dist/server/config-validation.mjs +8 -4
- package/dist/server/config.d.mts +243 -5
- package/dist/server/config.d.ts +243 -5
- package/dist/server/config.js +72 -5
- package/dist/server/config.js.map +1 -1
- package/dist/server/config.mjs +72 -5
- package/dist/server/config.mjs.map +1 -1
- package/dist/server/core-DsNWrl3o.d.mts +44 -0
- package/dist/server/core-DsNWrl3o.d.ts +44 -0
- package/dist/server/data.d.mts +4 -3
- package/dist/server/data.d.ts +4 -3
- package/dist/server/data.js +3 -3
- package/dist/server/data.mjs +2 -2
- package/dist/server/{index-CAwBj3-A.d.ts → index-Bucs6UqG.d.mts} +2 -1
- package/dist/server/{index-C6o9LPvq.d.mts → index-Cp7tJuRt.d.ts} +2 -1
- package/dist/server/index.d.mts +84 -6
- package/dist/server/index.d.ts +84 -6
- package/dist/server/index.js +91 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +90 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/link-DjxLyC82.d.mts +23 -0
- package/dist/server/link-DjxLyC82.d.ts +23 -0
- package/dist/server/{loadContent-CdXfuCuE.d.mts → loadContent-BS-3wesN.d.mts} +4 -4
- package/dist/server/{loadContent-CsvQRoxb.d.ts → loadContent-Buvmudee.d.ts} +4 -4
- package/dist/server/{loadPage-p3AWwwrd.d.mts → loadPage-B8mQUUSo.d.mts} +5 -46
- package/dist/server/loadPage-DNQTTRHL.mjs +11 -0
- package/dist/server/{loadPage-BA0HiT-6.d.ts → loadPage-DP3nrHBi.d.ts} +5 -46
- package/dist/server/loadPage-IDGVDFBB.js +11 -0
- package/dist/server/{loadPage-DLC7DJZP.js.map → loadPage-IDGVDFBB.js.map} +1 -1
- package/dist/server/metadata.d.mts +6 -4
- package/dist/server/metadata.d.ts +6 -4
- package/dist/server/navigation.d.mts +199 -29
- package/dist/server/navigation.d.ts +199 -29
- package/dist/server/navigation.js +27 -43
- package/dist/server/navigation.js.map +1 -1
- package/dist/server/navigation.mjs +20 -36
- package/dist/server/navigation.mjs.map +1 -1
- package/dist/server/rendering/server.d.mts +8 -6
- package/dist/server/rendering/server.d.ts +8 -6
- package/dist/server/rendering/server.js +7 -6
- package/dist/server/rendering/server.js.map +1 -1
- package/dist/server/rendering/server.mjs +6 -5
- package/dist/server/rendering.d.mts +14 -10
- package/dist/server/rendering.d.ts +14 -10
- package/dist/server/rendering.js +9 -8
- package/dist/server/rendering.js.map +1 -1
- package/dist/server/rendering.mjs +8 -7
- package/dist/server/richTextSchema-DURiozvD.d.mts +62 -0
- package/dist/server/richTextSchema-DURiozvD.d.ts +62 -0
- package/dist/server/routing.d.mts +178 -11
- package/dist/server/routing.d.ts +178 -11
- package/dist/server/routing.js +95 -2
- package/dist/server/routing.js.map +1 -1
- package/dist/server/routing.mjs +94 -1
- package/dist/server/routing.mjs.map +1 -1
- package/dist/server/{schema-Bpy9N5ZI.d.mts → schema-Z6-afHJG.d.mts} +1 -1
- package/dist/server/{schema-Bpy9N5ZI.d.ts → schema-Z6-afHJG.d.ts} +1 -1
- package/dist/server/server.d.mts +9 -7
- package/dist/server/server.d.ts +9 -7
- package/dist/server/server.js +6 -6
- package/dist/server/server.mjs +5 -5
- package/dist/server/theme-bridge.js +8 -8
- package/dist/server/theme-bridge.mjs +2 -2
- package/dist/server/{types-Dj8B3QRb.d.ts → types-1cLz0vnq.d.mts} +55 -2
- package/dist/server/{types-txWsSxN7.d.mts → types-BjgZt8xJ.d.mts} +63 -2
- package/dist/server/{types-CdhKJrB0.d.mts → types-BvcJU7zk.d.ts} +55 -2
- package/dist/server/{types-BWQ-TohG.d.ts → types-CVykEqXN.d.ts} +289 -83
- package/dist/server/{types-CL916r6x.d.ts → types-DLBhEPSt.d.ts} +63 -2
- package/dist/server/{types-BLf-hE50.d.mts → types-Dsu9wsUh.d.mts} +289 -83
- package/dist/server/{validation-DzvDwwRo.d.mts → validation-BGuRo8P1.d.mts} +18 -5
- package/dist/server/{validation-CoU8uAiu.d.ts → validation-DU2YE7u5.d.ts} +18 -5
- package/package.json +5 -1
- package/dist/server/chunk-6JBKKV3G.js.map +0 -1
- package/dist/server/chunk-7DS4Q3GA.mjs.map +0 -1
- package/dist/server/chunk-EGTDJ4PL.js.map +0 -1
- package/dist/server/chunk-HOY77YBF.js.map +0 -1
- package/dist/server/chunk-I6K5REFT.mjs.map +0 -1
- package/dist/server/chunk-LCYGQDAB.mjs +0 -835
- package/dist/server/chunk-LCYGQDAB.mjs.map +0 -1
- package/dist/server/chunk-N3PX76AP.mjs.map +0 -1
- package/dist/server/chunk-R5B6IOFQ.js.map +0 -1
- package/dist/server/chunk-TNYU5EIO.js +0 -835
- package/dist/server/chunk-TNYU5EIO.js.map +0 -1
- package/dist/server/chunk-U2NI3TS3.mjs.map +0 -1
- package/dist/server/chunk-USQF2XTU.mjs.map +0 -1
- package/dist/server/chunk-VHDDXCK6.js.map +0 -1
- package/dist/server/loadPage-DLC7DJZP.js +0 -11
- package/dist/server/loadPage-GEGN4UAL.mjs +0 -11
- /package/dist/server/{chunk-ES6QDZUX.mjs.map → chunk-C6FIJC7T.mjs.map} +0 -0
- /package/dist/server/{chunk-24F6FTCI.mjs.map → chunk-OSF34JTQ.mjs.map} +0 -0
- /package/dist/server/{chunk-OP2GHK27.mjs.map → chunk-Z5ZA6Q4D.mjs.map} +0 -0
- /package/dist/server/{loadPage-GEGN4UAL.mjs.map → loadPage-DNQTTRHL.mjs.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/chunk-VSFQRHYZ.js","../../src/rendering/components/Page.tsx","../../src/rendering/components/Layout.tsx"],"names":[],"mappings":"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","file":"/Users/will/Projects/Business/cms/builder/packages/sdk/dist/server/chunk-VSFQRHYZ.js","sourcesContent":[null,"/**\n * Pure Page renderer component for Riverbank CMS.\n *\n * This component expects all data to be provided via props.\n * For data fetching, use:\n * - Server-side: `await loadPage({ client, siteId, path })`\n * - Client-side: `usePage({ client, siteId, path })`\n */\n\nimport { PageRenderer, buildThemeRuntime } from '@riverbankcms/blocks';\nimport type { PageOutline, RouteMap, Theme, ThemeTokens, BlockOverrides, OccurrenceContextData } from '@riverbankcms/blocks';\nimport type { ResolvedBlockData } from '../../data';\nimport type { RuntimeSdkConfig } from '../helpers/loadPage';\n\n// Re-export OccurrenceContextData for SDK consumers\nexport type { OccurrenceContextData };\n\nexport type PageProps = {\n // Required data (must be provided by caller)\n page: PageOutline;\n theme: Theme;\n siteId: string;\n\n // Optional data\n themeTokens?: ThemeTokens; // If not provided, will be built from theme\n resolvedData?: ResolvedBlockData; // Pre-fetched block data\n routeMap?: RouteMap;\n /**\n * SDK site configuration containing theme palette overrides.\n * When provided, the SDK palette tokens are merged into the theme tokens,\n * allowing blocks to use SDK-defined color tokens for section backgrounds.\n */\n sdkConfig?: RuntimeSdkConfig | null;\n /**\n * Supabase storage URL for direct image access.\n * SDK sites receive this from the API instead of requiring NEXT_PUBLIC_SUPABASE_URL env var.\n */\n supabaseUrl?: string;\n\n /**\n * Additional context data for content entry pages.\n * Used to pass occurrence context and content entry data to blocks.\n */\n dataContext?: {\n /** Occurrence context for event pages (from URL like /events/yoga/2025-01-15) */\n occurrenceContext?: OccurrenceContextData | null;\n /** Content entry data for template pages */\n contentEntry?: Record<string, unknown> | null;\n };\n\n // Customization\n wrapBlock?: (blockId: string, rendered: React.ReactNode) => React.ReactNode;\n registry?: Parameters<typeof PageRenderer>[0]['registry'];\n usePlaceholders?: boolean;\n /**\n * Custom components to override default block rendering.\n * Keys can be full block kind (\"block.hero\") or short form (\"hero\").\n *\n * This is SSR-safe - no context or hooks required.\n *\n * @example\n * ```tsx\n * <Page\n * {...pageData}\n * blockOverrides={{\n * 'hero': MyCustomHero,\n * 'block.testimonials': MyCustomTestimonials,\n * }}\n * />\n * ```\n */\n blockOverrides?: BlockOverrides;\n};\n\n/**\n * Pure renderer for Riverbank CMS pages.\n *\n * This component expects all data to be provided via props.\n * For data fetching, use:\n * - Server-side: `await loadPage({ client, siteId, path })`\n * - Client-side: `usePage({ client, siteId, path })`\n *\n * @example Server-side (Next.js App Router)\n * ```tsx\n * import { createRiverbankClient } from '@riverbankcms/sdk';\n * import { loadPage, Page } from '@riverbankcms/sdk/rendering';\n *\n * const client = createRiverbankClient({ apiKey, baseUrl });\n *\n * export default async function PageRoute({ params }) {\n * const pageData = await loadPage({\n * client,\n * siteId: 'site-id',\n * path: `/${params.slug}`,\n * });\n *\n * return <Page {...pageData} />;\n * }\n * ```\n *\n * @example Client-side\n * ```tsx\n * import { createRiverbankClient } from '@riverbankcms/sdk';\n * import { usePage, Page } from '@riverbankcms/sdk/rendering';\n *\n * const client = createRiverbankClient({ apiKey, baseUrl });\n *\n * function MyPage({ path }) {\n * const pageData = usePage({ client, siteId: 'site-id', path });\n *\n * if (pageData.loading) return <LoadingState />;\n * if (pageData.error) return <ErrorState error={pageData.error} />;\n * if (!pageData.page) return <NotFound />;\n *\n * return <Page {...pageData} />;\n * }\n * ```\n */\nexport function Page({\n page,\n theme,\n themeTokens: providedTokens,\n siteId,\n resolvedData,\n routeMap,\n wrapBlock,\n registry,\n usePlaceholders = false,\n blockOverrides,\n sdkConfig,\n supabaseUrl,\n dataContext,\n}: PageProps) {\n // Build theme tokens if not provided\n const baseTokens = providedTokens ?? buildThemeRuntime(theme).tokens;\n\n // Merge SDK palette tokens into theme tokens\n // This allows blocks to resolve SDK-defined color tokens (e.g., 'primary' -> '#6d28d9')\n const themeTokens = sdkConfig?.theme?.palette\n ? { ...baseTokens, palette: { ...baseTokens.palette, ...sdkConfig.theme.palette } }\n : baseTokens;\n\n return (\n <PageRenderer\n theme={theme}\n page={page}\n themeTokens={themeTokens}\n usePlaceholders={usePlaceholders}\n dataContext={{\n siteId,\n resolvedData,\n routes: routeMap,\n occurrenceContext: dataContext?.occurrenceContext ?? null,\n contentEntry: dataContext?.contentEntry ?? null,\n supabaseUrl,\n }}\n routeMap={routeMap}\n wrapBlock={wrapBlock}\n registry={registry}\n blockOverrides={blockOverrides}\n sdkConfig={sdkConfig}\n />\n );\n}\n","/**\n * Layout component with header and footer\n *\n * Renders site header and footer around content. Fetches site data if not provided.\n */\n\nimport { renderBlock, siteFooterManifest, siteHeaderManifest, buildThemeRuntime } from '@riverbankcms/blocks';\nimport { buildSimpleMenu, buildSimpleLogo } from '../../navigation';\nimport type { RiverbankClient, SiteResponse } from '../../client/types';\n\nexport type HeaderData = {\n menu: ReturnType<typeof buildSimpleMenu>;\n logo: ReturnType<typeof buildSimpleLogo>;\n site: SiteResponse['site'];\n theme: SiteResponse['theme'];\n routes: SiteResponse['routes'];\n};\n\nexport type LayoutProps = {\n // Option 1: Pass pre-fetched site data\n siteData?: SiteResponse;\n\n // Option 2: Fetch site data (provide client + identifier)\n client?: RiverbankClient;\n siteId?: string;\n slug?: string;\n domain?: string;\n\n // Content\n children: React.ReactNode;\n\n // Control rendering\n header?: boolean | ((data: HeaderData) => React.ReactNode);\n footer?: boolean;\n\n // Header variant override (if using default header)\n headerVariant?: 'classic' | 'centered' | 'transparent' | 'floating' | 'editorial';\n};\n\n/**\n * Layout component that wraps content with site header and footer.\n *\n * @example With pre-fetched site data (recommended)\n * ```tsx\n * const site = await client.getSite({ slug: 'my-site' });\n *\n * <Layout siteData={site}>\n * <Page {...pageData} />\n * </Layout>\n * ```\n *\n * @example With automatic fetching\n * ```tsx\n * <Layout client={client} slug=\"my-site\">\n * <Page {...pageData} />\n * </Layout>\n * ```\n */\nexport async function Layout({\n siteData: providedSiteData,\n client,\n siteId,\n slug,\n domain,\n children,\n header = true,\n footer = true,\n headerVariant,\n}: LayoutProps) {\n // Fetch site data if not provided\n let siteData = providedSiteData;\n if (!siteData) {\n if (!client) {\n throw new Error('Layout: must provide either siteData or client');\n }\n if (!siteId && !slug && !domain) {\n throw new Error('Layout: must provide siteId, slug, or domain when using client');\n }\n\n siteData = await client.getSite({ id: siteId, slug, domain });\n }\n\n const { site, theme, navigation, layout, routes } = siteData;\n const themeRuntime = buildThemeRuntime(theme);\n\n // Build view models for header/footer\n const menuViewModel = buildSimpleMenu(navigation, routes);\n const logoViewModel = buildSimpleLogo(layout.logo ?? null, site.title);\n\n // Prepare header data for custom headers\n const headerData: HeaderData = {\n menu: menuViewModel,\n logo: logoViewModel,\n site,\n theme,\n routes,\n };\n\n // Override header variant if specified\n const headerContent = headerVariant\n ? { ...layout.header, variant: headerVariant }\n : layout.header;\n\n // Override theme header variant if specified\n const themeWithVariant = headerVariant\n ? {\n ...theme,\n header: { ...theme.header, variant: headerVariant },\n }\n : theme;\n\n const viewModelOverrides = {\n $root: {\n siteId: site.id,\n routes,\n theme: themeWithVariant,\n },\n site,\n menu: menuViewModel,\n content: {\n logo: logoViewModel,\n },\n };\n\n // Render header based on type\n let headerElement: React.ReactNode = null;\n if (header === true) {\n // Default header rendering\n headerElement = renderBlock(siteHeaderManifest, headerContent, {\n theme: themeRuntime.tokens,\n themeConfig: themeWithVariant,\n viewModelOverrides,\n });\n } else if (typeof header === 'function') {\n // Custom header rendering\n headerElement = header(headerData);\n }\n\n return (\n <>\n {headerElement}\n\n {children}\n\n {footer && renderBlock(siteFooterManifest, layout.footer, {\n theme: themeRuntime.tokens,\n themeConfig: theme,\n viewModelOverrides,\n })}\n </>\n );\n}\n"]}
|
|
@@ -599,7 +599,7 @@ function parseToken(source) {
|
|
|
599
599
|
if (source.includes("/")) {
|
|
600
600
|
const [token, opacity] = source.split("/");
|
|
601
601
|
const alpha = Number(opacity) / 100;
|
|
602
|
-
if (!Number.isNaN(alpha)) {
|
|
602
|
+
if (!Number.isNaN(alpha) && token) {
|
|
603
603
|
return { token, alpha };
|
|
604
604
|
}
|
|
605
605
|
return { token: source };
|
|
@@ -639,7 +639,8 @@ function headingGroup(opts) {
|
|
|
639
639
|
containerClass = "text-center",
|
|
640
640
|
className,
|
|
641
641
|
eyebrowClass = "heading-eyebrow text-sm font-semibold tracking-wide",
|
|
642
|
-
|
|
642
|
+
// h2 now gets size/weight from theme typography CSS
|
|
643
|
+
titleClass = "heading-title",
|
|
643
644
|
eyebrowStyle = textColorStyle("neutral-500"),
|
|
644
645
|
titleStyle = textColorStyle("neutral-900")
|
|
645
646
|
} = opts;
|
|
@@ -1220,6 +1221,8 @@ var bodyCopyFragment = defineFragment({
|
|
|
1220
1221
|
text(
|
|
1221
1222
|
{
|
|
1222
1223
|
as: "h2",
|
|
1224
|
+
// h2 now gets size/weight from theme typography CSS
|
|
1225
|
+
// Only dynamic class here is for text alignment
|
|
1223
1226
|
className: {
|
|
1224
1227
|
$bind: {
|
|
1225
1228
|
from: "content.alignment",
|
|
@@ -1227,11 +1230,11 @@ var bodyCopyFragment = defineFragment({
|
|
|
1227
1230
|
{
|
|
1228
1231
|
id: "ui.headingClassFromAlignment",
|
|
1229
1232
|
options: {
|
|
1230
|
-
base: "
|
|
1233
|
+
base: ""
|
|
1231
1234
|
}
|
|
1232
1235
|
}
|
|
1233
1236
|
],
|
|
1234
|
-
fallback: "
|
|
1237
|
+
fallback: ""
|
|
1235
1238
|
}
|
|
1236
1239
|
},
|
|
1237
1240
|
style: textColorStyle("neutral-900")
|
|
@@ -1304,7 +1307,9 @@ var heroCopyFragment = defineFragment({
|
|
|
1304
1307
|
text(
|
|
1305
1308
|
{
|
|
1306
1309
|
as: "h1",
|
|
1307
|
-
|
|
1310
|
+
// heading-display: uses fluid typography from theme (--fs-h1-display-fluid)
|
|
1311
|
+
// Removes hardcoded text-4xl/5xl/6xl - size now controlled by theme
|
|
1312
|
+
className: "hero-headline heading-display",
|
|
1308
1313
|
style: textColorStyle("neutral-900")
|
|
1309
1314
|
},
|
|
1310
1315
|
bind("content.headline")
|
|
@@ -1483,7 +1488,8 @@ var testimonialsHeadingFragment = defineFragment({
|
|
|
1483
1488
|
{ gap: "md", className: "mx-auto max-w-2xl text-center" },
|
|
1484
1489
|
[
|
|
1485
1490
|
text(
|
|
1486
|
-
|
|
1491
|
+
// h2 now gets size/weight from theme typography CSS
|
|
1492
|
+
{ as: "h2", style: textColorStyle("neutral-900") },
|
|
1487
1493
|
when("content.heading"),
|
|
1488
1494
|
bind("content.heading")
|
|
1489
1495
|
),
|
|
@@ -1855,7 +1861,7 @@ var blogFeaturedPostFragment = defineFragment({
|
|
|
1855
1861
|
text(
|
|
1856
1862
|
{
|
|
1857
1863
|
as: "h2",
|
|
1858
|
-
|
|
1864
|
+
// h2 now gets size/weight from theme typography CSS
|
|
1859
1865
|
style: textColorStyle("neutral-900")
|
|
1860
1866
|
},
|
|
1861
1867
|
bind("title", { fallback: "Latest post" })
|
|
@@ -2252,7 +2258,8 @@ var faqHeadingFragment = defineFragment({
|
|
|
2252
2258
|
text(
|
|
2253
2259
|
{
|
|
2254
2260
|
as: "h2",
|
|
2255
|
-
|
|
2261
|
+
// h2 now gets size/weight from theme typography CSS
|
|
2262
|
+
className: "faq-title",
|
|
2256
2263
|
style: textColorStyle("neutral-900")
|
|
2257
2264
|
},
|
|
2258
2265
|
when("content.title"),
|
|
@@ -4151,7 +4158,11 @@ var simpleFooterLayout = stack(
|
|
|
4151
4158
|
}
|
|
4152
4159
|
},
|
|
4153
4160
|
[
|
|
4154
|
-
navRow({
|
|
4161
|
+
navRow({
|
|
4162
|
+
align: "center",
|
|
4163
|
+
className: "flex flex-wrap justify-center gap-x-6 gap-y-3",
|
|
4164
|
+
linkClassName: "footer-nav-link inline-flex items-center px-4 py-2 text-sm font-medium transition-theme-standard"
|
|
4165
|
+
}),
|
|
4155
4166
|
...bottomTextLayout()
|
|
4156
4167
|
],
|
|
4157
4168
|
when("$root.theme.footer.variant", { equals: "simple" })
|
|
@@ -4179,7 +4190,11 @@ var columnsFooterLayout = stack(
|
|
|
4179
4190
|
{ className: "flex w-full flex-wrap items-center justify-between gap-4" },
|
|
4180
4191
|
[
|
|
4181
4192
|
text({ as: "span", className: "text-sm font-semibold", style: textColorStyle("text") }, bind("site.title", { fallback: "Your Site" })),
|
|
4182
|
-
navRow({
|
|
4193
|
+
navRow({
|
|
4194
|
+
className: "flex flex-wrap justify-end gap-x-6 gap-y-3",
|
|
4195
|
+
align: "end",
|
|
4196
|
+
linkClassName: "footer-nav-link inline-flex items-center px-4 py-2 text-sm font-medium transition-theme-standard"
|
|
4197
|
+
})
|
|
4183
4198
|
]
|
|
4184
4199
|
),
|
|
4185
4200
|
...bottomTextLayout()
|
|
@@ -5458,4 +5473,4 @@ function getBlockDefinition(name) {
|
|
|
5458
5473
|
|
|
5459
5474
|
|
|
5460
5475
|
exports.bindingSchema = bindingSchema; exports.fieldSchema = fieldSchema; exports.blockCategoryEnum = blockCategoryEnum; exports.backgroundColorStyle = backgroundColorStyle; exports.textColorStyle = textColorStyle; exports.borderColorStyle = borderColorStyle; exports.mergeStyles = mergeStyles; exports.headingGroup = headingGroup; exports.isSemanticSpacing = isSemanticSpacing; exports.resolveSpacing = resolveSpacing; exports.ctaButton = ctaButton; exports.defineFragment = defineFragment; exports.bodyCopyFragment = bodyCopyFragment; exports.heroCopyFragment = heroCopyFragment; exports.createButtonGroup = createButtonGroup; exports.ctaRowFragment = ctaRowFragment; exports.ctaCopyFragment = ctaCopyFragment; exports.testimonialsHeadingFragment = testimonialsHeadingFragment; exports.testimonialsCarouselFragment = testimonialsCarouselFragment; exports.formCopyFragment = formCopyFragment; exports.formEmbedFragment = formEmbedFragment; exports.footerBottomTextFragment = footerBottomTextFragment; exports.footerLinkGroupsFragment = footerLinkGroupsFragment; exports.blogFeaturedPostFragment = blogFeaturedPostFragment; exports.blogListGridFragment = blogListGridFragment; exports.blogListStackFragment = blogListStackFragment; exports.faqHeadingFragment = faqHeadingFragment; exports.faqAccordionFragment = faqAccordionFragment; exports.cardFragment = cardFragment; exports.headingFragment = headingFragment; exports.richTextFragment = richTextFragment; exports.BACKGROUND_POSITION_PRESET_VALUES = BACKGROUND_POSITION_PRESET_VALUES; exports.getAnchorClasses = getAnchorClasses; exports.formattingTransforms = formattingTransforms; exports.uiTransforms = uiTransforms; exports.hexToRgb = hexToRgb; exports.oklchToHexGamut = oklchToHexGamut; exports.featuresFromHex = featuresFromHex; exports.layoutTransforms = layoutTransforms; exports.mediaTransforms = mediaTransforms; exports.siteHeaderManifest = siteHeaderManifest; exports.siteFooterManifest = siteFooterManifest; exports.getBlockDefinition = getBlockDefinition;
|
|
5461
|
-
//# sourceMappingURL=chunk-
|
|
5476
|
+
//# sourceMappingURL=chunk-YYO3RIFO.js.map
|