@flamingo-stack/openframe-frontend-core 0.0.596-2034.5685.1 → 0.0.596-2034.5686.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.
@@ -1,3 +1,4 @@
1
+ import { type BookingFormProps } from '../../components/meeting-scheduler/booking-form';
1
2
  import type { MeetingAvailability, MeetingFormField } from '../../schemas/meeting-booking-schema';
2
3
  /** One well-formed slot-first payload minus the questions — the base every
3
4
  * booking-schema test extends, declared once. */
@@ -29,4 +30,7 @@ export declare const bookingFormBaseProps: () => {
29
30
  export declare const typeInto: (el: HTMLElement, value: string) => boolean;
30
31
  /** The identity trio every submit needs. */
31
32
  export declare const fillIdentity: () => void;
33
+ export type BookingFormSubmit = (payload: Record<string, unknown>) => Promise<void>;
34
+ /** Mount a `BookingForm` over `availability` with the base props; returns the submit spy. */
35
+ export declare function mountBookingForm(availability: MeetingAvailability, props?: Partial<BookingFormProps>): import("vitest").Mock<BookingFormSubmit>;
32
36
  //# sourceMappingURL=meeting-booking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-booking.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/meeting-booking.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAElG;kDACkD;AAClD,eAAO,MAAM,YAAY;;;;;;;;CAQxB,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAWpF;AAED;4EAC4E;AAC5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;CAQ/B,CAAC;AAEH,eAAO,MAAM,QAAQ,GAAI,IAAI,WAAW,EAAE,OAAO,MAAM,YAA+C,CAAC;AAEvG,4CAA4C;AAC5C,eAAO,MAAM,YAAY,YAIxB,CAAC"}
1
+ {"version":3,"file":"meeting-booking.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/meeting-booking.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACrG,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAElG;kDACkD;AAClD,eAAO,MAAM,YAAY;;;;;;;;CAQxB,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAWpF;AAED;4EAC4E;AAC5E,eAAO,MAAM,oBAAoB;;;;;;;;;;;CAQ/B,CAAC;AAEH,eAAO,MAAM,QAAQ,GAAI,IAAI,WAAW,EAAE,OAAO,MAAM,YAA+C,CAAC;AAEvG,4CAA4C;AAC5C,eAAO,MAAM,YAAY,YAIxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpF,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,mBAAmB,EAAE,KAAK,GAAE,OAAO,CAAC,gBAAgB,CAAM,4CAIxG"}
@@ -39,6 +39,8 @@ declare const SPAN_CLASS: {
39
39
  readonly 3: "md:col-span-3";
40
40
  readonly 4: "md:col-span-4";
41
41
  };
42
+ /** The submit copy every standalone `BookingForm` gets; the slot-first preset reads the same constant. */
43
+ export declare const DEFAULT_SUBMIT_LABEL = "Confirm Booking";
42
44
  /** The even split of four columns over `count` slots; a remainder goes to the
43
45
  * leading slots (three slots → 2/1/1), so a row never leaves a trailing gap. */
44
46
  export declare const evenSpan: (count: number, index: number) => BookingFieldSpan;
@@ -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,EAM5B,KAAK,mBAAmB,EAIzB,MAAM,sCAAsC,CAAC;AAqB9C;;;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;AAKX;iFACiF;AACjF,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,gBAIvD,CAAC;AAoJF,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,+BAmUlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,+BAwCpH"}
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,EAM5B,KAAK,mBAAmB,EAIzB,MAAM,sCAAsC,CAAC;AAqB9C;;;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;AAKX,0GAA0G;AAC1G,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAYtD;iFACiF;AACjF,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,gBAIvD,CAAC;AAoJF,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,+BAmTlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,+BA2BpH"}
@@ -345,6 +345,11 @@ var SPAN_CLASS = {
345
345
  4: "md:col-span-4"
346
346
  };
347
347
  var FIELD_SKELETON_CLASS = "h-[4.75rem] w-full";
348
+ var DEFAULT_SUBMIT_LABEL = "Confirm Booking";
349
+ var FOOTER_ROW_CLASS = "flex flex-wrap items-center justify-between gap-[var(--spacing-system-m)]";
350
+ var FOOTER_BARE_CLASS = "flex";
351
+ var SUBMIT_WIDE_CLASS = "md:w-60";
352
+ var DEFAULT_FIELD_ROWS = [[{ name: "email" }], [{ name: "firstName" }, { name: "lastName" }]];
348
353
  var evenSpan = (count, index) => {
349
354
  const base = Math.floor(GRID_COLUMNS / Math.max(1, count));
350
355
  const extra = GRID_COLUMNS - base * count;
@@ -571,22 +576,16 @@ function BookingForm({
571
576
  const declared = declaredByName.get(name);
572
577
  return declared ? renderDeclaredField(declared) : null;
573
578
  };
574
- const placedNames = new Set((_nullishCoalesce(fieldRows, () => ( []))).flat().map((slot) => slot.name));
575
- const unplacedBuiltIns = fieldRows ? BUILT_IN_BOOKING_FIELDS.filter((f) => !placedNames.has(f.name)) : [];
579
+ const { rows: placedRows, unplacedBuiltIns, named: placedNames } = normalizeFieldRows(_nullishCoalesce(fieldRows, () => ( [])), slotResolves);
576
580
  const unplacedFields = fieldRows ? supportedFields.filter((f) => !placedNames.has(f.name)) : [];
577
- const seen = /* @__PURE__ */ new Set();
578
- const placedRows = (_nullishCoalesce(fieldRows, () => ( []))).map((row) => {
579
- const kept = row.filter((slot) => slotResolves(slot.name) && !seen.has(slot.name) && Boolean(seen.add(slot.name)));
580
- return kept.length === row.length ? kept : kept.map((slot) => ({ name: slot.name }));
581
- }).filter((row) => row.length > 0);
582
581
  const submitButton = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
583
582
  _chunkCJBSU3XBcjs.Button,
584
583
  {
585
584
  type: "submit",
586
585
  loading: isSubmitting,
587
586
  disabled: isSubmitting,
588
- className: footerNote ? "md:w-60" : void 0,
589
- children: _nullishCoalesce(submitLabel, () => ( "Confirm Booking"))
587
+ className: footerNote ? SUBMIT_WIDE_CLASS : void 0,
588
+ children: _nullishCoalesce(submitLabel, () => ( DEFAULT_SUBMIT_LABEL))
590
589
  }
591
590
  );
592
591
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { onSubmit: submit, className: FORM_STACK, noValidate: true, children: [
@@ -658,44 +657,36 @@ function BookingForm({
658
657
  ),
659
658
  legalConsent.privacyPolicyText && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: legalConsent.privacyPolicyText })
660
659
  ] }) }),
661
- footerNote ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center justify-between gap-[var(--spacing-system-m)]", children: [
660
+ footerNote ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: FOOTER_ROW_CLASS, children: [
662
661
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: footerNote }),
663
662
  submitButton
664
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex", children: submitButton })
663
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: FOOTER_BARE_CLASS, children: submitButton })
665
664
  ] });
666
665
  }
667
666
  function BookingFormSkeleton({ fieldRows, footerNote }) {
668
667
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk23V5BSHDcjs.cn.call(void 0, "flex-1", FORM_STACK), children: [
669
- fieldRows ? (
670
- // The host's rows through the SAME grid + column rule as the loaded form,
671
- // normalised the way the form normalises what it can know without the
672
- // link: a name placed twice once, and the built-ins no row names appended.
673
- // (Undeclared questions cannot be dropped here — declaring them is what
674
- // the availability the skeleton stands in for will tell us.)
675
- skeletonRows(fieldRows).map((row) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROW_GRID, children: row.map((slot, slotIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: _chunk23V5BSHDcjs.cn.call(void 0, FIELD_SKELETON_CLASS, slotColumnClass(row, slot, slotIndex)) }, slot.name)) }, row.map((s) => s.name).join("|")))
676
- ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
677
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-[var(--spacing-system-m)] md:grid-cols-2", children: [
678
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: FIELD_SKELETON_CLASS }),
679
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: FIELD_SKELETON_CLASS })
680
- ] }),
681
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: FIELD_SKELETON_CLASS }),
682
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: "h-[7.75rem] w-full" })
683
- ] }),
668
+ skeletonRows(_nullishCoalesce(fieldRows, () => ( DEFAULT_FIELD_ROWS))).map((row) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: ROW_GRID, children: row.map((slot, slotIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: _chunk23V5BSHDcjs.cn.call(void 0, FIELD_SKELETON_CLASS, slotColumnClass(row, slot, slotIndex)) }, slot.name)) }, row.map((s) => s.name).join("|"))),
669
+ !fieldRows && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: "h-[7.75rem] w-full" }),
684
670
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: "h-[4.25rem] w-full" }),
685
- footerNote ? (
686
- // The details-first footer: note beside a 240px button, wrapping on a phone.
687
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center justify-between gap-[var(--spacing-system-m)]", children: [
688
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: "h-5 min-w-40 flex-1" }),
689
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: "h-12 w-full md:w-60" })
690
- ] })
691
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: "h-12 w-40" }) })
671
+ footerNote ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: FOOTER_ROW_CLASS, children: [
672
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: "h-5 min-w-40 flex-1" }),
673
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: _chunk23V5BSHDcjs.cn.call(void 0, "h-12 w-full", SUBMIT_WIDE_CLASS) })
674
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: FOOTER_BARE_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCHIHYC7Qcjs.Skeleton, { className: "h-12 w-40" }) })
692
675
  ] });
693
676
  }
694
- function skeletonRows(fieldRows) {
677
+ function normalizeFieldRows(fieldRows, resolves = () => true) {
695
678
  const seen = /* @__PURE__ */ new Set();
696
- const rows = fieldRows.map((row) => row.filter((slot) => !seen.has(slot.name) && Boolean(seen.add(slot.name)))).filter((row) => row.length > 0);
697
- const unplacedBuiltIns = BUILT_IN_BOOKING_FIELDS.filter((f) => !seen.has(f.name)).map((f) => [{ name: f.name }]);
698
- return [...rows, ...unplacedBuiltIns];
679
+ const rows = fieldRows.map((row) => {
680
+ const kept = row.filter((slot) => resolves(slot.name) && !seen.has(slot.name) && Boolean(seen.add(slot.name)));
681
+ return kept.length === row.length ? kept : kept.map((slot) => ({ name: slot.name }));
682
+ }).filter((row) => row.length > 0);
683
+ const named = new Set(fieldRows.flat().map((slot) => slot.name));
684
+ const unplacedBuiltIns = BUILT_IN_BOOKING_FIELDS.filter((f) => !named.has(f.name));
685
+ return { rows, unplacedBuiltIns, named };
686
+ }
687
+ function skeletonRows(fieldRows) {
688
+ const { rows, unplacedBuiltIns } = normalizeFieldRows(fieldRows);
689
+ return [...rows, ...unplacedBuiltIns.map((f) => [{ name: f.name }])];
699
690
  }
700
691
 
701
692
  // src/components/meeting-scheduler/confirmation.tsx
@@ -1272,7 +1263,7 @@ var MEETING_SCHEDULER_H = "md:h-[34.375rem] lg:h-[23.75rem]";
1272
1263
  var MEETING_SCHEDULER_DETAILS_FIRST_H = "md:h-[39.875rem]";
1273
1264
  var DEFAULT_SCHEDULER_FLOW = "slot-first";
1274
1265
  var SCHEDULER_FLOW_PRESETS = {
1275
- "slot-first": { initialStep: "slot", height: MEETING_SCHEDULER_H, submitLabel: "Confirm Booking" },
1266
+ "slot-first": { initialStep: "slot", height: MEETING_SCHEDULER_H, submitLabel: DEFAULT_SUBMIT_LABEL },
1276
1267
  "details-first": {
1277
1268
  initialStep: "details",
1278
1269
  height: MEETING_SCHEDULER_DETAILS_FIRST_H,