@odla-ai/chapter 0.56.0 → 0.56.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -209,6 +209,8 @@ interface PaymentPriceLines {
209
209
  dueTodayCents: number;
210
210
  /** Included in dueTodayCents; zero means the selected SKU includes the additional member. */
211
211
  namedSeatCents?: number;
212
+ /** True when an included additional member is available but no recipient was selected. Display Pick later. */
213
+ namedSeatPickLater?: boolean;
212
214
  founding?: {
213
215
  cohortLabel: string;
214
216
  };
@@ -374,6 +376,30 @@ interface ChapterFlowFieldContract {
374
376
  fields: readonly ChapterFlowField[];
375
377
  }
376
378
 
379
+ /** The optional recipient selected before the applicant consents to payment. */
380
+ interface CheckoutNamedSeatSelection {
381
+ recipientName: string;
382
+ recipientEmail: string;
383
+ }
384
+
385
+ /** Reopens the host's original recipient fields before payment begins. */
386
+ interface CheckoutSeatEditorContext {
387
+ /** Server-saved selection; null means the applicant has not chosen a recipient. */
388
+ selection: CheckoutNamedSeatSelection | null;
389
+ /** The current authority-owned additional-member price and billing interval. */
390
+ offer: {
391
+ amountCents: number;
392
+ currency: string;
393
+ interval: string;
394
+ };
395
+ /** Validate and save a recipient, or null to remove them, then return to checkout. */
396
+ save: (selection: CheckoutNamedSeatSelection | null) => Promise<void>;
397
+ /** Return to checkout without changing its saved selection. */
398
+ cancel: () => void;
399
+ }
400
+ /** Host-owned recipient fields reused from the application instead of a second checkout editor. */
401
+ type CheckoutSeatEditor = (context: CheckoutSeatEditorContext) => ComponentChildren;
402
+
377
403
  /** The public join config (the shape `GET /api/join-config` returns). */
378
404
  interface JoinConfig {
379
405
  id: string;
@@ -426,6 +452,8 @@ type JoinFlowState = {
426
452
  /** Canonical flow state supplied to a site's per-step heading render slot. */
427
453
  interface JoinStepRenderContext {
428
454
  state: JoinFlowState;
455
+ /** True while returning to the application's family-member fields; the saved application stays on its payment step. */
456
+ editingNamedSeat?: boolean;
429
457
  invitation?: JoinInvitation;
430
458
  applicationId?: string;
431
459
  }
@@ -484,6 +512,10 @@ interface JoinIslandProps {
484
512
  recipientName: string;
485
513
  recipientEmail: string;
486
514
  };
515
+ /** Reuse the application's recipient fields for edits. Checkout automatically quotes initialNamedSeat and shows a read-only review. */
516
+ renderNamedSeatEditor?: CheckoutSeatEditor;
517
+ /** Heading for the read-only recipient review. Defaults to Additional member. */
518
+ namedSeatLabel?: string;
487
519
  appearance?: Record<string, unknown>;
488
520
  fonts?: readonly Record<string, unknown>[];
489
521
  /** Render the server-owned price lines; `lines.founding` says the difference is a policy-backed founding discount,
@@ -711,4 +743,4 @@ declare function JourneyFrame({ children }: {
711
743
  children: ComponentChildren;
712
744
  }): preact.JSX.Element;
713
745
 
714
- export { type ApiFn, BrandStyle, type BrandStyleProps, type GiftCodeRedeemResult, GiftCodeRedeemer, type GiftCodeRedeemerCopy, type GiftCodeRedeemerProps, GiftOfferCards, type GiftOfferCardsMode, type GiftOfferCardsProps, GiftPurchases, type GiftPurchasesProps, type JoinBookingSimulation, type JoinConfig, type JoinFlowState, JoinIsland, type JoinIslandProps, type JoinSimulation, type JoinStepRenderContext, type JoinSubmitRenderContext, type JoinTier, type JoinTierRenderContext, JourneyFrame, MEMBERSHIP_CARD_TOKEN_DEFAULTS, MemberContentArea, type MemberContentAreaProps, MemberGifts, type MemberProvisionalRenderContext, MemberRestart, MembersArea, type MembersAreaProps, type MembershipCardTokenName, MembershipCards, type MembershipCardsMode, type MembershipCardsProps, NAMED_SEAT_RECIPIENT_WORDS, NamedSeatPurchase, NamedSeatRecipientLine, type PaymentPriceLines, PaymentStep, type PaymentStepProps, type PaymentStepSimulation, type RescheduleProps, Rescheduler, type Slot, SlotPicker, type SlotPickerClasses, type SlotPickerProps, type SubResponse, TierPlaceholder, dayKey, dayLabel, fmtDate, fmtMoney, fullLabel, groupSlotsByDay, loadJoinResume, membershipApplicationHref, tierNeedsPayment, timeLabel, tzShort, useTierSelection };
746
+ export { type ApiFn, BrandStyle, type BrandStyleProps, type CheckoutSeatEditor, type CheckoutSeatEditorContext, type GiftCodeRedeemResult, GiftCodeRedeemer, type GiftCodeRedeemerCopy, type GiftCodeRedeemerProps, GiftOfferCards, type GiftOfferCardsMode, type GiftOfferCardsProps, GiftPurchases, type GiftPurchasesProps, type JoinBookingSimulation, type JoinConfig, type JoinFlowState, JoinIsland, type JoinIslandProps, type JoinSimulation, type JoinStepRenderContext, type JoinSubmitRenderContext, type JoinTier, type JoinTierRenderContext, JourneyFrame, MEMBERSHIP_CARD_TOKEN_DEFAULTS, MemberContentArea, type MemberContentAreaProps, MemberGifts, type MemberProvisionalRenderContext, MemberRestart, MembersArea, type MembersAreaProps, type MembershipCardTokenName, MembershipCards, type MembershipCardsMode, type MembershipCardsProps, NAMED_SEAT_RECIPIENT_WORDS, NamedSeatPurchase, NamedSeatRecipientLine, type PaymentPriceLines, PaymentStep, type PaymentStepProps, type PaymentStepSimulation, type RescheduleProps, Rescheduler, type Slot, SlotPicker, type SlotPickerClasses, type SlotPickerProps, type SubResponse, TierPlaceholder, dayKey, dayLabel, fmtDate, fmtMoney, fullLabel, groupSlotsByDay, loadJoinResume, membershipApplicationHref, tierNeedsPayment, timeLabel, tzShort, useTierSelection };
@@ -29,7 +29,7 @@ import {
29
29
  timeLabel,
30
30
  tzShort,
31
31
  useTierSelection
32
- } from "../../chunk-IQZWCG42.js";
32
+ } from "../../chunk-NK267YQZ.js";
33
33
  import {
34
34
  BrandStyle,
35
35
  ChapterCopyProvider,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odla-ai/chapter",
3
- "version": "0.56.0",
3
+ "version": "0.56.1",
4
4
  "description": "A leader/follower foundation for branded membership sites: shared CRM, admin, auth, payments, booking, and explicit record delivery from one defineChapter config.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://odla.ai/docs/packages/chapter",