@riverbankcms/sdk 0.72.0 → 0.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +1 -1
  2. package/dist/{PreviewEditorSidebar-44T64SAR.mjs → PreviewEditorSidebar-5XL7M3OM.mjs} +2 -2
  3. package/dist/{PreviewEditorUI-4WKHZTXW.mjs → PreviewEditorUI-ZDFRDJID.mjs} +2 -2
  4. package/dist/SdkPreviewModeRuntime-CRYNDSPL.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +10 -10
  6. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +6 -6
  7. package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +15 -1
  8. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +11 -0
  9. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +13 -0
  10. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +6 -0
  11. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -2
  12. package/dist/_dts/sdk/src/rendering/islands/enhancers/accordion.d.ts +1 -0
  13. package/dist/_dts/sdk/src/rendering/islands/enhancers/bookingForm.d.ts +1 -0
  14. package/dist/_dts/sdk/src/rendering/islands/enhancers/carousel.d.ts +1 -0
  15. package/dist/_dts/sdk/src/rendering/islands/enhancers/cart.d.ts +1 -0
  16. package/dist/_dts/sdk/src/rendering/islands/enhancers/checkout.d.ts +1 -0
  17. package/dist/_dts/sdk/src/rendering/islands/enhancers/courseRegistration.d.ts +1 -0
  18. package/dist/_dts/sdk/src/rendering/islands/enhancers/eventCalendar.d.ts +1 -0
  19. package/dist/_dts/sdk/src/rendering/islands/enhancers/eventCombined.d.ts +1 -0
  20. package/dist/_dts/sdk/src/rendering/islands/enhancers/eventDetails.d.ts +1 -0
  21. package/dist/_dts/sdk/src/rendering/islands/enhancers/eventListing.d.ts +1 -0
  22. package/dist/_dts/sdk/src/rendering/islands/enhancers/eventRegistration.d.ts +1 -0
  23. package/dist/_dts/sdk/src/rendering/islands/enhancers/form.d.ts +1 -0
  24. package/dist/_dts/sdk/src/rendering/islands/enhancers/headerSection.d.ts +1 -0
  25. package/dist/_dts/sdk/src/rendering/islands/enhancers/locationMap.d.ts +1 -0
  26. package/dist/_dts/sdk/src/rendering/islands/enhancers/newsletterForm.d.ts +1 -0
  27. package/dist/_dts/sdk/src/rendering/islands/enhancers/productDetail.d.ts +1 -0
  28. package/dist/_dts/sdk/src/rendering/islands/enhancers/productList.d.ts +1 -0
  29. package/dist/_dts/sdk/src/rendering/islands/enhancers/shop.d.ts +1 -0
  30. package/dist/_dts/sdk/src/rendering/islands/hydrateBlocksIslands.d.ts +2 -2
  31. package/dist/_dts/sdk/src/rendering/islands/propsDecoder.d.ts +7 -0
  32. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +9 -0
  33. package/dist/_dts/sdk/src/version.d.ts +1 -1
  34. package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
  35. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +7 -7
  36. package/dist/_dts/theme-core/src/buttons/types.d.ts +20 -20
  37. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  38. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  39. package/dist/_dts/theme-core/src/header/navDropdownSizing.d.ts +7 -0
  40. package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
  41. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  42. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +156 -156
  43. package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
  44. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +4 -4
  45. package/dist/_dts/theme-core/src/schema.d.ts +178 -178
  46. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +2 -2
  47. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +8 -8
  48. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +5 -5
  49. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
  50. package/dist/{chunk-3YNCQG5N.mjs → chunk-2MIWNFJM.mjs} +149 -15
  51. package/dist/{chunk-KWQPAJYS.mjs → chunk-CBD47MTM.mjs} +1 -1
  52. package/dist/{chunk-HV745JYE.mjs → chunk-CEQBBLMJ.mjs} +1 -1
  53. package/dist/{chunk-G4NLITC2.mjs → chunk-YY7K3QD2.mjs} +5 -5
  54. package/dist/cli/index.mjs +233 -203
  55. package/dist/client/accordion-ZZVXWV3N.mjs +120 -0
  56. package/dist/client/altcha-LIGLPZS5.mjs +2755 -0
  57. package/dist/client/bookingForm-4X77HKDS.mjs +34 -0
  58. package/dist/client/bookings.mjs +13 -0
  59. package/dist/client/carousel-25WK2H7G.mjs +46 -0
  60. package/dist/client/cart-JWD2VRFU.mjs +11 -0
  61. package/dist/client/checkout-V7KYGWL7.mjs +11 -0
  62. package/dist/client/chunk-5IYGMTUE.mjs +18614 -0
  63. package/dist/client/chunk-6VGXRE34.mjs +7617 -0
  64. package/dist/client/chunk-N7PBWBWQ.mjs +26 -0
  65. package/dist/client/chunk-PMAIXMAB.mjs +1960 -0
  66. package/dist/client/chunk-RKCFVIMS.mjs +26 -0
  67. package/dist/client/client.mjs +621 -379
  68. package/dist/client/courseRegistration-O6ZPK4YT.mjs +29 -0
  69. package/dist/client/eventCalendar-X6GIPYFM.mjs +29 -0
  70. package/dist/client/eventCombined-EZUOPM3G.mjs +26 -0
  71. package/dist/client/eventDetails-3WODIXET.mjs +14 -0
  72. package/dist/client/eventListing-HEFGAETC.mjs +29 -0
  73. package/dist/client/eventRegistration-3LCP2V3P.mjs +29 -0
  74. package/dist/client/form-AKXQMY6Z.mjs +85 -0
  75. package/dist/client/headerSection-5KHCMU6B.mjs +12 -0
  76. package/dist/client/hooks.mjs +42 -9
  77. package/dist/client/locationMap-7HIADW76.mjs +14 -0
  78. package/dist/client/newsletterForm-5N4YTMU3.mjs +60 -0
  79. package/dist/client/productDetail-IZUA7ZP3.mjs +11 -0
  80. package/dist/client/productList-KWIIJE6I.mjs +11 -0
  81. package/dist/client/rendering/client.mjs +1655 -6472
  82. package/dist/client/rendering/islands.mjs +40 -44031
  83. package/dist/client/rendering.mjs +2909 -2663
  84. package/dist/client/shop-XZQFRQWZ.mjs +13 -0
  85. package/dist/preview-next/client/runtime.mjs +3 -3
  86. package/dist/{sdk-runtime-NGDWSWOS.mjs → sdk-runtime-OHNONZ5U.mjs} +4 -4
  87. package/dist/server/components.mjs +64 -11
  88. package/dist/server/config-validation.mjs +42 -9
  89. package/dist/server/config.mjs +42 -9
  90. package/dist/server/data.mjs +42 -9
  91. package/dist/server/index.mjs +1 -1
  92. package/dist/server/next.mjs +65 -12
  93. package/dist/server/page-converter.mjs +29 -9
  94. package/dist/server/prebuild.mjs +1 -1
  95. package/dist/server/rendering/server.mjs +64 -11
  96. package/dist/server/rendering.mjs +64 -11
  97. package/dist/server/routing.mjs +50 -10
  98. package/dist/server/server.mjs +43 -10
  99. package/dist/server/theme-bridge.mjs +24 -0
  100. package/dist/styles/index.css +11 -0
  101. package/package.json +1 -1
  102. package/dist/SdkPreviewModeRuntime-FO6V7YVY.mjs +0 -8
package/README.md CHANGED
@@ -850,7 +850,7 @@ If you intentionally render hydratable CMS islands through the strict server sur
850
850
 
851
851
  ```tsx
852
852
  import { Layout } from '@riverbankcms/sdk/rendering/server';
853
- import { BlocksIslandsHydrator } from '@riverbankcms/sdk/rendering/client';
853
+ import { BlocksIslandsHydrator } from '@riverbankcms/sdk/rendering/islands';
854
854
 
855
855
  export default async function MyPage() {
856
856
  const siteData = await client.getSite({ slug: 'my-site' });
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSidebarChromeModel, resolvePreviewEditorGuidanceModel, canInspectSiteStyle, usePreviewThemeOverlay, resolveStyleConfiguratorInitialSnapshot, createStyleConfiguratorState, createOptimisticActionRunner, syncStyleConfiguratorState, isPreviewingChange, openRow, previewSiteStyle, applyResolvedSelections, previewButtonPersonality, planSiteChromeLookSelection, previewHeaderLook, previewFooterLook, previewPaletteVariant, setPaletteOverrides, toggleRow, cancelPreview, dismissWarnings, dismissNotices, markApplyFailed, markApplySaved, markApplySaving, canApplySiteStyle, buildSiteChromeLookModels, cycleSiteChromeLookId, cycleableSiteChromeOptions } from './chunk-HV745JYE.mjs';
3
- import { KeyboardCode, getBlockDefinition, CSS, useSdkConfig, listBlockDescriptors, useSensor, PointerSensor, useSensors, deleteBlock, createEditorRemoveBlockCommand, asEditorBlockId, DndContext, closestCenter, Button, Plus, useDroppable, useDraggable, useCombinedRefs, isKeyboardEvent, transformSdkBlockToManifest, Card, cn, Collapsible, CollapsibleContent, listContentTypes, createBlock, createEditorReorderBlocksCommand, reorderBlocks, mutateBlockContent, useDndContext, useUniqueId, useIsomorphicLayoutEffect, EmptyState, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Search, getClientRect, resolveBlockTitle, CardHeader, GripVertical, ChevronRight, CardTitle, ArrowUp, ArrowDown, Copy, Trash2, DialogFooter, DialogClose, CardContent, transformSdkBlockToDefinition, createEditorInsertBlockCommand, LoaderCircle, ChevronDown, createManifestFormAdapter, getModalConfig, createStoreBackend, validateBlockManifestIssues, isNonEmptyValue, Settings, ScrollableDialogContent, FormRenderer, Tabs, TabsList, TabsTrigger, TabsContent, normalEditorCuratedPromotedFieldPaths, resolveVisiblePromotedFieldPathsForEditorBlock, Callout, CalloutTitle, unfinishedBlockCopy, CalloutDescription, recoveryConflictCopy, ManifestForm, asEditorBlockValues, Box, mergeManifestWithSdkOptions, augmentManifestWithStyleGroups, lucide_react_exports, isThemeV2NormalEditorRawStylePath, getFieldIntent, isHeaderField, isThemeV2NormalEditorRawStyleFieldName, unwrapResponse, useEntryController, useEditorUiStoreInstance, useUISelector, resolvePreviewSidebarTab, BackgroundGradientField, BackgroundColorField, X, omitRouteTitleFieldFromManifest, getRouteMetadataManifestForType, createManifestValidation, previewAssistantEnabled, useField, FieldFrame, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, isCtaIconName, Combobox, CTA_ICON_OPTIONS, getCtaIconComponent, useBackendWatch, useAsyncPickerOptions, shouldShowPickerSearch, normalizePickerSearchThreshold, Badge, resolvePickerSelectionLabel, useMediaEditorOptional, useRichTextEditor, RichTextEditorSurface, ThemeScope, useBlockContext, resolveMediaSlotContract, asRecord, parseAspectRatioValue, MediaEditor, PUBLIC_FILE_FIELD_KINDS, CollapsibleTrigger, ContentFieldsForm, getCuratedSiteStyle, compileSiteThemeFromSelections, paletteOverridesSchema, findButtonPersonality, findPaletteVariant, findHeaderLook, findFooterLook, headerLookCatalog, footerLookCatalog, isObjectRecord, EMPTY_DOC, getRichTextImagePositionFromTarget, insertOrReplaceRichTextImage, Pencil, foldSubroute, SUBROUTE_KINDS, Smartphone, Tablet, Monitor, Maximize2, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem, asSiteId, buildThemeRuntime, PaletteProvider, MediaEditorProvider, curatedSiteStyles, ChevronLeft, requireEntriesForCuratedChoices, buttonPersonalities, paletteVariants, resolveImageUrlWithContext, Root2, List, Trigger, Content, Input, Check, Label, isInternalResolvedLinkValue, Separator, toRoutableLinkPayload, useMediaEditor, MediaPickerMini, MediaPickerDialog, Surface, ColorPicker, getDirectImageUrlForMediaAsset, isSvgMimeType } from './chunk-3YNCQG5N.mjs';
2
+ import { resolvePreviewDashboardSetupHandoff, buildPreviewDashboardSetupUrl, resolvePreviewSidebarChromeModel, resolvePreviewEditorGuidanceModel, canInspectSiteStyle, usePreviewThemeOverlay, resolveStyleConfiguratorInitialSnapshot, createStyleConfiguratorState, createOptimisticActionRunner, syncStyleConfiguratorState, isPreviewingChange, openRow, previewSiteStyle, applyResolvedSelections, previewButtonPersonality, planSiteChromeLookSelection, previewHeaderLook, previewFooterLook, previewPaletteVariant, setPaletteOverrides, toggleRow, cancelPreview, dismissWarnings, dismissNotices, markApplyFailed, markApplySaved, markApplySaving, canApplySiteStyle, buildSiteChromeLookModels, cycleSiteChromeLookId, cycleableSiteChromeOptions } from './chunk-CEQBBLMJ.mjs';
3
+ import { KeyboardCode, getBlockDefinition, CSS, useSdkConfig, listBlockDescriptors, useSensor, PointerSensor, useSensors, deleteBlock, createEditorRemoveBlockCommand, asEditorBlockId, DndContext, closestCenter, Button, Plus, useDroppable, useDraggable, useCombinedRefs, isKeyboardEvent, transformSdkBlockToManifest, Card, cn, Collapsible, CollapsibleContent, listContentTypes, createBlock, createEditorReorderBlocksCommand, reorderBlocks, mutateBlockContent, useDndContext, useUniqueId, useIsomorphicLayoutEffect, EmptyState, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Search, getClientRect, resolveBlockTitle, CardHeader, GripVertical, ChevronRight, CardTitle, ArrowUp, ArrowDown, Copy, Trash2, DialogFooter, DialogClose, CardContent, transformSdkBlockToDefinition, createEditorInsertBlockCommand, LoaderCircle, ChevronDown, createManifestFormAdapter, getModalConfig, createStoreBackend, validateBlockManifestIssues, isNonEmptyValue, Settings, ScrollableDialogContent, FormRenderer, Tabs, TabsList, TabsTrigger, TabsContent, normalEditorCuratedPromotedFieldPaths, resolveVisiblePromotedFieldPathsForEditorBlock, Callout, CalloutTitle, unfinishedBlockCopy, CalloutDescription, recoveryConflictCopy, ManifestForm, asEditorBlockValues, Box, mergeManifestWithSdkOptions, augmentManifestWithStyleGroups, lucide_react_exports, isThemeV2NormalEditorRawStylePath, getFieldIntent, isHeaderField, isThemeV2NormalEditorRawStyleFieldName, unwrapResponse, useEntryController, useEditorUiStoreInstance, useUISelector, resolvePreviewSidebarTab, BackgroundGradientField, BackgroundColorField, X, omitRouteTitleFieldFromManifest, getRouteMetadataManifestForType, createManifestValidation, previewAssistantEnabled, useField, FieldFrame, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, isCtaIconName, Combobox, CTA_ICON_OPTIONS, getCtaIconComponent, useBackendWatch, useAsyncPickerOptions, shouldShowPickerSearch, normalizePickerSearchThreshold, Badge, resolvePickerSelectionLabel, useMediaEditorOptional, useRichTextEditor, RichTextEditorSurface, ThemeScope, useBlockContext, resolveMediaSlotContract, asRecord, parseAspectRatioValue, MediaEditor, PUBLIC_FILE_FIELD_KINDS, CollapsibleTrigger, ContentFieldsForm, getCuratedSiteStyle, compileSiteThemeFromSelections, paletteOverridesSchema, findButtonPersonality, findPaletteVariant, findHeaderLook, findFooterLook, headerLookCatalog, footerLookCatalog, isObjectRecord, EMPTY_DOC, getRichTextImagePositionFromTarget, insertOrReplaceRichTextImage, Pencil, foldSubroute, SUBROUTE_KINDS, Smartphone, Tablet, Monitor, Maximize2, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuItem, asSiteId, buildThemeRuntime, PaletteProvider, MediaEditorProvider, curatedSiteStyles, ChevronLeft, requireEntriesForCuratedChoices, buttonPersonalities, paletteVariants, resolveImageUrlWithContext, Root2, List, Trigger, Content, Input, Check, Label, isInternalResolvedLinkValue, Separator, toRoutableLinkPayload, useMediaEditor, MediaPickerMini, MediaPickerDialog, Surface, ColorPicker, getDirectImageUrlForMediaAsset, isSvgMimeType } from './chunk-2MIWNFJM.mjs';
4
4
  import { usePreviewAuth, getDashboardUrl } from './chunk-7RX72SK2.mjs';
5
5
  import './chunk-XGB3TDIC.mjs';
6
6
  import React2, { createContext, memo, useMemo, useState, useRef, useEffect, forwardRef, useCallback, useImperativeHandle, useContext, useSyncExternalStore, useLayoutEffect, useTransition, useId } from 'react';
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { resolvePreviewChromeSurface, usePreviewPageDesignEditorState, PREVIEW_CHROME_PORTAL_CLASS_NAME, PREVIEW_CHROME_THEME_CLASS_NAME, applyPreviewChromeSurfaceToElement, setPreviewSidebarTab, PREVIEW_THEME_COOKIE_NAME } from './chunk-KWQPAJYS.mjs';
3
- import { useEntryEditorController, useEditorUiStore, useMultiAutosave, EditorChrome, classifyHistoryShortcut, unwrapResponse, cn, Dialog, Button, Palette, DialogContent, DialogHeader, DialogTitle, DialogDescription, TriangleAlert, useEditorUiStoreInstance, Pencil, previewAssistantEnabled, Sparkles } from './chunk-3YNCQG5N.mjs';
2
+ import { resolvePreviewChromeSurface, usePreviewPageDesignEditorState, PREVIEW_CHROME_PORTAL_CLASS_NAME, PREVIEW_CHROME_THEME_CLASS_NAME, applyPreviewChromeSurfaceToElement, setPreviewSidebarTab, PREVIEW_THEME_COOKIE_NAME } from './chunk-CBD47MTM.mjs';
3
+ import { useEntryEditorController, useEditorUiStore, useMultiAutosave, EditorChrome, classifyHistoryShortcut, unwrapResponse, cn, Dialog, Button, Palette, DialogContent, DialogHeader, DialogTitle, DialogDescription, TriangleAlert, useEditorUiStoreInstance, Pencil, previewAssistantEnabled, Sparkles } from './chunk-2MIWNFJM.mjs';
4
4
  import { usePreviewAuth, getDashboardBaseUrl } from './chunk-7RX72SK2.mjs';
5
5
  import './chunk-XGB3TDIC.mjs';
6
6
  import { useState, useMemo, useEffect, useTransition, useCallback } from 'react';
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ export { SdkPreviewModeRuntime } from './chunk-YY7K3QD2.mjs';
3
+ import './chunk-YRJKZEQ3.mjs';
4
+ import './chunk-CEQBBLMJ.mjs';
5
+ import './chunk-CBD47MTM.mjs';
6
+ import './chunk-2MIWNFJM.mjs';
7
+ import './chunk-7RX72SK2.mjs';
8
+ import './chunk-XGB3TDIC.mjs';
@@ -4894,7 +4894,7 @@ declare const SiteStyleSelectionCommandBodySchema: z.ZodObject<{
4894
4894
  muted: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
4895
4895
  text: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
4896
4896
  border: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
4897
- }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "background" | "surface" | "border" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt" | "muted", import("../../../blocks/src/index").HexColor>>>, {
4897
+ }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "border" | "background" | "muted" | "surface" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt", import("../../../blocks/src/index").HexColor>>>, {
4898
4898
  primary?: import("../../../blocks/src/index").HexColor | undefined;
4899
4899
  primaryForeground?: import("../../../blocks/src/index").HexColor | undefined;
4900
4900
  secondary?: import("../../../blocks/src/index").HexColor | undefined;
@@ -4940,7 +4940,7 @@ export declare const SiteStyleSelectionCommandBackedPreviewSchema: z.ZodObject<{
4940
4940
  muted: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
4941
4941
  text: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
4942
4942
  border: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
4943
- }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "background" | "surface" | "border" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt" | "muted", import("../../../blocks/src/index").HexColor>>>, {
4943
+ }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "border" | "background" | "muted" | "surface" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt", import("../../../blocks/src/index").HexColor>>>, {
4944
4944
  primary?: import("../../../blocks/src/index").HexColor | undefined;
4945
4945
  primaryForeground?: import("../../../blocks/src/index").HexColor | undefined;
4946
4946
  secondary?: import("../../../blocks/src/index").HexColor | undefined;
@@ -4992,7 +4992,7 @@ export declare const ProposeSiteStyleSelectionCommandBackedOutputSchema: z.ZodOb
4992
4992
  muted: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
4993
4993
  text: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
4994
4994
  border: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
4995
- }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "background" | "surface" | "border" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt" | "muted", import("../../../blocks/src/index").HexColor>>>, {
4995
+ }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "border" | "background" | "muted" | "surface" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt", import("../../../blocks/src/index").HexColor>>>, {
4996
4996
  primary?: import("../../../blocks/src/index").HexColor | undefined;
4997
4997
  primaryForeground?: import("../../../blocks/src/index").HexColor | undefined;
4998
4998
  secondary?: import("../../../blocks/src/index").HexColor | undefined;
@@ -5931,7 +5931,7 @@ export declare const ProposeSiteStyleSelectionCommandBackedOutputSchema: z.ZodOb
5931
5931
  muted: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
5932
5932
  text: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
5933
5933
  border: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
5934
- }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "background" | "surface" | "border" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt" | "muted", import("../../../blocks/src/index").HexColor>>>, {
5934
+ }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "border" | "background" | "muted" | "surface" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt", import("../../../blocks/src/index").HexColor>>>, {
5935
5935
  primary?: import("../../../blocks/src/index").HexColor | undefined;
5936
5936
  primaryForeground?: import("../../../blocks/src/index").HexColor | undefined;
5937
5937
  secondary?: import("../../../blocks/src/index").HexColor | undefined;
@@ -5997,7 +5997,7 @@ export declare const ProposeSiteStyleSelectionOutputSchema: z.ZodUnion<readonly
5997
5997
  muted: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
5998
5998
  text: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
5999
5999
  border: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
6000
- }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "background" | "surface" | "border" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt" | "muted", import("../../../blocks/src/index").HexColor>>>, {
6000
+ }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "border" | "background" | "muted" | "surface" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt", import("../../../blocks/src/index").HexColor>>>, {
6001
6001
  primary?: import("../../../blocks/src/index").HexColor | undefined;
6002
6002
  primaryForeground?: import("../../../blocks/src/index").HexColor | undefined;
6003
6003
  secondary?: import("../../../blocks/src/index").HexColor | undefined;
@@ -6936,7 +6936,7 @@ export declare const ProposeSiteStyleSelectionOutputSchema: z.ZodUnion<readonly
6936
6936
  muted: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
6937
6937
  text: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
6938
6938
  border: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
6939
- }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "background" | "surface" | "border" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt" | "muted", import("../../../blocks/src/index").HexColor>>>, {
6939
+ }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "border" | "background" | "muted" | "surface" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt", import("../../../blocks/src/index").HexColor>>>, {
6940
6940
  primary?: import("../../../blocks/src/index").HexColor | undefined;
6941
6941
  primaryForeground?: import("../../../blocks/src/index").HexColor | undefined;
6942
6942
  secondary?: import("../../../blocks/src/index").HexColor | undefined;
@@ -7003,7 +7003,7 @@ export declare const ProposeSiteStyleSelectionResultSchema: z.ZodUnion<readonly
7003
7003
  muted: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
7004
7004
  text: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
7005
7005
  border: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
7006
- }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "background" | "surface" | "border" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt" | "muted", import("../../../blocks/src/index").HexColor>>>, {
7006
+ }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "border" | "background" | "muted" | "surface" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt", import("../../../blocks/src/index").HexColor>>>, {
7007
7007
  primary?: import("../../../blocks/src/index").HexColor | undefined;
7008
7008
  primaryForeground?: import("../../../blocks/src/index").HexColor | undefined;
7009
7009
  secondary?: import("../../../blocks/src/index").HexColor | undefined;
@@ -7942,7 +7942,7 @@ export declare const ProposeSiteStyleSelectionResultSchema: z.ZodUnion<readonly
7942
7942
  muted: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
7943
7943
  text: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
7944
7944
  border: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
7945
- }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "background" | "surface" | "border" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt" | "muted", import("../../../blocks/src/index").HexColor>>>, {
7945
+ }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "border" | "background" | "muted" | "surface" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt", import("../../../blocks/src/index").HexColor>>>, {
7946
7946
  primary?: import("../../../blocks/src/index").HexColor | undefined;
7947
7947
  primaryForeground?: import("../../../blocks/src/index").HexColor | undefined;
7948
7948
  secondary?: import("../../../blocks/src/index").HexColor | undefined;
@@ -29072,7 +29072,7 @@ export declare const proposalToolSchemas: {
29072
29072
  muted: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
29073
29073
  text: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
29074
29074
  border: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
29075
- }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "background" | "surface" | "border" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt" | "muted", import("../../../blocks/src/index").HexColor>>>, {
29075
+ }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "border" | "background" | "muted" | "surface" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt", import("../../../blocks/src/index").HexColor>>>, {
29076
29076
  primary?: import("../../../blocks/src/index").HexColor | undefined;
29077
29077
  primaryForeground?: import("../../../blocks/src/index").HexColor | undefined;
29078
29078
  secondary?: import("../../../blocks/src/index").HexColor | undefined;
@@ -30011,7 +30011,7 @@ export declare const proposalToolSchemas: {
30011
30011
  muted: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
30012
30012
  text: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
30013
30013
  border: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../../blocks/src/index").HexColor, string>>>;
30014
- }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "background" | "surface" | "border" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt" | "muted", import("../../../blocks/src/index").HexColor>>>, {
30014
+ }, z.core.$strict>, z.ZodTransform<Readonly<Partial<Record<"success" | "text" | "primary" | "secondary" | "border" | "background" | "muted" | "surface" | "accent" | "warning" | "destructive" | "primaryForeground" | "surfaceAlt", import("../../../blocks/src/index").HexColor>>>, {
30015
30015
  primary?: import("../../../blocks/src/index").HexColor | undefined;
30016
30016
  primaryForeground?: import("../../../blocks/src/index").HexColor | undefined;
30017
30017
  secondary?: import("../../../blocks/src/index").HexColor | undefined;
@@ -4297,24 +4297,24 @@ export type SlotDefinition = z.infer<typeof slotSchema>;
4297
4297
  export declare const styleTokenSchema: z.ZodObject<{
4298
4298
  background: z.ZodOptional<z.ZodEnum<{
4299
4299
  background: "background";
4300
+ muted: "muted";
4300
4301
  surface: "surface";
4301
4302
  foreground: "foreground";
4302
4303
  accent: "accent";
4303
- muted: "muted";
4304
4304
  }>>;
4305
4305
  foreground: z.ZodOptional<z.ZodEnum<{
4306
4306
  background: "background";
4307
+ muted: "muted";
4307
4308
  surface: "surface";
4308
4309
  foreground: "foreground";
4309
4310
  accent: "accent";
4310
- muted: "muted";
4311
4311
  }>>;
4312
4312
  border: z.ZodOptional<z.ZodEnum<{
4313
4313
  background: "background";
4314
+ muted: "muted";
4314
4315
  surface: "surface";
4315
4316
  foreground: "foreground";
4316
4317
  accent: "accent";
4317
- muted: "muted";
4318
4318
  }>>;
4319
4319
  typography: z.ZodOptional<z.ZodEnum<{
4320
4320
  body: "body";
@@ -4381,24 +4381,24 @@ export declare const manifestSchema: z.ZodObject<{
4381
4381
  styleTokens: z.ZodOptional<z.ZodObject<{
4382
4382
  background: z.ZodOptional<z.ZodEnum<{
4383
4383
  background: "background";
4384
+ muted: "muted";
4384
4385
  surface: "surface";
4385
4386
  foreground: "foreground";
4386
4387
  accent: "accent";
4387
- muted: "muted";
4388
4388
  }>>;
4389
4389
  foreground: z.ZodOptional<z.ZodEnum<{
4390
4390
  background: "background";
4391
+ muted: "muted";
4391
4392
  surface: "surface";
4392
4393
  foreground: "foreground";
4393
4394
  accent: "accent";
4394
- muted: "muted";
4395
4395
  }>>;
4396
4396
  border: z.ZodOptional<z.ZodEnum<{
4397
4397
  background: "background";
4398
+ muted: "muted";
4398
4399
  surface: "surface";
4399
4400
  foreground: "foreground";
4400
4401
  accent: "accent";
4401
- muted: "muted";
4402
4402
  }>>;
4403
4403
  typography: z.ZodOptional<z.ZodEnum<{
4404
4404
  body: "body";
@@ -1,4 +1,5 @@
1
1
  import type { NodeDefinition } from "../schema";
2
+ import type { MediaImageFetchPriority, MediaImageLoading } from "../../runtime/nodes/media";
2
3
  /**
3
4
  * Options for customizing the appearance of background layers.
4
5
  */
@@ -43,6 +44,16 @@ export type BackgroundLayerOptions = {
43
44
  * @default false
44
45
  */
45
46
  omitImageLayer?: boolean;
47
+ /**
48
+ * Browser loading hint for the background image layer.
49
+ *
50
+ * @default 'lazy'
51
+ */
52
+ imageLoading?: MediaImageLoading;
53
+ /**
54
+ * Browser fetch priority hint for the background image layer.
55
+ */
56
+ imageFetchPriority?: MediaImageFetchPriority;
46
57
  };
47
58
  /**
48
59
  * Creates background layer nodes for rendering backgrounds from field data.
@@ -112,7 +123,10 @@ export declare function backgroundLayer(path: string, options?: BackgroundLayerO
112
123
  * 'rb-absolute rb-inset-0 rb-h-full rb-w-full'
113
124
  * )
114
125
  */
115
- export declare function createBackgroundImageNode(path: string, baseClassName?: string): NodeDefinition;
126
+ export declare function createBackgroundImageNode(path: string, baseClassName?: string, options?: {
127
+ loading?: MediaImageLoading;
128
+ fetchPriority?: MediaImageFetchPriority;
129
+ }): NodeDefinition;
116
130
  /**
117
131
  * Creates a div node for rendering color/gradient overlays on background images.
118
132
  *
@@ -1,5 +1,6 @@
1
1
  import type { NodeDefinition } from '../schema';
2
2
  import type { SemanticSpacing } from '../../spacing';
3
+ import type { MediaImageFetchPriority, MediaImageLoading } from '../../runtime/nodes/media';
3
4
  /**
4
5
  * Configuration for creating a styled section with background support.
5
6
  */
@@ -52,6 +53,16 @@ export type StyledSectionConfig = {
52
53
  * @default true
53
54
  */
54
55
  renderBackgroundImage?: boolean;
56
+ /**
57
+ * Browser loading hint for the automatic background image layer.
58
+ *
59
+ * @default 'lazy'
60
+ */
61
+ backgroundImageLoading?: MediaImageLoading;
62
+ /**
63
+ * Browser fetch priority hint for the automatic background image layer.
64
+ */
65
+ backgroundImageFetchPriority?: MediaImageFetchPriority;
55
66
  /**
56
67
  * Optional path to a boolean flag in block content that should trigger
57
68
  * full-width section behavior (removing horizontal `rb-px-*` classes).
@@ -10,6 +10,19 @@ type HeaderSectionEnhanceOptions = {
10
10
  */
11
11
  scrollTarget?: HTMLElement | null;
12
12
  };
13
+ type DropdownPlacementInput = Readonly<{
14
+ left: number;
15
+ right: number;
16
+ viewportWidth: number;
17
+ gutter: number;
18
+ }>;
19
+ export type DropdownPlacementPlan = Readonly<{
20
+ kind: 'unchanged';
21
+ } | {
22
+ kind: 'shift';
23
+ x: number;
24
+ }>;
25
+ export declare function planDropdownViewportShift(input: DropdownPlacementInput): DropdownPlacementPlan;
13
26
  /**
14
27
  * Enhances a rendered site header section with:
15
28
  * - Desktop dropdown ARIA state
@@ -153,6 +153,8 @@ export declare function getSupabaseUrl(): string;
153
153
  export declare function getSiteId(): string | undefined;
154
154
  export declare function resolveVideoPosterUrl(value: Media, context?: ResolveImageUrlContext | null): string | undefined;
155
155
  export declare function resolveMediaWithContext<TMedia extends Media>(value: TMedia, context?: ResolveImageUrlContext | null): TMedia;
156
+ export type MediaImageLoading = NonNullable<React.ImgHTMLAttributes<HTMLImageElement>['loading']>;
157
+ export type MediaImageFetchPriority = NonNullable<React.ImgHTMLAttributes<HTMLImageElement>['fetchPriority']>;
156
158
  export type MediaNodeProps = {
157
159
  value?: Media | null;
158
160
  className?: string;
@@ -160,6 +162,10 @@ export type MediaNodeProps = {
160
162
  children?: React.ReactNode;
161
163
  /** Video playback mode. Background video is decorative, muted, looping, and control-free. */
162
164
  videoPlayback?: VideoPlaybackMode;
165
+ /** Browser image loading hint. Defaults to lazy for non-priority media. */
166
+ loading?: MediaImageLoading;
167
+ /** Browser image fetch priority hint for LCP-critical media. */
168
+ fetchPriority?: MediaImageFetchPriority;
163
169
  /** Image size options. Defaults to ImagePresets.full (1920px) */
164
170
  size?: ImageOptions;
165
171
  /**
@@ -58,7 +58,7 @@ export type LayoutProps = {
58
58
  * the strict `@riverbankcms/sdk/rendering/server` surface stays bootstrap-free.
59
59
  * If a custom host renders hydratable CMS islands through the strict server
60
60
  * surface, mount `BlocksIslandsHydrator` from
61
- * `@riverbankcms/sdk/rendering/client` explicitly.
61
+ * `@riverbankcms/sdk/rendering/islands` explicitly.
62
62
  *
63
63
  * @example With pre-fetched site data (recommended)
64
64
  * ```tsx
@@ -75,7 +75,7 @@ export type LayoutProps = {
75
75
  * @example With strict server rendering
76
76
  * ```tsx
77
77
  * import { Layout, Page } from '@riverbankcms/sdk/rendering/server';
78
- * import { BlocksIslandsHydrator } from '@riverbankcms/sdk/rendering/client';
78
+ * import { BlocksIslandsHydrator } from '@riverbankcms/sdk/rendering/islands';
79
79
  *
80
80
  * const site = await client.getSite({ slug: 'my-site' });
81
81
  *
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"accordion">;
2
3
  export declare const enhance: IslandEnhancer<'accordion'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"booking-form">;
2
3
  export declare const enhance: IslandEnhancer<'booking-form'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"carousel">;
2
3
  export declare const enhance: IslandEnhancer<'carousel'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"cart">;
2
3
  export declare const enhance: IslandEnhancer<'cart'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"checkout">;
2
3
  export declare const enhance: IslandEnhancer<'checkout'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"course-registration">;
2
3
  export declare const enhance: IslandEnhancer<'course-registration'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"event-calendar">;
2
3
  export declare const enhance: IslandEnhancer<'event-calendar'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"event-combined">;
2
3
  export declare const enhance: IslandEnhancer<'event-combined'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"event-details">;
2
3
  export declare const enhance: IslandEnhancer<'event-details'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"event-listing">;
2
3
  export declare const enhance: IslandEnhancer<'event-listing'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"event-registration">;
2
3
  export declare const enhance: IslandEnhancer<'event-registration'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"form">;
2
3
  export declare const enhance: IslandEnhancer<'form'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"headerSection">;
2
3
  export declare const enhance: IslandEnhancer<'headerSection'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"location-map">;
2
3
  export declare const enhance: IslandEnhancer<'location-map'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"newsletter-form">;
2
3
  export declare const enhance: IslandEnhancer<'newsletter-form'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"product-detail">;
2
3
  export declare const enhance: IslandEnhancer<'product-detail'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"product-list">;
2
3
  export declare const enhance: IslandEnhancer<'product-list'>;
@@ -1,2 +1,3 @@
1
1
  import type { IslandEnhancer } from '../types';
2
+ export declare const decode: import("../types").IslandPropsDecoder<"shop">;
2
3
  export declare const enhance: IslandEnhancer<'shop'>;
@@ -1,8 +1,8 @@
1
- import type { IslandEnhancerLoaders } from './types';
1
+ import type { IslandEnhancerOverrideLoaders } from './types';
2
2
  type HydrateOptions = {
3
3
  root?: ParentNode;
4
4
  onError?: (error: unknown) => void;
5
- loaders?: Partial<IslandEnhancerLoaders>;
5
+ loaders?: Partial<IslandEnhancerOverrideLoaders>;
6
6
  maxRetries?: number;
7
7
  };
8
8
  export declare function hydrateBlocksIslands(options?: HydrateOptions): void;
@@ -0,0 +1,7 @@
1
+ import { type DecodeIssue } from '../../../../blocks/src/contracts/index';
2
+ import type { IslandKind, IslandPropsDecoder } from './types';
3
+ export declare class IslandPropsDecodeError extends Error {
4
+ readonly issues: readonly DecodeIssue[];
5
+ constructor(kind: IslandKind, issues: readonly DecodeIssue[]);
6
+ }
7
+ export declare function defineIslandPropsDecoder<K extends IslandKind>(kind: K): IslandPropsDecoder<K>;
@@ -380,9 +380,18 @@ export type IslandPropsMap = {
380
380
  export type IslandEnhancer<K extends IslandKind = IslandKind> = {
381
381
  bivarianceHack(root: HTMLElement, props: IslandPropsMap[K]): void | (() => void) | Promise<void | (() => void)>;
382
382
  }['bivarianceHack'];
383
+ export type IslandPropsDecoder<K extends IslandKind = IslandKind> = (input: unknown) => IslandPropsMap[K];
384
+ export type IslandRuntimeModule<K extends IslandKind = IslandKind> = {
385
+ decode: IslandPropsDecoder<K>;
386
+ enhance: IslandEnhancer<K>;
387
+ };
383
388
  export type IslandEnhancerModule<K extends IslandKind = IslandKind> = {
389
+ decode?: IslandPropsDecoder<K>;
384
390
  enhance: IslandEnhancer<K>;
385
391
  };
386
392
  export type IslandEnhancerLoaders = {
393
+ [K in IslandKind]: () => Promise<IslandRuntimeModule<K>>;
394
+ };
395
+ export type IslandEnhancerOverrideLoaders = {
387
396
  [K in IslandKind]: () => Promise<IslandEnhancerModule<K>>;
388
397
  };
@@ -8,4 +8,4 @@
8
8
  * 1. This constant
9
9
  * 2. The "version" field in package.json
10
10
  */
11
- export declare const SDK_VERSION = "0.72.0";
11
+ export declare const SDK_VERSION = "0.74.0";
@@ -3,9 +3,9 @@ import { z } from 'zod';
3
3
  * Accordion icon styles for expand/collapse indicators
4
4
  */
5
5
  export declare const accordionIconSchema: z.ZodEnum<{
6
+ caret: "caret";
6
7
  "plus-minus": "plus-minus";
7
8
  chevron: "chevron";
8
- caret: "caret";
9
9
  arrow: "arrow";
10
10
  "circle-plus-minus": "circle-plus-minus";
11
11
  }>;
@@ -46,8 +46,8 @@ export declare const accordionSystemSchema: z.ZodObject<{
46
46
  elevation: z.ZodEnum<{
47
47
  medium: "medium";
48
48
  none: "none";
49
- low: "low";
50
49
  high: "high";
50
+ low: "low";
51
51
  }>;
52
52
  softness: z.ZodNullable<z.ZodEnum<{
53
53
  soft: "soft";
@@ -61,9 +61,9 @@ export declare const accordionSystemSchema: z.ZodObject<{
61
61
  }, z.core.$strip>>;
62
62
  icon: z.ZodObject<{
63
63
  style: z.ZodEnum<{
64
+ caret: "caret";
64
65
  "plus-minus": "plus-minus";
65
66
  chevron: "chevron";
66
- caret: "caret";
67
67
  arrow: "arrow";
68
68
  "circle-plus-minus": "circle-plus-minus";
69
69
  }>;
@@ -62,14 +62,14 @@ export declare const buttonPersonalitySchema: z.ZodObject<{
62
62
  shadow: z.ZodEnum<{
63
63
  medium: "medium";
64
64
  none: "none";
65
- low: "low";
66
65
  high: "high";
66
+ low: "low";
67
67
  }>;
68
68
  textTransform: z.ZodEnum<{
69
69
  none: "none";
70
- uppercase: "uppercase";
71
- lowercase: "lowercase";
72
70
  capitalize: "capitalize";
71
+ lowercase: "lowercase";
72
+ uppercase: "uppercase";
73
73
  }>;
74
74
  fontWeight: z.ZodUnion<readonly [z.ZodLiteral<500>, z.ZodLiteral<600>, z.ZodLiteral<700>]>;
75
75
  borderWidth: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>;
@@ -79,9 +79,9 @@ export declare const buttonPersonalitySchema: z.ZodObject<{
79
79
  }>>;
80
80
  fontSize: z.ZodOptional<z.ZodString>;
81
81
  letterSpacing: z.ZodOptional<z.ZodEnum<{
82
- tight: "tight";
83
82
  normal: "normal";
84
83
  loose: "loose";
84
+ tight: "tight";
85
85
  }>>;
86
86
  italic: z.ZodOptional<z.ZodBoolean>;
87
87
  paddingPreset: z.ZodOptional<z.ZodEnum<{
@@ -98,8 +98,8 @@ export declare const buttonPersonalitySchema: z.ZodObject<{
98
98
  hoverColor: z.ZodEnum<{
99
99
  none: "none";
100
100
  token: "token";
101
- brighten: "brighten";
102
101
  darken: "darken";
102
+ brighten: "brighten";
103
103
  saturate: "saturate";
104
104
  }>;
105
105
  hoverColorToken: z.ZodOptional<z.ZodString>;
@@ -111,8 +111,8 @@ export declare const buttonPersonalitySchema: z.ZodObject<{
111
111
  gradientAngle: z.ZodOptional<z.ZodNumber>;
112
112
  gradientSharpness: z.ZodOptional<z.ZodEnum<{
113
113
  medium: "medium";
114
- hard: "hard";
115
114
  smooth: "smooth";
115
+ hard: "hard";
116
116
  }>>;
117
117
  }, z.core.$strip>;
118
118
  variants: z.ZodArray<z.ZodObject<{
@@ -145,8 +145,8 @@ export declare const buttonPersonalitySchema: z.ZodObject<{
145
145
  elevation: z.ZodEnum<{
146
146
  medium: "medium";
147
147
  none: "none";
148
- low: "low";
149
148
  high: "high";
149
+ low: "low";
150
150
  }>;
151
151
  softness: z.ZodNullable<z.ZodEnum<{
152
152
  soft: "soft";