@riverbankcms/sdk 0.78.0 → 0.79.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +125 -43
- package/dist/{PreviewEditorSidebar-RIKFQ72L.mjs → PreviewEditorSidebar-56NMJMIK.mjs} +750 -65
- package/dist/{PreviewEditorUI-XO7TUWKK.mjs → PreviewEditorUI-27KJVEET.mjs} +4 -4
- package/dist/SdkPreviewModeRuntime-H4BSP6E7.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +72 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
- package/dist/_dts/api/src/endpoints.d.ts +64 -0
- package/dist/_dts/api/src/index.d.ts +8 -6
- package/dist/_dts/api/src/media.d.ts +8 -1
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +8 -8
- package/dist/_dts/api/src/navigation/identity.d.ts +59 -0
- package/dist/_dts/api/src/navigation.d.ts +2 -0
- package/dist/_dts/api/src/public/types.d.ts +1 -1
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +4 -0
- package/dist/_dts/api/src/request.d.ts +3 -11
- package/dist/_dts/api/src/sdkConfig/contracts.d.ts +1 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +8 -1
- package/dist/_dts/api/src/siteIcons.d.ts +128 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +26 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +8 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +21 -20
- package/dist/_dts/api/src/types.d.ts +12 -27
- package/dist/_dts/api/src/webhooks.d.ts +239 -0
- package/dist/_dts/block-form/src/fields/types.d.ts +6 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +3 -2
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +6 -3
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +8 -3
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLinearRepeaterDnd.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useResolvedItemLabel.d.ts +7 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/index.d.ts +3 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +1 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterLabelSource.d.ts +15 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +50 -0
- package/dist/_dts/blocks/src/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +885 -289
- package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +57 -0
- package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +69 -22
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +170 -0
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +5 -0
- package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -1
- package/dist/_dts/blocks/src/system/icons/ids.d.ts +13 -0
- package/dist/_dts/blocks/src/system/icons/index.d.ts +6 -0
- package/dist/_dts/blocks/src/system/icons/presets.d.ts +4 -0
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +18 -0
- package/dist/_dts/blocks/src/system/icons/semantic.d.ts +239 -0
- package/dist/_dts/blocks/src/system/icons/value.d.ts +94 -0
- package/dist/_dts/blocks/src/system/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +4 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +187 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/feature-card-icon.d.ts +13 -0
- package/dist/_dts/content-editor/src/index.d.ts +1 -1
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -2
- package/dist/_dts/content-model/src/content-types/schema.d.ts +14 -0
- package/dist/_dts/content-model/src/contentManifest.d.ts +3 -1
- package/dist/_dts/content-model/src/templates/bindingTypeCompatibility.d.ts +3 -1
- package/dist/_dts/content-model/src/templates/bindingValidation.d.ts +10 -4
- package/dist/_dts/content-model/src/templates/fieldPaths.d.ts +20 -0
- package/dist/_dts/content-model/src/templates/manifestAdapter.d.ts +5 -2
- package/dist/_dts/core/src/branded.d.ts +114 -85
- package/dist/_dts/core/src/csv-types.d.ts +2 -2
- package/dist/_dts/core/src/editor-state.d.ts +7 -7
- package/dist/_dts/core/src/participants.d.ts +2 -2
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +202 -0
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +12 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +12 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +12 -2
- package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +21 -0
- package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +40 -0
- package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +11 -1
- package/dist/_dts/editor-blocks/src/block-editor/featureCardIconActions.d.ts +82 -0
- package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
- package/dist/_dts/media-core/src/fileDomain.d.ts +8 -1
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +5 -2
- package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -1
- package/dist/_dts/media-editor/src/fieldUi.d.ts +5 -0
- package/dist/_dts/media-editor/src/index.d.ts +1 -1
- package/dist/_dts/media-react/src/components/MediaLibrary.d.ts +2 -1
- package/dist/_dts/media-react/src/components/MediaPickerMini.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +17 -0
- package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +6 -0
- package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/metadata.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/commands/push/stale.d.ts +3 -3
- package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +7 -0
- package/dist/_dts/sdk/src/cli/commands/push.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +13 -0
- package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/helpers.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/navigationIdentity.d.ts +11 -0
- package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +6 -6
- package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +5 -0
- package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +5 -2
- package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +10 -1
- package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/sync/diff.d.ts +9 -0
- package/dist/_dts/sdk/src/client/management/types.d.ts +8 -0
- package/dist/_dts/sdk/src/client/types.d.ts +2 -2
- package/dist/_dts/sdk/src/config/content-types.d.ts +7 -0
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +5 -1
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +19 -2
- package/dist/_dts/sdk/src/next/index.d.ts +1 -1
- package/dist/_dts/sdk/src/next/revalidate.d.ts +26 -5
- package/dist/_dts/sdk/src/next/static-params.d.ts +28 -3
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -1
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/verify.d.ts +6 -102
- package/dist/_dts/site-commands/src/commands.d.ts +6 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +3 -3
- package/dist/_dts/theme-core/src/schema.d.ts +5 -5
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +25 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +5 -5
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -4
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -0
- package/dist/_dts/ui/src/combobox.d.ts +1 -0
- package/dist/{altcha-B5XGSXP5.mjs → altcha-EKUEQ4RP.mjs} +1 -1
- package/dist/{chunk-F7RTCZYN.mjs → chunk-4HCW7FHJ.mjs} +504 -63
- package/dist/{chunk-SXOLGNMX.mjs → chunk-A3HHFKVT.mjs} +1 -1
- package/dist/{chunk-TXDES5P2.mjs → chunk-GP555I66.mjs} +180 -10
- package/dist/{chunk-SVMMM2NA.mjs → chunk-K2IIF34C.mjs} +79 -5
- package/dist/{chunk-NIDXI46P.mjs → chunk-LCY32PXF.mjs} +1 -1
- package/dist/{chunk-XGB3TDIC.mjs → chunk-R7POPVJR.mjs} +2 -8
- package/dist/{chunk-OECWLDHN.mjs → chunk-V47ZU33I.mjs} +2762 -732
- package/dist/cli/index.mjs +1799 -345
- package/dist/cli/init-docs/content/cli-reference.md +3 -2
- package/dist/cli/init-docs/content/content-management.md +2 -2
- package/dist/cli/init-docs/content/workflow-editor-workflows.md +2 -0
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +138 -0
- package/dist/cli/init-docs/content/workflow-preview-mode.md +68 -2
- package/dist/client/{accordion-EVDEOUPR.mjs → accordion-QLA7KBYO.mjs} +2 -2
- package/dist/client/analytics.mjs +1 -1
- package/dist/client/{bookingForm-DIHBLC64.mjs → bookingForm-PYZIPA5G.mjs} +55 -48
- package/dist/client/bookings.mjs +172 -57
- package/dist/client/{carousel-FEBQHIWI.mjs → carousel-5EIULWBI.mjs} +3 -3
- package/dist/client/{cart-7CKSXAE4.mjs → cart-DOP3FNI4.mjs} +7 -7
- package/dist/client/{checkout-WKYCANLV.mjs → checkout-BVMF6FBV.mjs} +7 -7
- package/dist/client/{chunk-GUK2FPXQ.mjs → chunk-44K2U3QI.mjs} +37 -15
- package/dist/client/{chunk-IVNCUVAV.mjs → chunk-AUJ5DBZJ.mjs} +18 -18
- package/dist/client/{chunk-VPPMNXCF.mjs → chunk-CCNTDRCF.mjs} +2 -2
- package/dist/client/{chunk-36WJCERQ.mjs → chunk-CE7IBGVW.mjs} +3 -1
- package/dist/client/{chunk-2SAVKN2M.mjs → chunk-GG4M2NP6.mjs} +2 -2
- package/dist/client/{chunk-65F47D7Y.mjs → chunk-R5ESWNKX.mjs} +49 -39
- package/dist/client/{chunk-RZDWX7QW.mjs → chunk-TYONZMST.mjs} +1 -1
- package/dist/client/{chunk-OFMSCGNY.mjs → chunk-UDS3NTWA.mjs} +2 -2
- package/dist/client/{chunk-YDSEG6GZ.mjs → chunk-V6M5FCR5.mjs} +2 -2
- package/dist/client/{chunk-F7LHOKEH.mjs → chunk-XSV6KW4D.mjs} +1 -1
- package/dist/client/{chunk-RV6FX7UH.mjs → chunk-YLDYVRZL.mjs} +9 -9
- package/dist/client/{chunk-PD6NBCEY.mjs → chunk-ZFHRN6W2.mjs} +1 -1
- package/dist/client/client.mjs +21501 -19812
- package/dist/client/{courseRegistration-5QF2PHKM.mjs → courseRegistration-E6EAA6NL.mjs} +10 -10
- package/dist/client/{eventCalendar-4ZOSETDU.mjs → eventCalendar-HBG3HAK6.mjs} +9 -9
- package/dist/client/{eventCombined-WQGU7JUX.mjs → eventCombined-6K5ZZWAK.mjs} +9 -9
- package/dist/client/{eventDetails-AYWVUJ5Y.mjs → eventDetails-Q75ICXLT.mjs} +9 -9
- package/dist/client/{eventListing-NT7C6UT5.mjs → eventListing-27P5F7DZ.mjs} +9 -9
- package/dist/client/{eventRegistration-OH24F4ZJ.mjs → eventRegistration-IQ7AMASR.mjs} +9 -9
- package/dist/client/{form-7L42SRBB.mjs → form-JRTD65FN.mjs} +6 -3
- package/dist/client/{headerSection-OZRZNZ52.mjs → headerSection-7FPSSZHS.mjs} +3 -3
- package/dist/client/hooks.mjs +428 -83
- package/dist/client/{locationMap-ZBXRPQ7C.mjs → locationMap-7NGFNYBH.mjs} +3 -3
- package/dist/client/{newsletterForm-SNAGFF2I.mjs → newsletterForm-F3BADCI2.mjs} +2 -2
- package/dist/client/{productDetail-I46BOFGV.mjs → productDetail-V3HP7ITJ.mjs} +7 -7
- package/dist/client/{productList-BOYHTYI6.mjs → productList-L3EGJUF2.mjs} +7 -7
- package/dist/client/rendering/client.mjs +2886 -1513
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2244 -564
- package/dist/client/{shop-XTXPZTKR.mjs → shop-DQUB5E2C.mjs} +7 -7
- package/dist/preview-next/before-render.mjs +65 -1
- package/dist/preview-next/client/runtime.mjs +6 -6
- package/dist/preview-next/middleware.mjs +65 -1
- package/dist/preview-next/tailwind-sources.css +1 -0
- package/dist/sdk-runtime-AF6KXJU4.mjs +8 -0
- package/dist/server/components.mjs +2270 -835
- package/dist/server/config-template-validation.mjs +221 -15
- package/dist/server/config-validation.mjs +426 -77
- package/dist/server/config.mjs +426 -77
- package/dist/server/data.mjs +427 -82
- package/dist/server/index.mjs +94 -10
- package/dist/server/next/revalidate.mjs +229 -34
- package/dist/server/next.mjs +2439 -888
- package/dist/server/page-converter.mjs +335 -74
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2281 -846
- package/dist/server/rendering.mjs +2298 -860
- package/dist/server/routing.mjs +860 -113
- package/dist/server/server.mjs +452 -92
- package/dist/server/theme-bridge.mjs +164 -2
- package/dist/server/theme.mjs +2 -2
- package/dist/server/webhooks.mjs +129 -25
- package/dist/styles/index.css +55 -0
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-LAGYMPNF.mjs +0 -8
- package/dist/sdk-runtime-ZJLKC6DR.mjs +0 -8
|
@@ -12,6 +12,7 @@ import type { LinkPayload, RoutableContentItem, SitemapRouteItem } from "./navig
|
|
|
12
12
|
import type { RouteMetadataPayload, RouteMetadataResponse } from "./routes";
|
|
13
13
|
import type { SiteAnalyticsSettingsPayload, SiteAnalyticsSettingsResponse } from "./siteAnalytics";
|
|
14
14
|
import type { SiteBannerSettingsPayload, SiteBannerSettingsResponse } from "./siteBanner";
|
|
15
|
+
import type { GeneratedIconSetApplyRequest, GeneratedIconSetApplyResponse, GeneratedIconSetGenerateRequest, GeneratedIconSetGenerateResponse, SiteIconStyleGuideResponse, SiteIconStyleGuideUpdateRequest } from "./siteIcons";
|
|
15
16
|
import type { AiBrandGuidelinesGenerateRequest, AiBrandGuidelinesGenerateResponse, AiBrandGuidelinesGenerationContextResponse, SiteAiBrandGuidelinesPayload, SiteAiBrandGuidelinesResponse, SiteAiProfilePayload, SiteAiProfileResponse, SiteGenerationIntakePayload, SiteGenerationIntakeResponse } from "./siteOnboarding";
|
|
16
17
|
import type { SitePrivacySettingsPayload, SitePrivacySettingsResponse } from "./privacyPolicy";
|
|
17
18
|
import type { MaintenanceSettingsPayload, MaintenanceSettingsResponse, SiteBusinessAddressPayload, SiteBusinessAddressResponse, SiteFooterBlocksEditorResponse, SiteGeneralSettingsPayload, SiteGeneralSettingsResponse, SiteLayoutSettingsPayload, SiteLayoutSettingsResponse, UpdateSiteDeploymentModePayload, UpdateSiteDeploymentModeResponse, UpdateSiteFooterBlocksPayload, UpdateSiteFooterBlocksResponse } from "./siteSettings";
|
|
@@ -134,6 +135,16 @@ export type SiteManagementAPIEndpoints = {
|
|
|
134
135
|
entries: ContentEntrySummary[];
|
|
135
136
|
contentType: SerializedContentTypeSummary;
|
|
136
137
|
}>;
|
|
138
|
+
reorderContentEntries: APIEndpoint<{
|
|
139
|
+
orderedEntryIds: string[];
|
|
140
|
+
orderToken: string;
|
|
141
|
+
}, {
|
|
142
|
+
siteId: string;
|
|
143
|
+
type: string;
|
|
144
|
+
}, {
|
|
145
|
+
entries: ContentEntrySummary[];
|
|
146
|
+
orderToken: string;
|
|
147
|
+
}>;
|
|
137
148
|
getContentTemplate: APIEndpoint<never, {
|
|
138
149
|
siteId: string;
|
|
139
150
|
type: string;
|
|
@@ -482,6 +493,21 @@ export type SiteManagementAPIEndpoints = {
|
|
|
482
493
|
updateSiteAiBrandGuidelines: APIEndpoint<SiteAiBrandGuidelinesPayload, {
|
|
483
494
|
siteId: string;
|
|
484
495
|
}, SiteAiBrandGuidelinesResponse>;
|
|
496
|
+
getSiteIconStyleGuide: APIEndpoint<never, {
|
|
497
|
+
siteId: string;
|
|
498
|
+
}, SiteIconStyleGuideResponse>;
|
|
499
|
+
updateSiteIconStyleGuide: APIEndpoint<SiteIconStyleGuideUpdateRequest, {
|
|
500
|
+
siteId: string;
|
|
501
|
+
}, SiteIconStyleGuideResponse>;
|
|
502
|
+
regenerateSiteIconStyleGuide: APIEndpoint<never, {
|
|
503
|
+
siteId: string;
|
|
504
|
+
}, SiteIconStyleGuideResponse>;
|
|
505
|
+
generateGeneratedIconSet: APIEndpoint<GeneratedIconSetGenerateRequest, {
|
|
506
|
+
siteId: string;
|
|
507
|
+
}, GeneratedIconSetGenerateResponse>;
|
|
508
|
+
applyGeneratedIconSet: APIEndpoint<GeneratedIconSetApplyRequest, {
|
|
509
|
+
siteId: string;
|
|
510
|
+
}, GeneratedIconSetApplyResponse>;
|
|
485
511
|
getSiteAiProfile: APIEndpoint<never, {
|
|
486
512
|
siteId: string;
|
|
487
513
|
}, SiteAiProfileResponse>;
|
|
@@ -258,6 +258,7 @@ export type SitePlatformAPIEndpoints = {
|
|
|
258
258
|
reordered: true;
|
|
259
259
|
}>;
|
|
260
260
|
sdkUpsertNavigationMenu: APIEndpoint<{
|
|
261
|
+
identifier?: string;
|
|
261
262
|
name: string;
|
|
262
263
|
isPrimary?: boolean;
|
|
263
264
|
isFooter?: boolean;
|
|
@@ -270,6 +271,12 @@ export type SitePlatformAPIEndpoints = {
|
|
|
270
271
|
}, {
|
|
271
272
|
siteId: string;
|
|
272
273
|
}, SdkUpsertNavigationMenuResponse>;
|
|
274
|
+
sdkDeleteNavigationMenu: APIEndpoint<never, {
|
|
275
|
+
siteId: string;
|
|
276
|
+
menuId: string;
|
|
277
|
+
}, {
|
|
278
|
+
deleted: true;
|
|
279
|
+
}>;
|
|
273
280
|
sdkUpsertTheme: APIEndpoint<{
|
|
274
281
|
theme: Theme;
|
|
275
282
|
themeId?: string;
|
|
@@ -423,6 +430,7 @@ export type SitePlatformAPIEndpoints = {
|
|
|
423
430
|
contentType: string;
|
|
424
431
|
data: Record<string, unknown>;
|
|
425
432
|
slug?: string;
|
|
433
|
+
manualOrder?: number;
|
|
426
434
|
}, {
|
|
427
435
|
siteId: string;
|
|
428
436
|
}, SdkUpsertEntryResponse>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { SystemCustomizeFacetSelection, Theme } from '../../blocks/src/index';
|
|
1
|
+
import type { BackgroundOverride, SystemCustomizeFacetSelection, Theme } from '../../blocks/src/index';
|
|
2
2
|
import type { ListMediaAssetsResult, MediaAssetWithLabels } from '@riverbankcms/media-storage-supabase';
|
|
3
3
|
import type { DbJson } from '../../db/src/index';
|
|
4
4
|
import type { PageDesignEditorReadModel, PageDesignIntent, AppearancePresetId, BoundaryOptionId, DesignBlockId, FooterLookId, HeaderLayoutId, HeaderLookId, HeaderStyleId, LayoutVariantKey, SiteStyleId, TypographyPresetId } from '../../theme-core/src/site-styles/index';
|
|
5
5
|
import type { ButtonPersonalityId } from '../../theme-core/src/buttons/index';
|
|
6
6
|
import type { PaletteOverrides, PaletteVariantId } from '../../theme-core/src/palette/index';
|
|
7
7
|
import type { APIEndpoint } from './apiEndpointTypes';
|
|
8
|
-
import type {
|
|
8
|
+
import type { AnalyticsReportQuery, AnalyticsReportResponse } from './analytics';
|
|
9
9
|
import type { CreateMediaAssetBody, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse } from './media';
|
|
10
10
|
import type { MediaUsageCheckResponse } from './shared-contracts';
|
|
11
11
|
import type { BlockWithContentResponse, BlockListItem, ContentEntryListStage, ListPublishedEntriesResponse, PageDraftRecord, PublishedBlockBaseline, PublishedContentEntryPreviewResponse, PublishedPostPreviewResponse, SdkBlockContent, SdkRuntimeContentByPathResponse, SdkTemplate, SiteBySlugResponse, ThemeGenerationTurn, ThemePreferencesRecord, ThemeRow } from './contentRuntime';
|
|
@@ -117,6 +117,11 @@ export type PageDesignEditorAction = {
|
|
|
117
117
|
blockId: DesignBlockId;
|
|
118
118
|
baseContentId: string | null;
|
|
119
119
|
} & SystemCustomizeFacetSelection) | {
|
|
120
|
+
kind: 'set-background';
|
|
121
|
+
blockId: DesignBlockId;
|
|
122
|
+
baseContentId: string | null;
|
|
123
|
+
override: BackgroundOverride;
|
|
124
|
+
} | {
|
|
120
125
|
kind: 'set-look';
|
|
121
126
|
blockId: DesignBlockId;
|
|
122
127
|
appearancePresetId: AppearancePresetId | null;
|
|
@@ -181,7 +186,7 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
181
186
|
type: string;
|
|
182
187
|
limit?: string;
|
|
183
188
|
offset?: string;
|
|
184
|
-
order?: 'published_at.asc' | 'published_at.desc' | 'title.asc' | 'title.desc' | 'updated_at.asc' | 'updated_at.desc';
|
|
189
|
+
order?: 'published_at.asc' | 'published_at.desc' | 'title.asc' | 'title.desc' | 'manual.asc' | 'updated_at.asc' | 'updated_at.desc';
|
|
185
190
|
stage?: ContentEntryListStage;
|
|
186
191
|
meta?: string;
|
|
187
192
|
mode?: 'manual';
|
|
@@ -337,26 +342,24 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
337
342
|
}>;
|
|
338
343
|
}>;
|
|
339
344
|
createInstagramZipUploadUrl: APIEndpoint<CreateInstagramZipUploadUrlRequest, never, CreateInstagramZipUploadUrlResponse>;
|
|
340
|
-
getAnalyticsReport: APIEndpoint<
|
|
341
|
-
siteId: string;
|
|
342
|
-
} & AnalyticsReportFilters, AnalyticsReportResponse>;
|
|
345
|
+
getAnalyticsReport: APIEndpoint<never, AnalyticsReportQuery, AnalyticsReportResponse>;
|
|
343
346
|
createMediaAsset: APIEndpoint<CreateMediaAssetBody, undefined, MediaAssetResponse>;
|
|
344
|
-
mediaList: APIEndpoint<{
|
|
347
|
+
mediaList: APIEndpoint<never, {
|
|
345
348
|
siteId: string;
|
|
346
349
|
q?: string;
|
|
347
350
|
limit?: number;
|
|
348
351
|
offset?: number;
|
|
349
352
|
labels?: string;
|
|
350
353
|
fileFilter?: MediaAssetFileFilterContract;
|
|
351
|
-
},
|
|
352
|
-
mediaProductFileList: APIEndpoint<{
|
|
354
|
+
}, ListMediaAssetsResult>;
|
|
355
|
+
mediaProductFileList: APIEndpoint<never, {
|
|
353
356
|
siteId: string;
|
|
354
357
|
q?: string;
|
|
355
358
|
limit?: number;
|
|
356
359
|
offset?: number;
|
|
357
360
|
labels?: string;
|
|
358
361
|
fileFilter?: MediaAssetFileFilterContract;
|
|
359
|
-
},
|
|
362
|
+
}, ListMediaAssetsResult>;
|
|
360
363
|
mediaGet: APIEndpoint<never, {
|
|
361
364
|
assetId: string;
|
|
362
365
|
}, MediaAssetWithLabels>;
|
|
@@ -544,17 +547,15 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
544
547
|
siteId: string;
|
|
545
548
|
pageId: string;
|
|
546
549
|
}, ApplyPageDesignEditorActionResponse>;
|
|
547
|
-
getContentByPath: APIEndpoint<{
|
|
550
|
+
getContentByPath: APIEndpoint<never, {
|
|
551
|
+
siteId: string;
|
|
548
552
|
path: string;
|
|
549
553
|
preview?: boolean;
|
|
550
|
-
}, {
|
|
551
|
-
siteId: string;
|
|
552
554
|
}, SdkRuntimeContentByPathResponse>;
|
|
553
|
-
getPageByPath: APIEndpoint<{
|
|
555
|
+
getPageByPath: APIEndpoint<never, {
|
|
556
|
+
siteId: string;
|
|
554
557
|
path: string;
|
|
555
558
|
preview?: boolean;
|
|
556
|
-
}, {
|
|
557
|
-
siteId: string;
|
|
558
559
|
}, SdkRuntimeContentByPathResponse>;
|
|
559
560
|
initSiteContent: APIEndpoint<{}, {
|
|
560
561
|
siteId: string;
|
|
@@ -563,9 +564,9 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
563
564
|
created: number;
|
|
564
565
|
totalBlocks: number;
|
|
565
566
|
}>;
|
|
566
|
-
getMediaLabels: APIEndpoint<{
|
|
567
|
+
getMediaLabels: APIEndpoint<never, {
|
|
567
568
|
siteId: string;
|
|
568
|
-
},
|
|
569
|
+
}, {
|
|
569
570
|
items: MediaLabelSummary[];
|
|
570
571
|
}>;
|
|
571
572
|
getMediaSettings: APIEndpoint<never, {
|
|
@@ -643,11 +644,11 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
643
644
|
summary?: MediaJobSummaryResponse;
|
|
644
645
|
}>;
|
|
645
646
|
}>;
|
|
646
|
-
mediaJobsStatus: APIEndpoint<{
|
|
647
|
+
mediaJobsStatus: APIEndpoint<never, {
|
|
647
648
|
siteId: string;
|
|
648
649
|
limit?: number;
|
|
649
650
|
statuses?: string;
|
|
650
|
-
},
|
|
651
|
+
}, {
|
|
651
652
|
jobs: MediaClassifyJobResponse[];
|
|
652
653
|
}>;
|
|
653
654
|
devToolsImpersonateAdmin: APIEndpoint<undefined, never, DevToolsImpersonationResponse>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CamelizeKeys, DbDatabase, DbRow } from "../../db/src/index";
|
|
2
|
-
|
|
2
|
+
import type { APIEndpoint } from "./apiEndpointTypes";
|
|
3
|
+
export type { AccessPolicyContract, AccessPolicyTag, AmbientBackgroundRole, CreateMediaAssetBody, EntitledCustomerAccessScopeContract, FileKindContract, FileKindTag, FileUseContract, FileUseTag, ImageFileFormat, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteAssetFailure, MediaBulkDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse, RenderableFileKindTag, SiteBackgroundAssetUse, StorageClass, UploadIntentContract, UploadIntentTag, } from "./media";
|
|
3
4
|
export type { AnalyticsPreset, AnalyticsReferrer, AnalyticsReportFilters, AnalyticsReportQuery, AnalyticsReportResponse, AnalyticsSeriesPoint, AnalyticsTopPage, AnalyticsTotals, } from "./analytics";
|
|
4
5
|
export type { AIChatMessage, AiBriefTurn, JsonPrimitive, JsonValue, MediaUsageCheckItem, MediaUsageCheckResponse, MediaUsageLocation, } from "./shared-contracts";
|
|
5
6
|
export type * from "./accessAdmin";
|
|
@@ -121,48 +122,32 @@ type EndpointPath<E extends keyof APIEndpoints> = E extends keyof typeof API_END
|
|
|
121
122
|
type PathParams<E extends keyof APIEndpoints> = ExtractPathParamNames<EndpointPath<E>> extends infer TParam ? [TParam] extends [never] ? {} : {
|
|
122
123
|
[K in Extract<TParam, string>]: string;
|
|
123
124
|
} : {};
|
|
124
|
-
type
|
|
125
|
+
type EndpointQuery<E extends keyof APIEndpoints> = APIEndpoints[E] extends APIEndpoint<unknown, infer TQuery, unknown> ? TQuery : never;
|
|
126
|
+
type QueryParams<E extends keyof APIEndpoints> = IsNonEmptyQuery<EndpointQuery<E>> extends false ? {} : QueryToStringParams<EndpointQuery<E>>;
|
|
125
127
|
type HasPathParams<E extends keyof APIEndpoints> = keyof PathParams<E> extends never ? false : true;
|
|
126
128
|
type ParamsPart<E extends keyof APIEndpoints> = HasPathParams<E> extends true ? {
|
|
127
129
|
params: PathParams<E> & QueryParams<E>;
|
|
128
|
-
} : IsNonEmptyQuery<
|
|
130
|
+
} : IsNonEmptyQuery<EndpointQuery<E>> extends false ? {
|
|
129
131
|
params?: Record<string, string>;
|
|
130
|
-
} : HasRequiredKeys<
|
|
132
|
+
} : HasRequiredKeys<EndpointQuery<E>> extends true ? {
|
|
131
133
|
params: QueryParams<E>;
|
|
132
134
|
} : {
|
|
133
135
|
params?: QueryParams<E>;
|
|
134
136
|
};
|
|
135
|
-
export type APICallParams<E extends keyof APIEndpoints> = APIEndpoints[E] extends {
|
|
136
|
-
method: "GET";
|
|
137
|
-
} ? {
|
|
138
|
-
endpoint: E;
|
|
139
|
-
body?: APIEndpoints[E]["body"];
|
|
140
|
-
options?: RequestInit;
|
|
141
|
-
} & ParamsPart<E> : APIEndpoints[E] extends {
|
|
142
|
-
method: "POST" | "PUT" | "PATCH";
|
|
143
|
-
} ? {
|
|
144
|
-
endpoint: E;
|
|
145
|
-
body: APIEndpoints[E]["body"];
|
|
146
|
-
options?: RequestInit;
|
|
147
|
-
} & ParamsPart<E> : {
|
|
148
|
-
endpoint: E;
|
|
149
|
-
body?: APIEndpoints[E]["body"];
|
|
150
|
-
options?: RequestInit;
|
|
151
|
-
} & ParamsPart<E>;
|
|
152
137
|
type EndpointMethod<E extends keyof APIEndpoints> = E extends keyof typeof API_ENDPOINTS ? (typeof API_ENDPOINTS)[E]["method"] : HTTPMethod;
|
|
153
|
-
type EndpointBody<E extends keyof APIEndpoints> = APIEndpoints[E]
|
|
138
|
+
type EndpointBody<E extends keyof APIEndpoints> = APIEndpoints[E] extends APIEndpoint<infer TBody, unknown, unknown> ? TBody : never;
|
|
154
139
|
type StrictBodyPart<E extends keyof APIEndpoints> = EndpointMethod<E> extends "GET" ? {
|
|
155
140
|
body?: never;
|
|
156
141
|
} : [EndpointBody<E>] extends [never | undefined] ? {
|
|
157
142
|
body?: never;
|
|
143
|
+
} : undefined extends EndpointBody<E> ? {
|
|
144
|
+
body?: Exclude<EndpointBody<E>, undefined>;
|
|
158
145
|
} : {
|
|
159
|
-
body:
|
|
146
|
+
body: EndpointBody<E>;
|
|
160
147
|
};
|
|
161
148
|
/**
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
* Intended for new code. Existing code can continue using APICallParams until migrated.
|
|
149
|
+
* API call parameters derived from endpoint metadata.
|
|
150
|
+
* Enforces whether `body` is required, optional, or forbidden for each endpoint.
|
|
166
151
|
*/
|
|
167
152
|
export type APICallParamsStrict<E extends keyof APIEndpoints> = {
|
|
168
153
|
endpoint: E;
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const RIVERBANK_SIGNATURE_PREFIX = "sha256=";
|
|
3
|
+
export declare const SUPPORTED_WEBHOOK_EVENTS: readonly ["page.published", "page.unpublished", "page.deleted", "page.path_changed", "entry.published", "entry.unpublished", "entry.deleted", "entry.path_changed", "navigation.updated", "theme.updated", "site.settings_updated"];
|
|
4
|
+
export type WebhookEvent = (typeof SUPPORTED_WEBHOOK_EVENTS)[number];
|
|
5
|
+
export declare const WebhookEventSchema: z.ZodEnum<{
|
|
6
|
+
"page.published": "page.published";
|
|
7
|
+
"page.unpublished": "page.unpublished";
|
|
8
|
+
"page.deleted": "page.deleted";
|
|
9
|
+
"page.path_changed": "page.path_changed";
|
|
10
|
+
"entry.published": "entry.published";
|
|
11
|
+
"entry.unpublished": "entry.unpublished";
|
|
12
|
+
"entry.deleted": "entry.deleted";
|
|
13
|
+
"entry.path_changed": "entry.path_changed";
|
|
14
|
+
"navigation.updated": "navigation.updated";
|
|
15
|
+
"theme.updated": "theme.updated";
|
|
16
|
+
"site.settings_updated": "site.settings_updated";
|
|
17
|
+
}>;
|
|
18
|
+
declare const revalidationPathBrand: unique symbol;
|
|
19
|
+
export type RevalidationPath = string & {
|
|
20
|
+
readonly [revalidationPathBrand]: 'RevalidationPath';
|
|
21
|
+
};
|
|
22
|
+
export type RevalidationPathParseError = Readonly<{
|
|
23
|
+
tag: 'EMPTY_PATH';
|
|
24
|
+
input: string;
|
|
25
|
+
}> | Readonly<{
|
|
26
|
+
tag: 'ABSOLUTE_OR_PROTOCOL_PATH';
|
|
27
|
+
input: string;
|
|
28
|
+
}> | Readonly<{
|
|
29
|
+
tag: 'MALFORMED_PATH';
|
|
30
|
+
input: string;
|
|
31
|
+
}>;
|
|
32
|
+
export type RevalidationPathParseResult = Readonly<{
|
|
33
|
+
success: true;
|
|
34
|
+
path: RevalidationPath;
|
|
35
|
+
}> | Readonly<{
|
|
36
|
+
success: false;
|
|
37
|
+
error: RevalidationPathParseError;
|
|
38
|
+
}>;
|
|
39
|
+
export declare function parseRevalidationPath(input: string): RevalidationPathParseResult;
|
|
40
|
+
export declare function normalizeRevalidationPath(input: string): RevalidationPath | null;
|
|
41
|
+
export declare function unwrapRevalidationPath(path: RevalidationPath): string;
|
|
42
|
+
export declare const PagePublishedDataSchema: z.ZodObject<{
|
|
43
|
+
pageId: z.ZodString;
|
|
44
|
+
path: z.ZodString;
|
|
45
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
46
|
+
}, z.core.$strict>;
|
|
47
|
+
export declare const PageRemovedDataSchema: z.ZodObject<{
|
|
48
|
+
pageId: z.ZodString;
|
|
49
|
+
path: z.ZodString;
|
|
50
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
51
|
+
}, z.core.$strict>;
|
|
52
|
+
export declare const PagePathChangedDataSchema: z.ZodObject<{
|
|
53
|
+
pageId: z.ZodString;
|
|
54
|
+
previousPath: z.ZodString;
|
|
55
|
+
path: z.ZodString;
|
|
56
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
57
|
+
}, z.core.$strict>;
|
|
58
|
+
export declare const EntryPublishedDataSchema: z.ZodObject<{
|
|
59
|
+
entryId: z.ZodString;
|
|
60
|
+
path: z.ZodString;
|
|
61
|
+
contentType: z.ZodString;
|
|
62
|
+
}, z.core.$strict>;
|
|
63
|
+
export declare const EntryRemovedDataSchema: z.ZodObject<{
|
|
64
|
+
entryId: z.ZodString;
|
|
65
|
+
path: z.ZodString;
|
|
66
|
+
contentType: z.ZodString;
|
|
67
|
+
}, z.core.$strict>;
|
|
68
|
+
export declare const EntryPathChangedDataSchema: z.ZodObject<{
|
|
69
|
+
entryId: z.ZodString;
|
|
70
|
+
previousPath: z.ZodString;
|
|
71
|
+
path: z.ZodString;
|
|
72
|
+
contentType: z.ZodString;
|
|
73
|
+
}, z.core.$strict>;
|
|
74
|
+
export declare const NavigationUpdatedDataSchema: z.ZodObject<{
|
|
75
|
+
menuId: z.ZodOptional<z.ZodString>;
|
|
76
|
+
}, z.core.$strict>;
|
|
77
|
+
export declare const EmptyWebhookDataSchema: z.ZodObject<{}, z.core.$strict>;
|
|
78
|
+
export type PagePublishedData = z.infer<typeof PagePublishedDataSchema>;
|
|
79
|
+
export type PageRemovedData = z.infer<typeof PageRemovedDataSchema>;
|
|
80
|
+
export type PagePathChangedData = z.infer<typeof PagePathChangedDataSchema>;
|
|
81
|
+
export type EntryPublishedData = z.infer<typeof EntryPublishedDataSchema>;
|
|
82
|
+
export type EntryRemovedData = z.infer<typeof EntryRemovedDataSchema>;
|
|
83
|
+
export type EntryPathChangedData = z.infer<typeof EntryPathChangedDataSchema>;
|
|
84
|
+
export type NavigationUpdatedData = z.infer<typeof NavigationUpdatedDataSchema>;
|
|
85
|
+
export type EmptyWebhookData = z.infer<typeof EmptyWebhookDataSchema>;
|
|
86
|
+
export type WebhookDataByEvent = Readonly<{
|
|
87
|
+
'page.published': PagePublishedData;
|
|
88
|
+
'page.unpublished': PageRemovedData;
|
|
89
|
+
'page.deleted': PageRemovedData;
|
|
90
|
+
'page.path_changed': PagePathChangedData;
|
|
91
|
+
'entry.published': EntryPublishedData;
|
|
92
|
+
'entry.unpublished': EntryRemovedData;
|
|
93
|
+
'entry.deleted': EntryRemovedData;
|
|
94
|
+
'entry.path_changed': EntryPathChangedData;
|
|
95
|
+
'navigation.updated': NavigationUpdatedData;
|
|
96
|
+
'theme.updated': EmptyWebhookData;
|
|
97
|
+
'site.settings_updated': EmptyWebhookData;
|
|
98
|
+
}>;
|
|
99
|
+
export type WebhookDataForEvent<E extends WebhookEvent> = WebhookDataByEvent[E];
|
|
100
|
+
export declare const WebhookPayloadSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
101
|
+
timestamp: z.ZodString;
|
|
102
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
103
|
+
siteId: z.ZodString;
|
|
104
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
105
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
106
|
+
event: z.ZodLiteral<"page.published">;
|
|
107
|
+
data: z.ZodObject<{
|
|
108
|
+
pageId: z.ZodString;
|
|
109
|
+
path: z.ZodString;
|
|
110
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
111
|
+
}, z.core.$strict>;
|
|
112
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
113
|
+
timestamp: z.ZodString;
|
|
114
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
115
|
+
siteId: z.ZodString;
|
|
116
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
117
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
118
|
+
event: z.ZodLiteral<"page.unpublished">;
|
|
119
|
+
data: z.ZodObject<{
|
|
120
|
+
pageId: z.ZodString;
|
|
121
|
+
path: z.ZodString;
|
|
122
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
123
|
+
}, z.core.$strict>;
|
|
124
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
125
|
+
timestamp: z.ZodString;
|
|
126
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
127
|
+
siteId: z.ZodString;
|
|
128
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
129
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
130
|
+
event: z.ZodLiteral<"page.deleted">;
|
|
131
|
+
data: z.ZodObject<{
|
|
132
|
+
pageId: z.ZodString;
|
|
133
|
+
path: z.ZodString;
|
|
134
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
135
|
+
}, z.core.$strict>;
|
|
136
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
137
|
+
timestamp: z.ZodString;
|
|
138
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
139
|
+
siteId: z.ZodString;
|
|
140
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
141
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
142
|
+
event: z.ZodLiteral<"page.path_changed">;
|
|
143
|
+
data: z.ZodObject<{
|
|
144
|
+
pageId: z.ZodString;
|
|
145
|
+
previousPath: z.ZodString;
|
|
146
|
+
path: z.ZodString;
|
|
147
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
148
|
+
}, z.core.$strict>;
|
|
149
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
150
|
+
timestamp: z.ZodString;
|
|
151
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
152
|
+
siteId: z.ZodString;
|
|
153
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
154
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
155
|
+
event: z.ZodLiteral<"entry.published">;
|
|
156
|
+
data: z.ZodObject<{
|
|
157
|
+
entryId: z.ZodString;
|
|
158
|
+
path: z.ZodString;
|
|
159
|
+
contentType: z.ZodString;
|
|
160
|
+
}, z.core.$strict>;
|
|
161
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
162
|
+
timestamp: z.ZodString;
|
|
163
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
164
|
+
siteId: z.ZodString;
|
|
165
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
166
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
167
|
+
event: z.ZodLiteral<"entry.unpublished">;
|
|
168
|
+
data: z.ZodObject<{
|
|
169
|
+
entryId: z.ZodString;
|
|
170
|
+
path: z.ZodString;
|
|
171
|
+
contentType: z.ZodString;
|
|
172
|
+
}, z.core.$strict>;
|
|
173
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
174
|
+
timestamp: z.ZodString;
|
|
175
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
176
|
+
siteId: z.ZodString;
|
|
177
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
178
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
179
|
+
event: z.ZodLiteral<"entry.deleted">;
|
|
180
|
+
data: z.ZodObject<{
|
|
181
|
+
entryId: z.ZodString;
|
|
182
|
+
path: z.ZodString;
|
|
183
|
+
contentType: z.ZodString;
|
|
184
|
+
}, z.core.$strict>;
|
|
185
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
186
|
+
timestamp: z.ZodString;
|
|
187
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
188
|
+
siteId: z.ZodString;
|
|
189
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
190
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
191
|
+
event: z.ZodLiteral<"entry.path_changed">;
|
|
192
|
+
data: z.ZodObject<{
|
|
193
|
+
entryId: z.ZodString;
|
|
194
|
+
previousPath: z.ZodString;
|
|
195
|
+
path: z.ZodString;
|
|
196
|
+
contentType: z.ZodString;
|
|
197
|
+
}, z.core.$strict>;
|
|
198
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
199
|
+
timestamp: z.ZodString;
|
|
200
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
201
|
+
siteId: z.ZodString;
|
|
202
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
203
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
204
|
+
event: z.ZodLiteral<"navigation.updated">;
|
|
205
|
+
data: z.ZodObject<{
|
|
206
|
+
menuId: z.ZodOptional<z.ZodString>;
|
|
207
|
+
}, z.core.$strict>;
|
|
208
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
209
|
+
timestamp: z.ZodString;
|
|
210
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
211
|
+
siteId: z.ZodString;
|
|
212
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
213
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
214
|
+
event: z.ZodLiteral<"theme.updated">;
|
|
215
|
+
data: z.ZodObject<{}, z.core.$strict>;
|
|
216
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
217
|
+
timestamp: z.ZodString;
|
|
218
|
+
dispatchId: z.ZodOptional<z.ZodString>;
|
|
219
|
+
siteId: z.ZodString;
|
|
220
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
221
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
222
|
+
event: z.ZodLiteral<"site.settings_updated">;
|
|
223
|
+
data: z.ZodObject<{}, z.core.$strict>;
|
|
224
|
+
}, z.core.$strip>], "event">;
|
|
225
|
+
export type WebhookPayload = z.infer<typeof WebhookPayloadSchema>;
|
|
226
|
+
export type WebhookPayloadForEvent<E extends WebhookEvent> = Extract<WebhookPayload, {
|
|
227
|
+
event: E;
|
|
228
|
+
}>;
|
|
229
|
+
export type WebhookDispatchInputForEvent<E extends WebhookEvent> = Readonly<{
|
|
230
|
+
siteId: string;
|
|
231
|
+
event: E;
|
|
232
|
+
data: WebhookDataForEvent<E>;
|
|
233
|
+
tags: readonly string[];
|
|
234
|
+
paths?: readonly RevalidationPath[];
|
|
235
|
+
}>;
|
|
236
|
+
export type WebhookDispatchInput = {
|
|
237
|
+
[E in WebhookEvent]: WebhookDispatchInputForEvent<E>;
|
|
238
|
+
}[WebhookEvent];
|
|
239
|
+
export {};
|
|
@@ -170,6 +170,12 @@ export type RepeaterFieldConfig = BaseFieldConfig & ({
|
|
|
170
170
|
* Useful for complex constraints that aren't expressible via field-level config.
|
|
171
171
|
*/
|
|
172
172
|
validation?: ZodTypeAny;
|
|
173
|
+
/** Whether compact row summaries should be rendered. Defaults to true. */
|
|
174
|
+
showSummary?: boolean;
|
|
175
|
+
/** Optional ordered field IDs to use for compact row summaries. */
|
|
176
|
+
summaryFields?: string[];
|
|
177
|
+
/** Optional positive max character count for compact row summaries. */
|
|
178
|
+
summaryMaxChars?: number;
|
|
173
179
|
} & ({
|
|
174
180
|
type: 'repeater';
|
|
175
181
|
itemLabel?: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Repeater list - DnD context wrapper for sortable items
|
|
3
3
|
*/
|
|
4
|
-
import type
|
|
4
|
+
import { type ReactNode, type RefObject } from 'react';
|
|
5
5
|
import type { RepeaterFieldConfig, FieldConfig } from '../../../fields/types';
|
|
6
6
|
import type { FormBackend } from '../../../backend/types';
|
|
7
7
|
export interface RepeaterListProps {
|
|
@@ -15,5 +15,6 @@ export interface RepeaterListProps {
|
|
|
15
15
|
onMove: (from: number, to: number) => void;
|
|
16
16
|
onRemove: (index: number) => void;
|
|
17
17
|
renderChild: (field: FieldConfig, path: string) => ReactNode;
|
|
18
|
+
focusFallbackRef?: RefObject<HTMLButtonElement | null>;
|
|
18
19
|
}
|
|
19
|
-
export declare function RepeaterList({ config, backend, basePath, items, minItems, onMove, onRemove, renderChild, }: RepeaterListProps): ReactNode;
|
|
20
|
+
export declare function RepeaterList({ config, backend, basePath, items, minItems, onMove, onRemove, renderChild, focusFallbackRef, }: RepeaterListProps): ReactNode;
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Routes non-content item fields into a settings modal in the row header.
|
|
6
6
|
*/
|
|
7
|
-
import type { ReactNode } from 'react';
|
|
7
|
+
import type { ReactNode, Ref } from 'react';
|
|
8
8
|
import type { RepeaterFieldConfig, FieldConfig } from '../../../fields/types';
|
|
9
9
|
import type { FormBackend } from '../../../backend/types';
|
|
10
|
+
import type { RepeaterRowActionFocusTarget } from './RepeaterRowActions';
|
|
10
11
|
export interface RepeaterRowProps {
|
|
11
12
|
id: string;
|
|
12
13
|
index: number;
|
|
@@ -15,9 +16,11 @@ export interface RepeaterRowProps {
|
|
|
15
16
|
basePath: string;
|
|
16
17
|
itemsLength: number;
|
|
17
18
|
minItems: number;
|
|
18
|
-
|
|
19
|
+
containerWidth: number;
|
|
20
|
+
onMove: (from: number, to: number, focusTarget: RepeaterRowActionFocusTarget) => void;
|
|
19
21
|
onRemove: (index: number) => void;
|
|
20
22
|
renderChild: (field: FieldConfig, path: string) => ReactNode;
|
|
21
23
|
canDrag: boolean;
|
|
24
|
+
actionControlRefs?: Partial<Record<RepeaterRowActionFocusTarget, Ref<HTMLButtonElement>>>;
|
|
22
25
|
}
|
|
23
|
-
export declare function RepeaterRow({ id, index, config, backend, basePath, itemsLength, minItems, onMove, onRemove, renderChild, canDrag, }: RepeaterRowProps): ReactNode;
|
|
26
|
+
export declare function RepeaterRow({ id, index, config, backend, basePath, itemsLength, minItems, containerWidth, onMove, onRemove, renderChild, canDrag, actionControlRefs, }: RepeaterRowProps): ReactNode;
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Repeater row action
|
|
2
|
+
* Repeater row action controls - direct reorder buttons plus compact menu.
|
|
3
3
|
*/
|
|
4
|
-
import type { ReactNode } from 'react';
|
|
4
|
+
import type { ReactNode, Ref } from 'react';
|
|
5
5
|
export interface RepeaterRowActionsProps {
|
|
6
6
|
index: number;
|
|
7
7
|
itemsLength: number;
|
|
8
8
|
minItems: number;
|
|
9
|
+
containerWidth?: number;
|
|
10
|
+
actionPresentation?: 'auto' | 'wide' | 'compact';
|
|
11
|
+
itemLabel: string;
|
|
9
12
|
onMoveUp: () => void;
|
|
10
13
|
onMoveDown: () => void;
|
|
11
14
|
onRemove: () => void;
|
|
15
|
+
actionControlRefs?: Partial<Record<RepeaterRowActionFocusTarget, Ref<HTMLButtonElement>>>;
|
|
12
16
|
showReorderActions?: boolean;
|
|
13
17
|
disableMoveUp?: boolean;
|
|
14
18
|
disableMoveDown?: boolean;
|
|
15
19
|
}
|
|
16
|
-
export
|
|
20
|
+
export type RepeaterRowActionFocusTarget = 'moveEarlier' | 'moveLater' | 'menu';
|
|
21
|
+
export declare function RepeaterRowActions({ index, itemsLength, minItems, containerWidth, actionPresentation, itemLabel, onMoveUp, onMoveDown, onRemove, actionControlRefs, showReorderActions, disableMoveUp, disableMoveDown, }: RepeaterRowActionsProps): ReactNode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { useRepeaterVisibility } from './useRepeaterVisibility';
|
|
2
2
|
export { useRepeaterRowErrors, type RowFieldError } from './useRepeaterRowErrors';
|
|
3
|
-
export { useResolvedItemLabel } from './useResolvedItemLabel';
|
|
3
|
+
export { useResolvedItemLabel, useResolvedRepeaterItemLabel, type ResolvedRepeaterItemLabel, } from './useResolvedItemLabel';
|
|
4
4
|
export { useLayoutGridCapacity } from './useLayoutGridCapacity';
|
|
5
5
|
export { useLinearRepeaterDnd, type LinearRepeaterSortingStrategyKind } from './useLinearRepeaterDnd';
|
|
6
6
|
export { useRepeaterPointerDragCapability } from './useRepeaterPointerDragCapability';
|
|
@@ -10,6 +10,7 @@ interface UseLinearRepeaterDndInput {
|
|
|
10
10
|
}
|
|
11
11
|
export interface UseLinearRepeaterDndResult {
|
|
12
12
|
containerRef: ReturnType<typeof useRepeaterPointerDragCapability>['containerRef'];
|
|
13
|
+
containerWidth: ReturnType<typeof useRepeaterPointerDragCapability>['containerWidth'];
|
|
13
14
|
breakpoint: ReturnType<typeof useRepeaterPointerDragCapability>['breakpoint'];
|
|
14
15
|
pointerDragCapability: ReturnType<typeof useRepeaterPointerDragCapability>['pointerDragCapability'];
|
|
15
16
|
canUsePointerDrag: boolean;
|
package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { resolveRepeaterGridBreakpointForWidth } from '../../../../../blocks/src
|
|
|
3
3
|
import { type RepeaterPointerDragCapability } from '../utils';
|
|
4
4
|
export interface UseRepeaterPointerDragCapabilityResult {
|
|
5
5
|
containerRef: RefObject<HTMLDivElement | null>;
|
|
6
|
+
containerWidth: number;
|
|
6
7
|
breakpoint: ReturnType<typeof resolveRepeaterGridBreakpointForWidth>;
|
|
7
8
|
pointerDragCapability: RepeaterPointerDragCapability;
|
|
8
9
|
canUsePointerDrag: boolean;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { RepeaterFieldConfig } from '../../../fields/types';
|
|
2
2
|
import type { FormBackend } from '../../../backend/types';
|
|
3
|
+
import { type RepeaterLabelSource } from '../utils';
|
|
4
|
+
export type ResolvedRepeaterItemLabel = {
|
|
5
|
+
label: string;
|
|
6
|
+
sourceFieldId?: string;
|
|
7
|
+
labelSource: RepeaterLabelSource;
|
|
8
|
+
};
|
|
3
9
|
/**
|
|
4
10
|
* Resolves a display label for a repeater item.
|
|
5
11
|
*
|
|
@@ -10,3 +16,4 @@ import type { FormBackend } from '../../../backend/types';
|
|
|
10
16
|
* is returned.
|
|
11
17
|
*/
|
|
12
18
|
export declare function useResolvedItemLabel(config: RepeaterFieldConfig, index: number, backend: FormBackend, basePath: string): string;
|
|
19
|
+
export declare function useResolvedRepeaterItemLabel(config: RepeaterFieldConfig, index: number, backend: FormBackend, basePath: string): ResolvedRepeaterItemLabel;
|
|
@@ -4,4 +4,5 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { RepeaterFieldConfig } from '../../../fields/types';
|
|
6
6
|
import type { FormBackend } from '../../../backend/types';
|
|
7
|
+
export declare const DEFAULT_REPEATER_SUMMARY_MAX_CHARS = 96;
|
|
7
8
|
export declare function buildSummary(field: RepeaterFieldConfig, index: number, backend: FormBackend, basePath: string): string;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { createDefaultItem } from './createDefaultItem';
|
|
2
2
|
export { buildItemLabel } from './buildItemLabel';
|
|
3
|
-
export { buildSummary } from './buildSummary';
|
|
3
|
+
export { buildSummary, DEFAULT_REPEATER_SUMMARY_MAX_CHARS, } from './buildSummary';
|
|
4
4
|
export { getRepeaterItemFields } from './getRepeaterItemFields';
|
|
5
5
|
export { getRepeaterItemFieldGroups } from './getRepeaterItemFieldGroups';
|
|
6
|
+
export { resolveRepeaterLabelSource, type RepeaterLabelSource, } from './repeaterLabelSource';
|
|
7
|
+
export { REPEATER_ROW_COMPACT_ACTIONS_WIDTH, isRepeaterRowActionDisabled, resolveRepeaterRowActionRenderPlan, type RepeaterRowActionAvailability, type RepeaterRowActionId, type RepeaterRowActionMenu, type RepeaterRowMenuAction, type RepeaterRowActionPresentation, type RepeaterRowActionRenderPlan, } from './repeaterRowActionsDomain';
|
|
6
8
|
export { areLayoutGridCapacityContextsEqual } from './layoutGridCapacityContext';
|
|
7
9
|
export { handleLinearRepeaterDragEnd, resolveLinearRepeaterMoveIntent, resolveRepeaterPointerDragCapability, type LinearRepeaterDragEndEvent, type LinearRepeaterMoveIntent, type RepeaterPointerDragCapability, } from './repeaterDndDomain';
|
|
8
10
|
export { resolveRepeaterPresentation } from './repeaterPresentation';
|
|
@@ -5,7 +5,7 @@ export type RepeaterPointerDragCapability = {
|
|
|
5
5
|
} | {
|
|
6
6
|
kind: 'disabled';
|
|
7
7
|
breakpoint: RepeaterGridBreakpoint;
|
|
8
|
-
reason: 'insufficient-items' | '
|
|
8
|
+
reason: 'insufficient-items' | 'coarse-pointer';
|
|
9
9
|
};
|
|
10
10
|
export type LinearRepeaterMoveIntent = {
|
|
11
11
|
kind: 'none';
|