@opensite/ui 1.8.2 → 1.8.4

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 (171) hide show
  1. package/dist/about-story-gallery.cjs +3 -30
  2. package/dist/about-story-gallery.d.cts +1 -1
  3. package/dist/about-story-gallery.d.ts +1 -1
  4. package/dist/about-story-gallery.js +3 -30
  5. package/dist/components.d.cts +1 -1
  6. package/dist/components.d.ts +1 -1
  7. package/dist/contact-callback.cjs +526 -273
  8. package/dist/contact-callback.d.cts +39 -59
  9. package/dist/contact-callback.d.ts +39 -59
  10. package/dist/contact-callback.js +528 -274
  11. package/dist/contact-card.cjs +459 -183
  12. package/dist/contact-card.d.cts +26 -49
  13. package/dist/contact-card.d.ts +26 -49
  14. package/dist/contact-card.js +461 -183
  15. package/dist/contact-careers.cjs +614 -510
  16. package/dist/contact-careers.d.cts +32 -55
  17. package/dist/contact-careers.d.ts +32 -55
  18. package/dist/contact-careers.js +616 -510
  19. package/dist/contact-catering.cjs +507 -501
  20. package/dist/contact-catering.d.cts +27 -61
  21. package/dist/contact-catering.d.ts +27 -61
  22. package/dist/contact-catering.js +509 -500
  23. package/dist/contact-consultation.cjs +484 -253
  24. package/dist/contact-consultation.d.cts +29 -56
  25. package/dist/contact-consultation.d.ts +29 -56
  26. package/dist/contact-consultation.js +486 -253
  27. package/dist/contact-dark.cjs +296 -296
  28. package/dist/contact-dark.d.cts +1 -1
  29. package/dist/contact-dark.d.ts +1 -1
  30. package/dist/contact-dark.js +297 -296
  31. package/dist/contact-demo.d.cts +1 -1
  32. package/dist/contact-demo.d.ts +1 -1
  33. package/dist/contact-emergency.d.cts +1 -1
  34. package/dist/contact-emergency.d.ts +1 -1
  35. package/dist/contact-event.d.cts +1 -1
  36. package/dist/contact-event.d.ts +1 -1
  37. package/dist/contact-faq.cjs +247 -250
  38. package/dist/contact-faq.d.cts +1 -1
  39. package/dist/contact-faq.d.ts +1 -1
  40. package/dist/contact-faq.js +248 -250
  41. package/dist/contact-feedback.d.cts +1 -1
  42. package/dist/contact-feedback.d.ts +1 -1
  43. package/dist/contact-fitness.d.cts +1 -1
  44. package/dist/contact-fitness.d.ts +1 -1
  45. package/dist/contact-guest.d.cts +1 -1
  46. package/dist/contact-guest.d.ts +1 -1
  47. package/dist/contact-image.d.cts +1 -1
  48. package/dist/contact-image.d.ts +1 -1
  49. package/dist/contact-insurance.d.cts +1 -1
  50. package/dist/contact-insurance.d.ts +1 -1
  51. package/dist/contact-interview.d.cts +1 -1
  52. package/dist/contact-interview.d.ts +1 -1
  53. package/dist/contact-locations.d.cts +1 -1
  54. package/dist/contact-locations.d.ts +1 -1
  55. package/dist/contact-maintenance.d.cts +1 -1
  56. package/dist/contact-maintenance.d.ts +1 -1
  57. package/dist/contact-map.d.cts +1 -1
  58. package/dist/contact-map.d.ts +1 -1
  59. package/dist/contact-minimal.d.cts +1 -1
  60. package/dist/contact-minimal.d.ts +1 -1
  61. package/dist/contact-moving.d.cts +1 -1
  62. package/dist/contact-moving.d.ts +1 -1
  63. package/dist/contact-multistep.d.cts +1 -1
  64. package/dist/contact-multistep.d.ts +1 -1
  65. package/dist/contact-partnership.d.cts +1 -1
  66. package/dist/contact-partnership.d.ts +1 -1
  67. package/dist/contact-photography.cjs +247 -250
  68. package/dist/contact-photography.d.cts +1 -1
  69. package/dist/contact-photography.d.ts +1 -1
  70. package/dist/contact-photography.js +248 -250
  71. package/dist/contact-press.d.cts +1 -1
  72. package/dist/contact-press.d.ts +1 -1
  73. package/dist/contact-quote.d.cts +1 -1
  74. package/dist/contact-quote.d.ts +1 -1
  75. package/dist/contact-referral.d.cts +1 -1
  76. package/dist/contact-referral.d.ts +1 -1
  77. package/dist/contact-report.d.cts +1 -1
  78. package/dist/contact-report.d.ts +1 -1
  79. package/dist/contact-reservation.d.cts +1 -1
  80. package/dist/contact-reservation.d.ts +1 -1
  81. package/dist/contact-retreat.d.cts +1 -1
  82. package/dist/contact-retreat.d.ts +1 -1
  83. package/dist/contact-rsvp.d.cts +1 -1
  84. package/dist/contact-rsvp.d.ts +1 -1
  85. package/dist/contact-sales.d.cts +1 -1
  86. package/dist/contact-sales.d.ts +1 -1
  87. package/dist/contact-schedule.d.cts +1 -1
  88. package/dist/contact-schedule.d.ts +1 -1
  89. package/dist/contact-sponsorship.d.cts +1 -1
  90. package/dist/contact-sponsorship.d.ts +1 -1
  91. package/dist/contact-support.d.cts +1 -1
  92. package/dist/contact-support.d.ts +1 -1
  93. package/dist/contact-tenant.d.cts +1 -1
  94. package/dist/contact-tenant.d.ts +1 -1
  95. package/dist/contact-vendor.d.cts +1 -1
  96. package/dist/contact-vendor.d.ts +1 -1
  97. package/dist/contact-volunteer.d.cts +1 -1
  98. package/dist/contact-volunteer.d.ts +1 -1
  99. package/dist/contact-warranty.d.cts +1 -1
  100. package/dist/contact-warranty.d.ts +1 -1
  101. package/dist/contact-wedding.d.cts +1 -1
  102. package/dist/contact-wedding.d.ts +1 -1
  103. package/dist/cta-app-download-newsletter.d.cts +1 -1
  104. package/dist/cta-app-download-newsletter.d.ts +1 -1
  105. package/dist/cta-newsletter-features.d.cts +1 -1
  106. package/dist/cta-newsletter-features.d.ts +1 -1
  107. package/dist/footer-accordion-social.d.cts +1 -1
  108. package/dist/footer-accordion-social.d.ts +1 -1
  109. package/dist/footer-newsletter-contact.d.cts +1 -1
  110. package/dist/footer-newsletter-contact.d.ts +1 -1
  111. package/dist/footer-newsletter-minimal.d.cts +1 -1
  112. package/dist/footer-newsletter-minimal.d.ts +1 -1
  113. package/dist/footer-split-image-accordion.d.cts +1 -1
  114. package/dist/footer-split-image-accordion.d.ts +1 -1
  115. package/dist/{forms-nGgHUTBw.d.cts → forms-CStlFhnh.d.cts} +41 -0
  116. package/dist/{forms-nGgHUTBw.d.ts → forms-CStlFhnh.d.ts} +41 -0
  117. package/dist/hero-conversation-intelligence.cjs +1 -2
  118. package/dist/hero-conversation-intelligence.d.cts +1 -5
  119. package/dist/hero-conversation-intelligence.d.ts +1 -5
  120. package/dist/hero-conversation-intelligence.js +1 -2
  121. package/dist/hero-conversion-video-play.cjs +2 -2
  122. package/dist/hero-conversion-video-play.js +2 -2
  123. package/dist/hero-design-system-3d.cjs +162 -82
  124. package/dist/hero-design-system-3d.js +162 -82
  125. package/dist/hero-ecommerce-product-showcase.cjs +103 -81
  126. package/dist/hero-ecommerce-product-showcase.d.cts +5 -1
  127. package/dist/hero-ecommerce-product-showcase.d.ts +5 -1
  128. package/dist/hero-ecommerce-product-showcase.js +103 -81
  129. package/dist/hero-floating-images.cjs +1 -1
  130. package/dist/hero-floating-images.js +1 -1
  131. package/dist/hero-hiring-animated-text.cjs +4 -4
  132. package/dist/hero-hiring-animated-text.js +4 -4
  133. package/dist/hero-minimal-centered-dark.cjs +111 -82
  134. package/dist/hero-minimal-centered-dark.d.cts +1 -1
  135. package/dist/hero-minimal-centered-dark.d.ts +1 -1
  136. package/dist/hero-minimal-centered-dark.js +111 -82
  137. package/dist/hero-mobile-app-download.cjs +1 -1
  138. package/dist/hero-mobile-app-download.js +1 -1
  139. package/dist/hero-overlay-cta-grid.cjs +1 -1
  140. package/dist/hero-overlay-cta-grid.js +1 -1
  141. package/dist/hero-spiral-pattern-cards.cjs +1 -1
  142. package/dist/hero-spiral-pattern-cards.js +1 -1
  143. package/dist/hero-startup-launch-cta.cjs +1 -1
  144. package/dist/hero-startup-launch-cta.js +1 -1
  145. package/dist/hero-stats-social-proof.cjs +106 -90
  146. package/dist/hero-stats-social-proof.js +106 -90
  147. package/dist/hero-testimonial-image-grid.cjs +1 -1
  148. package/dist/hero-testimonial-image-grid.js +1 -1
  149. package/dist/hero-therapy-testimonial-grid.cjs +1 -1
  150. package/dist/hero-therapy-testimonial-grid.js +1 -1
  151. package/dist/hero-ui-library-showcase.cjs +63 -15
  152. package/dist/hero-ui-library-showcase.d.cts +5 -1
  153. package/dist/hero-ui-library-showcase.d.ts +5 -1
  154. package/dist/hero-ui-library-showcase.js +63 -15
  155. package/dist/index.cjs +44 -6
  156. package/dist/index.d.cts +3 -2
  157. package/dist/index.d.ts +3 -2
  158. package/dist/index.js +44 -6
  159. package/dist/link-page-newsletter-social.d.cts +1 -1
  160. package/dist/link-page-newsletter-social.d.ts +1 -1
  161. package/dist/offer-modal-membership-image.d.cts +1 -1
  162. package/dist/offer-modal-membership-image.d.ts +1 -1
  163. package/dist/offer-modal-newsletter-discount.d.cts +1 -1
  164. package/dist/offer-modal-newsletter-discount.d.ts +1 -1
  165. package/dist/offer-modal-sheet-newsletter.d.cts +1 -1
  166. package/dist/offer-modal-sheet-newsletter.d.ts +1 -1
  167. package/dist/registry.cjs +14465 -14767
  168. package/dist/registry.js +12664 -12966
  169. package/dist/resource-list-hero-filter.d.cts +1 -1
  170. package/dist/resource-list-hero-filter.d.ts +1 -1
  171. package/package.json +3 -3
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
- import { P as PageSpeedFormConfig } from './forms-nGgHUTBw.cjs';
2
+ import { F as FormFieldConfig } from './form-field-types-flMXhIjG.cjs';
3
+ import { P as PageSpeedFormConfig } from './forms-CStlFhnh.cjs';
3
4
  import { f as SectionBackground, g as SectionSpacing, s as PatternName } from './community-initiatives-k1_FqqBQ.cjs';
4
5
  import { A as ActionConfig } from './blocks-rgCERYOC.cjs';
5
6
  import '@page-speed/forms/integration';
@@ -8,13 +9,6 @@ import 'class-variance-authority';
8
9
  import './button-variants-lRElsmTc.cjs';
9
10
  import 'class-variance-authority/types';
10
11
 
11
- interface ContactCardFormValues {
12
- firstName: string;
13
- lastName: string;
14
- email: string;
15
- message: string;
16
- privacyPolicy: boolean;
17
- }
18
12
  interface ContactOption {
19
13
  /**
20
14
  * Icon name for the contact option
@@ -66,12 +60,23 @@ interface ContactCardProps {
66
60
  * Custom slot for rendering contact options (overrides contactOptions array)
67
61
  */
68
62
  contactOptionsSlot?: React.ReactNode;
63
+ /**
64
+ * Array of form field configurations
65
+ * If not provided, defaults to: firstName, lastName, email, message, privacyPolicy
66
+ */
67
+ formFields?: FormFieldConfig[];
68
+ /**
69
+ * Success message to display after form submission
70
+ * @default "Thank you! We'll be in touch soon."
71
+ */
72
+ successMessage?: React.ReactNode;
69
73
  /**
70
74
  * Additional CSS classes for the section
71
75
  */
72
76
  className?: string;
73
77
  /**
74
78
  * Additional CSS classes for the container
79
+ * @default "px-6 sm:px-6 md:px-8 lg:px-8"
75
80
  */
76
81
  containerClassName?: string;
77
82
  /**
@@ -90,6 +95,14 @@ interface ContactCardProps {
90
95
  * Additional CSS classes for the submit button
91
96
  */
92
97
  submitClassName?: string;
98
+ /**
99
+ * Additional CSS classes for the success message
100
+ */
101
+ successMessageClassName?: string;
102
+ /**
103
+ * Additional CSS classes for the error message
104
+ */
105
+ errorMessageClassName?: string;
93
106
  /**
94
107
  * Additional CSS classes for the info panel
95
108
  */
@@ -112,6 +125,7 @@ interface ContactCardProps {
112
125
  background?: SectionBackground;
113
126
  /**
114
127
  * Vertical spacing for the section
128
+ * @default "py-8 md:py-32"
115
129
  */
116
130
  spacing?: SectionSpacing;
117
131
  /**
@@ -124,56 +138,19 @@ interface ContactCardProps {
124
138
  patternOpacity?: number;
125
139
  /**
126
140
  * Optional form submission configuration.
127
- *
128
- * **Universal Usage**: Works with ANY REST API endpoint. Simply provide an `endpoint` URL
129
- * and the form will submit to it in JSON format.
130
- *
131
- * @example
132
- * // Works with any API
133
- * formConfig={{ endpoint: "https://api.mysite.com/contact", format: "json" }}
134
- *
135
- * @example
136
- * // With custom headers (e.g., authentication)
137
- * formConfig={{
138
- * endpoint: "/api/contact",
139
- * headers: { "Authorization": "Bearer token123" }
140
- * }}
141
- *
142
- * **Note**: The `apiKey`, `contactCategoryToken`, and other platform-specific fields
143
- * are OPTIONAL and only needed when integrating with DashTrack's Rails backend.
144
- * For generic REST APIs, just use `endpoint`, `method`, `format`, and `headers`.
145
- *
146
- * See `FORMS_INTEGRATION_GUIDE.md` for complete examples with Next.js, React, and more.
141
+ * See `FORMS_INTEGRATION_GUIDE.md` for complete examples.
147
142
  */
148
143
  formConfig?: PageSpeedFormConfig;
149
144
  /**
150
145
  * Optional custom submission handler for maximum flexibility.
151
- *
152
- * Use this when you need complete control over the submission logic,
153
- * such as custom API calls, analytics tracking, or multi-step workflows.
154
- *
155
- * Can be used alone or in combination with `formConfig` for hybrid approaches.
156
- *
157
- * @example
158
- * onSubmit={async (values) => {
159
- * await fetch("/api/contact", {
160
- * method: "POST",
161
- * body: JSON.stringify(values)
162
- * });
163
- * }}
164
- */
165
- onSubmit?: (values: ContactCardFormValues) => void | Promise<void>;
146
+ */
147
+ onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;
166
148
  /**
167
149
  * Optional success callback invoked after successful submission.
168
- *
169
- * Called after `formConfig` submission and/or `onSubmit` completes successfully.
170
- * Use for showing success messages, redirecting, analytics tracking, etc.
171
150
  */
172
151
  onSuccess?: (data: unknown) => void;
173
152
  /**
174
153
  * Optional error callback invoked if submission fails.
175
- *
176
- * Receives the error object for custom error handling, logging, or user notifications.
177
154
  */
178
155
  onError?: (error: Error) => void;
179
156
  }
@@ -192,6 +169,6 @@ interface ContactCardProps {
192
169
  * />
193
170
  * ```
194
171
  */
195
- declare function ContactCard({ heading, description, formHeading, buttonText, buttonIcon, actions, actionsSlot, contactOptions, contactOptionsSlot, className, containerClassName, cardClassName, formHeadingClassName, formClassName, submitClassName, infoPanelClassName, headingClassName, descriptionClassName, contactOptionsClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCardProps): React.JSX.Element;
172
+ declare function ContactCard({ heading, description, formHeading, buttonText, buttonIcon, actions, actionsSlot, contactOptions, contactOptionsSlot, formFields, successMessage, className, containerClassName, cardClassName, formHeadingClassName, formClassName, submitClassName, successMessageClassName, errorMessageClassName, infoPanelClassName, headingClassName, descriptionClassName, contactOptionsClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCardProps): React.JSX.Element;
196
173
 
197
174
  export { ContactCard, type ContactCardProps };
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
- import { P as PageSpeedFormConfig } from './forms-nGgHUTBw.js';
2
+ import { F as FormFieldConfig } from './form-field-types-flMXhIjG.js';
3
+ import { P as PageSpeedFormConfig } from './forms-CStlFhnh.js';
3
4
  import { f as SectionBackground, g as SectionSpacing, s as PatternName } from './community-initiatives-AwBlQu1a.js';
4
5
  import { A as ActionConfig } from './blocks-ClXAGlHQ.js';
5
6
  import '@page-speed/forms/integration';
@@ -8,13 +9,6 @@ import 'class-variance-authority';
8
9
  import './button-variants-lRElsmTc.js';
9
10
  import 'class-variance-authority/types';
10
11
 
11
- interface ContactCardFormValues {
12
- firstName: string;
13
- lastName: string;
14
- email: string;
15
- message: string;
16
- privacyPolicy: boolean;
17
- }
18
12
  interface ContactOption {
19
13
  /**
20
14
  * Icon name for the contact option
@@ -66,12 +60,23 @@ interface ContactCardProps {
66
60
  * Custom slot for rendering contact options (overrides contactOptions array)
67
61
  */
68
62
  contactOptionsSlot?: React.ReactNode;
63
+ /**
64
+ * Array of form field configurations
65
+ * If not provided, defaults to: firstName, lastName, email, message, privacyPolicy
66
+ */
67
+ formFields?: FormFieldConfig[];
68
+ /**
69
+ * Success message to display after form submission
70
+ * @default "Thank you! We'll be in touch soon."
71
+ */
72
+ successMessage?: React.ReactNode;
69
73
  /**
70
74
  * Additional CSS classes for the section
71
75
  */
72
76
  className?: string;
73
77
  /**
74
78
  * Additional CSS classes for the container
79
+ * @default "px-6 sm:px-6 md:px-8 lg:px-8"
75
80
  */
76
81
  containerClassName?: string;
77
82
  /**
@@ -90,6 +95,14 @@ interface ContactCardProps {
90
95
  * Additional CSS classes for the submit button
91
96
  */
92
97
  submitClassName?: string;
98
+ /**
99
+ * Additional CSS classes for the success message
100
+ */
101
+ successMessageClassName?: string;
102
+ /**
103
+ * Additional CSS classes for the error message
104
+ */
105
+ errorMessageClassName?: string;
93
106
  /**
94
107
  * Additional CSS classes for the info panel
95
108
  */
@@ -112,6 +125,7 @@ interface ContactCardProps {
112
125
  background?: SectionBackground;
113
126
  /**
114
127
  * Vertical spacing for the section
128
+ * @default "py-8 md:py-32"
115
129
  */
116
130
  spacing?: SectionSpacing;
117
131
  /**
@@ -124,56 +138,19 @@ interface ContactCardProps {
124
138
  patternOpacity?: number;
125
139
  /**
126
140
  * Optional form submission configuration.
127
- *
128
- * **Universal Usage**: Works with ANY REST API endpoint. Simply provide an `endpoint` URL
129
- * and the form will submit to it in JSON format.
130
- *
131
- * @example
132
- * // Works with any API
133
- * formConfig={{ endpoint: "https://api.mysite.com/contact", format: "json" }}
134
- *
135
- * @example
136
- * // With custom headers (e.g., authentication)
137
- * formConfig={{
138
- * endpoint: "/api/contact",
139
- * headers: { "Authorization": "Bearer token123" }
140
- * }}
141
- *
142
- * **Note**: The `apiKey`, `contactCategoryToken`, and other platform-specific fields
143
- * are OPTIONAL and only needed when integrating with DashTrack's Rails backend.
144
- * For generic REST APIs, just use `endpoint`, `method`, `format`, and `headers`.
145
- *
146
- * See `FORMS_INTEGRATION_GUIDE.md` for complete examples with Next.js, React, and more.
141
+ * See `FORMS_INTEGRATION_GUIDE.md` for complete examples.
147
142
  */
148
143
  formConfig?: PageSpeedFormConfig;
149
144
  /**
150
145
  * Optional custom submission handler for maximum flexibility.
151
- *
152
- * Use this when you need complete control over the submission logic,
153
- * such as custom API calls, analytics tracking, or multi-step workflows.
154
- *
155
- * Can be used alone or in combination with `formConfig` for hybrid approaches.
156
- *
157
- * @example
158
- * onSubmit={async (values) => {
159
- * await fetch("/api/contact", {
160
- * method: "POST",
161
- * body: JSON.stringify(values)
162
- * });
163
- * }}
164
- */
165
- onSubmit?: (values: ContactCardFormValues) => void | Promise<void>;
146
+ */
147
+ onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;
166
148
  /**
167
149
  * Optional success callback invoked after successful submission.
168
- *
169
- * Called after `formConfig` submission and/or `onSubmit` completes successfully.
170
- * Use for showing success messages, redirecting, analytics tracking, etc.
171
150
  */
172
151
  onSuccess?: (data: unknown) => void;
173
152
  /**
174
153
  * Optional error callback invoked if submission fails.
175
- *
176
- * Receives the error object for custom error handling, logging, or user notifications.
177
154
  */
178
155
  onError?: (error: Error) => void;
179
156
  }
@@ -192,6 +169,6 @@ interface ContactCardProps {
192
169
  * />
193
170
  * ```
194
171
  */
195
- declare function ContactCard({ heading, description, formHeading, buttonText, buttonIcon, actions, actionsSlot, contactOptions, contactOptionsSlot, className, containerClassName, cardClassName, formHeadingClassName, formClassName, submitClassName, infoPanelClassName, headingClassName, descriptionClassName, contactOptionsClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCardProps): React.JSX.Element;
172
+ declare function ContactCard({ heading, description, formHeading, buttonText, buttonIcon, actions, actionsSlot, contactOptions, contactOptionsSlot, formFields, successMessage, className, containerClassName, cardClassName, formHeadingClassName, formClassName, submitClassName, successMessageClassName, errorMessageClassName, infoPanelClassName, headingClassName, descriptionClassName, contactOptionsClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCardProps): React.JSX.Element;
196
173
 
197
174
  export { ContactCard, type ContactCardProps };