@flamingo-stack/openframe-frontend-core 0.0.672 → 0.0.673-2406.7239.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.
Files changed (164) hide show
  1. package/dist/{chunk-YNGAJGYB.cjs → chunk-6LWIJJJ6.cjs} +410 -6
  2. package/dist/{chunk-3PVOF3IB.js.map → chunk-6LWIJJJ6.cjs.map} +1 -1
  3. package/dist/{chunk-XLJNYTUW.cjs → chunk-6YSDCC3J.cjs} +56 -55
  4. package/dist/chunk-6YSDCC3J.cjs.map +1 -0
  5. package/dist/{chunk-GV7R2NTS.cjs → chunk-76DQOFZG.cjs} +23 -23
  6. package/dist/{chunk-GV7R2NTS.cjs.map → chunk-76DQOFZG.cjs.map} +1 -1
  7. package/dist/{chunk-UUOBCUHW.cjs → chunk-7ALCRUZ3.cjs} +3 -3
  8. package/dist/{chunk-UUOBCUHW.cjs.map → chunk-7ALCRUZ3.cjs.map} +1 -1
  9. package/dist/{chunk-PWPYCJ33.js → chunk-7RQZ2FTF.js} +2 -2
  10. package/dist/{chunk-XDTU23P4.js → chunk-ALSCESHG.js} +2 -2
  11. package/dist/{chunk-HVEX4BSC.cjs → chunk-AUQ4UITE.cjs} +60 -45
  12. package/dist/chunk-AUQ4UITE.cjs.map +1 -0
  13. package/dist/{chunk-CBCETEB4.cjs → chunk-E6B34U5Q.cjs} +6 -6
  14. package/dist/{chunk-CBCETEB4.cjs.map → chunk-E6B34U5Q.cjs.map} +1 -1
  15. package/dist/{chunk-H54F476P.cjs → chunk-FK3VSQ35.cjs} +3 -3
  16. package/dist/{chunk-H54F476P.cjs.map → chunk-FK3VSQ35.cjs.map} +1 -1
  17. package/dist/{chunk-HOEVEB7N.cjs → chunk-GCOVKIE7.cjs} +40 -29
  18. package/dist/chunk-GCOVKIE7.cjs.map +1 -0
  19. package/dist/{chunk-42OVTTOM.js → chunk-GIYAUKCY.js} +18 -3
  20. package/dist/{chunk-42OVTTOM.js.map → chunk-GIYAUKCY.js.map} +1 -1
  21. package/dist/{chunk-TQPKNG2E.js → chunk-INVZNRWB.js} +3 -3
  22. package/dist/{chunk-ZRIVCLPR.js → chunk-JD5TKRCU.js} +1 -1
  23. package/dist/chunk-JD5TKRCU.js.map +1 -0
  24. package/dist/{chunk-IBGHJLNT.js → chunk-JF4ZQZZJ.js} +2 -2
  25. package/dist/{chunk-SNWAN52K.cjs → chunk-JJDPSYBV.cjs} +3 -3
  26. package/dist/{chunk-SNWAN52K.cjs.map → chunk-JJDPSYBV.cjs.map} +1 -1
  27. package/dist/{chunk-D55IENZJ.cjs → chunk-LCMT2GZK.cjs} +1 -1
  28. package/dist/chunk-LCMT2GZK.cjs.map +1 -0
  29. package/dist/{chunk-AL4I5HHB.js → chunk-MMDGSGVE.js} +4 -4
  30. package/dist/{chunk-O5PYXQ6H.js → chunk-N3Q4FMMB.js} +3 -3
  31. package/dist/{chunk-RD3I5PBB.cjs → chunk-NUVRMZW5.cjs} +15 -15
  32. package/dist/{chunk-RD3I5PBB.cjs.map → chunk-NUVRMZW5.cjs.map} +1 -1
  33. package/dist/{chunk-T3KXCOB2.js → chunk-OIE6GKS3.js} +2 -2
  34. package/dist/{chunk-TFSGYKWG.js → chunk-OZL6FSB2.js} +28 -17
  35. package/dist/chunk-OZL6FSB2.js.map +1 -0
  36. package/dist/{chunk-NETIHUEY.cjs → chunk-P2A3KAYW.cjs} +10 -10
  37. package/dist/{chunk-NETIHUEY.cjs.map → chunk-P2A3KAYW.cjs.map} +1 -1
  38. package/dist/{chunk-6S2KLT7O.js → chunk-Q4KRZOQR.js} +4 -4
  39. package/dist/{chunk-BODMICIH.cjs → chunk-S7W7MTBM.cjs} +40 -40
  40. package/dist/{chunk-BODMICIH.cjs.map → chunk-S7W7MTBM.cjs.map} +1 -1
  41. package/dist/{chunk-3PVOF3IB.js → chunk-SGK4Q2W2.js} +407 -3
  42. package/dist/chunk-SGK4Q2W2.js.map +1 -0
  43. package/dist/{chunk-VZRVQEMT.cjs → chunk-SYTDEWZJ.cjs} +7 -7
  44. package/dist/{chunk-VZRVQEMT.cjs.map → chunk-SYTDEWZJ.cjs.map} +1 -1
  45. package/dist/{chunk-Z6E45TJM.js → chunk-TDCIGINK.js} +5 -5
  46. package/dist/{chunk-UOQRNZIB.cjs → chunk-TQATQ4CX.cjs} +17 -17
  47. package/dist/{chunk-UOQRNZIB.cjs.map → chunk-TQATQ4CX.cjs.map} +1 -1
  48. package/dist/{chunk-PSL2WBEO.cjs → chunk-TT6O7BUZ.cjs} +33 -33
  49. package/dist/{chunk-PSL2WBEO.cjs.map → chunk-TT6O7BUZ.cjs.map} +1 -1
  50. package/dist/{chunk-JREG4T6K.cjs → chunk-U7BJC4WF.cjs} +3 -3
  51. package/dist/{chunk-JREG4T6K.cjs.map → chunk-U7BJC4WF.cjs.map} +1 -1
  52. package/dist/{chunk-EKABOXNB.js → chunk-UIKMPCHW.js} +2 -2
  53. package/dist/{chunk-7KM34VWL.js → chunk-XMJT3QZ2.js} +3 -3
  54. package/dist/{chunk-4AZWVS7F.js → chunk-XSOL5ISO.js} +7 -6
  55. package/dist/{chunk-4AZWVS7F.js.map → chunk-XSOL5ISO.js.map} +1 -1
  56. package/dist/{chunk-KSBDARII.js → chunk-Y2ASYQ3P.js} +5 -5
  57. package/dist/components/case-studies/index.cjs +17 -14
  58. package/dist/components/case-studies/index.cjs.map +1 -1
  59. package/dist/components/case-studies/index.js +8 -5
  60. package/dist/components/case-studies/index.js.map +1 -1
  61. package/dist/components/case-studies/share-experience-section.d.ts.map +1 -1
  62. package/dist/components/contact/contact-form.d.ts +7 -1
  63. package/dist/components/contact/contact-form.d.ts.map +1 -1
  64. package/dist/components/contact/index.cjs +5 -5
  65. package/dist/components/contact/index.js +4 -4
  66. package/dist/components/docs/index.cjs +8 -8
  67. package/dist/components/docs/index.js +7 -7
  68. package/dist/components/embeds/index.cjs +5 -5
  69. package/dist/components/embeds/index.js +4 -4
  70. package/dist/components/faq/index.cjs +5 -5
  71. package/dist/components/faq/index.js +4 -4
  72. package/dist/components/features/index.cjs +4 -4
  73. package/dist/components/features/index.js +3 -3
  74. package/dist/components/features/waitlist-form.d.ts +7 -2
  75. package/dist/components/features/waitlist-form.d.ts.map +1 -1
  76. package/dist/components/help-center-pages/index.cjs +54 -52
  77. package/dist/components/help-center-pages/index.cjs.map +1 -1
  78. package/dist/components/help-center-pages/index.js +17 -15
  79. package/dist/components/help-center-pages/index.js.map +1 -1
  80. package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
  81. package/dist/components/index.cjs +35 -35
  82. package/dist/components/index.js +14 -14
  83. package/dist/components/meeting-scheduler/booking-form.d.ts +7 -1
  84. package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
  85. package/dist/components/meeting-scheduler/index.cjs +53 -31
  86. package/dist/components/meeting-scheduler/index.cjs.map +1 -1
  87. package/dist/components/meeting-scheduler/index.d.ts +5 -1
  88. package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
  89. package/dist/components/meeting-scheduler/index.js +31 -9
  90. package/dist/components/meeting-scheduler/index.js.map +1 -1
  91. package/dist/components/navigation/index.cjs +7 -7
  92. package/dist/components/navigation/index.js +6 -6
  93. package/dist/components/onboarding-guides/index.cjs +7 -7
  94. package/dist/components/onboarding-guides/index.js +6 -6
  95. package/dist/components/tickets/help-center-create-form.d.ts.map +1 -1
  96. package/dist/components/tickets/index.cjs +8 -8
  97. package/dist/components/tickets/index.js +7 -7
  98. package/dist/components/ui/index.cjs +4 -4
  99. package/dist/components/ui/index.js +3 -3
  100. package/dist/contexts/endpoints-runtime-context.d.ts +5 -0
  101. package/dist/contexts/endpoints-runtime-context.d.ts.map +1 -1
  102. package/dist/contexts/index.cjs +2 -2
  103. package/dist/contexts/index.js +1 -1
  104. package/dist/hooks/index.cjs +9 -3
  105. package/dist/hooks/index.cjs.map +1 -1
  106. package/dist/hooks/index.d.ts +2 -0
  107. package/dist/hooks/index.d.ts.map +1 -1
  108. package/dist/hooks/index.js +8 -2
  109. package/dist/hooks/use-form-rescue.d.ts +43 -0
  110. package/dist/hooks/use-form-rescue.d.ts.map +1 -0
  111. package/dist/hooks/use-rescued-form.d.ts +28 -0
  112. package/dist/hooks/use-rescued-form.d.ts.map +1 -0
  113. package/dist/index.cjs +60 -8
  114. package/dist/index.cjs.map +1 -1
  115. package/dist/index.js +59 -7
  116. package/dist/index.js.map +1 -1
  117. package/dist/utils/form-rescue.cjs +142 -0
  118. package/dist/utils/form-rescue.cjs.map +1 -0
  119. package/dist/utils/form-rescue.d.ts +133 -0
  120. package/dist/utils/form-rescue.d.ts.map +1 -0
  121. package/dist/utils/form-rescue.js +118 -0
  122. package/dist/utils/form-rescue.js.map +1 -0
  123. package/dist/utils/index.cjs +138 -0
  124. package/dist/utils/index.cjs.map +1 -1
  125. package/dist/utils/index.d.ts +1 -0
  126. package/dist/utils/index.d.ts.map +1 -1
  127. package/dist/utils/index.js +116 -1
  128. package/dist/utils/index.js.map +1 -1
  129. package/package.json +7 -1
  130. package/src/components/case-studies/share-experience-section.tsx +2 -0
  131. package/src/components/contact/contact-form.tsx +33 -12
  132. package/src/components/features/waitlist-form.tsx +27 -2
  133. package/src/components/help-center-pages/trust-center-sections.tsx +2 -0
  134. package/src/components/meeting-scheduler/booking-form.tsx +30 -2
  135. package/src/components/meeting-scheduler/index.tsx +10 -1
  136. package/src/components/tickets/help-center-create-form.tsx +2 -0
  137. package/src/contexts/endpoints-runtime-context.tsx +5 -0
  138. package/src/hooks/__tests__/use-form-rescue.test.tsx +189 -0
  139. package/src/hooks/__tests__/use-rescued-form.test.tsx +91 -0
  140. package/src/hooks/index.ts +4 -0
  141. package/src/hooks/use-form-rescue.ts +330 -0
  142. package/src/hooks/use-rescued-form.ts +71 -0
  143. package/src/utils/__tests__/form-rescue.test.ts +124 -0
  144. package/src/utils/form-rescue.ts +237 -0
  145. package/src/utils/index.ts +5 -0
  146. package/dist/chunk-D55IENZJ.cjs.map +0 -1
  147. package/dist/chunk-HOEVEB7N.cjs.map +0 -1
  148. package/dist/chunk-HVEX4BSC.cjs.map +0 -1
  149. package/dist/chunk-TFSGYKWG.js.map +0 -1
  150. package/dist/chunk-XLJNYTUW.cjs.map +0 -1
  151. package/dist/chunk-YNGAJGYB.cjs.map +0 -1
  152. package/dist/chunk-ZRIVCLPR.js.map +0 -1
  153. /package/dist/{chunk-PWPYCJ33.js.map → chunk-7RQZ2FTF.js.map} +0 -0
  154. /package/dist/{chunk-XDTU23P4.js.map → chunk-ALSCESHG.js.map} +0 -0
  155. /package/dist/{chunk-TQPKNG2E.js.map → chunk-INVZNRWB.js.map} +0 -0
  156. /package/dist/{chunk-IBGHJLNT.js.map → chunk-JF4ZQZZJ.js.map} +0 -0
  157. /package/dist/{chunk-AL4I5HHB.js.map → chunk-MMDGSGVE.js.map} +0 -0
  158. /package/dist/{chunk-O5PYXQ6H.js.map → chunk-N3Q4FMMB.js.map} +0 -0
  159. /package/dist/{chunk-T3KXCOB2.js.map → chunk-OIE6GKS3.js.map} +0 -0
  160. /package/dist/{chunk-6S2KLT7O.js.map → chunk-Q4KRZOQR.js.map} +0 -0
  161. /package/dist/{chunk-Z6E45TJM.js.map → chunk-TDCIGINK.js.map} +0 -0
  162. /package/dist/{chunk-EKABOXNB.js.map → chunk-UIKMPCHW.js.map} +0 -0
  163. /package/dist/{chunk-7KM34VWL.js.map → chunk-XMJT3QZ2.js.map} +0 -0
  164. /package/dist/{chunk-KSBDARII.js.map → chunk-Y2ASYQ3P.js.map} +0 -0
@@ -1,5 +1,6 @@
1
1
  import type { ComponentType, ReactNode } from 'react';
2
2
  import { type BookingConfirmation, type MeetingAvailability, type MeetingBookingErrorCode, type MeetingHost } from '../../schemas/meeting-booking-schema';
3
+ import { type FormRescueDefinition } from '../../utils/form-rescue';
3
4
  import { type BookingFormProps } from './booking-form';
4
5
  export interface HubSpotMeetingSchedulerProps {
5
6
  /** Directory id of the meeting link (from the host's `/api/meetings` payload). */
@@ -72,6 +73,9 @@ export interface HubSpotMeetingSchedulerProps {
72
73
  * can pass it across the RSC boundary where a component cannot.
73
74
  */
74
75
  detailsFormProps?: Pick<BookingFormProps, 'fieldRows' | 'consent'>;
76
+ /** Form rescue for the details form (`RESCUE_FORMS.meetingBooking`). OPT-IN:
77
+ * omitted or `null` saves nothing. */
78
+ rescue?: FormRescueDefinition | null;
75
79
  }
76
80
  type Step = 'slot' | 'details' | 'confirmed';
77
81
  /** `onStageChange`'s value: a step, or the degraded box that replaces the flow. */
@@ -169,7 +173,7 @@ export declare function SchedulerDegradedCard({ flow, className, message, action
169
173
  action?: ReactNode;
170
174
  children?: ReactNode;
171
175
  }): import("react").JSX.Element;
172
- export declare function HubSpotMeetingScheduler({ meetingId, apiBaseUrl, initialAvailability, title, description, hosts, displayTimezone, fallbackUrl, onBack, onBooked, onStageChange, className, flow, detailsForm: DetailsForm, detailsFormProps, }: HubSpotMeetingSchedulerProps): import("react").JSX.Element;
176
+ export declare function HubSpotMeetingScheduler({ meetingId, apiBaseUrl, initialAvailability, title, description, hosts, displayTimezone, fallbackUrl, onBack, onBooked, onStageChange, className, flow, detailsForm: DetailsForm, detailsFormProps, rescue, }: HubSpotMeetingSchedulerProps): import("react").JSX.Element;
173
177
  export { BookingForm, BookingFormSkeleton, type BookingFormProps, type BookingFieldRow, type BookingFieldSlot, type BookingFormConsent, } from './booking-form';
174
178
  export { MeetingSchedulerDirectory, MeetingSchedulerDirectoryRowSkeleton, type MeetingSchedulerDirectoryProps, } from './directory';
175
179
  export type { MeetingAvailability, BookingConfirmation, MeetingBookingErrorCode, MeetingHost };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/meeting-scheduler/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/meeting-scheduler/index.tsx"],"names":[],"mappings":"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"}
@@ -24,14 +24,17 @@ import {
24
24
  SelectTrigger,
25
25
  SelectValue,
26
26
  Textarea
27
- } from "../../chunk-42OVTTOM.js";
27
+ } from "../../chunk-GIYAUKCY.js";
28
28
  import "../../chunk-L2SLFCXP.js";
29
29
  import "../../chunk-BJXDHKUX.js";
30
30
  import {
31
+ FORM_RESCUE_ATTEMPT_FIELD,
32
+ completeFormRescue,
31
33
  useHumanitySignals,
34
+ useRescuedForm,
32
35
  useToast
33
- } from "../../chunk-3PVOF3IB.js";
34
- import "../../chunk-ZRIVCLPR.js";
36
+ } from "../../chunk-SGK4Q2W2.js";
37
+ import "../../chunk-JD5TKRCU.js";
35
38
  import "../../chunk-GRBZC5N3.js";
36
39
  import {
37
40
  contentFetch,
@@ -617,7 +620,8 @@ function BookingForm({
617
620
  isSubmitting,
618
621
  onSubmit,
619
622
  honeypotInputProps,
620
- getSignals
623
+ getSignals,
624
+ rescue = null
621
625
  }) {
622
626
  const { formFields, legalConsent } = availability;
623
627
  const supportedFields = useMemo(() => normalizeFormFields(formFields), [formFields]);
@@ -638,6 +642,7 @@ function BookingForm({
638
642
  handleSubmit,
639
643
  setValue,
640
644
  getValues,
645
+ watch,
641
646
  formState: { errors }
642
647
  } = useForm({
643
648
  resolver: zodResolver(schema),
@@ -672,10 +677,23 @@ function BookingForm({
672
677
  { shouldDirty: false }
673
678
  );
674
679
  }, [consentDefaults, priorConsents, getValues, setValue]);
680
+ const rescueFields = useMemo(
681
+ () => [...BUILT_IN_BOOKING_FIELDS.map((field) => field.name), ...supportedFields.map((field) => field.name)],
682
+ [supportedFields]
683
+ );
684
+ const formRescue = useRescuedForm(
685
+ { watch, getValues, setValue },
686
+ {
687
+ rescue,
688
+ fields: rescueFields,
689
+ getSignals,
690
+ fieldPath: (name) => BUILT_IN_BOOKING_FIELDS.some((field) => field.name === name) ? name : `formFields.${name}`
691
+ }
692
+ );
675
693
  const submitValid = handleSubmit(async (data) => {
676
694
  if (consentMissing) return;
677
695
  if (deferSlot) {
678
- await onSubmit({ ...data, meetingId, [HOST_CONSENT_KEY]: consented });
696
+ await onSubmit({ ...data, meetingId, [HOST_CONSENT_KEY]: consented, ...formRescue.submitFields() });
679
697
  return;
680
698
  }
681
699
  await onSubmit({
@@ -685,7 +703,8 @@ function BookingForm({
685
703
  startTimeMs,
686
704
  durationMs,
687
705
  timezone,
688
- ...getSignals()
706
+ ...getSignals(),
707
+ ...formRescue.submitFields()
689
708
  });
690
709
  });
691
710
  const submit = (event) => {
@@ -1458,7 +1477,8 @@ function HubSpotMeetingScheduler({
1458
1477
  className,
1459
1478
  flow = DEFAULT_SCHEDULER_FLOW,
1460
1479
  detailsForm: DetailsForm = BookingForm,
1461
- detailsFormProps
1480
+ detailsFormProps,
1481
+ rescue = null
1462
1482
  }) {
1463
1483
  const {
1464
1484
  availability,
@@ -1580,6 +1600,7 @@ function HubSpotMeetingScheduler({
1580
1600
  return;
1581
1601
  }
1582
1602
  if (result.ok && result.confirmation) {
1603
+ completeFormRescue(rescue, payload[FORM_RESCUE_ATTEMPT_FIELD]);
1583
1604
  setConfirmation(result.confirmation);
1584
1605
  setStep("confirmed");
1585
1606
  onBooked?.(result.confirmation);
@@ -1604,7 +1625,7 @@ function HubSpotMeetingScheduler({
1604
1625
  });
1605
1626
  }
1606
1627
  },
1607
- [book, bookingError, detailsFirst, onBooked, refetchAvailability, resetSignals, toast]
1628
+ [book, bookingError, detailsFirst, onBooked, refetchAvailability, rescue, resetSignals, toast]
1608
1629
  );
1609
1630
  const escapeHatch = fallbackUrl ? /* @__PURE__ */ jsx6(Button, { variant: "outline", size: "small-legacy", href: fallbackUrl, openInNewTab: true, children: "Open in HubSpot" }) : null;
1610
1631
  const backEdge = detailsFirst ? step === "slot" ? backToDetails : onBack : step === "details" ? backToSlot : onBack;
@@ -1696,7 +1717,8 @@ function HubSpotMeetingScheduler({
1696
1717
  isSubmitting,
1697
1718
  onSubmit: detailsFirst ? stashDetails : handleSubmit,
1698
1719
  honeypotInputProps,
1699
- getSignals
1720
+ getSignals,
1721
+ rescue
1700
1722
  }
1701
1723
  )
1702
1724
  ] }) : /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-[var(--spacing-system-m)] md:min-h-0 md:flex-1", children: [