@riverbankcms/sdk 0.77.1 → 0.78.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +114 -43
- package/dist/{PreviewEditorSidebar-DVUG7GK4.mjs → PreviewEditorSidebar-4DXLYX2V.mjs} +4962 -4885
- package/dist/{PreviewEditorUI-P7RN4CDS.mjs → PreviewEditorUI-CS5P4N3P.mjs} +4 -4
- package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +190 -154
- package/dist/_dts/api/src/accessAdmin.d.ts +5 -0
- package/dist/_dts/api/src/billing.d.ts +3 -26
- package/dist/_dts/api/src/bookingVerticals.d.ts +4 -0
- package/dist/_dts/api/src/content-editor.d.ts +1 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
- package/dist/_dts/api/src/demoDashboardMutationSurfaces.d.ts +46 -0
- package/dist/_dts/api/src/endpoints.d.ts +17 -0
- package/dist/_dts/api/src/index.d.ts +16 -4
- package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +87 -0
- package/dist/_dts/api/src/navigation/dashboardDemoNav.d.ts +5 -0
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +45 -0
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +42 -0
- package/dist/_dts/api/src/navigation/dashboardTeamMemberNav.d.ts +24 -0
- package/dist/_dts/api/src/navigation/linkUrlType.d.ts +3 -0
- package/dist/_dts/api/src/navigation.d.ts +12 -0
- package/dist/_dts/api/src/public/types.d.ts +1 -1
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +55 -26
- 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 +7 -1
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +10 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +15 -19
- package/dist/_dts/api/src/staffAccess.d.ts +79 -0
- package/dist/_dts/api/src/types.d.ts +14 -27
- package/dist/_dts/api/src/workflows/automaticWorkflowTriggers.d.ts +21 -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/client/site-chrome.d.ts +4 -1
- package/dist/_dts/blocks/src/index.d.ts +1 -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/courses/shared/schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +885 -289
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +68 -21
- 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/data/index.d.ts +5 -3
- package/dist/_dts/blocks/src/system/data/previewResolvedDataState.d.ts +45 -0
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +2 -1
- package/dist/_dts/blocks/src/system/fragments/library/faqAccordion.d.ts +5 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +193 -29
- package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +10 -0
- package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +43 -8
- package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +8 -7
- 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/events/shared/EventCompactRow.d.ts +1 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-cart-discount-ui.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +76 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout.state.d.ts +1 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce-store.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce.shared.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-discount-apply.state.d.ts +52 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +2 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/useDiscountApply.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +54 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
- package/dist/_dts/content-editor/src/contentTypeEditorContentState.d.ts +26 -0
- package/dist/_dts/content-editor/src/definitions/factory.d.ts +75 -0
- package/dist/_dts/content-editor/src/entryWorkflows.d.ts +2 -0
- package/dist/_dts/content-editor/src/footerBlocksEditorState.d.ts +76 -0
- package/dist/_dts/content-editor/src/index.d.ts +6 -1
- package/dist/_dts/content-editor/src/pageWorkflowContent.d.ts +29 -0
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -2
- package/dist/_dts/content-model/src/content-types/schema.d.ts +17 -3
- package/dist/_dts/content-model/src/index.d.ts +1 -0
- package/dist/_dts/content-model/src/routeTemplate.d.ts +4 -0
- 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/editorState.d.ts +25 -0
- 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 +108 -85
- package/dist/_dts/core/src/csv-cells.d.ts +10 -0
- package/dist/_dts/core/src/csv-date-filter.d.ts +27 -0
- package/dist/_dts/core/src/csv-escape.d.ts +1 -0
- package/dist/_dts/core/src/csv-filename.d.ts +18 -0
- package/dist/_dts/core/src/csv-render.d.ts +4 -0
- package/dist/_dts/core/src/csv-types.d.ts +116 -0
- package/dist/_dts/core/src/currency-format.d.ts +4 -0
- package/dist/_dts/core/src/demo-capability-policy.d.ts +29 -0
- package/dist/_dts/core/src/demo-claim-access.d.ts +14 -0
- package/dist/_dts/core/src/demo-lifecycle-status.d.ts +11 -0
- package/dist/_dts/core/src/demo-runtime.d.ts +47 -0
- package/dist/_dts/core/src/duration.d.ts +14 -0
- package/dist/_dts/core/src/editor-state.d.ts +7 -7
- package/dist/_dts/core/src/email-format.d.ts +10 -0
- package/dist/_dts/core/src/field-errors.d.ts +1 -0
- package/dist/_dts/core/src/form-submission-preview.d.ts +24 -0
- package/dist/_dts/core/src/index.d.ts +20 -0
- package/dist/_dts/core/src/number-input.d.ts +22 -0
- package/dist/_dts/core/src/participants.d.ts +2 -2
- package/dist/_dts/core/src/public-url-validation.d.ts +12 -0
- package/dist/_dts/core/src/slug.d.ts +39 -0
- package/dist/_dts/core/src/string.d.ts +19 -0
- package/dist/_dts/core/src/uuid.d.ts +6 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +11 -0
- package/dist/_dts/db/src/schemas/forms.d.ts +50 -50
- package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
- package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +34 -0
- package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +24 -0
- package/dist/_dts/media-core/src/canonicalCropReview.d.ts +66 -0
- package/dist/_dts/media-core/src/classifyAllPlanning.d.ts +48 -0
- package/dist/_dts/media-core/src/filename.d.ts +1 -0
- package/dist/_dts/media-core/src/index.d.ts +10 -0
- package/dist/_dts/media-core/src/mediaAssetUsageStatus.d.ts +47 -0
- package/dist/_dts/media-core/src/mediaSettingsState.d.ts +3 -0
- package/dist/_dts/media-core/src/portableMediaReferences.d.ts +38 -0
- package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +28 -0
- package/dist/_dts/media-core/src/videoAssetRepair.d.ts +38 -0
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -1
- 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-editor/src/mediaEditorDebug.d.ts +1 -0
- package/dist/_dts/path-utils/src/index.d.ts +8 -0
- package/dist/_dts/path-utils/src/redirectPaths.d.ts +26 -0
- package/dist/_dts/path-utils/src/safeAppPath.d.ts +26 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/previewDocumentFrame.d.ts +31 -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/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/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/client/error.d.ts +3 -0
- package/dist/_dts/sdk/src/client/index.d.ts +2 -2
- package/dist/_dts/sdk/src/client/management/types.d.ts +6 -0
- package/dist/_dts/sdk/src/client/types.d.ts +39 -21
- package/dist/_dts/sdk/src/config/content-types.d.ts +7 -0
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +2 -0
- package/dist/_dts/sdk/src/index.d.ts +2 -2
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +16 -16
- package/dist/_dts/sdk/src/next/content-load-failure.d.ts +51 -0
- package/dist/_dts/sdk/src/next/index.d.ts +2 -1
- package/dist/_dts/sdk/src/next/types.d.ts +19 -0
- package/dist/_dts/sdk/src/portal/redirects.d.ts +1 -1
- package/dist/_dts/sdk/src/routing/index.d.ts +3 -2
- package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +71 -6
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +15 -12
- package/dist/_dts/site-commands/src/index.d.ts +1 -0
- package/dist/_dts/site-commands/src/pagePaths.d.ts +6 -0
- package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +26 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -0
- package/dist/_dts/theme-core/src/blocks/vars/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/fonts/uploadFormat.d.ts +44 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/index.d.ts +3 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -24
- package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +6 -1
- package/dist/_dts/theme-core/src/navigation/types.d.ts +12 -0
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +7 -0
- package/dist/_dts/theme-core/src/schema.d.ts +64 -18
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +214 -34
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -2
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +214 -34
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +24 -0
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +31 -3
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +33 -1
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -1
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +27 -2
- package/dist/_dts/theme-core/src/siteChrome.d.ts +17 -34
- package/dist/_dts/theme-core/src/siteChromeOverlayClearance.d.ts +22 -0
- package/dist/_dts/theme-core/src/siteChromePlacement.d.ts +22 -0
- package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +32 -0
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
- package/dist/{altcha-B5XGSXP5.mjs → altcha-EKUEQ4RP.mjs} +1 -1
- package/dist/{chunk-IENWFSLO.mjs → chunk-4QEGTLK6.mjs} +1 -1
- package/dist/{chunk-ZYEJLCTN.mjs → chunk-6HYXHRAI.mjs} +5 -5
- package/dist/{chunk-VX7B5VAC.mjs → chunk-CR5HKAGU.mjs} +32 -5
- package/dist/{chunk-KWJPDZH2.mjs → chunk-MCRQMPET.mjs} +3793 -1201
- package/dist/{chunk-6SMUFTXD.mjs → chunk-OKMBEAXY.mjs} +1 -1
- package/dist/{chunk-XGB3TDIC.mjs → chunk-R7POPVJR.mjs} +2 -8
- package/dist/{chunk-2SPENC5M.mjs → chunk-RGTOD4AJ.mjs} +242 -57
- package/dist/cli/index.mjs +2361 -668
- 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-preview-mode.md +68 -2
- package/dist/client/{accordion-RZMQSYLR.mjs → accordion-PLYNJIIM.mjs} +2 -2
- package/dist/client/analytics.mjs +1 -1
- package/dist/client/{bookingForm-NF4ASVNV.mjs → bookingForm-BXAP6AO7.mjs} +76 -72
- package/dist/client/bookings.mjs +3765 -310
- package/dist/client/{carousel-LDX47ZIK.mjs → carousel-TRBXDHGF.mjs} +3 -4
- package/dist/client/{cart-RGXDS5F4.mjs → cart-Z7H3HJRS.mjs} +8 -8
- package/dist/client/{checkout-P7WWSNNY.mjs → checkout-WAFCUBIX.mjs} +8 -8
- package/dist/client/{chunk-II7O4XN3.mjs → chunk-75OUS5MT.mjs} +2 -2
- package/dist/client/{chunk-PMAIXMAB.mjs → chunk-AUJ5DBZJ.mjs} +42 -37
- package/dist/client/{chunk-TQ5MSPDX.mjs → chunk-CE7IBGVW.mjs} +3 -1
- package/dist/client/{chunk-E2TDNXCL.mjs → chunk-CWGTG37I.mjs} +2 -1
- package/dist/client/{chunk-UFSWADAO.mjs → chunk-DNRGY432.mjs} +6 -67
- package/dist/client/{chunk-GMVTOKYG.mjs → chunk-FUXW6VW2.mjs} +512 -66
- package/dist/client/{chunk-R56FQ3RR.mjs → chunk-JGXPTEI2.mjs} +322 -106
- package/dist/client/{chunk-L3DNHIJX.mjs → chunk-JRDUHZCT.mjs} +53 -53
- package/dist/client/{chunk-M3L3KYYR.mjs → chunk-UDNSI5PY.mjs} +12 -0
- package/dist/client/{chunk-JEZECJ3W.mjs → chunk-UVQEJJTN.mjs} +129 -3
- package/dist/client/{chunk-F7LHOKEH.mjs → chunk-XSV6KW4D.mjs} +1 -1
- package/dist/client/chunk-ZFHRN6W2.mjs +66 -0
- package/dist/client/{chunk-JNC7CGHX.mjs → chunk-ZI3LLBPZ.mjs} +3 -3
- package/dist/client/client.mjs +7577 -4979
- package/dist/client/{courseRegistration-7F65K5ZR.mjs → courseRegistration-AHFQHWIJ.mjs} +19 -16
- package/dist/client/{eventCalendar-GLSC5KTL.mjs → eventCalendar-LDXTV5R7.mjs} +10 -10
- package/dist/client/{eventCombined-ZHK4WKUR.mjs → eventCombined-A4JGTNJO.mjs} +10 -10
- package/dist/client/{eventDetails-E3PJYBIN.mjs → eventDetails-4YXTZ7EG.mjs} +10 -10
- package/dist/client/{eventListing-EMS3WC3E.mjs → eventListing-P72TPFFM.mjs} +10 -10
- package/dist/client/{eventRegistration-NZOTVNPI.mjs → eventRegistration-LSYJHGMT.mjs} +10 -10
- package/dist/client/{form-ETFZFATW.mjs → form-AOPYOKOW.mjs} +10 -7
- package/dist/client/{headerSection-4LBP7ULT.mjs → headerSection-5TFYDFVQ.mjs} +3 -3
- package/dist/client/hooks.mjs +1119 -327
- package/dist/client/{locationMap-5M655YSJ.mjs → locationMap-QSZ3ZVAZ.mjs} +3 -3
- package/dist/client/{newsletterForm-QOUYW44O.mjs → newsletterForm-KTRHZY52.mjs} +3 -3
- package/dist/client/{productDetail-O4DOCWQG.mjs → productDetail-N4E775RG.mjs} +8 -8
- package/dist/client/{productList-A5RO5WIS.mjs → productList-UGUQ2S45.mjs} +8 -8
- package/dist/client/rendering/client.mjs +7262 -2775
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +6964 -4587
- package/dist/client/{shop-L4MZH4I2.mjs → shop-VHSZEEQ2.mjs} +8 -8
- package/dist/preview-next/before-render.mjs +18 -1
- package/dist/preview-next/client/runtime.mjs +6 -6
- package/dist/preview-next/editor-chrome.css +10 -0
- package/dist/preview-next/middleware.mjs +18 -1
- package/dist/preview-next/tailwind-sources.css +1 -0
- package/dist/sdk-runtime-WHPJEF5G.mjs +8 -0
- package/dist/server/components.mjs +2736 -1316
- package/dist/server/config-template-validation.mjs +221 -15
- package/dist/server/config-validation.mjs +1346 -550
- package/dist/server/config.mjs +1346 -550
- package/dist/server/data.mjs +1118 -326
- package/dist/server/index.mjs +514 -251
- package/dist/server/next.mjs +4446 -2444
- package/dist/server/page-converter.mjs +631 -155
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2743 -1323
- package/dist/server/rendering.mjs +2764 -1328
- package/dist/server/routing.mjs +1860 -590
- package/dist/server/server.mjs +1622 -575
- package/dist/server/theme-bridge.mjs +3151 -131
- package/dist/server/theme.mjs +10 -1
- package/dist/styles/index.css +488 -48
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/DiscountCodeSection.d.ts +0 -7
- package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +0 -4
- package/dist/client/chunk-OJPZEZU2.mjs +0 -31
- package/dist/client/chunk-RTZ3JKKX.mjs +0 -178
- package/dist/sdk-runtime-6UT2S7KZ.mjs +0 -8
|
@@ -30,6 +30,28 @@ export type PublicEventLoaderParams = {
|
|
|
30
30
|
export type PublicEventScheduleScope = "any" | "recurring" | "oneOff";
|
|
31
31
|
export type PublicEventSurfaceScope = "all" | "regularClassSchedule" | "specialDatedEvents" | "custom";
|
|
32
32
|
export type PublicEventDetailsLoaderParams = Omit<PublicEventLoaderParams, "detailLevel" | "readProfile">;
|
|
33
|
+
type PublicDiscountContext = {
|
|
34
|
+
type: "event";
|
|
35
|
+
eventSeriesId: string;
|
|
36
|
+
eventCategoryId: string | null;
|
|
37
|
+
ticketsCount?: number;
|
|
38
|
+
} | {
|
|
39
|
+
type: "appointment";
|
|
40
|
+
serviceId: string;
|
|
41
|
+
} | {
|
|
42
|
+
type: "course";
|
|
43
|
+
courseId: string;
|
|
44
|
+
} | {
|
|
45
|
+
type: "pass";
|
|
46
|
+
passId: string;
|
|
47
|
+
} | {
|
|
48
|
+
type: "membership";
|
|
49
|
+
membershipId: string;
|
|
50
|
+
} | {
|
|
51
|
+
type: "product";
|
|
52
|
+
productId: string;
|
|
53
|
+
productCategoryId: string | null;
|
|
54
|
+
};
|
|
33
55
|
export type PublicExperienceAPIEndpoints = {
|
|
34
56
|
getPublicBookingCalendarFeedIcs: APIEndpoint<never, {
|
|
35
57
|
siteId: string;
|
|
@@ -483,11 +505,14 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
483
505
|
}, {
|
|
484
506
|
siteId: string;
|
|
485
507
|
}, {
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
508
|
+
type: "redirect";
|
|
509
|
+
checkoutUrl: string;
|
|
510
|
+
sessionId: string;
|
|
511
|
+
} | {
|
|
512
|
+
type: "bypassed";
|
|
513
|
+
sessionId: null;
|
|
489
514
|
} | {
|
|
490
|
-
|
|
515
|
+
type: "duplicate_membership_warning";
|
|
491
516
|
message: string;
|
|
492
517
|
existingMembership: {
|
|
493
518
|
id: string;
|
|
@@ -559,28 +584,7 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
559
584
|
}>;
|
|
560
585
|
getDiscountsAvailable: APIEndpoint<{
|
|
561
586
|
subtotalCents?: number;
|
|
562
|
-
context:
|
|
563
|
-
type: "event";
|
|
564
|
-
eventSeriesId: string;
|
|
565
|
-
eventCategoryId: string | null;
|
|
566
|
-
ticketsCount?: number;
|
|
567
|
-
} | {
|
|
568
|
-
type: "appointment";
|
|
569
|
-
serviceId: string;
|
|
570
|
-
} | {
|
|
571
|
-
type: "course";
|
|
572
|
-
courseId: string;
|
|
573
|
-
} | {
|
|
574
|
-
type: "pass";
|
|
575
|
-
passId: string;
|
|
576
|
-
} | {
|
|
577
|
-
type: "membership";
|
|
578
|
-
membershipId: string;
|
|
579
|
-
} | {
|
|
580
|
-
type: "product";
|
|
581
|
-
productId: string;
|
|
582
|
-
productCategoryId: string | null;
|
|
583
|
-
};
|
|
587
|
+
context: PublicDiscountContext;
|
|
584
588
|
}, {
|
|
585
589
|
siteId: string;
|
|
586
590
|
}, {
|
|
@@ -588,6 +592,30 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
588
592
|
manualCodeEntryAllowed: boolean;
|
|
589
593
|
autoAppliedDiscount: AutoAppliedDiscountPreview | null;
|
|
590
594
|
}>;
|
|
595
|
+
applyDiscountCode: APIEndpoint<{
|
|
596
|
+
discountCode: string;
|
|
597
|
+
customerEmail: string;
|
|
598
|
+
lines: Array<{
|
|
599
|
+
context: PublicDiscountContext;
|
|
600
|
+
subtotalCents: number;
|
|
601
|
+
currency: string;
|
|
602
|
+
}>;
|
|
603
|
+
}, {
|
|
604
|
+
siteId: string;
|
|
605
|
+
}, {
|
|
606
|
+
type: "applied";
|
|
607
|
+
code: string;
|
|
608
|
+
publicLabel: string;
|
|
609
|
+
description: string | null;
|
|
610
|
+
discountCents: number;
|
|
611
|
+
subtotalCents: number;
|
|
612
|
+
totalAfterDiscountCents: number;
|
|
613
|
+
currency: string;
|
|
614
|
+
} | {
|
|
615
|
+
type: "rejected";
|
|
616
|
+
reason: "invalid_or_not_applicable" | "unavailable" | "unknown";
|
|
617
|
+
message: string;
|
|
618
|
+
}>;
|
|
591
619
|
batchBlockLoaders: APIEndpoint<{
|
|
592
620
|
requests: Array<{
|
|
593
621
|
id: string;
|
|
@@ -854,3 +882,4 @@ export type PublicExperienceAPIEndpoints = {
|
|
|
854
882
|
token: string;
|
|
855
883
|
}, string>;
|
|
856
884
|
};
|
|
885
|
+
export {};
|
|
@@ -2,7 +2,7 @@ import type { SupabaseClient } from "@supabase/supabase-js";
|
|
|
2
2
|
import type { AuthHeaders } from "./token";
|
|
3
3
|
import type * as ApiTypes from "./types";
|
|
4
4
|
import type { ApiErrorCode, ApiResult } from "./common/envelope";
|
|
5
|
-
export type {
|
|
5
|
+
export type { APICallParamsStrict, APIEndpoints, GetEndpoint, ApiAuthRequirement, ApiResponseKind, HTTPMethod, } from "./types";
|
|
6
6
|
/**
|
|
7
7
|
* Set the SDK version to be included in API request headers
|
|
8
8
|
* Called by the SDK during initialization
|
|
@@ -12,22 +12,14 @@ export declare function setSdkVersion(version: string): void;
|
|
|
12
12
|
* Get the currently set SDK version
|
|
13
13
|
*/
|
|
14
14
|
export declare function getSdkVersion(): string | undefined;
|
|
15
|
-
type
|
|
15
|
+
type ApiCallParams<E extends keyof ApiTypes.APIEndpoints> = ApiTypes.APICallParamsStrict<E>;
|
|
16
16
|
type EndpointResponse<E extends keyof ApiTypes.APIEndpoints> = ApiTypes.APIEndpoints[E]['response'];
|
|
17
17
|
type ApiResponseFor<E extends keyof ApiTypes.APIEndpoints> = EndpointResponse<E> extends undefined ? void : NonNullable<EndpointResponse<E>>;
|
|
18
18
|
/**
|
|
19
19
|
* API client that returns typed envelope responses.
|
|
20
20
|
* Consumers must use isApiSuccess/isApiError type guards or unwrapResponse helper.
|
|
21
21
|
*/
|
|
22
|
-
export type ApiClient = <E extends keyof ApiTypes.APIEndpoints>(params:
|
|
23
|
-
/**
|
|
24
|
-
* Opt-in strict client type for new code.
|
|
25
|
-
*
|
|
26
|
-
* Use this when you want the compiler to force `APICallParamsStrict` at call sites.
|
|
27
|
-
* Existing clients (createInternalAPIClient, createBearerAPIClient, etc.) are still
|
|
28
|
-
* runtime-compatible and can be annotated as ApiClientStrict.
|
|
29
|
-
*/
|
|
30
|
-
export type ApiClientStrict = <E extends keyof ApiTypes.APIEndpoints>(params: ApiTypes.APICallParamsStrict<E>) => Promise<ApiResult<ApiResponseFor<E>>>;
|
|
22
|
+
export type ApiClient = <E extends keyof ApiTypes.APIEndpoints>(params: ApiCallParams<E>) => Promise<ApiResult<ApiResponseFor<E>>>;
|
|
31
23
|
export interface ApiRequestErrorOptions {
|
|
32
24
|
endpoint: keyof ApiTypes.APIEndpoints;
|
|
33
25
|
status: number;
|
|
@@ -196,6 +196,7 @@ export declare const dashboardConfigSchema: z.ZodObject<{
|
|
|
196
196
|
*/
|
|
197
197
|
export declare const fieldDefinitionInputSchema: z.ZodType<FieldDefinitionInput>;
|
|
198
198
|
export declare const nodeDefinitionSchema: z.ZodType<NodeDefinition>;
|
|
199
|
+
export declare const loaderFallbackScalarSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
|
|
199
200
|
export declare const sdkCustomBlockInputSchema: z.ZodType<SdkCustomBlockInput>;
|
|
200
201
|
export declare const sdkBlockFieldExtensionInputSchema: z.ZodType<SdkBlockFieldExtensionInput>;
|
|
201
202
|
export declare const sdkBlockFieldExtensionsInputSchema: z.ZodType<SdkBlockFieldExtensionsInputMap>;
|
|
@@ -75,6 +75,9 @@ export interface SdkContentTypeTemplateConfig {
|
|
|
75
75
|
export interface SdkContentTypeConfig {
|
|
76
76
|
key: string;
|
|
77
77
|
fields: unknown[];
|
|
78
|
+
ordering?: {
|
|
79
|
+
mode?: "default" | "manual";
|
|
80
|
+
};
|
|
78
81
|
template?: SdkContentTypeTemplateConfig | null;
|
|
79
82
|
}
|
|
80
83
|
export interface SdkContentConfig {
|
|
@@ -370,7 +373,9 @@ export interface SdkPullSettings {
|
|
|
370
373
|
export interface SdkPullSettingsResponse {
|
|
371
374
|
settings: SdkPullSettings;
|
|
372
375
|
warnings?: string[];
|
|
373
|
-
meta: SdkPullMeta
|
|
376
|
+
meta: SdkPullMeta & {
|
|
377
|
+
updatedAt: string | null;
|
|
378
|
+
};
|
|
374
379
|
}
|
|
375
380
|
export interface SdkPullFormField {
|
|
376
381
|
id: string;
|
|
@@ -633,6 +638,7 @@ export interface SdkManagementEntry {
|
|
|
633
638
|
createdAt: string;
|
|
634
639
|
updatedAt: string;
|
|
635
640
|
publishedAt: string | null;
|
|
641
|
+
manualOrder: number;
|
|
636
642
|
}
|
|
637
643
|
export type SdkManagementForm = SdkPullForm & {
|
|
638
644
|
id: string;
|
|
@@ -134,6 +134,16 @@ export type SiteManagementAPIEndpoints = {
|
|
|
134
134
|
entries: ContentEntrySummary[];
|
|
135
135
|
contentType: SerializedContentTypeSummary;
|
|
136
136
|
}>;
|
|
137
|
+
reorderContentEntries: APIEndpoint<{
|
|
138
|
+
orderedEntryIds: string[];
|
|
139
|
+
orderToken: string;
|
|
140
|
+
}, {
|
|
141
|
+
siteId: string;
|
|
142
|
+
type: string;
|
|
143
|
+
}, {
|
|
144
|
+
entries: ContentEntrySummary[];
|
|
145
|
+
orderToken: string;
|
|
146
|
+
}>;
|
|
137
147
|
getContentTemplate: APIEndpoint<never, {
|
|
138
148
|
siteId: string;
|
|
139
149
|
type: string;
|
|
@@ -5,7 +5,7 @@ import type { PageDesignEditorReadModel, PageDesignIntent, AppearancePresetId, B
|
|
|
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';
|
|
@@ -181,7 +181,7 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
181
181
|
type: string;
|
|
182
182
|
limit?: string;
|
|
183
183
|
offset?: string;
|
|
184
|
-
order?: 'published_at.asc' | 'published_at.desc' | 'title.asc' | 'title.desc' | 'updated_at.asc' | 'updated_at.desc';
|
|
184
|
+
order?: 'published_at.asc' | 'published_at.desc' | 'title.asc' | 'title.desc' | 'manual.asc' | 'updated_at.asc' | 'updated_at.desc';
|
|
185
185
|
stage?: ContentEntryListStage;
|
|
186
186
|
meta?: string;
|
|
187
187
|
mode?: 'manual';
|
|
@@ -337,26 +337,24 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
337
337
|
}>;
|
|
338
338
|
}>;
|
|
339
339
|
createInstagramZipUploadUrl: APIEndpoint<CreateInstagramZipUploadUrlRequest, never, CreateInstagramZipUploadUrlResponse>;
|
|
340
|
-
getAnalyticsReport: APIEndpoint<
|
|
341
|
-
siteId: string;
|
|
342
|
-
} & AnalyticsReportFilters, AnalyticsReportResponse>;
|
|
340
|
+
getAnalyticsReport: APIEndpoint<never, AnalyticsReportQuery, AnalyticsReportResponse>;
|
|
343
341
|
createMediaAsset: APIEndpoint<CreateMediaAssetBody, undefined, MediaAssetResponse>;
|
|
344
|
-
mediaList: APIEndpoint<{
|
|
342
|
+
mediaList: APIEndpoint<never, {
|
|
345
343
|
siteId: string;
|
|
346
344
|
q?: string;
|
|
347
345
|
limit?: number;
|
|
348
346
|
offset?: number;
|
|
349
347
|
labels?: string;
|
|
350
348
|
fileFilter?: MediaAssetFileFilterContract;
|
|
351
|
-
},
|
|
352
|
-
mediaProductFileList: APIEndpoint<{
|
|
349
|
+
}, ListMediaAssetsResult>;
|
|
350
|
+
mediaProductFileList: APIEndpoint<never, {
|
|
353
351
|
siteId: string;
|
|
354
352
|
q?: string;
|
|
355
353
|
limit?: number;
|
|
356
354
|
offset?: number;
|
|
357
355
|
labels?: string;
|
|
358
356
|
fileFilter?: MediaAssetFileFilterContract;
|
|
359
|
-
},
|
|
357
|
+
}, ListMediaAssetsResult>;
|
|
360
358
|
mediaGet: APIEndpoint<never, {
|
|
361
359
|
assetId: string;
|
|
362
360
|
}, MediaAssetWithLabels>;
|
|
@@ -544,17 +542,15 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
544
542
|
siteId: string;
|
|
545
543
|
pageId: string;
|
|
546
544
|
}, ApplyPageDesignEditorActionResponse>;
|
|
547
|
-
getContentByPath: APIEndpoint<{
|
|
545
|
+
getContentByPath: APIEndpoint<never, {
|
|
546
|
+
siteId: string;
|
|
548
547
|
path: string;
|
|
549
548
|
preview?: boolean;
|
|
550
|
-
}, {
|
|
551
|
-
siteId: string;
|
|
552
549
|
}, SdkRuntimeContentByPathResponse>;
|
|
553
|
-
getPageByPath: APIEndpoint<{
|
|
550
|
+
getPageByPath: APIEndpoint<never, {
|
|
551
|
+
siteId: string;
|
|
554
552
|
path: string;
|
|
555
553
|
preview?: boolean;
|
|
556
|
-
}, {
|
|
557
|
-
siteId: string;
|
|
558
554
|
}, SdkRuntimeContentByPathResponse>;
|
|
559
555
|
initSiteContent: APIEndpoint<{}, {
|
|
560
556
|
siteId: string;
|
|
@@ -563,9 +559,9 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
563
559
|
created: number;
|
|
564
560
|
totalBlocks: number;
|
|
565
561
|
}>;
|
|
566
|
-
getMediaLabels: APIEndpoint<{
|
|
562
|
+
getMediaLabels: APIEndpoint<never, {
|
|
567
563
|
siteId: string;
|
|
568
|
-
},
|
|
564
|
+
}, {
|
|
569
565
|
items: MediaLabelSummary[];
|
|
570
566
|
}>;
|
|
571
567
|
getMediaSettings: APIEndpoint<never, {
|
|
@@ -643,11 +639,11 @@ export type SiteRuntimeAPIEndpoints = {
|
|
|
643
639
|
summary?: MediaJobSummaryResponse;
|
|
644
640
|
}>;
|
|
645
641
|
}>;
|
|
646
|
-
mediaJobsStatus: APIEndpoint<{
|
|
642
|
+
mediaJobsStatus: APIEndpoint<never, {
|
|
647
643
|
siteId: string;
|
|
648
644
|
limit?: number;
|
|
649
645
|
statuses?: string;
|
|
650
|
-
},
|
|
646
|
+
}, {
|
|
651
647
|
jobs: MediaClassifyJobResponse[];
|
|
652
648
|
}>;
|
|
653
649
|
devToolsImpersonateAdmin: APIEndpoint<undefined, never, DevToolsImpersonationResponse>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type AppointmentResourceId, type StaffMemberId } from "../../core/src/index";
|
|
2
|
+
import { type StaffOperationalCapability } from "./accessAdmin";
|
|
3
|
+
import { type SiteRole } from "./siteMembers";
|
|
4
|
+
export type { StaffOperationalCapability };
|
|
5
|
+
export type StaffScope = Readonly<{
|
|
6
|
+
kind: "none";
|
|
7
|
+
}> | Readonly<{
|
|
8
|
+
kind: "staff_setup_required";
|
|
9
|
+
reason: "missing_staff_member" | "missing_capabilities";
|
|
10
|
+
}> | Readonly<{
|
|
11
|
+
kind: "appointments";
|
|
12
|
+
staffMemberId: StaffMemberId;
|
|
13
|
+
}> | Readonly<{
|
|
14
|
+
kind: "event_ops_only";
|
|
15
|
+
staffMemberId: StaffMemberId;
|
|
16
|
+
}> | Readonly<{
|
|
17
|
+
kind: "hybrid";
|
|
18
|
+
staffMemberId: StaffMemberId;
|
|
19
|
+
}>;
|
|
20
|
+
export type StaffMembershipInput = Readonly<{
|
|
21
|
+
id?: string;
|
|
22
|
+
membershipRole: SiteRole | null;
|
|
23
|
+
linkedStaffMemberId: string | null;
|
|
24
|
+
staffCapabilities?: readonly StaffOperationalCapability[] | null;
|
|
25
|
+
}>;
|
|
26
|
+
export type StaffSiteHomeDestination = Readonly<{
|
|
27
|
+
kind: "staff_appointments";
|
|
28
|
+
}> | Readonly<{
|
|
29
|
+
kind: "ops_site_events";
|
|
30
|
+
}> | Readonly<{
|
|
31
|
+
kind: "dashboard_site_home";
|
|
32
|
+
}>;
|
|
33
|
+
export type SiteListingDestination = StaffSiteHomeDestination | Readonly<{
|
|
34
|
+
kind: "dashboard_site_open";
|
|
35
|
+
}>;
|
|
36
|
+
export type SiteListingNavigationPlan = Readonly<{
|
|
37
|
+
canUseDashboard: boolean;
|
|
38
|
+
primaryDestination: SiteListingDestination;
|
|
39
|
+
manageDestination: SiteListingDestination;
|
|
40
|
+
manageLabel: "Manage" | "Appointments" | "Ops";
|
|
41
|
+
}>;
|
|
42
|
+
export type OpsLandingDestination = Readonly<{
|
|
43
|
+
kind: "ops_site_events";
|
|
44
|
+
siteId: string;
|
|
45
|
+
}> | Readonly<{
|
|
46
|
+
kind: "ops_home";
|
|
47
|
+
}>;
|
|
48
|
+
export type LinkedAppointmentIdentity = Readonly<{
|
|
49
|
+
kind: "none";
|
|
50
|
+
}> | Readonly<{
|
|
51
|
+
kind: "linked";
|
|
52
|
+
staffMemberId: StaffMemberId;
|
|
53
|
+
resourceId: AppointmentResourceId;
|
|
54
|
+
}>;
|
|
55
|
+
export declare function roleAtLeast(role: SiteRole, minimum: SiteRole): boolean;
|
|
56
|
+
export declare function roleAtLeastOrNone(role: SiteRole | null | undefined, minimum: SiteRole): boolean;
|
|
57
|
+
export declare function appointmentResourceIdFromStaffMemberId(staffMemberId: StaffMemberId): AppointmentResourceId;
|
|
58
|
+
export declare function deriveStaffScope(input: StaffMembershipInput): StaffScope;
|
|
59
|
+
export declare function isStaffScoped(scope: StaffScope): boolean;
|
|
60
|
+
export declare function isTeamMemberScope(scope: StaffScope): boolean;
|
|
61
|
+
export declare function hasAppointmentStaffAccess(scope: StaffScope): boolean;
|
|
62
|
+
export declare function hasEventOpsAccess(scope: StaffScope): boolean;
|
|
63
|
+
export declare function getLinkedStaffMemberId(scope: StaffScope): StaffMemberId | null;
|
|
64
|
+
export declare function getOwnAppointmentResourceId(scope: StaffScope): AppointmentResourceId | null;
|
|
65
|
+
export declare function canAccessOwnAppointmentResource(scope: StaffScope, resourceId: string | AppointmentResourceId): boolean;
|
|
66
|
+
export declare function deriveLinkedAppointmentIdentity(input: Readonly<{
|
|
67
|
+
membershipRole: SiteRole | null;
|
|
68
|
+
linkedStaffMemberId: string | null;
|
|
69
|
+
}>): LinkedAppointmentIdentity;
|
|
70
|
+
export declare function getIdentityStaffMemberId(identity: LinkedAppointmentIdentity): StaffMemberId | null;
|
|
71
|
+
export declare function getIdentityStaffMemberIdValue(identity: LinkedAppointmentIdentity): string | null;
|
|
72
|
+
export declare function getIdentityAppointmentResourceId(identity: LinkedAppointmentIdentity): AppointmentResourceId | null;
|
|
73
|
+
export declare function getIdentityAppointmentResourceIdValue(identity: LinkedAppointmentIdentity): string | null;
|
|
74
|
+
export declare function isLinkedAppointmentResource(identity: LinkedAppointmentIdentity, resourceId: AppointmentResourceId): boolean;
|
|
75
|
+
export declare function deriveStaffSiteHomeDestination(staffScope: StaffScope): StaffSiteHomeDestination;
|
|
76
|
+
export declare function isEventOpsOnlyUser(sites: readonly StaffMembershipInput[]): boolean;
|
|
77
|
+
export declare function deriveSiteListingNavigationPlan(site: StaffMembershipInput): SiteListingNavigationPlan;
|
|
78
|
+
export declare function shouldRedirectStaffScopeToOps(staffScope: StaffScope): boolean;
|
|
79
|
+
export declare function deriveOpsLandingDestination(sites: readonly StaffMembershipInput[]): OpsLandingDestination;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { CamelizeKeys, DbDatabase, DbRow } from "../../db/src/index";
|
|
2
|
+
import type { APIEndpoint } from "./apiEndpointTypes";
|
|
2
3
|
export type { AccessPolicyContract, AccessPolicyTag, CreateMediaAssetBody, EntitledCustomerAccessScopeContract, FileKindContract, FileKindTag, FileUseContract, FileUseTag, ImageFileFormat, MediaAssetResponse, MediaAssetFileFilterContract, MediaBulkDeleteAssetFailure, MediaBulkDeleteResponse, MediaClassifyJobResponse, MediaJobSummaryResponse, MediaLabelSummary, MediaSettingsResponse, RenderableFileKindTag, 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";
|
|
6
|
-
export { STAFF_OPERATIONAL_CAPABILITIES } from "./accessAdmin";
|
|
7
|
+
export { STAFF_OPERATIONAL_CAPABILITIES, getDefaultStaffCapabilities, } from "./accessAdmin";
|
|
8
|
+
export type * from "./staffAccess";
|
|
9
|
+
export { appointmentResourceIdFromStaffMemberId, canAccessOwnAppointmentResource, deriveLinkedAppointmentIdentity, deriveOpsLandingDestination, deriveSiteListingNavigationPlan, deriveStaffScope, deriveStaffSiteHomeDestination, getIdentityAppointmentResourceId, getIdentityAppointmentResourceIdValue, getIdentityStaffMemberId, getIdentityStaffMemberIdValue, getLinkedStaffMemberId, getOwnAppointmentResourceId, hasAppointmentStaffAccess, hasEventOpsAccess, isEventOpsOnlyUser, isLinkedAppointmentResource, isStaffScoped, isTeamMemberScope, roleAtLeast, roleAtLeastOrNone, shouldRedirectStaffScopeToOps, } from "./staffAccess";
|
|
7
10
|
export type * from "./aiEndpoints";
|
|
8
11
|
export type * from "./apiEndpointTypes";
|
|
9
12
|
export type * from "./bookingAdjustments";
|
|
@@ -119,48 +122,32 @@ type EndpointPath<E extends keyof APIEndpoints> = E extends keyof typeof API_END
|
|
|
119
122
|
type PathParams<E extends keyof APIEndpoints> = ExtractPathParamNames<EndpointPath<E>> extends infer TParam ? [TParam] extends [never] ? {} : {
|
|
120
123
|
[K in Extract<TParam, string>]: string;
|
|
121
124
|
} : {};
|
|
122
|
-
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>>;
|
|
123
127
|
type HasPathParams<E extends keyof APIEndpoints> = keyof PathParams<E> extends never ? false : true;
|
|
124
128
|
type ParamsPart<E extends keyof APIEndpoints> = HasPathParams<E> extends true ? {
|
|
125
129
|
params: PathParams<E> & QueryParams<E>;
|
|
126
|
-
} : IsNonEmptyQuery<
|
|
130
|
+
} : IsNonEmptyQuery<EndpointQuery<E>> extends false ? {
|
|
127
131
|
params?: Record<string, string>;
|
|
128
|
-
} : HasRequiredKeys<
|
|
132
|
+
} : HasRequiredKeys<EndpointQuery<E>> extends true ? {
|
|
129
133
|
params: QueryParams<E>;
|
|
130
134
|
} : {
|
|
131
135
|
params?: QueryParams<E>;
|
|
132
136
|
};
|
|
133
|
-
export type APICallParams<E extends keyof APIEndpoints> = APIEndpoints[E] extends {
|
|
134
|
-
method: "GET";
|
|
135
|
-
} ? {
|
|
136
|
-
endpoint: E;
|
|
137
|
-
body?: APIEndpoints[E]["body"];
|
|
138
|
-
options?: RequestInit;
|
|
139
|
-
} & ParamsPart<E> : APIEndpoints[E] extends {
|
|
140
|
-
method: "POST" | "PUT" | "PATCH";
|
|
141
|
-
} ? {
|
|
142
|
-
endpoint: E;
|
|
143
|
-
body: APIEndpoints[E]["body"];
|
|
144
|
-
options?: RequestInit;
|
|
145
|
-
} & ParamsPart<E> : {
|
|
146
|
-
endpoint: E;
|
|
147
|
-
body?: APIEndpoints[E]["body"];
|
|
148
|
-
options?: RequestInit;
|
|
149
|
-
} & ParamsPart<E>;
|
|
150
137
|
type EndpointMethod<E extends keyof APIEndpoints> = E extends keyof typeof API_ENDPOINTS ? (typeof API_ENDPOINTS)[E]["method"] : HTTPMethod;
|
|
151
|
-
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;
|
|
152
139
|
type StrictBodyPart<E extends keyof APIEndpoints> = EndpointMethod<E> extends "GET" ? {
|
|
153
140
|
body?: never;
|
|
154
141
|
} : [EndpointBody<E>] extends [never | undefined] ? {
|
|
155
142
|
body?: never;
|
|
143
|
+
} : undefined extends EndpointBody<E> ? {
|
|
144
|
+
body?: Exclude<EndpointBody<E>, undefined>;
|
|
156
145
|
} : {
|
|
157
|
-
body:
|
|
146
|
+
body: EndpointBody<E>;
|
|
158
147
|
};
|
|
159
148
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
* 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.
|
|
164
151
|
*/
|
|
165
152
|
export type APICallParamsStrict<E extends keyof APIEndpoints> = {
|
|
166
153
|
endpoint: E;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RiverbankSiteConfig, SdkWorkflowConfig } from "../sdkContracts";
|
|
2
|
+
export type EntryDraftUpdatedWorkflowTriggerSource = Readonly<{
|
|
3
|
+
type: "entry.draft.updated";
|
|
4
|
+
changedFields: readonly string[];
|
|
5
|
+
dedupeKey: string;
|
|
6
|
+
}>;
|
|
7
|
+
export type WorkflowTriggerSource = Readonly<{
|
|
8
|
+
type: "manual";
|
|
9
|
+
}> | EntryDraftUpdatedWorkflowTriggerSource;
|
|
10
|
+
export type AutomaticWorkflowCandidate = Readonly<{
|
|
11
|
+
workflow: SdkWorkflowConfig;
|
|
12
|
+
trigger: EntryDraftUpdatedWorkflowTriggerSource;
|
|
13
|
+
}>;
|
|
14
|
+
export type PlanEntryDraftUpdatedWorkflowTriggersInput = Readonly<{
|
|
15
|
+
sdkConfig: RiverbankSiteConfig | null | undefined;
|
|
16
|
+
contentType: string;
|
|
17
|
+
previousDraftContent: Record<string, unknown> | null | undefined;
|
|
18
|
+
nextDraftContent: Record<string, unknown>;
|
|
19
|
+
knownFieldIds?: readonly string[];
|
|
20
|
+
}>;
|
|
21
|
+
export declare function planEntryDraftUpdatedWorkflowTriggers(input: PlanEntryDraftUpdatedWorkflowTriggersInput): readonly AutomaticWorkflowCandidate[];
|
|
@@ -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';
|