@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,17 +9,6 @@ import 'class-variance-authority';
8
9
  import './button-variants-lRElsmTc.cjs';
9
10
  import 'class-variance-authority/types';
10
11
 
11
- interface CallbackFormValues {
12
- name: string;
13
- company: string;
14
- email: string;
15
- phone: string;
16
- date: string;
17
- time: string;
18
- timezone: string;
19
- topic: string;
20
- details: string;
21
- }
22
12
  interface ContactCallbackProps {
23
13
  /**
24
14
  * Main heading content
@@ -45,13 +35,35 @@ interface ContactCallbackProps {
45
35
  */
46
36
  actionsSlot?: React.ReactNode;
47
37
  /**
48
- * Footer content (e.g., help text)
38
+ * Array of form field configurations
39
+ * If not provided, defaults to: name, company, email, phone, date, time, timezone, topic, details
40
+ */
41
+ formFields?: FormFieldConfig[];
42
+ /**
43
+ * Success message to display after form submission
44
+ * @default "Thank you! Your callback request has been received."
45
+ */
46
+ successMessage?: React.ReactNode;
47
+ /**
48
+ * Label for the information section heading
49
+ */
50
+ infoSectionLabel?: string;
51
+ /**
52
+ * Label for the schedule section heading
49
53
  */
50
- footer?: React.ReactNode;
54
+ scheduleSectionLabel?: string;
51
55
  /**
52
- * Custom slot for footer content (overrides footer prop)
56
+ * Label for the topic section heading
53
57
  */
54
- footerSlot?: React.ReactNode;
58
+ topicSectionLabel?: string;
59
+ /**
60
+ * Label for the callback process info box heading
61
+ */
62
+ callbackProcessLabel?: string;
63
+ /**
64
+ * Description for the callback process info box
65
+ */
66
+ callbackProcessDescription?: string;
55
67
  /**
56
68
  * Additional CSS classes for the section
57
69
  */
@@ -89,15 +101,20 @@ interface ContactCallbackProps {
89
101
  */
90
102
  submitClassName?: string;
91
103
  /**
92
- * Additional CSS classes for the footer
104
+ * Additional CSS classes for the success message
93
105
  */
94
- footerClassName?: string;
106
+ successMessageClassName?: string;
107
+ /**
108
+ * Additional CSS classes for the error message
109
+ */
110
+ errorMessageClassName?: string;
95
111
  /**
96
112
  * Background style for the section
97
113
  */
98
114
  background?: SectionBackground;
99
115
  /**
100
116
  * Vertical spacing for the section
117
+ * @default "py-8 md:py-32"
101
118
  */
102
119
  spacing?: SectionSpacing;
103
120
  /**
@@ -110,56 +127,19 @@ interface ContactCallbackProps {
110
127
  patternOpacity?: number;
111
128
  /**
112
129
  * Optional form submission configuration.
113
- *
114
- * **Universal Usage**: Works with ANY REST API endpoint. Simply provide an `endpoint` URL
115
- * and the form will submit to it in JSON format.
116
- *
117
- * @example
118
- * // Works with any API
119
- * formConfig={{ endpoint: "https://api.mysite.com/callback", format: "json" }}
120
- *
121
- * @example
122
- * // With custom headers (e.g., authentication)
123
- * formConfig={{
124
- * endpoint: "/api/callback",
125
- * headers: { "Authorization": "Bearer token123" }
126
- * }}
127
- *
128
- * **Note**: The `apiKey`, `contactCategoryToken`, and other platform-specific fields
129
- * are OPTIONAL and only needed when integrating with DashTrack's Rails backend.
130
- * For generic REST APIs, just use `endpoint`, `method`, `format`, and `headers`.
131
- *
132
- * See `FORMS_INTEGRATION_GUIDE.md` for complete examples with Next.js, React, and more.
130
+ * See `FORMS_INTEGRATION_GUIDE.md` for complete examples.
133
131
  */
134
132
  formConfig?: PageSpeedFormConfig;
135
133
  /**
136
134
  * Optional custom submission handler for maximum flexibility.
137
- *
138
- * Use this when you need complete control over the submission logic,
139
- * such as custom API calls, analytics tracking, or multi-step workflows.
140
- *
141
- * Can be used alone or in combination with `formConfig` for hybrid approaches.
142
- *
143
- * @example
144
- * onSubmit={async (values) => {
145
- * await fetch("/api/callback", {
146
- * method: "POST",
147
- * body: JSON.stringify(values)
148
- * });
149
- * }}
150
- */
151
- onSubmit?: (values: CallbackFormValues) => void | Promise<void>;
135
+ */
136
+ onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;
152
137
  /**
153
138
  * Optional success callback invoked after successful submission.
154
- *
155
- * Called after `formConfig` submission and/or `onSubmit` completes successfully.
156
- * Use for showing success messages, redirecting, analytics tracking, etc.
157
139
  */
158
140
  onSuccess?: (data: unknown) => void;
159
141
  /**
160
142
  * Optional error callback invoked if submission fails.
161
- *
162
- * Receives the error object for custom error handling, logging, or user notifications.
163
143
  */
164
144
  onError?: (error: Error) => void;
165
145
  }
@@ -178,6 +158,6 @@ interface ContactCallbackProps {
178
158
  * />
179
159
  * ```
180
160
  */
181
- declare function ContactCallback({ heading, description, buttonText, buttonIcon, actions, actionsSlot, footer, footerSlot, className, containerClassName, headerClassName, headingClassName, descriptionClassName, cardClassName, cardContentClassName, formClassName, submitClassName, footerClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCallbackProps): React.JSX.Element;
161
+ declare function ContactCallback({ heading, description, buttonText, buttonIcon, actions, actionsSlot, formFields, successMessage, infoSectionLabel, scheduleSectionLabel, topicSectionLabel, callbackProcessLabel, callbackProcessDescription, className, containerClassName, headerClassName, headingClassName, descriptionClassName, cardClassName, cardContentClassName, formClassName, submitClassName, successMessageClassName, errorMessageClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCallbackProps): React.JSX.Element;
182
162
 
183
163
  export { ContactCallback, type ContactCallbackProps };
@@ -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,17 +9,6 @@ import 'class-variance-authority';
8
9
  import './button-variants-lRElsmTc.js';
9
10
  import 'class-variance-authority/types';
10
11
 
11
- interface CallbackFormValues {
12
- name: string;
13
- company: string;
14
- email: string;
15
- phone: string;
16
- date: string;
17
- time: string;
18
- timezone: string;
19
- topic: string;
20
- details: string;
21
- }
22
12
  interface ContactCallbackProps {
23
13
  /**
24
14
  * Main heading content
@@ -45,13 +35,35 @@ interface ContactCallbackProps {
45
35
  */
46
36
  actionsSlot?: React.ReactNode;
47
37
  /**
48
- * Footer content (e.g., help text)
38
+ * Array of form field configurations
39
+ * If not provided, defaults to: name, company, email, phone, date, time, timezone, topic, details
40
+ */
41
+ formFields?: FormFieldConfig[];
42
+ /**
43
+ * Success message to display after form submission
44
+ * @default "Thank you! Your callback request has been received."
45
+ */
46
+ successMessage?: React.ReactNode;
47
+ /**
48
+ * Label for the information section heading
49
+ */
50
+ infoSectionLabel?: string;
51
+ /**
52
+ * Label for the schedule section heading
49
53
  */
50
- footer?: React.ReactNode;
54
+ scheduleSectionLabel?: string;
51
55
  /**
52
- * Custom slot for footer content (overrides footer prop)
56
+ * Label for the topic section heading
53
57
  */
54
- footerSlot?: React.ReactNode;
58
+ topicSectionLabel?: string;
59
+ /**
60
+ * Label for the callback process info box heading
61
+ */
62
+ callbackProcessLabel?: string;
63
+ /**
64
+ * Description for the callback process info box
65
+ */
66
+ callbackProcessDescription?: string;
55
67
  /**
56
68
  * Additional CSS classes for the section
57
69
  */
@@ -89,15 +101,20 @@ interface ContactCallbackProps {
89
101
  */
90
102
  submitClassName?: string;
91
103
  /**
92
- * Additional CSS classes for the footer
104
+ * Additional CSS classes for the success message
93
105
  */
94
- footerClassName?: string;
106
+ successMessageClassName?: string;
107
+ /**
108
+ * Additional CSS classes for the error message
109
+ */
110
+ errorMessageClassName?: string;
95
111
  /**
96
112
  * Background style for the section
97
113
  */
98
114
  background?: SectionBackground;
99
115
  /**
100
116
  * Vertical spacing for the section
117
+ * @default "py-8 md:py-32"
101
118
  */
102
119
  spacing?: SectionSpacing;
103
120
  /**
@@ -110,56 +127,19 @@ interface ContactCallbackProps {
110
127
  patternOpacity?: number;
111
128
  /**
112
129
  * Optional form submission configuration.
113
- *
114
- * **Universal Usage**: Works with ANY REST API endpoint. Simply provide an `endpoint` URL
115
- * and the form will submit to it in JSON format.
116
- *
117
- * @example
118
- * // Works with any API
119
- * formConfig={{ endpoint: "https://api.mysite.com/callback", format: "json" }}
120
- *
121
- * @example
122
- * // With custom headers (e.g., authentication)
123
- * formConfig={{
124
- * endpoint: "/api/callback",
125
- * headers: { "Authorization": "Bearer token123" }
126
- * }}
127
- *
128
- * **Note**: The `apiKey`, `contactCategoryToken`, and other platform-specific fields
129
- * are OPTIONAL and only needed when integrating with DashTrack's Rails backend.
130
- * For generic REST APIs, just use `endpoint`, `method`, `format`, and `headers`.
131
- *
132
- * See `FORMS_INTEGRATION_GUIDE.md` for complete examples with Next.js, React, and more.
130
+ * See `FORMS_INTEGRATION_GUIDE.md` for complete examples.
133
131
  */
134
132
  formConfig?: PageSpeedFormConfig;
135
133
  /**
136
134
  * Optional custom submission handler for maximum flexibility.
137
- *
138
- * Use this when you need complete control over the submission logic,
139
- * such as custom API calls, analytics tracking, or multi-step workflows.
140
- *
141
- * Can be used alone or in combination with `formConfig` for hybrid approaches.
142
- *
143
- * @example
144
- * onSubmit={async (values) => {
145
- * await fetch("/api/callback", {
146
- * method: "POST",
147
- * body: JSON.stringify(values)
148
- * });
149
- * }}
150
- */
151
- onSubmit?: (values: CallbackFormValues) => void | Promise<void>;
135
+ */
136
+ onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;
152
137
  /**
153
138
  * Optional success callback invoked after successful submission.
154
- *
155
- * Called after `formConfig` submission and/or `onSubmit` completes successfully.
156
- * Use for showing success messages, redirecting, analytics tracking, etc.
157
139
  */
158
140
  onSuccess?: (data: unknown) => void;
159
141
  /**
160
142
  * Optional error callback invoked if submission fails.
161
- *
162
- * Receives the error object for custom error handling, logging, or user notifications.
163
143
  */
164
144
  onError?: (error: Error) => void;
165
145
  }
@@ -178,6 +158,6 @@ interface ContactCallbackProps {
178
158
  * />
179
159
  * ```
180
160
  */
181
- declare function ContactCallback({ heading, description, buttonText, buttonIcon, actions, actionsSlot, footer, footerSlot, className, containerClassName, headerClassName, headingClassName, descriptionClassName, cardClassName, cardContentClassName, formClassName, submitClassName, footerClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCallbackProps): React.JSX.Element;
161
+ declare function ContactCallback({ heading, description, buttonText, buttonIcon, actions, actionsSlot, formFields, successMessage, infoSectionLabel, scheduleSectionLabel, topicSectionLabel, callbackProcessLabel, callbackProcessDescription, className, containerClassName, headerClassName, headingClassName, descriptionClassName, cardClassName, cardContentClassName, formClassName, submitClassName, successMessageClassName, errorMessageClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCallbackProps): React.JSX.Element;
182
162
 
183
163
  export { ContactCallback, type ContactCallbackProps };