@opensite/ui 2.1.2 → 2.1.3

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/dist/registry.cjs CHANGED
@@ -14928,8 +14928,6 @@ function ContactFaq({
14928
14928
  formHeading,
14929
14929
  buttonText = "Submit",
14930
14930
  buttonIcon,
14931
- actions,
14932
- actionsSlot,
14933
14931
  items,
14934
14932
  itemsSlot,
14935
14933
  faqHeading,
@@ -14944,7 +14942,6 @@ function ContactFaq({
14944
14942
  cardContentClassName,
14945
14943
  formHeadingClassName,
14946
14944
  formClassName,
14947
- submitClassName,
14948
14945
  faqHeadingClassName,
14949
14946
  faqContainerClassName,
14950
14947
  accordionClassName,
@@ -14971,48 +14968,6 @@ function ContactFaq({
14971
14968
  removeFile,
14972
14969
  resetUpload
14973
14970
  } = integration.useFileUpload({ onError });
14974
- const { form, submissionError, formMethod, resetSubmissionState } = integration.useContactForm({
14975
- formFields,
14976
- formConfig,
14977
- onSubmit,
14978
- onSuccess: (data) => {
14979
- resetUpload();
14980
- onSuccess?.(data);
14981
- },
14982
- onError,
14983
- resetOnSuccess: formConfig?.resetOnSuccess !== false,
14984
- uploadTokens
14985
- });
14986
- const actionsContent = React23.useMemo(() => {
14987
- if (actionsSlot) return actionsSlot;
14988
- if (actions && actions.length > 0) {
14989
- return actions.map((action, index) => {
14990
- const {
14991
- label,
14992
- icon,
14993
- iconAfter,
14994
- children,
14995
- className: actionClassName,
14996
- ...pressableProps
14997
- } = action;
14998
- return /* @__PURE__ */ jsxRuntime.jsx(
14999
- Pressable,
15000
- {
15001
- asButton: true,
15002
- className: actionClassName,
15003
- ...pressableProps,
15004
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
15005
- icon,
15006
- label,
15007
- iconAfter
15008
- ] })
15009
- },
15010
- index
15011
- );
15012
- });
15013
- }
15014
- return null;
15015
- }, [actionsSlot, actions]);
15016
14971
  const hasFaqItems = itemsSlot || items && items.length > 0;
15017
14972
  const faqContent = React23.useMemo(() => {
15018
14973
  if (itemsSlot) return itemsSlot;
@@ -15073,7 +15028,7 @@ function ContactFaq({
15073
15028
  ),
15074
15029
  children: heading
15075
15030
  }
15076
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
15031
+ ) : heading),
15077
15032
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
15078
15033
  "p",
15079
15034
  {
@@ -15083,7 +15038,7 @@ function ContactFaq({
15083
15038
  ),
15084
15039
  children: description
15085
15040
  }
15086
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
15041
+ ) : description)
15087
15042
  ]
15088
15043
  }
15089
15044
  ),
@@ -15107,62 +15062,38 @@ function ContactFaq({
15107
15062
  children: formHeading
15108
15063
  }
15109
15064
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: formHeadingClassName, children: formHeading })),
15110
- /* @__PURE__ */ jsxRuntime.jsxs(
15111
- forms.Form,
15065
+ /* @__PURE__ */ jsxRuntime.jsx(
15066
+ integration.FormEngine,
15112
15067
  {
15113
- form,
15114
- notificationConfig: {
15115
- submissionError,
15116
- successMessage
15117
- },
15118
- styleConfig: {
15119
- formClassName: cn("space-y-6", formClassName),
15120
- successMessageClassName,
15121
- errorMessageClassName
15122
- },
15123
- formConfig: {
15124
- endpoint: formConfig?.endpoint,
15125
- method: formMethod,
15126
- submissionConfig: formConfig?.submissionConfig
15068
+ api: formConfig,
15069
+ fields: formFields,
15070
+ formLayoutSettings: {
15071
+ formLayout: "standard",
15072
+ submitButtonSetup: {
15073
+ submitLabel: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
15074
+ buttonIcon,
15075
+ buttonText
15076
+ ] })
15077
+ },
15078
+ styleRules: {
15079
+ formClassName: cn("space-y-6", formClassName),
15080
+ successMessageClassName,
15081
+ errorMessageClassName
15082
+ }
15127
15083
  },
15128
- onNewSubmission: () => {
15084
+ successMessage,
15085
+ onSubmit,
15086
+ onSuccess: (data) => {
15129
15087
  resetUpload();
15130
- resetSubmissionState();
15088
+ onSuccess?.(data);
15131
15089
  },
15132
- children: [
15133
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-12 gap-6", children: formFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx(
15134
- "div",
15135
- {
15136
- className: integration.getColumnSpanClass(field.columnSpan),
15137
- children: /* @__PURE__ */ jsxRuntime.jsx(
15138
- integration.DynamicFormField,
15139
- {
15140
- field,
15141
- uploadProgress,
15142
- onFileUpload: uploadFiles,
15143
- onFileRemove: removeFile,
15144
- isUploading
15145
- }
15146
- )
15147
- },
15148
- field.name
15149
- )) }),
15150
- actionsSlot || actions && actions.length > 0 ? actionsContent : /* @__PURE__ */ jsxRuntime.jsxs(
15151
- Pressable,
15152
- {
15153
- componentType: "button",
15154
- type: "submit",
15155
- className: cn("w-full", submitClassName),
15156
- size: "lg",
15157
- asButton: true,
15158
- disabled: form.isSubmitting,
15159
- children: [
15160
- buttonIcon,
15161
- buttonText
15162
- ]
15163
- }
15164
- )
15165
- ]
15090
+ onError,
15091
+ resetOnSuccess: formConfig?.resetOnSuccess !== false,
15092
+ uploadTokens,
15093
+ uploadProgress,
15094
+ onFileUpload: uploadFiles,
15095
+ onFileRemove: removeFile,
15096
+ isUploading
15166
15097
  }
15167
15098
  )
15168
15099
  ] }) }),
@@ -20907,48 +20838,6 @@ function ContactVendor({
20907
20838
  removeFile,
20908
20839
  resetUpload
20909
20840
  } = integration.useFileUpload({ onError });
20910
- const { form, submissionError, formMethod, resetSubmissionState } = integration.useContactForm({
20911
- formFields,
20912
- formConfig,
20913
- onSubmit,
20914
- onSuccess: (data) => {
20915
- resetUpload();
20916
- onSuccess?.(data);
20917
- },
20918
- onError,
20919
- resetOnSuccess: formConfig?.resetOnSuccess !== false,
20920
- uploadTokens
20921
- });
20922
- const actionsContent = React23.useMemo(() => {
20923
- if (actionsSlot) return actionsSlot;
20924
- if (actions && actions.length > 0) {
20925
- return actions.map((action, index) => {
20926
- const {
20927
- label,
20928
- icon,
20929
- iconAfter,
20930
- children,
20931
- className: actionClassName,
20932
- ...pressableProps
20933
- } = action;
20934
- return /* @__PURE__ */ jsxRuntime.jsx(
20935
- Pressable,
20936
- {
20937
- asButton: true,
20938
- className: actionClassName,
20939
- ...pressableProps,
20940
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
20941
- icon,
20942
- label,
20943
- iconAfter
20944
- ] })
20945
- },
20946
- index
20947
- );
20948
- });
20949
- }
20950
- return null;
20951
- }, [actionsSlot, actions]);
20952
20841
  return /* @__PURE__ */ jsxRuntime.jsx(
20953
20842
  Section,
20954
20843
  {
@@ -20981,62 +20870,38 @@ function ContactVendor({
20981
20870
  }
20982
20871
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
20983
20872
  ] }),
20984
- /* @__PURE__ */ jsxRuntime.jsx(Card, { className: cn("mx-auto max-w-xl", cardClassName), children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: cn("p-6 lg:p-8", cardContentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(
20985
- forms.Form,
20986
- {
20987
- form,
20988
- notificationConfig: {
20989
- submissionError,
20990
- successMessage
20991
- },
20992
- styleConfig: {
20993
- formClassName: cn("space-y-4", formClassName),
20994
- successMessageClassName,
20995
- errorMessageClassName
20996
- },
20997
- formConfig: {
20998
- endpoint: formConfig?.endpoint,
20999
- method: formMethod,
21000
- submissionConfig: formConfig?.submissionConfig
20873
+ /* @__PURE__ */ jsxRuntime.jsx(Card, { className: cn("mx-auto max-w-xl", cardClassName), children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: cn("p-6 lg:p-8", cardContentClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
20874
+ integration.FormEngine,
20875
+ {
20876
+ api: formConfig,
20877
+ fields: formFields,
20878
+ formLayoutSettings: {
20879
+ formLayout: "standard",
20880
+ submitButtonSetup: {
20881
+ submitLabel: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
20882
+ buttonIcon,
20883
+ buttonText
20884
+ ] })
20885
+ },
20886
+ styleRules: {
20887
+ formClassName: cn("space-y-4", formClassName),
20888
+ successMessageClassName,
20889
+ errorMessageClassName
20890
+ }
21001
20891
  },
21002
- onNewSubmission: () => {
20892
+ successMessage,
20893
+ onSubmit,
20894
+ onSuccess: (data) => {
21003
20895
  resetUpload();
21004
- resetSubmissionState();
20896
+ onSuccess?.(data);
21005
20897
  },
21006
- children: [
21007
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-12 gap-6", children: formFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx(
21008
- "div",
21009
- {
21010
- className: integration.getColumnSpanClass(field.columnSpan),
21011
- children: /* @__PURE__ */ jsxRuntime.jsx(
21012
- integration.DynamicFormField,
21013
- {
21014
- field,
21015
- uploadProgress,
21016
- onFileUpload: uploadFiles,
21017
- onFileRemove: removeFile,
21018
- isUploading
21019
- }
21020
- )
21021
- },
21022
- field.name
21023
- )) }),
21024
- actionsSlot || actions && actions.length > 0 ? actionsContent : /* @__PURE__ */ jsxRuntime.jsxs(
21025
- Pressable,
21026
- {
21027
- componentType: "button",
21028
- type: "submit",
21029
- className: cn("w-full", submitClassName),
21030
- size: "lg",
21031
- asButton: true,
21032
- disabled: form.isSubmitting,
21033
- children: [
21034
- buttonIcon,
21035
- buttonText
21036
- ]
21037
- }
21038
- )
21039
- ]
20898
+ onError,
20899
+ resetOnSuccess: formConfig?.resetOnSuccess !== false,
20900
+ uploadTokens,
20901
+ uploadProgress,
20902
+ onFileUpload: uploadFiles,
20903
+ onFileRemove: removeFile,
20904
+ isUploading
21040
20905
  }
21041
20906
  ) }) })
21042
20907
  ] })
@@ -57618,7 +57483,7 @@ function HeroSaasDashboardPreview({
57618
57483
  className: "h-12"
57619
57484
  };
57620
57485
  const action = buttonAction || defaultButtonAction;
57621
- return /* @__PURE__ */ jsxRuntime.jsxs(
57486
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-12 w-full flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
57622
57487
  forms.Form,
57623
57488
  {
57624
57489
  form,
@@ -57641,7 +57506,7 @@ function HeroSaasDashboardPreview({
57641
57506
  resetSubmissionState();
57642
57507
  },
57643
57508
  children: [
57644
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-10 flex flex-col items-center gap-4 sm:flex-row sm:justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full max-w-md items-center gap-2", children: [
57509
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col items-center gap-4 sm:flex-row sm:justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full max-w-md items-center gap-2", children: [
57645
57510
  formFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
57646
57511
  integration.DynamicFormField,
57647
57512
  {
@@ -57667,7 +57532,7 @@ function HeroSaasDashboardPreview({
57667
57532
  helperText && (typeof helperText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm text-center mt-4"), children: helperText }) : helperText)
57668
57533
  ]
57669
57534
  }
57670
- );
57535
+ ) });
57671
57536
  }, [
57672
57537
  formSlot,
57673
57538
  formFields,
@@ -57737,39 +57602,39 @@ function HeroSaasDashboardPreview({
57737
57602
  className: cn(className),
57738
57603
  containerClassName,
57739
57604
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pt-10 md:pt-0", children: [
57740
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-4xl text-center", headerClassName), children: [
57741
- renderBadge,
57742
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
57743
- "h1",
57744
- {
57745
- className: cn(
57746
- "mt-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl text-balance",
57747
- headingClassName
57748
- ),
57749
- children: heading
57750
- }
57751
- ) : /* @__PURE__ */ jsxRuntime.jsx(
57752
- "h1",
57753
- {
57754
- className: cn(
57755
- "mt-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl text-balance",
57756
- headingClassName
57757
- ),
57758
- children: heading
57759
- }
57760
- )),
57761
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
57762
- "p",
57763
- {
57764
- className: cn(
57765
- "mt-6 text-lg md:text-xl text-balance",
57766
- descriptionClassName
57767
- ),
57768
- children: description
57769
- }
57770
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
57771
- renderForm
57772
- ] }),
57605
+ /* @__PURE__ */ jsxRuntime.jsxs(
57606
+ "div",
57607
+ {
57608
+ className: cn(
57609
+ "mmx-auto text-center flex flex-col items-center gap-6 md:gap-8 max-w-full md:max-w-md",
57610
+ headerClassName
57611
+ ),
57612
+ children: [
57613
+ renderBadge,
57614
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
57615
+ "h1",
57616
+ {
57617
+ className: cn(
57618
+ "text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl text-balance",
57619
+ headingClassName
57620
+ ),
57621
+ children: heading
57622
+ }
57623
+ ) : heading),
57624
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
57625
+ "p",
57626
+ {
57627
+ className: cn(
57628
+ "text-lg md:text-xl text-balance",
57629
+ descriptionClassName
57630
+ ),
57631
+ children: description
57632
+ }
57633
+ ) : description),
57634
+ renderForm
57635
+ ]
57636
+ }
57637
+ ),
57773
57638
  renderBrowserPreview
57774
57639
  ] })
57775
57640
  }
@@ -60388,17 +60253,6 @@ function HeroNewsletterMinimal({
60388
60253
  removeFile,
60389
60254
  resetUpload
60390
60255
  } = integration.useFileUpload({ onError });
60391
- const { form, submissionError, formMethod, resetSubmissionState } = integration.useContactForm({
60392
- formFields,
60393
- formConfig,
60394
- onSubmit,
60395
- onSuccess: (data) => {
60396
- resetUpload();
60397
- onSuccess?.(data);
60398
- },
60399
- onError,
60400
- uploadTokens
60401
- });
60402
60256
  const renderStats = React23__namespace.useMemo(() => {
60403
60257
  if (statsSlot) return statsSlot;
60404
60258
  if (!stats || stats.length === 0) return null;
@@ -60429,77 +60283,58 @@ function HeroNewsletterMinimal({
60429
60283
  if (formSlot) return formSlot;
60430
60284
  const defaultButtonAction = {
60431
60285
  label: "Subscribe",
60432
- variant: "default",
60433
- className: "h-12"
60286
+ variant: "default"
60434
60287
  };
60435
60288
  const action = buttonAction || defaultButtonAction;
60436
- return /* @__PURE__ */ jsxRuntime.jsxs(
60437
- forms.Form,
60438
- {
60439
- form,
60440
- fields: formFields,
60441
- notificationConfig: {
60442
- submissionError,
60443
- successMessage
60444
- },
60445
- formConfig: {
60446
- endpoint: formConfig?.endpoint,
60447
- method: formMethod,
60448
- submissionConfig: formConfig?.submissionConfig,
60449
- formLayout: "button-group",
60450
- buttonGroupSize: "lg",
60451
- submitLabel: action.label,
60452
- submitVariant: action.variant || "default"
60453
- },
60454
- onNewSubmission: () => {
60455
- resetUpload();
60456
- resetSubmissionState();
60457
- },
60458
- children: [
60459
- formFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
60460
- integration.DynamicFormField,
60461
- {
60462
- field,
60463
- uploadProgress,
60464
- onFileUpload: uploadFiles,
60465
- onFileRemove: removeFile,
60466
- isUploading
60467
- }
60468
- ) }, field.name)),
60469
- /* @__PURE__ */ jsxRuntime.jsxs(
60470
- Pressable,
60471
- {
60472
- onClick: form.handleSubmit,
60473
- asButton: true,
60474
- variant: action.variant,
60475
- className: cn("h-12", action.className),
60476
- disabled: form.isSubmitting,
60477
- children: [
60289
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
60290
+ /* @__PURE__ */ jsxRuntime.jsx(
60291
+ integration.FormEngine,
60292
+ {
60293
+ api: formConfig,
60294
+ fields: formFields,
60295
+ formLayoutSettings: {
60296
+ formLayout: "button-group",
60297
+ buttonGroupSetup: {
60298
+ size: "lg",
60299
+ submitLabel: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
60478
60300
  action.label,
60479
60301
  action.iconAfter
60480
- ]
60302
+ ] }),
60303
+ submitVariant: action.variant || "default"
60481
60304
  }
60482
- ),
60483
- helperText && (typeof helperText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm mt-2 text-center"), children: helperText }) : helperText)
60484
- ]
60485
- }
60486
- );
60305
+ },
60306
+ successMessage,
60307
+ onSubmit,
60308
+ onSuccess: (data) => {
60309
+ resetUpload();
60310
+ onSuccess?.(data);
60311
+ },
60312
+ onError,
60313
+ uploadTokens,
60314
+ uploadProgress,
60315
+ onFileUpload: uploadFiles,
60316
+ onFileRemove: removeFile,
60317
+ isUploading
60318
+ }
60319
+ ),
60320
+ helperText && (typeof helperText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm mt-2 text-center"), children: helperText }) : helperText)
60321
+ ] });
60487
60322
  }, [
60488
60323
  formSlot,
60489
60324
  formFields,
60490
- form,
60491
60325
  formConfig,
60492
- formMethod,
60493
60326
  buttonAction,
60327
+ uploadTokens,
60494
60328
  uploadProgress,
60495
60329
  uploadFiles,
60496
60330
  removeFile,
60497
60331
  isUploading,
60498
- submissionError,
60499
60332
  successMessage,
60333
+ onSubmit,
60334
+ onSuccess,
60335
+ onError,
60500
60336
  helperText,
60501
- resetUpload,
60502
- resetSubmissionState
60337
+ resetUpload
60503
60338
  ]);
60504
60339
  return /* @__PURE__ */ jsxRuntime.jsx(
60505
60340
  Section,
@@ -84450,7 +84285,7 @@ function ListSearchableGrid({
84450
84285
  }
84451
84286
  );
84452
84287
  }
84453
- var { useMemo: useMemo432 } = React23__namespace;
84288
+ var { useMemo: useMemo431 } = React23__namespace;
84454
84289
  function OfferModalNewsletterDiscount({
84455
84290
  title,
84456
84291
  emailPlaceholder,
@@ -84518,7 +84353,7 @@ function OfferModalNewsletterDiscount({
84518
84353
  });
84519
84354
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
84520
84355
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
84521
- const renderCloseButton = useMemo432(() => {
84356
+ const renderCloseButton = useMemo431(() => {
84522
84357
  if (closeButtonSlot) return closeButtonSlot;
84523
84358
  if (!closeButtonText) return null;
84524
84359
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute end-1.5 top-1.5", children: /* @__PURE__ */ jsxRuntime.jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -84532,12 +84367,12 @@ function OfferModalNewsletterDiscount({
84532
84367
  }
84533
84368
  ) }) });
84534
84369
  }, [closeButtonSlot, closeButtonText, closeClassName]);
84535
- const renderHeader = useMemo432(() => {
84370
+ const renderHeader = useMemo431(() => {
84536
84371
  if (headerSlot) return headerSlot;
84537
84372
  if (!title) return null;
84538
84373
  return /* @__PURE__ */ jsxRuntime.jsx(DialogHeader, { className: headerClassName, children: typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: cn("text-start font-serif text-2xl font-normal leading-snug", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: cn("text-start font-serif text-2xl font-normal leading-snug", titleClassName), children: title }) });
84539
84374
  }, [headerSlot, title, headerClassName, titleClassName]);
84540
- const renderForm = useMemo432(() => {
84375
+ const renderForm = useMemo431(() => {
84541
84376
  if (formSlot) return formSlot;
84542
84377
  return /* @__PURE__ */ jsxRuntime.jsxs(
84543
84378
  forms.Form,
@@ -84599,7 +84434,7 @@ function OfferModalNewsletterDiscount({
84599
84434
  }
84600
84435
  ) });
84601
84436
  }
84602
- var { useMemo: useMemo433 } = React23__namespace;
84437
+ var { useMemo: useMemo432 } = React23__namespace;
84603
84438
  function OfferModalMembershipImage({
84604
84439
  overline,
84605
84440
  title,
@@ -84676,7 +84511,7 @@ function OfferModalMembershipImage({
84676
84511
  });
84677
84512
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
84678
84513
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
84679
- const renderImage = useMemo433(() => {
84514
+ const renderImage = useMemo432(() => {
84680
84515
  if (imageSlot) return imageSlot;
84681
84516
  if (!image) return null;
84682
84517
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("max-h-[290px] h-full overflow-hidden max-lg:hidden", imageWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -84689,7 +84524,7 @@ function OfferModalMembershipImage({
84689
84524
  }
84690
84525
  ) });
84691
84526
  }, [imageSlot, image, imageWrapperClassName, imageClassName, optixFlowConfig]);
84692
- const renderCloseButton = useMemo433(() => {
84527
+ const renderCloseButton = useMemo432(() => {
84693
84528
  if (closeButtonSlot) return closeButtonSlot;
84694
84529
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -end-px -top-px z-10", children: /* @__PURE__ */ jsxRuntime.jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
84695
84530
  Pressable,
@@ -84705,7 +84540,7 @@ function OfferModalMembershipImage({
84705
84540
  }
84706
84541
  ) }) });
84707
84542
  }, [closeButtonSlot, closeClassName]);
84708
- const renderForm = useMemo433(() => {
84543
+ const renderForm = useMemo432(() => {
84709
84544
  if (formSlot) return formSlot;
84710
84545
  return /* @__PURE__ */ jsxRuntime.jsxs(
84711
84546
  forms.Form,
@@ -84768,7 +84603,7 @@ function OfferModalMembershipImage({
84768
84603
  }
84769
84604
  );
84770
84605
  }, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
84771
- const renderFooter = useMemo433(() => {
84606
+ const renderFooter = useMemo432(() => {
84772
84607
  if (footerSlot) return footerSlot;
84773
84608
  if (!description) return null;
84774
84609
  return /* @__PURE__ */ jsxRuntime.jsx(DialogFooter, { className: footerClassName, children: /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { className: cn("text-muted-foreground text-center text-xs leading-relaxed", descriptionClassName), children: description }) });
@@ -84888,7 +84723,7 @@ function SheetDescription({
84888
84723
  }
84889
84724
  );
84890
84725
  }
84891
- var { useMemo: useMemo434 } = React23__namespace;
84726
+ var { useMemo: useMemo433 } = React23__namespace;
84892
84727
  function OfferModalSheetNewsletter({
84893
84728
  logo,
84894
84729
  logoSlot,
@@ -84971,7 +84806,7 @@ function OfferModalSheetNewsletter({
84971
84806
  });
84972
84807
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
84973
84808
  const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
84974
- const renderLogo = useMemo434(() => {
84809
+ const renderLogo = useMemo433(() => {
84975
84810
  if (logoSlot) return logoSlot;
84976
84811
  if (!logo) return null;
84977
84812
  const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
@@ -84985,7 +84820,7 @@ function OfferModalSheetNewsletter({
84985
84820
  }
84986
84821
  );
84987
84822
  }, [logoSlot, logo, logoClassName, optixFlowConfig]);
84988
- const renderHeader = useMemo434(() => {
84823
+ const renderHeader = useMemo433(() => {
84989
84824
  if (headerSlot) return headerSlot;
84990
84825
  return /* @__PURE__ */ jsxRuntime.jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
84991
84826
  renderLogo,
@@ -84995,7 +84830,7 @@ function OfferModalSheetNewsletter({
84995
84830
  ] })
84996
84831
  ] });
84997
84832
  }, [headerSlot, renderLogo, headerClassName, title, titleClassName, description, descriptionClassName]);
84998
- const renderForm = useMemo434(() => {
84833
+ const renderForm = useMemo433(() => {
84999
84834
  if (formSlot) return formSlot;
85000
84835
  return /* @__PURE__ */ jsxRuntime.jsx(
85001
84836
  forms.Form,
@@ -85043,7 +84878,7 @@ function OfferModalSheetNewsletter({
85043
84878
  }
85044
84879
  );
85045
84880
  }, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
85046
- const renderLegal = useMemo434(() => {
84881
+ const renderLegal = useMemo433(() => {
85047
84882
  if (legalSlot) return legalSlot;
85048
84883
  if (!termsUrl || !termsText || !privacyUrl || !privacyText) return null;
85049
84884
  return /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-muted-foreground text-xs", legalClassName), children: [
@@ -85057,7 +84892,7 @@ function OfferModalSheetNewsletter({
85057
84892
  "."
85058
84893
  ] });
85059
84894
  }, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
85060
- const renderImage = useMemo434(() => {
84895
+ const renderImage = useMemo433(() => {
85061
84896
  if (imageSlot) return imageSlot;
85062
84897
  if (!image) return null;
85063
84898
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-1/2 basis-1/2", imageWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1, className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(