@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
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CsvColumn, CsvColumnSensitivity, CsvRenderResult, RenderCsvInput, RenderCsvError } from './csv-types';
|
|
2
|
+
export declare function renderCsvExport<Row, Options>(input: RenderCsvInput<Row, Options>): CsvRenderResult;
|
|
3
|
+
export declare function collectCsvColumnSensitivities<Row>(columns: readonly CsvColumn<Row>[]): ReadonlySet<CsvColumnSensitivity>;
|
|
4
|
+
export declare function describeRenderCsvError(error: RenderCsvError): string;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type { Brand, MoneyDateString } from './branded';
|
|
2
|
+
export type CsvExportId = Brand<string, 'CsvExportId'>;
|
|
3
|
+
export type CsvColumnKey = Brand<string, 'CsvColumnKey'>;
|
|
4
|
+
export type SafeCsvFilename = Brand<string, 'SafeCsvFilename'>;
|
|
5
|
+
export type ExportRowLimit = Brand<number, 'ExportRowLimit'>;
|
|
6
|
+
export type CsvColumnSensitivity = 'standard' | 'personal' | 'financial' | 'sensitive';
|
|
7
|
+
export type CsvCell = Readonly<{
|
|
8
|
+
kind: 'empty';
|
|
9
|
+
}> | Readonly<{
|
|
10
|
+
kind: 'text';
|
|
11
|
+
value: string;
|
|
12
|
+
}> | Readonly<{
|
|
13
|
+
kind: 'integer';
|
|
14
|
+
value: number;
|
|
15
|
+
}> | Readonly<{
|
|
16
|
+
kind: 'decimal';
|
|
17
|
+
value: number;
|
|
18
|
+
decimals: number;
|
|
19
|
+
}> | Readonly<{
|
|
20
|
+
kind: 'moneyCents';
|
|
21
|
+
cents: number;
|
|
22
|
+
currency: string;
|
|
23
|
+
}> | Readonly<{
|
|
24
|
+
kind: 'isoDate';
|
|
25
|
+
value: string;
|
|
26
|
+
}> | Readonly<{
|
|
27
|
+
kind: 'isoDateTime';
|
|
28
|
+
value: string;
|
|
29
|
+
}> | Readonly<{
|
|
30
|
+
kind: 'boolean';
|
|
31
|
+
value: boolean;
|
|
32
|
+
}>;
|
|
33
|
+
export type CsvColumn<Row> = Readonly<{
|
|
34
|
+
key: CsvColumnKey;
|
|
35
|
+
header: string;
|
|
36
|
+
sensitivity: CsvColumnSensitivity;
|
|
37
|
+
cell: (row: Row) => CsvCell;
|
|
38
|
+
}>;
|
|
39
|
+
export type CsvExportDefinition<Row, Options> = Readonly<{
|
|
40
|
+
id: CsvExportId;
|
|
41
|
+
filename: (options: Options) => string;
|
|
42
|
+
columns: (options: Options) => readonly CsvColumn<Row>[];
|
|
43
|
+
maxRows: ExportRowLimit;
|
|
44
|
+
}>;
|
|
45
|
+
export type RenderCsvInput<Row, Options> = Readonly<{
|
|
46
|
+
definition: CsvExportDefinition<Row, Options>;
|
|
47
|
+
rows: readonly Row[];
|
|
48
|
+
options: Options;
|
|
49
|
+
}>;
|
|
50
|
+
export type RenderCsvError = Readonly<{
|
|
51
|
+
tag: 'too_many_rows';
|
|
52
|
+
maxRows: number;
|
|
53
|
+
actualRows: number;
|
|
54
|
+
}> | Readonly<{
|
|
55
|
+
tag: 'duplicate_column_key';
|
|
56
|
+
key: string;
|
|
57
|
+
}> | Readonly<{
|
|
58
|
+
tag: 'invalid_filename';
|
|
59
|
+
filename: string;
|
|
60
|
+
}>;
|
|
61
|
+
export type CsvRenderResult = Readonly<{
|
|
62
|
+
ok: true;
|
|
63
|
+
csv: string;
|
|
64
|
+
filename: SafeCsvFilename;
|
|
65
|
+
rowCount: number;
|
|
66
|
+
sensitivities: ReadonlySet<CsvColumnSensitivity>;
|
|
67
|
+
}> | Readonly<{
|
|
68
|
+
ok: false;
|
|
69
|
+
error: RenderCsvError;
|
|
70
|
+
}>;
|
|
71
|
+
export type ExportDateBasis = 'created_at' | 'scheduled_at' | 'cancelled_at' | 'paid_at' | 'processed_at';
|
|
72
|
+
export type ExportDatePreset = '7d' | '30d' | '90d' | '365d' | 'all';
|
|
73
|
+
export type ExportDateRange = Readonly<{
|
|
74
|
+
kind: 'preset';
|
|
75
|
+
preset: ExportDatePreset;
|
|
76
|
+
}> | Readonly<{
|
|
77
|
+
kind: 'custom';
|
|
78
|
+
from?: string;
|
|
79
|
+
to?: string;
|
|
80
|
+
}>;
|
|
81
|
+
export type ResolvedExportDateWindow<Basis extends ExportDateBasis = ExportDateBasis> = Readonly<{
|
|
82
|
+
basis: Basis;
|
|
83
|
+
from: MoneyDateString;
|
|
84
|
+
to: MoneyDateString;
|
|
85
|
+
timeZone: string;
|
|
86
|
+
}>;
|
|
87
|
+
export type CsvExportDatePolicy<Basis extends ExportDateBasis = ExportDateBasis> = Readonly<{
|
|
88
|
+
supportedDateBases: readonly Basis[];
|
|
89
|
+
defaultDateBasis: Basis;
|
|
90
|
+
}>;
|
|
91
|
+
export type ExportDateFilterError = Readonly<{
|
|
92
|
+
tag: 'unsupported_date_basis';
|
|
93
|
+
basis: ExportDateBasis;
|
|
94
|
+
exportId: CsvExportId;
|
|
95
|
+
}> | Readonly<{
|
|
96
|
+
tag: 'invalid_date';
|
|
97
|
+
field: 'from' | 'to';
|
|
98
|
+
value: string;
|
|
99
|
+
}> | Readonly<{
|
|
100
|
+
tag: 'partial_custom_range';
|
|
101
|
+
}> | Readonly<{
|
|
102
|
+
tag: 'invalid_date_range';
|
|
103
|
+
from: MoneyDateString;
|
|
104
|
+
to: MoneyDateString;
|
|
105
|
+
}>;
|
|
106
|
+
export type MoneyExportCurrencyPolicy = Readonly<{
|
|
107
|
+
kind: 'single_currency';
|
|
108
|
+
currency: string;
|
|
109
|
+
}> | Readonly<{
|
|
110
|
+
kind: 'group_by_currency';
|
|
111
|
+
}> | Readonly<{
|
|
112
|
+
kind: 'reject_mixed_currency';
|
|
113
|
+
}>;
|
|
114
|
+
export declare function unsafeAsCsvExportId(value: string): CsvExportId;
|
|
115
|
+
export declare function unsafeAsCsvColumnKey(value: string): CsvColumnKey;
|
|
116
|
+
export declare function asExportRowLimit(value: number): ExportRowLimit;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type DemoCapability } from './index';
|
|
2
|
+
export declare const demoSurfaceClassificationValues: readonly ["allowed", "blocked-hidden", "blocked-disabled", "internal-only", "needs-classification"];
|
|
3
|
+
export type DemoSurfaceClassification = (typeof demoSurfaceClassificationValues)[number];
|
|
4
|
+
export type DemoRestrictionReason = 'surface_not_classified' | 'dangerous_surface' | 'internal_only' | 'claim_not_active';
|
|
5
|
+
export type DemoCapabilityDecision = Readonly<{
|
|
6
|
+
allowed: true;
|
|
7
|
+
classification: Extract<DemoSurfaceClassification, 'allowed'>;
|
|
8
|
+
}> | Readonly<{
|
|
9
|
+
allowed: false;
|
|
10
|
+
classification: DemoSurfaceClassification;
|
|
11
|
+
reason: DemoRestrictionReason;
|
|
12
|
+
surface: DemoCapability;
|
|
13
|
+
}>;
|
|
14
|
+
export type DemoClaimAccessState = Readonly<{
|
|
15
|
+
kind: 'active';
|
|
16
|
+
}> | Readonly<{
|
|
17
|
+
kind: 'expired';
|
|
18
|
+
}> | Readonly<{
|
|
19
|
+
kind: 'released';
|
|
20
|
+
}> | Readonly<{
|
|
21
|
+
kind: 'missing';
|
|
22
|
+
}>;
|
|
23
|
+
export type DemoCapabilityPolicyInput = Readonly<{
|
|
24
|
+
surface: DemoCapability;
|
|
25
|
+
classification: DemoSurfaceClassification;
|
|
26
|
+
claim: DemoClaimAccessState;
|
|
27
|
+
}>;
|
|
28
|
+
/** Evaluates a classified demo mutation surface and fails closed for inactive claims or unknown surfaces. */
|
|
29
|
+
export declare function evaluateDemoCapability(input: DemoCapabilityPolicyInput): DemoCapabilityDecision;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DemoClaimAccessState } from './demo-capability-policy';
|
|
2
|
+
import type { DemoClaimStatus, DemoInstanceStatus } from './demo-lifecycle-status';
|
|
3
|
+
export type DemoClaimAccessInstance = Readonly<{
|
|
4
|
+
status: DemoInstanceStatus;
|
|
5
|
+
}>;
|
|
6
|
+
export type DemoClaimAccessClaim = Readonly<{
|
|
7
|
+
status: DemoClaimStatus;
|
|
8
|
+
expiresAt: string;
|
|
9
|
+
}> | null;
|
|
10
|
+
export declare function deriveDemoClaimAccessState(input: Readonly<{
|
|
11
|
+
instance: DemoClaimAccessInstance;
|
|
12
|
+
claim: DemoClaimAccessClaim;
|
|
13
|
+
now: Date;
|
|
14
|
+
}>): DemoClaimAccessState;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const demoBlueprintStatusValues: readonly ["draft", "published", "archived"];
|
|
2
|
+
export type DemoBlueprintStatus = (typeof demoBlueprintStatusValues)[number];
|
|
3
|
+
export declare const demoInstanceStatusValues: readonly ["warming", "available", "claimed", "expired", "recycling", "failed"];
|
|
4
|
+
export type DemoInstanceStatus = (typeof demoInstanceStatusValues)[number];
|
|
5
|
+
export declare const demoClaimStatusValues: readonly ["active", "expired", "released"];
|
|
6
|
+
export type DemoClaimStatus = (typeof demoClaimStatusValues)[number];
|
|
7
|
+
export declare const demoBlueprintArtifactKindValues: readonly ["site_backup", "manual_snapshot"];
|
|
8
|
+
export type DemoBlueprintArtifactKind = (typeof demoBlueprintArtifactKindValues)[number];
|
|
9
|
+
export declare function narrowDemoInstanceStatus(value: string): DemoInstanceStatus;
|
|
10
|
+
export declare function narrowDemoClaimStatus(value: string): DemoClaimStatus;
|
|
11
|
+
export declare function narrowDemoBlueprintArtifactKind(value: string): DemoBlueprintArtifactKind;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare const RIVERBANK_RUNTIME_ENV_VAR = "RIVERBANK_RUNTIME_ENV";
|
|
2
|
+
export declare const riverbankRuntimeEnvValues: readonly ["production", "staging", "demo"];
|
|
3
|
+
export type RiverbankRuntimeEnv = (typeof riverbankRuntimeEnvValues)[number];
|
|
4
|
+
export type RiverbankRuntime = Readonly<{
|
|
5
|
+
kind: 'production';
|
|
6
|
+
demoAllowed: false;
|
|
7
|
+
}> | Readonly<{
|
|
8
|
+
kind: 'staging';
|
|
9
|
+
demoAllowed: false;
|
|
10
|
+
}> | Readonly<{
|
|
11
|
+
kind: 'demo';
|
|
12
|
+
demoAllowed: true;
|
|
13
|
+
}>;
|
|
14
|
+
export type RiverbankRuntimeResolution = Readonly<{
|
|
15
|
+
kind: 'resolved';
|
|
16
|
+
runtime: RiverbankRuntime;
|
|
17
|
+
}> | Readonly<{
|
|
18
|
+
kind: 'invalid';
|
|
19
|
+
error: RiverbankRuntimeResolutionError;
|
|
20
|
+
}>;
|
|
21
|
+
export type RiverbankRuntimeResolutionError = Readonly<{
|
|
22
|
+
kind: 'missing_runtime_env';
|
|
23
|
+
envVar: typeof RIVERBANK_RUNTIME_ENV_VAR;
|
|
24
|
+
}> | Readonly<{
|
|
25
|
+
kind: 'unsupported_runtime_env';
|
|
26
|
+
envVar: typeof RIVERBANK_RUNTIME_ENV_VAR;
|
|
27
|
+
rawValue: string;
|
|
28
|
+
normalizedValue: string;
|
|
29
|
+
supportedValues: readonly RiverbankRuntimeEnv[];
|
|
30
|
+
}>;
|
|
31
|
+
export type DemoRuntimeRequirement = Readonly<{
|
|
32
|
+
allowed: true;
|
|
33
|
+
runtime: Extract<RiverbankRuntime, {
|
|
34
|
+
kind: 'demo';
|
|
35
|
+
}>;
|
|
36
|
+
}> | Readonly<{
|
|
37
|
+
allowed: false;
|
|
38
|
+
reason: DemoRuntimeRequirementDenialReason;
|
|
39
|
+
runtime?: Exclude<RiverbankRuntime, {
|
|
40
|
+
kind: 'demo';
|
|
41
|
+
}>;
|
|
42
|
+
error?: RiverbankRuntimeResolutionError;
|
|
43
|
+
}>;
|
|
44
|
+
export type DemoRuntimeRequirementDenialReason = 'missing_runtime_env' | 'unsupported_runtime_env' | 'not_demo_runtime';
|
|
45
|
+
export declare function parseRiverbankRuntimeEnv(rawValue: string | null | undefined): RiverbankRuntimeResolution;
|
|
46
|
+
export declare function resolveRiverbankRuntimeEnv(env: Readonly<Record<string, string | undefined>>): RiverbankRuntimeResolution;
|
|
47
|
+
export declare function requireDemoRuntime(resolution: RiverbankRuntimeResolution): DemoRuntimeRequirement;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type DurationUnit = 'minutes' | 'hours' | 'days' | 'weeks';
|
|
2
|
+
export declare const DURATION_UNIT_MINUTES: Record<DurationUnit, number>;
|
|
3
|
+
export declare function formatDurationUnitLabel(unit: DurationUnit, count: number): string;
|
|
4
|
+
/**
|
|
5
|
+
* Picks the coarsest allowed unit that cleanly divides `minutes`. Falls back
|
|
6
|
+
* to the smallest allowed unit when no clean divisor exists.
|
|
7
|
+
*/
|
|
8
|
+
export declare function pickDurationDisplayUnit(minutes: number, allowed: readonly DurationUnit[]): DurationUnit;
|
|
9
|
+
/**
|
|
10
|
+
* Guarantees the widget invariant `displayValue x unit === storedMinutes` is
|
|
11
|
+
* representable by prepending minutes when no caller-provided unit divides.
|
|
12
|
+
*/
|
|
13
|
+
export declare function expandAllowedDurationUnits(value: number, base: readonly DurationUnit[]): readonly DurationUnit[];
|
|
14
|
+
export declare function clampDurationMinutes(value: number, min: number | undefined, max: number | undefined): number;
|
|
@@ -3,17 +3,17 @@ export type EditorSiteId = Brand<string, 'EditorSiteId'>;
|
|
|
3
3
|
export type EditorPageId = Brand<string, 'EditorPageId'>;
|
|
4
4
|
export type EditorEntryId = Brand<string, 'EditorEntryId'>;
|
|
5
5
|
export type EditorBlockId = Brand<string, 'EditorBlockId'>;
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const
|
|
6
|
+
export declare const unsafeAsEditorSiteId: (value: string) => EditorSiteId;
|
|
7
|
+
export declare const unsafeAsEditorPageId: (value: string) => EditorPageId;
|
|
8
|
+
export declare const unsafeAsEditorEntryId: (value: string) => EditorEntryId;
|
|
9
|
+
export declare const unsafeAsEditorBlockId: (value: string) => EditorBlockId;
|
|
10
10
|
export type EditorValueRecord = Readonly<Record<string, unknown>>;
|
|
11
11
|
export type EditorMetadataValues = Brand<EditorValueRecord, 'EditorMetadataValues'>;
|
|
12
12
|
export type EditorContentValues = Brand<EditorValueRecord, 'EditorContentValues'>;
|
|
13
13
|
export type EditorBlockValues = Brand<EditorValueRecord, 'EditorBlockValues'>;
|
|
14
|
-
export declare const
|
|
15
|
-
export declare const
|
|
16
|
-
export declare const
|
|
14
|
+
export declare const unsafeAsEditorMetadataValues: (value: EditorValueRecord) => EditorMetadataValues;
|
|
15
|
+
export declare const unsafeAsEditorContentValues: (value: EditorValueRecord) => EditorContentValues;
|
|
16
|
+
export declare const unsafeAsEditorBlockValues: (value: EditorValueRecord) => EditorBlockValues;
|
|
17
17
|
export type EditorSyncState = {
|
|
18
18
|
kind: 'baseline';
|
|
19
19
|
} | {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mask an email address for display purposes.
|
|
3
|
+
* Shows first and last characters of the local part with asterisks in between.
|
|
4
|
+
* Example: "john.doe@example.com" -> "j******e@example.com"
|
|
5
|
+
* For 1-2 character local parts, preserve only the first character and append "***"
|
|
6
|
+
* so very short addresses do not leak disproportionate detail.
|
|
7
|
+
*/
|
|
8
|
+
export declare function maskEmail(email: string): string;
|
|
9
|
+
export declare function maskEmail(email: null): null;
|
|
10
|
+
export declare function maskEmail(email: string | null): string | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function clearFieldError<TField extends string, TErrors extends Partial<Record<TField, string>>>(errors: TErrors, field: TField): TErrors;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
type SchemaField = {
|
|
2
|
+
id: string;
|
|
3
|
+
label?: string | null;
|
|
4
|
+
type?: string | null;
|
|
5
|
+
required?: boolean | null;
|
|
6
|
+
};
|
|
7
|
+
type SubmissionRow = {
|
|
8
|
+
dataJson: Record<string, unknown> | null;
|
|
9
|
+
};
|
|
10
|
+
export type SubmissionPreviewField = {
|
|
11
|
+
id: string;
|
|
12
|
+
label: string;
|
|
13
|
+
type: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const FORM_SUBMISSION_PSEUDO_FIELD_ID = "submission";
|
|
16
|
+
export declare const HIDDEN_FIELD_IDS: Set<string>;
|
|
17
|
+
export declare function selectSubmissionPreviewFields(schemaFields: unknown, submissions: SubmissionRow[]): SubmissionPreviewField[];
|
|
18
|
+
export declare function humanizeSubmissionFieldKey(input: string): string;
|
|
19
|
+
export declare function orderSubmissionFields(schemaFields: SchemaField[] | undefined, data: Record<string, unknown> | null): {
|
|
20
|
+
id: string;
|
|
21
|
+
label: string;
|
|
22
|
+
value: unknown;
|
|
23
|
+
}[];
|
|
24
|
+
export {};
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export * from "./branded";
|
|
2
2
|
export * from "./date-math";
|
|
3
|
+
export * from "./duration";
|
|
4
|
+
export * from "./demo-capability-policy";
|
|
5
|
+
export * from "./demo-claim-access";
|
|
6
|
+
export * from "./demo-lifecycle-status";
|
|
7
|
+
export * from "./demo-runtime";
|
|
3
8
|
export * from "./collections";
|
|
4
9
|
export * from "./event-pricing";
|
|
5
10
|
export * from "./money-input";
|
|
@@ -21,5 +26,20 @@ export * from "./sensitive-collection";
|
|
|
21
26
|
export * from "./assertNever";
|
|
22
27
|
export * from "./participants";
|
|
23
28
|
export * from "./participant-identity";
|
|
29
|
+
export * from "./public-url-validation";
|
|
30
|
+
export * from "./number-input";
|
|
31
|
+
export * from "./field-errors";
|
|
32
|
+
export * from "./form-submission-preview";
|
|
33
|
+
export * from "./csv-cells";
|
|
34
|
+
export * from "./csv-date-filter";
|
|
35
|
+
export * from "./csv-escape";
|
|
36
|
+
export * from "./csv-filename";
|
|
37
|
+
export * from "./csv-render";
|
|
38
|
+
export * from "./csv-types";
|
|
39
|
+
export * from "./currency-format";
|
|
40
|
+
export * from "./email-format";
|
|
41
|
+
export * from "./slug";
|
|
42
|
+
export * from "./string";
|
|
43
|
+
export * from "./uuid";
|
|
24
44
|
export { disabledSelection, enabledSelection, plannerNoChange, plannerPatch, plannerUpdate, resolvePlanningDateInput, resolvePlanningNow, resolvePlanningNowDate, systemPlanningClock, } from "./planner";
|
|
25
45
|
export type { DisabledSelection, EnabledSelection, OptionalSelection, PlannerNoChange, PlannerPatch, PlannerUpdate, PlanningClock, PlanningDateInput, PlanningTimeOptions, } from "./planner";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric form-input parsing helpers with preserve-prev semantics on
|
|
3
|
+
* NaN/empty/negative. Use these in `NumberInput.onChange` so empty input
|
|
4
|
+
* doesn't silently rewrite the user's value to 0.
|
|
5
|
+
*
|
|
6
|
+
* The caller skips the dispatch when `null` is returned; the input box
|
|
7
|
+
* keeps showing whatever the user typed (it's an uncontrolled native
|
|
8
|
+
* input from React's perspective until the next state change), and the
|
|
9
|
+
* dirty/saved state stays consistent.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Parse a `valueAsNumber` (from `<input type="number">`) into a finite
|
|
13
|
+
* non-negative integer, or `null` if the value is empty / NaN / negative.
|
|
14
|
+
* Fractional input is `Math.trunc`'d to an integer.
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseFiniteNonNegativeInt(value: number): number | null;
|
|
17
|
+
/**
|
|
18
|
+
* Parse a `valueAsNumber` into an integer bounded inclusive by `[min, max]`.
|
|
19
|
+
* Returns `null` for out-of-range or non-finite input — same preserve-prev
|
|
20
|
+
* pattern as `parseFiniteNonNegativeInt`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseBoundedInt(value: number, min: number, max: number): number | null;
|
|
@@ -34,8 +34,8 @@ export type ProvisionalParticipantIdentityParseError = {
|
|
|
34
34
|
} | {
|
|
35
35
|
kind: 'missing_slot_key';
|
|
36
36
|
};
|
|
37
|
-
export declare function
|
|
38
|
-
export declare function
|
|
37
|
+
export declare function unsafeAsParticipantSlotKey(value: string): ParticipantSlotKey;
|
|
38
|
+
export declare function unsafeAsParticipantCount(value: number): ParticipantCount;
|
|
39
39
|
/**
|
|
40
40
|
* Canonicalizes an optional participant email for equality checks.
|
|
41
41
|
*
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type PublicUrlProtocol = 'http:' | 'https:';
|
|
2
|
+
export type PublicUrlPortPolicy = 'standard-only' | 'any-valid';
|
|
3
|
+
export type PublicUrlValidationOptions = Readonly<{
|
|
4
|
+
allowedProtocols: readonly PublicUrlProtocol[];
|
|
5
|
+
portPolicy: PublicUrlPortPolicy;
|
|
6
|
+
errorFactory?: (message: string) => Error;
|
|
7
|
+
}>;
|
|
8
|
+
export declare function buildPublicUrlValidationError(message: string, errorFactory?: (message: string) => Error): Error;
|
|
9
|
+
export declare function isIpAddress(value: string): boolean;
|
|
10
|
+
export declare function isPrivateIp(ip: string): boolean;
|
|
11
|
+
export declare function assertAllowedPublicHostname(hostname: string, errorFactory?: (message: string) => Error): void;
|
|
12
|
+
export declare function assertAllowedPublicUrl(raw: string, options: PublicUrlValidationOptions): URL;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a string to a URL-safe slug
|
|
3
|
+
*
|
|
4
|
+
* @param text - The text to slugify
|
|
5
|
+
* @returns URL-safe slug (lowercase, alphanumeric + hyphens)
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* slugify("Initial Consultation") // "initial-consultation"
|
|
9
|
+
* slugify("90-Minute Deep Tissue") // "90-minute-deep-tissue"
|
|
10
|
+
* slugify("Reiki & Energy Healing") // "reiki-energy-healing"
|
|
11
|
+
*/
|
|
12
|
+
export declare function slugify(text: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Generate a unique slug by appending a number if needed
|
|
15
|
+
*
|
|
16
|
+
* @param baseSlug - The base slug to make unique
|
|
17
|
+
* @param existingSlugs - Array of slugs already in use
|
|
18
|
+
* @returns Unique slug (adds -2, -3, etc. if needed)
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* makeUniqueSlug("consultation", ["consultation"])
|
|
22
|
+
* // Returns: "consultation-2"
|
|
23
|
+
*
|
|
24
|
+
* makeUniqueSlug("consultation", ["consultation", "consultation-2"])
|
|
25
|
+
* // Returns: "consultation-3"
|
|
26
|
+
*/
|
|
27
|
+
export declare function makeUniqueSlug(baseSlug: string, existingSlugs: string[]): string;
|
|
28
|
+
/**
|
|
29
|
+
* Generate a slug from text and ensure it's unique
|
|
30
|
+
*
|
|
31
|
+
* @param text - The text to slugify
|
|
32
|
+
* @param existingSlugs - Array of slugs already in use
|
|
33
|
+
* @returns Unique URL-safe slug
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* generateUniqueSlug("Initial Consultation", ["initial-consultation"])
|
|
37
|
+
* // Returns: "initial-consultation-2"
|
|
38
|
+
*/
|
|
39
|
+
export declare function generateUniqueSlug(text: string, existingSlugs: string[]): string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Return the string value when the input is already a string, otherwise null.
|
|
6
|
+
*/
|
|
7
|
+
export declare function asNullableString(value: unknown): string | null;
|
|
8
|
+
/**
|
|
9
|
+
* Return a non-empty string value, otherwise null.
|
|
10
|
+
*/
|
|
11
|
+
export declare function asNonEmptyStringOrNull(value: unknown): string | null;
|
|
12
|
+
/**
|
|
13
|
+
* Trim a user-entered string and collapse blank values to null.
|
|
14
|
+
*/
|
|
15
|
+
export declare function trimmedStringOrNull(value: string | null | undefined): string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Capitalize the first character of a string
|
|
18
|
+
*/
|
|
19
|
+
export declare function capitalize(str: string): string;
|
|
@@ -4154,6 +4154,7 @@ export type Database = {
|
|
|
4154
4154
|
draft_version_id: string | null;
|
|
4155
4155
|
id: string;
|
|
4156
4156
|
identifier: string;
|
|
4157
|
+
manual_order: number;
|
|
4157
4158
|
published_version_id: string | null;
|
|
4158
4159
|
route_id: string | null;
|
|
4159
4160
|
sdk_content_hash: string | null;
|
|
@@ -4172,6 +4173,7 @@ export type Database = {
|
|
|
4172
4173
|
draft_version_id?: string | null;
|
|
4173
4174
|
id?: string;
|
|
4174
4175
|
identifier: string;
|
|
4176
|
+
manual_order?: number;
|
|
4175
4177
|
published_version_id?: string | null;
|
|
4176
4178
|
route_id?: string | null;
|
|
4177
4179
|
sdk_content_hash?: string | null;
|
|
@@ -4190,6 +4192,7 @@ export type Database = {
|
|
|
4190
4192
|
draft_version_id?: string | null;
|
|
4191
4193
|
id?: string;
|
|
4192
4194
|
identifier?: string;
|
|
4195
|
+
manual_order?: number;
|
|
4193
4196
|
published_version_id?: string | null;
|
|
4194
4197
|
route_id?: string | null;
|
|
4195
4198
|
sdk_content_hash?: string | null;
|
|
@@ -16159,6 +16162,14 @@ export type Database = {
|
|
|
16159
16162
|
};
|
|
16160
16163
|
Returns: boolean;
|
|
16161
16164
|
};
|
|
16165
|
+
update_content_entry_manual_order_batch: {
|
|
16166
|
+
Args: {
|
|
16167
|
+
p_content_type_id: string;
|
|
16168
|
+
p_site_id: string;
|
|
16169
|
+
p_updates: Json;
|
|
16170
|
+
};
|
|
16171
|
+
Returns: undefined;
|
|
16172
|
+
};
|
|
16162
16173
|
use_admin_invite: {
|
|
16163
16174
|
Args: {
|
|
16164
16175
|
p_token: string;
|