@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
@@ -15,7 +15,7 @@ import {
15
15
  SoftwareInfo,
16
16
  SoftwareSourceBadge,
17
17
  ToolBadge
18
- } from "../chunk-O5PYXQ6H.js";
18
+ } from "../chunk-N3Q4FMMB.js";
19
19
  import {
20
20
  AppHeader,
21
21
  AppLayout,
@@ -35,7 +35,7 @@ import {
35
35
  SlidingSidebar,
36
36
  TicketAlertsButton,
37
37
  TopNavigation
38
- } from "../chunk-6S2KLT7O.js";
38
+ } from "../chunk-Q4KRZOQR.js";
39
39
  import {
40
40
  DeliveryLists,
41
41
  DeliveryTable,
@@ -49,7 +49,7 @@ import {
49
49
  RoadmapView,
50
50
  useLegalDocs,
51
51
  useRoadmapVoting
52
- } from "../chunk-Z6E45TJM.js";
52
+ } from "../chunk-TDCIGINK.js";
53
53
  import {
54
54
  DocNavigationProvider,
55
55
  DocViewer,
@@ -63,12 +63,12 @@ import {
63
63
  useDocNavigation,
64
64
  useDocumentTree,
65
65
  useScrollSpy
66
- } from "../chunk-KSBDARII.js";
66
+ } from "../chunk-Y2ASYQ3P.js";
67
67
  import {
68
68
  FileDownloadCard,
69
69
  GoogleSheetsViewer,
70
70
  PdfViewer
71
- } from "../chunk-7KM34VWL.js";
71
+ } from "../chunk-XMJT3QZ2.js";
72
72
  import {
73
73
  PersistentPagination,
74
74
  PersistentPaginationWrapper,
@@ -78,13 +78,13 @@ import {
78
78
  FaqAccordion,
79
79
  FaqDocumentPage,
80
80
  FaqSection
81
- } from "../chunk-TQPKNG2E.js";
81
+ } from "../chunk-INVZNRWB.js";
82
82
  import {
83
83
  MobileNavigationDropdown,
84
84
  MultiLevelNavigation,
85
85
  StickySectionNav,
86
86
  useSectionNavigation
87
- } from "../chunk-T3KXCOB2.js";
87
+ } from "../chunk-OIE6GKS3.js";
88
88
  import {
89
89
  DeliveryRow,
90
90
  DevCardRowContent,
@@ -93,16 +93,16 @@ import {
93
93
  DevSectionPage,
94
94
  DevSectionView,
95
95
  ListEmptyState
96
- } from "../chunk-PWPYCJ33.js";
96
+ } from "../chunk-7RQZ2FTF.js";
97
97
  import {
98
98
  EmptyState,
99
99
  UnifiedPagination
100
100
  } from "../chunk-5ONM3FHQ.js";
101
- import "../chunk-XDTU23P4.js";
101
+ import "../chunk-ALSCESHG.js";
102
102
  import {
103
103
  ArticleAuthorByline,
104
104
  DetailPageSkeleton
105
- } from "../chunk-IBGHJLNT.js";
105
+ } from "../chunk-JF4ZQZZJ.js";
106
106
  import {
107
107
  DocSearchBar,
108
108
  DocSearchResultRow,
@@ -110,7 +110,7 @@ import {
110
110
  mapDocSearchResults,
111
111
  resolveSearchResultAction,
112
112
  useDocSearch
113
- } from "../chunk-EKABOXNB.js";
113
+ } from "../chunk-UIKMPCHW.js";
114
114
  import {
115
115
  useSelfFetch
116
116
  } from "../chunk-KKSSA4CS.js";
@@ -625,7 +625,7 @@ import {
625
625
  useTimeTracker,
626
626
  useTrackerClock,
627
627
  useWalkthroughVideo
628
- } from "../chunk-42OVTTOM.js";
628
+ } from "../chunk-GIYAUKCY.js";
629
629
  import "../chunk-L2SLFCXP.js";
630
630
  import "../chunk-BJXDHKUX.js";
631
631
  import {
@@ -638,10 +638,10 @@ import {
638
638
  showToast,
639
639
  useOnboardingState,
640
640
  useToast
641
- } from "../chunk-3PVOF3IB.js";
641
+ } from "../chunk-SGK4Q2W2.js";
642
642
  import {
643
643
  useEndpointsRuntime
644
- } from "../chunk-ZRIVCLPR.js";
644
+ } from "../chunk-JD5TKRCU.js";
645
645
  import {
646
646
  Pagination,
647
647
  PaginationContent,
@@ -1,5 +1,6 @@
1
1
  import type { ReactNode, Ref } from 'react';
2
2
  import { type BuiltInBookingFieldName, type MeetingAvailability } from '../../schemas/meeting-booking-schema';
3
+ import type { FormRescueDefinition } from '../../utils/form-rescue';
3
4
  /**
4
5
  * One field in a host-supplied row. `name` is a built-in (`email`, `firstName`,
5
6
  * `lastName`) or a HubSpot-declared question's `name`.
@@ -85,6 +86,11 @@ export interface BookingFormProps {
85
86
  name: string;
86
87
  };
87
88
  getSignals: () => Record<string, string | number>;
89
+ /** Form rescue for this form (`RESCUE_FORMS.meetingBooking`); `null` or omitted saves nothing.
90
+ * The attempt's keys ride the payload handed to `onSubmit`, so the parent closes it after
91
+ * the booking commits (`completeFormRescue`), in details-first too, where this form has
92
+ * unmounted by then. */
93
+ rescue?: FormRescueDefinition | null;
88
94
  }
89
95
  /**
90
96
  * BookingForm — attendee details + the link's declared custom questions +
@@ -100,7 +106,7 @@ export interface BookingFormProps {
100
106
  * submit; the parent calls `resetSignals()` after a SLOT_TAKEN refetch so a
101
107
  * legitimate retry isn't flagged too-fast.
102
108
  */
103
- export declare function BookingForm({ availability, meetingId, startTimeMs, durationMs, timezone, deferSlot, initialValues, submitLabel, footerNote, fieldRows, consent, isSubmitting, onSubmit, honeypotInputProps, getSignals, }: BookingFormProps): import("react").JSX.Element;
109
+ export declare function BookingForm({ availability, meetingId, startTimeMs, durationMs, timezone, deferSlot, initialValues, submitLabel, footerNote, fieldRows, consent, isSubmitting, onSubmit, honeypotInputProps, getSignals, rescue, }: BookingFormProps): import("react").JSX.Element;
104
110
  /**
105
111
  * Cold-start placeholder for `flow="details-first"`, where the FORM is the
106
112
  * first thing in the action panel.
@@ -1 +1 @@
1
- {"version":3,"file":"booking-form.d.ts","sourceRoot":"","sources":["../../../src/components/meeting-scheduler/booking-form.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAa,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,EAEL,KAAK,uBAAuB,EAQ5B,KAAK,mBAAmB,EAKzB,MAAM,sCAAsC,CAAC;AAsB9C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yFAAyF;IACzF,IAAI,EAAE,uBAAuB,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,gFAAgF;IAChF,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,UAAU,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAiBD;6CAC6C;AAC7C,QAAA,MAAM,UAAU;;;;;CAKN,CAAC;AAOX,0GAA0G;AAC1G,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAYtD;iFACiF;AACjF,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,gBAIvD,CAAC;AA+MF,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;qEACiE;IACjE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,uFAAuF;IACvF,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,mFAAmF;IACnF,kBAAkB,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,EAC1B,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAiB,EACjB,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,UAAU,GACX,EAAE,gBAAgB,+BAuTlB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,OAAO,EACP,UAAU,GACX,EAAE;IACD,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B;;qDAEiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,+BA2BA"}
1
+ {"version":3,"file":"booking-form.d.ts","sourceRoot":"","sources":["../../../src/components/meeting-scheduler/booking-form.tsx"],"names":[],"mappings":"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"}
@@ -24,14 +24,17 @@ var _chunk77BLJHKIcjs = require('../../chunk-77BLJHKI.cjs');
24
24
 
25
25
 
26
26
 
27
- var _chunkHVEX4BSCcjs = require('../../chunk-HVEX4BSC.cjs');
27
+ var _chunkAUQ4UITEcjs = require('../../chunk-AUQ4UITE.cjs');
28
28
  require('../../chunk-GQWM3ECA.cjs');
29
29
  require('../../chunk-TON3YCCW.cjs');
30
30
 
31
31
 
32
32
 
33
- var _chunkYNGAJGYBcjs = require('../../chunk-YNGAJGYB.cjs');
34
- require('../../chunk-D55IENZJ.cjs');
33
+
34
+
35
+
36
+ var _chunk6LWIJJJ6cjs = require('../../chunk-6LWIJJJ6.cjs');
37
+ require('../../chunk-LCMT2GZK.cjs');
35
38
  require('../../chunk-JU6SBF3C.cjs');
36
39
 
37
40
 
@@ -341,7 +344,7 @@ function useMeetingBooking(options) {
341
344
  const seededOffset = _optionalChain([initialAvailability, 'optionalAccess', _5 => _5.meetingId]) === meetingId ? initialAvailability.monthOffset : void 0;
342
345
  const [monthOffset, setMonthOffsetState] = _react.useState.call(void 0, _nullishCoalesce(seededOffset, () => ( 0)));
343
346
  const setMonthOffset = _react.useCallback.call(void 0, (offset) => {
344
- setMonthOffsetState(Math.max(0, Math.min(_chunkHVEX4BSCcjs.MAX_MONTH_OFFSET, offset)));
347
+ setMonthOffsetState(Math.max(0, Math.min(_chunkAUQ4UITEcjs.MAX_MONTH_OFFSET, offset)));
345
348
  }, []);
346
349
  const prevMeetingIdRef = _react.useRef.call(void 0, meetingId);
347
350
  _react.useLayoutEffect.call(void 0, () => {
@@ -470,7 +473,7 @@ var FIELD_CONTROLS = {
470
473
  }
471
474
  ),
472
475
  textarea: ({ field, id, registerName, error, register }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
473
- _chunkHVEX4BSCcjs.Textarea,
476
+ _chunkAUQ4UITEcjs.Textarea,
474
477
  {
475
478
  id,
476
479
  required: field.required,
@@ -522,9 +525,9 @@ var FIELD_CONTROLS = {
522
525
  {
523
526
  control,
524
527
  name: registerName,
525
- render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHVEX4BSCcjs.Select, { value: _nullishCoalesce(rhf.value, () => ( "")), onValueChange: rhf.onChange, children: [
526
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHVEX4BSCcjs.SelectTrigger, { id, "aria-required": field.required || void 0, "aria-invalid": Boolean(error), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHVEX4BSCcjs.SelectValue, { placeholder: "Select\u2026" }) }),
527
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHVEX4BSCcjs.SelectContent, { children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHVEX4BSCcjs.SelectItem, { value: opt, children: optionLabel(field, opt) }, opt)) })
528
+ render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkAUQ4UITEcjs.Select, { value: _nullishCoalesce(rhf.value, () => ( "")), onValueChange: rhf.onChange, children: [
529
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAUQ4UITEcjs.SelectTrigger, { id, "aria-required": field.required || void 0, "aria-invalid": Boolean(error), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAUQ4UITEcjs.SelectValue, { placeholder: "Select\u2026" }) }),
530
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAUQ4UITEcjs.SelectContent, { children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAUQ4UITEcjs.SelectItem, { value: opt, children: optionLabel(field, opt) }, opt)) })
528
531
  ] })
529
532
  }
530
533
  ),
@@ -534,14 +537,14 @@ var FIELD_CONTROLS = {
534
537
  control,
535
538
  name: registerName,
536
539
  render: ({ field: rhf }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
537
- _chunkHVEX4BSCcjs.RadioGroup,
540
+ _chunkAUQ4UITEcjs.RadioGroup,
538
541
  {
539
542
  value: _nullishCoalesce(rhf.value, () => ( "")),
540
543
  onValueChange: rhf.onChange,
541
544
  "aria-required": field.required || void 0,
542
545
  "aria-invalid": Boolean(error),
543
546
  children: (_nullishCoalesce(field.options, () => ( []))).map((opt) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
544
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHVEX4BSCcjs.RadioGroupItem, { id: `${id}-${opt}`, value: opt }),
547
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAUQ4UITEcjs.RadioGroupItem, { id: `${id}-${opt}`, value: opt }),
545
548
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSD62VAYcjs.Label, { htmlFor: `${id}-${opt}`, children: optionLabel(field, opt) })
546
549
  ] }, opt))
547
550
  }
@@ -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 = _react.useMemo.call(void 0, () => 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
  } = _reacthookform.useForm.call(void 0, {
643
648
  resolver: _zod3.zodResolver.call(void 0, schema),
@@ -672,10 +677,23 @@ function BookingForm({
672
677
  { shouldDirty: false }
673
678
  );
674
679
  }, [consentDefaults, priorConsents, getValues, setValue]);
680
+ const rescueFields = _react.useMemo.call(void 0,
681
+ () => [...BUILT_IN_BOOKING_FIELDS.map((field) => field.name), ...supportedFields.map((field) => field.name)],
682
+ [supportedFields]
683
+ );
684
+ const formRescue = _chunk6LWIJJJ6cjs.useRescuedForm.call(void 0,
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) => {
@@ -735,8 +754,8 @@ function BookingForm({
735
754
  children: _nullishCoalesce(submitLabel, () => ( DEFAULT_SUBMIT_LABEL))
736
755
  }
737
756
  );
738
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: submit, className: FORM_STACK, noValidate: true, ..._chunkHVEX4BSCcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS, children: [
739
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHVEX4BSCcjs.HoneypotField, { ...honeypotInputProps }),
757
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: submit, className: FORM_STACK, noValidate: true, ..._chunkAUQ4UITEcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS, children: [
758
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAUQ4UITEcjs.HoneypotField, { ...honeypotInputProps }),
740
759
  fieldRows ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
741
760
  placedRows.map((row) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROW_GRID, children: row.map((slot, slotIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: slotColumnClass(row, slot, slotIndex), children: slotNode(slot.name) }, slot.name)) }, row.map((s) => s.name).join("|"))),
742
761
  [...unplacedBuiltIns, ...unplacedFields].map((field) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Fragment, { children: slotNode(field.name) }, field.name))
@@ -749,7 +768,7 @@ function BookingForm({
749
768
  supportedFields.map((field) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Fragment, { children: renderDeclaredField(field) }, field.name))
750
769
  ] }),
751
770
  consent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
752
- _chunkHVEX4BSCcjs.CheckboxBlock,
771
+ _chunkAUQ4UITEcjs.CheckboxBlock,
753
772
  {
754
773
  id: "ms-host-consent",
755
774
  checked: consented,
@@ -784,7 +803,7 @@ function BookingForm({
784
803
  // same block the waitlist form uses): box + label in one
785
804
  // bordered row.
786
805
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
787
- _chunkHVEX4BSCcjs.CheckboxBlock,
806
+ _chunkAUQ4UITEcjs.CheckboxBlock,
788
807
  {
789
808
  id: `ms-consent-${box.communicationTypeId}`,
790
809
  checked: _nullishCoalesce(_optionalChain([current, 'optionalAccess', _26 => _26.consented]), () => ( false)),
@@ -894,7 +913,7 @@ function ContextPanelSkeleton({
894
913
  backLabel = "Back"
895
914
  }) {
896
915
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, PANEL_STACK, className), children: [
897
- onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHVEX4BSCcjs.BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
916
+ onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAUQ4UITEcjs.BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
898
917
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_BODY, children: [
899
918
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: STRIP_MAIN, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: IDENTITY_ROW, children: [
900
919
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xs)] lg:flex-none", children: [
@@ -942,7 +961,7 @@ function SchedulerContextPanel({
942
961
  return zones.map((tz) => ({ value: tz, label: zoneLabel(tz) }));
943
962
  }, [timezone]);
944
963
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, PANEL_STACK, className), children: [
945
- onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHVEX4BSCcjs.BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
964
+ onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAUQ4UITEcjs.BackButton, { label: backLabel, onClick: onBack, className: BACK_BUTTON_CLASS }),
946
965
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_BODY, children: [
947
966
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: STRIP_MAIN, children: [
948
967
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: IDENTITY_ROW, children: [
@@ -1004,7 +1023,7 @@ function SchedulerContextPanel({
1004
1023
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkX7CEWD6Vcjs.cn.call(void 0, STRIP_ASIDE, locked && "max-lg:hidden"), children: [
1005
1024
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: FIELD_LABEL_CLASS, children: "Timezone" }),
1006
1025
  timezone ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1007
- _chunkHVEX4BSCcjs.Autocomplete,
1026
+ _chunkAUQ4UITEcjs.Autocomplete,
1008
1027
  {
1009
1028
  value: timezone,
1010
1029
  disabled,
@@ -1091,18 +1110,18 @@ var NOOP = () => void 0;
1091
1110
  function DayCalendar({ monthOffset, onMonthOffsetChange, selectedDay, onSelectDay, slotsByDay }) {
1092
1111
  const now = /* @__PURE__ */ new Date();
1093
1112
  const startMonth = new Date(now.getFullYear(), now.getMonth(), 1);
1094
- const endMonth = new Date(now.getFullYear(), now.getMonth() + _chunkHVEX4BSCcjs.MAX_MONTH_OFFSET + 1, 0);
1113
+ const endMonth = new Date(now.getFullYear(), now.getMonth() + _chunkAUQ4UITEcjs.MAX_MONTH_OFFSET + 1, 0);
1095
1114
  const visibleMonth = new Date(now.getFullYear(), now.getMonth() + monthOffset, 1);
1096
1115
  const dayHasNoSlots = _react.useCallback.call(void 0, (day) => !_optionalChain([slotsByDay, 'optionalAccess', _31 => _31.has, 'call', _32 => _32(calendarDayKey(day))]), [slotsByDay]);
1097
1116
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-h-0 flex-1 flex-col", "aria-busy": slotsByDay === null, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1098
- _chunkHVEX4BSCcjs.DatePickerCalendar,
1117
+ _chunkAUQ4UITEcjs.DatePickerCalendar,
1099
1118
  {
1100
1119
  mode: "single",
1101
1120
  bare: true,
1102
1121
  month: visibleMonth,
1103
1122
  onMonthChange: (month) => {
1104
1123
  const offset = (month.getFullYear() - now.getFullYear()) * 12 + (month.getMonth() - now.getMonth());
1105
- onMonthOffsetChange(Math.max(0, Math.min(_chunkHVEX4BSCcjs.MAX_MONTH_OFFSET, offset)));
1124
+ onMonthOffsetChange(Math.max(0, Math.min(_chunkAUQ4UITEcjs.MAX_MONTH_OFFSET, offset)));
1106
1125
  },
1107
1126
  fromDate: startMonth,
1108
1127
  toDate: endMonth,
@@ -1218,7 +1237,7 @@ function SlotPicker({
1218
1237
  monthLabelFor(monthOffset),
1219
1238
  "."
1220
1239
  ] }),
1221
- monthOffset < _chunkHVEX4BSCcjs.MAX_MONTH_OFFSET && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1240
+ monthOffset < _chunkAUQ4UITEcjs.MAX_MONTH_OFFSET && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1222
1241
  _chunkF6U2H42Lcjs.Button,
1223
1242
  {
1224
1243
  variant: "outline",
@@ -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,
@@ -1505,8 +1525,8 @@ function HubSpotMeetingScheduler({
1505
1525
  const [selectedSlot, setSelectedSlot] = _react.useState.call(void 0, null);
1506
1526
  const [confirmation, setConfirmation] = _react.useState.call(void 0, null);
1507
1527
  const [bookingError, setBookingError] = _react.useState.call(void 0, null);
1508
- const { honeypotInputProps, getSignals, resetSignals } = _chunkYNGAJGYBcjs.useHumanitySignals.call(void 0, );
1509
- const { toast } = _chunkYNGAJGYBcjs.useToast.call(void 0, );
1528
+ const { honeypotInputProps, getSignals, resetSignals } = _chunk6LWIJJJ6cjs.useHumanitySignals.call(void 0, );
1529
+ const { toast } = _chunk6LWIJJJ6cjs.useToast.call(void 0, );
1510
1530
  const autoAdvanceCount = _react.useRef.call(void 0, 0);
1511
1531
  const [machineFor, setMachineFor] = _react.useState.call(void 0, meetingId);
1512
1532
  if (machineFor !== meetingId) {
@@ -1580,6 +1600,7 @@ function HubSpotMeetingScheduler({
1580
1600
  return;
1581
1601
  }
1582
1602
  if (result.ok && result.confirmation) {
1603
+ _chunk6LWIJJJ6cjs.completeFormRescue.call(void 0, rescue, payload[_chunk6LWIJJJ6cjs.FORM_RESCUE_ATTEMPT_FIELD]);
1583
1604
  setConfirmation(result.confirmation);
1584
1605
  setStep("confirmed");
1585
1606
  _optionalChain([onBooked, 'optionalCall', _41 => _41(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__ */ _jsxruntime.jsx.call(void 0, _chunkF6U2H42Lcjs.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,16 +1717,17 @@ 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__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-m)] md:min-h-0 md:flex-1", children: [
1703
1725
  bookingError === "SLOT_TAKEN" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1704
- _chunkHVEX4BSCcjs.Alert,
1726
+ _chunkAUQ4UITEcjs.Alert,
1705
1727
  {
1706
1728
  variant: "warning",
1707
1729
  className: "mx-[var(--spacing-system-l)] mt-[var(--spacing-system-l)] w-auto lg:m-0 lg:w-full",
1708
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHVEX4BSCcjs.AlertDescription, { children: "That time was just taken \u2014 pick another slot below. (If you already submitted, check your email for a confirmation before rebooking.)" })
1730
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkAUQ4UITEcjs.AlertDescription, { children: "That time was just taken \u2014 pick another slot below. (If you already submitted, check your email for a confirmation before rebooking.)" })
1709
1731
  }
1710
1732
  ),
1711
1733
  timezone && durationMs != null ? (