@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,18 +9,6 @@ import 'class-variance-authority';
8
9
  import './button-variants-lRElsmTc.cjs';
9
10
  import 'class-variance-authority/types';
10
11
 
11
- interface CareersFormValues {
12
- position: string;
13
- linkedin: string;
14
- portfolio: string;
15
- availability: string;
16
- firstName: string;
17
- lastName: string;
18
- email: string;
19
- phone: string;
20
- coverLetter: string;
21
- contact_form_upload_tokens: string[];
22
- }
23
12
  interface ContactCareersProps {
24
13
  /**
25
14
  * Main heading content
@@ -45,12 +34,23 @@ interface ContactCareersProps {
45
34
  * Custom slot for rendering actions (overrides actions array and default submit)
46
35
  */
47
36
  actionsSlot?: React.ReactNode;
37
+ /**
38
+ * Array of form field configurations
39
+ * If not provided, defaults to: position, firstName, lastName, email, phone, linkedin, portfolio, availability, coverLetter, resume
40
+ */
41
+ formFields?: FormFieldConfig[];
42
+ /**
43
+ * Success message to display after form submission
44
+ * @default "Thank you for your application! We'll review it and get back to you soon."
45
+ */
46
+ successMessage?: React.ReactNode;
48
47
  /**
49
48
  * Additional CSS classes for the section
50
49
  */
51
50
  className?: string;
52
51
  /**
53
52
  * Additional CSS classes for the container
53
+ * @default "px-6 sm:px-6 md:px-8 lg:px-8"
54
54
  */
55
55
  containerClassName?: string;
56
56
  /**
@@ -76,12 +76,26 @@ interface ContactCareersProps {
76
76
  /**
77
77
  * Additional CSS classes for the submit button
78
78
  */
79
- submitClassName?: string; /**
79
+ submitClassName?: string;
80
+ /**
81
+ * Additional CSS classes for the form
82
+ */
83
+ formClassName?: string;
84
+ /**
85
+ * Additional CSS classes for the success message
86
+ */
87
+ successMessageClassName?: string;
88
+ /**
89
+ * Additional CSS classes for the error message
90
+ */
91
+ errorMessageClassName?: string;
92
+ /**
80
93
  * Background style for the section
81
94
  */
82
95
  background?: SectionBackground;
83
96
  /**
84
97
  * Vertical spacing for the section
98
+ * @default "py-8 md:py-32"
85
99
  */
86
100
  spacing?: SectionSpacing;
87
101
  /**
@@ -94,56 +108,19 @@ interface ContactCareersProps {
94
108
  patternOpacity?: number;
95
109
  /**
96
110
  * Optional form submission configuration.
97
- *
98
- * **Universal Usage**: Works with ANY REST API endpoint. Simply provide an `endpoint` URL
99
- * and the form will submit to it in JSON format.
100
- *
101
- * @example
102
- * // Works with any API
103
- * formConfig={{ endpoint: "https://api.mysite.com/careers", format: "json" }}
104
- *
105
- * @example
106
- * // With custom headers (e.g., authentication)
107
- * formConfig={{
108
- * endpoint: "/api/careers",
109
- * headers: { "Authorization": "Bearer token123" }
110
- * }}
111
- *
112
- * **Note**: The `apiKey`, `contactCategoryToken`, and other platform-specific fields
113
- * are OPTIONAL and only needed when integrating with DashTrack's Rails backend.
114
- * For generic REST APIs, just use `endpoint`, `method`, `format`, and `headers`.
115
- *
116
- * See `FORMS_INTEGRATION_GUIDE.md` for complete examples with Next.js, React, and more.
111
+ * See `FORMS_INTEGRATION_GUIDE.md` for complete examples.
117
112
  */
118
113
  formConfig?: PageSpeedFormConfig;
119
114
  /**
120
115
  * Optional custom submission handler for maximum flexibility.
121
- *
122
- * Use this when you need complete control over the submission logic,
123
- * such as custom API calls, analytics tracking, or multi-step workflows.
124
- *
125
- * Can be used alone or in combination with `formConfig` for hybrid approaches.
126
- *
127
- * @example
128
- * onSubmit={async (values) => {
129
- * await fetch("/api/careers", {
130
- * method: "POST",
131
- * body: JSON.stringify(values)
132
- * });
133
- * }}
134
- */
135
- onSubmit?: (values: CareersFormValues) => void | Promise<void>;
116
+ */
117
+ onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;
136
118
  /**
137
119
  * Optional success callback invoked after successful submission.
138
- *
139
- * Called after `formConfig` submission and/or `onSubmit` completes successfully.
140
- * Use for showing success messages, redirecting, analytics tracking, etc.
141
120
  */
142
121
  onSuccess?: (data: unknown) => void;
143
122
  /**
144
123
  * Optional error callback invoked if submission fails.
145
- *
146
- * Receives the error object for custom error handling, logging, or user notifications.
147
124
  */
148
125
  onError?: (error: Error) => void;
149
126
  }
@@ -161,6 +138,6 @@ interface ContactCareersProps {
161
138
  * />
162
139
  * ```
163
140
  */
164
- declare function ContactCareers({ heading, description, buttonText, buttonIcon, actions, actionsSlot, className, containerClassName, headerClassName, headingClassName, descriptionClassName, cardClassName, cardContentClassName, submitClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCareersProps): React.JSX.Element;
141
+ declare function ContactCareers({ heading, description, buttonText, buttonIcon, actions, actionsSlot, formFields, successMessage, className, containerClassName, headerClassName, headingClassName, descriptionClassName, cardClassName, cardContentClassName, submitClassName, formClassName, successMessageClassName, errorMessageClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCareersProps): React.JSX.Element;
165
142
 
166
143
  export { ContactCareers, type ContactCareersProps };
@@ -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,18 +9,6 @@ import 'class-variance-authority';
8
9
  import './button-variants-lRElsmTc.js';
9
10
  import 'class-variance-authority/types';
10
11
 
11
- interface CareersFormValues {
12
- position: string;
13
- linkedin: string;
14
- portfolio: string;
15
- availability: string;
16
- firstName: string;
17
- lastName: string;
18
- email: string;
19
- phone: string;
20
- coverLetter: string;
21
- contact_form_upload_tokens: string[];
22
- }
23
12
  interface ContactCareersProps {
24
13
  /**
25
14
  * Main heading content
@@ -45,12 +34,23 @@ interface ContactCareersProps {
45
34
  * Custom slot for rendering actions (overrides actions array and default submit)
46
35
  */
47
36
  actionsSlot?: React.ReactNode;
37
+ /**
38
+ * Array of form field configurations
39
+ * If not provided, defaults to: position, firstName, lastName, email, phone, linkedin, portfolio, availability, coverLetter, resume
40
+ */
41
+ formFields?: FormFieldConfig[];
42
+ /**
43
+ * Success message to display after form submission
44
+ * @default "Thank you for your application! We'll review it and get back to you soon."
45
+ */
46
+ successMessage?: React.ReactNode;
48
47
  /**
49
48
  * Additional CSS classes for the section
50
49
  */
51
50
  className?: string;
52
51
  /**
53
52
  * Additional CSS classes for the container
53
+ * @default "px-6 sm:px-6 md:px-8 lg:px-8"
54
54
  */
55
55
  containerClassName?: string;
56
56
  /**
@@ -76,12 +76,26 @@ interface ContactCareersProps {
76
76
  /**
77
77
  * Additional CSS classes for the submit button
78
78
  */
79
- submitClassName?: string; /**
79
+ submitClassName?: string;
80
+ /**
81
+ * Additional CSS classes for the form
82
+ */
83
+ formClassName?: string;
84
+ /**
85
+ * Additional CSS classes for the success message
86
+ */
87
+ successMessageClassName?: string;
88
+ /**
89
+ * Additional CSS classes for the error message
90
+ */
91
+ errorMessageClassName?: string;
92
+ /**
80
93
  * Background style for the section
81
94
  */
82
95
  background?: SectionBackground;
83
96
  /**
84
97
  * Vertical spacing for the section
98
+ * @default "py-8 md:py-32"
85
99
  */
86
100
  spacing?: SectionSpacing;
87
101
  /**
@@ -94,56 +108,19 @@ interface ContactCareersProps {
94
108
  patternOpacity?: number;
95
109
  /**
96
110
  * Optional form submission configuration.
97
- *
98
- * **Universal Usage**: Works with ANY REST API endpoint. Simply provide an `endpoint` URL
99
- * and the form will submit to it in JSON format.
100
- *
101
- * @example
102
- * // Works with any API
103
- * formConfig={{ endpoint: "https://api.mysite.com/careers", format: "json" }}
104
- *
105
- * @example
106
- * // With custom headers (e.g., authentication)
107
- * formConfig={{
108
- * endpoint: "/api/careers",
109
- * headers: { "Authorization": "Bearer token123" }
110
- * }}
111
- *
112
- * **Note**: The `apiKey`, `contactCategoryToken`, and other platform-specific fields
113
- * are OPTIONAL and only needed when integrating with DashTrack's Rails backend.
114
- * For generic REST APIs, just use `endpoint`, `method`, `format`, and `headers`.
115
- *
116
- * See `FORMS_INTEGRATION_GUIDE.md` for complete examples with Next.js, React, and more.
111
+ * See `FORMS_INTEGRATION_GUIDE.md` for complete examples.
117
112
  */
118
113
  formConfig?: PageSpeedFormConfig;
119
114
  /**
120
115
  * Optional custom submission handler for maximum flexibility.
121
- *
122
- * Use this when you need complete control over the submission logic,
123
- * such as custom API calls, analytics tracking, or multi-step workflows.
124
- *
125
- * Can be used alone or in combination with `formConfig` for hybrid approaches.
126
- *
127
- * @example
128
- * onSubmit={async (values) => {
129
- * await fetch("/api/careers", {
130
- * method: "POST",
131
- * body: JSON.stringify(values)
132
- * });
133
- * }}
134
- */
135
- onSubmit?: (values: CareersFormValues) => void | Promise<void>;
116
+ */
117
+ onSubmit?: (values: Record<string, unknown>) => void | Promise<void>;
136
118
  /**
137
119
  * Optional success callback invoked after successful submission.
138
- *
139
- * Called after `formConfig` submission and/or `onSubmit` completes successfully.
140
- * Use for showing success messages, redirecting, analytics tracking, etc.
141
120
  */
142
121
  onSuccess?: (data: unknown) => void;
143
122
  /**
144
123
  * Optional error callback invoked if submission fails.
145
- *
146
- * Receives the error object for custom error handling, logging, or user notifications.
147
124
  */
148
125
  onError?: (error: Error) => void;
149
126
  }
@@ -161,6 +138,6 @@ interface ContactCareersProps {
161
138
  * />
162
139
  * ```
163
140
  */
164
- declare function ContactCareers({ heading, description, buttonText, buttonIcon, actions, actionsSlot, className, containerClassName, headerClassName, headingClassName, descriptionClassName, cardClassName, cardContentClassName, submitClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCareersProps): React.JSX.Element;
141
+ declare function ContactCareers({ heading, description, buttonText, buttonIcon, actions, actionsSlot, formFields, successMessage, className, containerClassName, headerClassName, headingClassName, descriptionClassName, cardClassName, cardContentClassName, submitClassName, formClassName, successMessageClassName, errorMessageClassName, background, spacing, pattern, patternOpacity, formConfig, onSubmit, onSuccess, onError, }: ContactCareersProps): React.JSX.Element;
165
142
 
166
143
  export { ContactCareers, type ContactCareersProps };